/*   
Theme Name: Feria Tamaulipas 2025 
Theme URI: http://www.tamaulipas.gob.mx/feria
Description: Tema de Feria Tamaulipas 2025
Author: Departamento de Diseño Grafico y Produccion Web | Direccion de Internet
Author URI: http://www.tamaulipas.gob.mx/feria
Version: 1.0
*/

/** Fonts **/
@import url(//fonts.googleapis.com/css?family=Open+Sans:400,300,600,700,800);
/* font-family: 'Open Sans', sans-serif; */
@import url(https://fonts.googleapis.com/css2?family=Encode+Sans:wght@100;300;400;500;600;700;900&display=swap);
/* font-family: 'Encode Sans', sans-serif; */
@import url(//maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css);

*, ::after, ::before {
  box-sizing: border-box;
}

html {
  width: 100%;
  height: 100%;
  margin: 0;
  scroll-behavior: smooth;
/*  display: table;*/
} 

body {
  font-size: clamp(0.95rem, 1vw, 1rem); /* ~15.2px–16.8px */
  line-height: 1.6;
  font-weight: 400;
  color: var(--body);
  font-family: var(--font-body);
  /*background-color: var(--bg-body);*/
}

p {
  margin-bottom: 1rem;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-body);
  margin: 0;
}

h1 {
  font-size: clamp(2rem, 5vw, 2.5rem); /* 32px–40px */
  /*line-height: 1.2;*/
  font-weight: 700;
}

h2 {
  font-size: clamp(1.75rem, 4vw, 2rem); /* 28px–32px */
  /*line-height: 1.3;*/
  font-weight: 600;
}

h3 {
  font-size: clamp(1.5rem, 3.5vw, 1.75rem); /* 24px–28px */
  /*line-height: 1.3;*/
  font-weight: 600;
}

h4 {
  font-size: clamp(1.25rem, 3vw, 1.5rem); /* 20px–24px */
  /*line-height: 1.4;*/
  font-weight: 500;
}

h5 {
  font-size: clamp(1.125rem, 2.5vw, 1.25rem); /* 18px–20px */
  /*line-height: 1.4;*/
  font-weight: 500;
}

h6 {
  font-size: clamp(1rem, 2vw, 1rem); /* 16px */
  /*line-height: 1.5;*/
  font-weight: 500;
}

a {
  text-decoration: none;
  color: var(--vino);
  transition: color 0.3s ease, transform 0.2s ease;
}

a:hover {
  /*transform: translateY(-2px);*/
  color: var(--dorado);
}

:focus-visible {
  outline: 2px dashed var(--dorado);
  outline-offset: 2px;
}

/* Mejor foco para links y botones */
a:focus, button:focus {
  outline: 2px dashed var(--dorado);
  outline-offset: 2px;
}

.clean-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* ===============================
  Definir colores
================================== */
:root {
  --body:#242424;
  --font-body:'Encode Sans', sans-serif!important;
  --font-open: "Open Sans", sans-serif;
  --vino: #840224;
  --vino-rgb: 132, 2, 36;
/*  --dorado:#BC955B;
  --gris:#53565A;
  --beige:#FCFBF8;
  --vino-o: #4e0b15;*/
  --bg-body:#FFFDF6;
}

/* ===============================
   Utilidades de Color – Texto
================================== */
.text-body    { color: var(--body) !important; }
.text-vino    { color: var(--vino) !important; }
/*.text-vino-o  { color: var(--vino-o) !important; }
.text-dorado  { color: var(--dorado) !important; }
.text-gris    { color: var(--gris) !important; }
.text-beige   { color: var(--beige) !important; }*/


/* ===============================
   Utilidades de Color – Fondo
================================== */
.bg-body    { background-color: var(--body) !important; }
.bg-vino    { background-color: var(--vino) !important; }
/*.bg-vino-o  { background-color: var(--vino-o) !important; }
.bg-dorado  { background-color: var(--dorado) !important; }
.bg-gris    { background-color: var(--gris) !important; }
.bg-beige   { background-color: var(--beige) !important; }*/


/* ===============================
   Utilidades de Color – Bordes
================================== */
.border-vino    { border-color: var(--vino) !important; }
/*.border-vino-o  { border-color: var(--vino-o) !important; }
.border-dorado  { border-color: var(--dorado) !important; }
.border-gris    { border-color: var(--gris) !important; }*/

/* ===============================
   Boton y Hover
================================== */
.btn-vino {
  background-color: var(--vino) !important;
  color: #fff !important;
  border: none !important;
}

.btn-vino:hover,
.btn-vino:focus {
  background-color: var(--vino-o) !important;
  color: #fff !important;
  box-shadow: 0 0 0 0.25rem rgba(171, 23, 56, 0.5);
}

/* ===============================
   Scroll Top / Preloader
================================== */
.scroll-top {
  position: fixed;
  right: 20px;
  bottom: 80px;
  cursor: pointer;
  width: 60px;
  height: 60px;
  display: none; 
  justify-content: center;
  align-items: center;
  border-radius: 50%;
  background: transparent;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); 
  transition: transform 0.2s ease, box-shadow 0.3s ease;
  z-index: 9;
}

.scroll-top:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
}

.progress-circle {
  position: absolute;
  top: 0;
  left: 0;
  transform: rotate(-90deg);
}

.progress-circle circle {
  fill: none;
  stroke-width: 5;
}
.progress-circle .progress {
  stroke: #ee7821;
  fill: #fff;
  stroke-dasharray: 157; /* 2πr */
  stroke-dashoffset: 157;
  transition: stroke-dashoffset 0.2s linear;
}

.scroll-top .arrow {
  position: relative;
  font-size: 20px;
  color: #e5007d;
  pointer-events: none;
  animation: pulse 1.5s infinite;
}

/* Animación pulso */
@keyframes pulse {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.2); opacity: 0.85; }
  100% { transform: scale(1); opacity: 1; }
}

/*Preloader*/
#preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #ffffff;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 99999;
  transition: opacity 0.4s ease;
}

/* Animación spinner */
.spinner {
  width: 70px;
  height: 70px;
  border: 5px solid rgba(171, 23, 56, 0.2); /* var(--vino) con opacidad */
  border-top-color: var(--vino);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/******************************
 * ** Estilos clases propias ** ***********
 * */

.fancybox__container {
  z-index: 99999 !important;
}

#protocolo .arrow {
  animation: bounce 1.5s infinite;
}

  /* Animación del rebote de la flecha */
  @keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-8px); }
    60% { transform: translateY(-4px); }
  }
/* ===============================
   Header 
   ============================== */
#header {
  z-index: 9999;
  width: 100%;
  background-color: #fff;
  transition: background-color 0.4s ease, box-shadow 0.3s ease;
  position: relative;
}

#row-menu-header {
  height: 80px;
  transition: background 0.3s ease; 
}

.fixed-header #contenido-fix {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  z-index: 1100; 
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  transition: box-shadow 0.3s ease;
}
.fixed-header.visible #contenido-fix { top: 0; }

/* Logo */ 
#header .logo-home { z-index: 1; transition: all 0.4s ease-in-out; height: 80px; position: relative; }
#header .logo-home .logo-home { max-height: 50px; transition: max-height 0.4s ease, transform 0.4s ease; }
#header.fixed-header .logo-home .logo-home { max-height: 40px; transform: translateX(-5px); }
/* Nav */
.fixed-header #menu-container li a {
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  padding: 10px 15px
}

/*si tiene submenu*/
/*.fixed-header #menu-container li a {
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  padding: 6px 25px 6px 6px;
}*/
/* =========================
   Nav estilos menu/submenus
   ========================= */
#menu-container{
  display: flex;
  align-items: center;
  height: 100%;
}

#menu-menu-principal {
  display: flex;
  align-items: center;   /* centra los li hijos */
  height: 100%;
  margin: 0;
  padding: 0;
}

/* Los li del primer nivel */
#menu-menu-principal > li {
  display: flex;
  align-items: center;
  height: 100%;
}

/* Los li de submenús vuelven a ser bloques normales */
#menu-menu-principal li ul li {
  display: block;
  height: auto;
  align-items: initial;
}

#menu-container li {
  float: left;
  border: 0;
  transition: all .3s ease;
  position: relative;
  height: 100%;
}

#menu-container li a {
  font-size: clamp(0.85rem, 1vw, 1rem);
  padding: 10px 20px;
  font-family: var(--font-body);
  white-space: nowrap;
  display: flex;
  align-items: center;
  position: relative;
  color: #bc945b;
  line-height: normal;
  font-weight: 600;
  text-align: center;
  /*text-transform: uppercase;*/
  transition: color 0.18s ease, padding 0.3s ease;
}

/*Activo para scroll*/
#menu-container a.active-section {
  color: var(--vino);
  font-weight: 700;
  position: relative;
}

#menu-container a.active-section::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 2px;
	background-color: var(--vino);
	border-radius: 2px;
	width: 80%;
	margin: 0 auto;
}

/* Cambia color según el estado del header:
/*#header:not(.fixed-header) #menu-container li a { color: #fff; }
#header.fixed-header #menu-container li a { color: var(--body); }
#header.fixed-header #menu-container li:hover > a { color: var(--vino); }*/

#menu-container .menu-item-has-children > a { position: relative; padding-right: 30px; }

#menu-container .menu-item-has-children > a::after {
  content: "\f105";
  font-family: "FontAwesome";
  font-size: 0.85rem;
  position: absolute;
  top: 50%;
  transform-origin: center;
  transform: translateY(-50%) rotate(90deg); 
  right: 9px;
  transition: transform .25s ease, color .18s ease;
  pointer-events: none;
  color: inherit;
}

/* subniveles: ajusta posición de la flecha */
#menu-container .sub-menu .menu-item-has-children > a::after { right: 10px; }

/* hover / focus / .open para animar la flecha */
/* nivel top: al abrir, rotamos para indicar "cerrar" (flecha hacia arriba) */
#menu-container > ul > li.menu-item-has-children:hover > a::after,
#menu-container > ul > li.menu-item-has-children:focus-within > a::after,
#menu-container > ul > li.menu-item-has-children.open > a::after {
  transform: translateY(-50%) rotate(270deg);
  color: var(--vino);
}

/* subniveles: cuando se abren, la flecha pasa de right -> down (rotate 0) */
#menu-container .sub-menu li.menu-item-has-children:hover > a::after,
#menu-container .sub-menu li.menu-item-has-children:focus-within > a::after,
#menu-container .sub-menu li.menu-item-has-children.open > a::after {
  transform: translateY(-50%) rotate(0deg);
  color: var(--vino);
}

/* corrección: selector anterior tenia .menu-container (clase) por error */
#menu-container .sub-menu> li:hover > a,
#menu-container .sub-menu li a:focus-within {
  color: var(--vino);
}

/* Dropdown */
@keyframes fade-in-out { 0% { opacity: 0; } 100% { opacity: 1; } }

#menu-container li ul {
  background-color: #fff;
  min-width: 230px;
  margin-top: -6px;
  border-radius: 4px;
  box-shadow: 0 33px 32px rgb(0 0 0 / 10%);
  padding: 10px;
  display: none;
  position: absolute;
  text-align: left;
  animation: fade-in-out .3s ease;
  z-index: 1200;
  top: calc(100% - 6px);
}

#menu-container li:hover > ul,
#menu-container a:focus-within + ul,
#menu-container li.open > ul {
  display: block;
  animation: fade-in-out .25s ease;
}

#menu-container li ul li { display: block; transition: all .3s ease; margin: 0; width: 100%; }
#menu-container li ul li a { text-transform: initial; transition: all .3s ease; }

/* Sub-submenus */
#menu-container li ul li ul {
  margin-left: -2px;
  left: 100%;
  top: -1px;
  z-index: 1;
}

#menu-container .sub-menu li a {
  font-family: var(--font);
  font-size: 12px;
  line-height: 14px;
  font-weight: 500;
  color: #444;
  padding: 12px 20px;
  display: block;
  transition: .3s ease;
  height: auto !important;
}

#menu-container li a:focus-visible {
  outline: 3px solid rgba(0,0,0,0.12);
  outline-offset: 2px;
}

/*clase directa desde menu aparencia*/
#menu-container .invert ul{
  right: 0;
  left: auto;
}

.menu-responsivo .offcanvas-backdrop {
  display: none !important;
}

/* =========================
   Menu Responsivo
   ========================= */
#header #barras-boton{
  cursor: pointer;
}

#header .nav-bars i{
  font-size: 30px;
  padding: 8px;
  color: var(--vino);
  border: 1px solid var(--vino);
  border-radius: 5px;
  cursor: pointer;
}

#header .menu-responsivo .offcanvas-header img{
  max-height: 50px;
}

#header .menu-responsivo .offcanvas-body .footer{
  font-size: 7px;
  line-height: normal;
}

#header .menu-responsivo .offcanvas-body .footer .logo-r img{
  max-height: 80px;
}

#row-menu-movil {
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
}

/*estilos menu*/
.nav-menu {
  position: relative;
  width: 100%;
}

.nav-menu ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-menu li {
  position: relative;
}

.nav-menu li a {
  display: block;
  padding: 10px 40px 10px 15px; 
  text-decoration: none;
  transition: color 0.3s;
  color: #bc945b;
}

.nav-menu li a.sub-open {
  font-weight: bold;
}

.nav-menu li.padre > a {
  display: block;
  position: relative; 
  padding: 10px 40px 10px 15px;
  text-decoration: none;
}

.nav-menu li.padre > a::after {
  content: "\f078"; 
  font-family: "FontAwesome";
  font-weight: 900;
  position: absolute;
  right: 15px;       
  top: 50%;
  transform: translateY(-50%) rotate(0deg); 
  transition: transform 0.3s;
}

.nav-menu li.padre.open > a::after {
  transform: translateY(-50%) rotate(180deg); 
  color: var(--vino);
}

.nav-menu .sub-menu.hijo {
  display: none; 
  padding-left: 15px;
}

#row-menu-movil::-webkit-scrollbar{
    -webkit-appearance: none;
}

#row-menu-movil::-webkit-scrollbar:vertical{
    width:10px;
}

#row-menu-movil::-webkit-scrollbar-button:increment,
#row-menu-movil::-webkit-scrollbar-button{
    display: none;
} 

#row-menu-movil::-webkit-scrollbar:horizontal{
    height: 10px;
}

#row-menu-movil::-webkit-scrollbar-thumb {
  background-color: #797979;
  border-radius: 20px;
  border: 3px solid #f1f2f3;
}

#row-menu-movil::-webkit-scrollbar-track {
    border-radius: 10px;  
}
/*fin header*/

/* ===============================
   Footer
================================== */
#footer #logo-footer img{
	max-height: 120px;
}

#footer .content-img-ft{
	border-bottom: 40px solid;
	border-color: #620726;
}


 /******************************
 * ** Titulo y margen secciones ** ***************
 * */
.titulo-seccion{
	color: #b61467;
	font-weight: 800;
	font-size: clamp(22px, 4.5vw, 42px);
	filter: drop-shadow(2px 4px 6px rgba(0, 0, 0, 0.2));
}


 /******************************
 * ** Splash ** ***************
 * */
#splash-home .swiper-button-next, #splash-home .swiper-button-prev{
  color: var(--vino);
}

#splash-home .swiper-horizontal>.swiper-pagination-bullets, 
#splash-home .swiper-pagination-bullets.swiper-pagination-horizontal,
#splash-home .swiper-pagination-custom, #splash-home .swiper-pagination-fraction{
  /*bottom: 0!important;*/
  /*padding-bottom: 10px;*/
}

#splash-home .swiper-pagination-bullet-active{
  background: #fff;
}


 /******************************
 * ** Mensaje / Bienvenida ** ***************
 * */
 #mensaje{
	background-color: #f9f2ea;
}

#mensaje #row-mensaje{
	padding: 80px 0 30px;
  position: relative;
  z-index: 2; 
}

#mensaje .img-top, #mensaje .img-bottom{
  z-index: 1;
  width: 25%;      
  max-width: 300px;   
  height: auto;
  opacity: 0.9;
}

#mensaje #row-mensaje .text-mensaje *{
	text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
	position: relative;
	z-index: 2;
}
#mensaje .fecha img{
	max-height: 45px;
}


 /******************************
 * ** Banner Apps ** ***************
 * */
#banners-index .swiper-button-next, #banners-index .swiper-button-prev{
  color: var(--vino);
}

#banners-index .swiper-horizontal>.swiper-pagination-bullets, 
#banners-index .swiper-pagination-bullets.swiper-pagination-horizontal,
#banners-index .swiper-pagination-custom, #banners-index .swiper-pagination-fraction{
  /*bottom: 0!important;*/
  /*padding-bottom: 10px;*/
}

#banners-index .swiper-pagination-bullet-active{
  background: #ee580c;
}

#banners-index  .swiper-wrapper {
	padding-bottom: 40px;
}

 /******************************
 * ** Centro de Espectaculos / palenque ** ***************
 * */
#palenque-slider .swiper-button-next, #palenque-slider .swiper-button-prev{
  color: #ee580c;
}

#palenque-slider  .swiper-wrapper {
	padding-bottom: 40px;
}

#palenque-slider .swiper-horizontal>.swiper-pagination-bullets, 
#palenque-slider .swiper-pagination-bullets.swiper-pagination-horizontal,
#palenque-slider .swiper-pagination-custom, #palenque-slider .swiper-pagination-fraction{
  /*bottom: 0!important;*/
  /*padding-bottom: 10px;*/
}

#palenque-slider .swiper-pagination-bullet-active{
  background: #04a4ba;
}

 /******************************
 * ** Atracciones ** ***************
 * */
#atracciones .img-top{
  width: 22%;            /* se adapta al contenedor */
  max-width: 250px;      /* límite en pantallas grandes */
  height: auto;
  z-index: 1;
  opacity: 0.9;
}

#atracciones #contenido-atracciones{
	padding: 10px 0 75px;
}	

#atracciones .atraccion-image{
  right: 0;
  bottom: 0;
  max-width: 600px;  
  overflow: visible;
  z-index: 1;
}

#atracciones .atraccion-image .img-atraccion {
  width: 100%;
  height: auto;
  max-height: none;
  position: relative; /* quita el absolute que rompe la escala */
  object-fit: contain;
  transition: transform 0.5s ease; 
}

#slide-atracciones{
  padding-top: 70px;
  position: relative;
  z-index: 2;
}

#slide-atracciones .contenido{
 	padding-left: 45px;	
}

#atracciones .informacion li{
	display: flex;
	align-items: center;
	gap: 15px;
	margin-bottom: 5px;
}

#atracciones .informacion li p{
	margin: 0!important;
}

#container-atracciones{
  top: 0;
}

#atracciones .informacion li:before {
  content: "";
  flex-shrink: 0;
  width: 45px;
  height: 45px;
  min-width: 45px;
  min-height: 45px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

#atracciones .informacion li:nth-child(1):before{
  background-image: url('./img/atracciones/1-juegos.png');
}
#atracciones .informacion li:nth-child(2):before{
  background-image: url('./img/atracciones/2-atracciones.png');
}
#atracciones .informacion li:nth-child(3):before{
  background-image: url('./img/atracciones/3-ganadera.png');
}
#atracciones .informacion li:nth-child(4):before{
  background-image: url('./img/atracciones/4-comercial.png');
}
#atracciones .informacion li:nth-child(5):before{
  background-image: url('./img/atracciones/5-zona-extrema.png');
}
#atracciones .informacion li:nth-child(6):before{
  background-image: url('./img/atracciones/6-circo.png');
}
#atracciones .informacion li:nth-child(7):before{
  background-image: url('./img/atracciones/7-lienzo charro.png');
}
#atracciones .informacion li:nth-child(8):before{
  background-image: url('./img/atracciones/8-culturales.png');
}
#atracciones .informacion li:nth-child(9):before{
  background-image: url('./img/atracciones/9-gastronomia.png');
}
#atracciones .informacion li:nth-child(10):before{
  background-image: url('./img/atracciones/10-exposiciones.png');
}
#atracciones .informacion li:nth-child(11):before{
  background-image: url('./img/atracciones/11-fauna.png');
}

 /******************************
 * ** Costos ** ***************
 * */
#costos{
	background-image: url('https://www.tamaulipas.gob.mx/feria/wp-content/uploads/sites/39/2018/09/web-FeriaTam2025_Fondo-Costos.jpg'); 
	background-size: cover;
	background-position: center center;
	padding: 55px 0
}

#costos .cuadro .fw{
  font-weight: 800;
}

#costos .cuadro .content-info {
  height: 345px;
  border-bottom-left-radius: 200px;
  border-bottom-right-radius: 200px;
  background-size: 165px 220px;
  background-repeat: no-repeat;
  background-position: right;
}

#costos .cuadro ul li {
/*  font-size: 1.1rem;
  line-height: 1.4;*/
}

/*#costos .cuadro ul li strong {
  margin-left: 15px;
  white-space: nowrap;
}
*/
#costos .info #costo .bg{
  background-color: #772683;
}

#costos .info #accesos .bg{
  background-color: #05a5b1;
}

#costos .info #taquilla .bg{
	background-color: #87bc23;
}



/* ============================
   Media Queries – Bootstrap 
============================ */
/* ==================== MEDIA QUERIES BASE ==================== */

/*  Extra grande (Desktops muy grandes, TVs) */
@media (min-width: 1600px) {

}

/*  Grande (Desktops normales) */
@media (min-width: 1200px) and (max-width: 1599.98px) {

}

/* Mediano (Desktops pequeños o tablets en landscape) */
@media (min-width: 992px) and (max-width: 1199.98px) {
  /*.container{background-color: yellow;}*/
}

/* Combinado: Tablets + Pantallas Medianas (si ambos comparten estilos)*/
@media (min-width: 768px) and (max-width: 1199.98px) { 
  /*.container{background-color: #add8e687;}*/

}

/*  Tablets */
@media (min-width: 768px) and (max-width: 991.98px) {
  /* Estilos específicos para tablets */
  /*.container{background-color: pink;}*/

  #slide-atracciones .contenido{
    padding-left: 0;
    z-index: 1;
    position: relative;
  }
  #atracciones .atraccion-image{
    width: 65%!important;
  }
  #slide-atracciones #contenido-atracciones{
    padding-bottom: 300px;  
  }

}

/* Móviles grandes (Smartphones) */
@media (max-width: 767.98px) {
  /*.container{background-color: #80008033;}*/

  #slide-atracciones .contenido{
    padding-left: 0;
    z-index: 1;
    position: relative;
  }
  #atracciones .atraccion-image{
    width: 70%!important;
  }
  #slide-atracciones #contenido-atracciones{
    padding-bottom: 255px;  
  }
}

/* Móviles pequeños (teléfonos muy pequeños) */
@media (max-width: 480px) {
  /*.container{background-color: #ff7f506e;}*/
  #mensaje .fecha img {
    max-height: 35px;
  }
}

