/* =========================================================
   FERIA REGIONAL AMAZÓNICA ITSA 2026
   ========================================================= */
:root{
  --azul-oscuro:#003366;
  --azul-medio:#004b87;
  --azul-claro:#4A90E2;
  --azul-dropdown:#2c3e50;
  --azul-dropdown-hover:#34495e;
  --verde-agua:#1ABC9C;
  --naranja:#f57c00;
  --naranja-hover:#db6f00;
  --gris-claro:#f5f7fa;
  --gris-fondo:#f4f6f9;
  --gris-medio:#8a8d91;
  --gris-texto:#626b74;
  --blanco:#fff;
  --texto-principal:#212529;
  --sombra-suave:0 6px 18px rgba(0,0,0,.08);
  --sombra-media:0 10px 28px rgba(0,0,0,.12);
  --fuente-principal:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
}

/* BASE */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  padding-top:68px;
  font-family:var(--fuente-principal);
  line-height:1.6;
  background:var(--gris-claro);
  color:var(--texto-principal);
  overflow-x:hidden;
}
img{max-width:100%;}
a{text-decoration:none;color:var(--azul-oscuro);}
a:hover{text-decoration:none;}

/* =========================================================
   NAVBAR
   ========================================================= */
@keyframes fadeInDown{
  from{opacity:0;transform:translateY(-100%);}
  to{opacity:1;transform:translateY(0);}
}
.navbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:1030;
  background:var(--azul-oscuro);
  padding:.65rem 1rem;
  box-shadow:0 4px 14px rgba(0,0,0,.16);
  animation:fadeInDown .5s ease-out;
  transition:padding .3s ease,background .3s ease,box-shadow .3s ease;
}
.navbar.scrolled{
  padding:.45rem 1rem;
  background:rgba(0,51,102,.97);
  box-shadow:0 3px 15px rgba(0,0,0,.22);
  backdrop-filter:blur(7px);
}
.navbar .container{max-width:1320px;}
.navbar-brand{
  display:flex;
  align-items:center;
  color:#fff!important;
  font-size:1.15rem;
  font-weight:700;
  white-space:nowrap;
  transition:.3s ease;
}
.navbar-brand img{width:40px;height:40px;object-fit:contain;}
.navbar-brand:hover{color:var(--naranja)!important;transform:scale(1.02);}
.navbar-nav{align-items:center;}
.nav-item{position:relative;}
.nav-link{
  display:flex;
  align-items:center;
  color:#fff!important;
  font-size:.84rem;
  font-weight:600;
  padding:.5rem .55rem!important;
  margin:0 .05rem;
  white-space:nowrap;
  position:relative;
  transition:.3s ease;
}
.nav-link::after{transition:.3s ease;}
.nav-link::before{
  content:"";
  position:absolute;
  left:50%;
  bottom:1px;
  width:0;
  height:2px;
  background:var(--naranja);
  border-radius:20px;
  transform:translateX(-50%);
  transition:width .3s ease;
}
.nav-link:hover,.nav-link.active,.nav-link:focus{color:var(--naranja)!important;}
.nav-link:hover::before,.nav-link.active::before{width:45%;}

/* DROPDOWN */
.dropdown-menu{
  min-width:220px;
  padding:.45rem;
  margin-top:.5rem!important;
  background:var(--azul-dropdown);
  border:0;
  border-radius:10px;
  box-shadow:0 10px 30px rgba(0,0,0,.22);
}
.dropdown-item{
  display:flex;
  align-items:center;
  gap:7px;
  color:#fff!important;
  padding:.55rem .75rem;
  font-size:.82rem;
  border-radius:6px;
  transition:.25s ease;
}
.dropdown-item i{color:var(--naranja);}
.dropdown-item:hover,.dropdown-item:focus{
  background:var(--azul-dropdown-hover);
  color:var(--naranja)!important;
}

/* HAMBURGUESA */
.navbar-toggler{
  border:2px solid transparent!important;
  border-radius:7px;
  padding:.4rem .5rem;
  box-shadow:none!important;
}
.navbar-toggler:focus{
  border-color:var(--naranja)!important;
  box-shadow:0 0 0 2px rgba(245,124,0,.18)!important;
}
.navbar-toggler[aria-expanded="true"]{border-color:var(--naranja)!important;}
.navbar-toggler-icon{
  background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,1)' stroke-width='2' stroke-linecap='round' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

@media(max-width:991.98px){
  body{padding-top:65px;}
  .navbar{padding:.55rem .8rem;}
  .navbar .container{max-width:100%;}
  .navbar-collapse{
    width:100%;
    max-height:calc(100vh - 65px);
    margin-top:.6rem;
    padding:.7rem;
    overflow-y:auto;
    background:#002d5b;
    border-radius:10px;
    box-shadow:0 12px 25px rgba(0,0,0,.2);
  }
  .navbar-nav{width:100%;align-items:stretch;}
  .nav-item{width:100%;}
  .nav-link{
    width:100%;
    padding:.7rem!important;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-link::before{display:none;}
  .dropdown-menu{
    position:static!important;
    width:100%;
    min-width:0;
    margin:.25rem 0 .5rem!important;
    padding:.3rem;
    box-shadow:none;
    background:#30475b;
  }
  .dropdown-item{padding:.55rem .75rem;white-space:normal;}
}

/* =========================================================
   BANNER
   ========================================================= */
.banner-itsa{
  position:relative;
  width:100%;
  height:500px;
  display:flex;
  align-items:center;
  overflow:hidden;
  background:#002d5b;
}
.banner-itsa>img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  z-index:0;
}
.banner-overlay{
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  background:linear-gradient(90deg,rgba(0,35,70,.76) 0%,rgba(0,35,70,.45) 42%,rgba(0,0,0,.05) 100%);
}
.banner-content{
  position:relative;
  z-index:2;
  max-width:700px;
  padding:25px 15px;
  color:#fff;
  text-align:left;
}
.banner-content h1{
  margin-bottom:18px;
  color:#fff;
  font-size:2.55rem;
  font-weight:800;
  line-height:1.15;
  text-shadow:0 3px 8px rgba(0,0,0,.35);
}
.banner-content p{
  max-width:620px;
  margin-bottom:26px;
  color:#f1f5f9;
  font-size:1.08rem;
  line-height:1.7;
  text-shadow:0 2px 5px rgba(0,0,0,.25);
}
.animate-title,.animate-text,.animate-btn{
  opacity:0;
  transform:translateY(40px);
  animation-fill-mode:forwards;
}
.animate-title{animation:fadeInUp .8s ease .2s forwards;}
.animate-text{animation:fadeInUp .8s ease .55s forwards;}
.animate-btn{animation:fadeInUp .8s ease .9s forwards;}
@keyframes fadeInUp{
  to{opacity:1;transform:translateY(0);}
}
.banner-content .btn{
  padding:11px 27px;
  border:0;
  border-radius:25px;
  background:var(--naranja);
  color:#fff;
  font-size:.95rem;
  font-weight:700;
  text-transform:uppercase;
  box-shadow:0 6px 18px rgba(0,0,0,.22);
  transition:.3s ease;
}
.banner-content .btn:hover{
  background:var(--naranja-hover);
  color:#fff;
  transform:translateY(-3px);
  box-shadow:0 9px 22px rgba(0,0,0,.28);
}

/* =========================================================
   SECCIÓN FERIA
   ========================================================= */
.seccion-feria{
  padding:60px 0 80px;
  background:var(--gris-fondo);
  color:#333;
}
.seccion-feria>.container{max-width:1200px;}
.titulo-seccion{
  margin:0 0 10px;
  color:var(--azul-oscuro);
  font-size:2.45rem;
  font-weight:800;
  text-align:center;
  line-height:1.2;
}
.subtitulo-seccion{
  margin:0 0 45px;
  color:#68727c;
  font-size:1.1rem;
  text-align:center;
}

/* DOS COLUMNAS */
.container-feria-principal{
  display:grid;
  grid-template-columns:minmax(0,2.15fr) minmax(285px,.9fr);
  gap:28px;
  align-items:start;
}
.center-column,.right-column{
  display:flex;
  flex-direction:column;
  gap:25px;
  min-width:0;
}

/* =========================================================
   PRESENTACIÓN
   ========================================================= */
.feria-info-card{
  position:relative;
  overflow:hidden;
  padding:30px;
  background:linear-gradient(145deg,#fff,#f9fafc);
  border:1px solid #e6ebf0;
  border-top:4px solid var(--naranja);
  border-radius:16px;
  box-shadow:var(--sombra-suave);
  transition:.3s ease;
}
.feria-info-card:hover{transform:translateY(-3px);box-shadow:var(--sombra-media);}
.feria-info-card::before{
  content:"";
  position:absolute;
  top:-80px;
  right:-65px;
  width:170px;
  height:170px;
  border-radius:50%;
  background:rgba(0,51,102,.05);
}
.feria-info-icon{
  position:relative;
  width:58px;
  height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:18px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--azul-oscuro),#005c9f);
  color:#fff;
  font-size:26px;
  box-shadow:0 6px 15px rgba(0,51,102,.2);
}
.feria-etiqueta{
  position:relative;
  display:inline-block;
  margin-bottom:10px;
  padding:6px 13px;
  border-radius:20px;
  background:#fff1dd;
  color:var(--naranja);
  font-size:.74rem;
  font-weight:800;
  letter-spacing:1px;
}
.feria-info-card h3{
  position:relative;
  margin-bottom:15px;
  color:var(--azul-oscuro);
  font-size:1.7rem;
  font-weight:750;
}
.feria-descripcion{
  position:relative;
  margin-bottom:12px;
  color:var(--gris-texto);
  line-height:1.75;
  text-align:justify;
}
.feria-descripcion:last-child{margin-bottom:0;}

/* =========================================================
   TARJETAS GENERALES
   ========================================================= */
.datos-feria-card{
  padding:28px;
  background:#fff;
  border:1px solid #e7ebef;
  border-radius:16px;
  box-shadow:var(--sombra-suave);
  transition:.3s ease;
}
.datos-feria-card:hover{transform:translateY(-3px);box-shadow:var(--sombra-media);}
.titulo-bloque-feria{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:20px;
  padding-bottom:15px;
  border-bottom:1px solid #e7ebef;
}
.titulo-bloque-feria>i{
  width:44px;
  height:44px;
  min-width:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:11px;
  background:#e8f2fb;
  color:var(--azul-oscuro);
  font-size:20px;
}
.titulo-bloque-feria h3{
  margin:0;
  color:var(--azul-oscuro);
  font-size:1.3rem;
  font-weight:750;
}

/* DATOS FERIA */
.datos-feria-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:15px;
}
.dato-feria{
  display:flex;
  align-items:center;
  gap:13px;
  min-width:0;
  padding:16px;
  background:#f8fafc;
  border:1px solid #e8edf2;
  border-radius:11px;
  transition:.3s ease;
}
.dato-feria:hover{
  transform:translateY(-3px);
  border-color:#d1e0ed;
  box-shadow:0 6px 15px rgba(0,0,0,.06);
}
.dato-icono{
  width:44px;
  height:44px;
  min-width:44px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:linear-gradient(135deg,var(--azul-oscuro),var(--azul-medio));
  color:#fff;
  font-size:18px;
}
.dato-feria>div:last-child{min-width:0;}
.dato-feria span{
  display:block;
  margin-bottom:2px;
  color:#818991;
  font-size:.75rem;
}
.dato-feria strong{
  display:block;
  color:#293846;
  font-size:.9rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}

/* =========================================================
   NÓMINA PÚBLICA DE PROYECTOS
   ========================================================= */
.proyectos-feria-card{
  padding:28px;
  background:#fff;
  border:1px solid #e7ebef;
  border-radius:16px;
  box-shadow:var(--sombra-suave);
  transition:.3s ease;
}
.proyectos-feria-card:hover{box-shadow:var(--sombra-media);}
.proyectos-introduccion{
  margin:0 0 22px;
  color:var(--gris-texto);
  font-size:.93rem;
  line-height:1.7;
}

/* RESUMEN */
.resumen-proyectos{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:25px;
}
.resumen-item{
  display:flex;
  align-items:center;
  gap:10px;
  padding:14px;
  background:#f8fafc;
  border:1px solid #e7edf2;
  border-radius:11px;
}
.resumen-icono{
  width:42px;
  height:42px;
  min-width:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:10px;
  background:linear-gradient(135deg,var(--azul-oscuro),var(--azul-medio));
  color:#fff;
  font-size:18px;
}
.resumen-item strong{
  display:block;
  color:var(--azul-oscuro);
  font-size:1.2rem;
  line-height:1;
}
.resumen-item span{
  display:block;
  margin-top:4px;
  color:#7b858e;
  font-size:.72rem;
  line-height:1.2;
}

/* =========================================================
   CARRUSEL VERTICAL
   ========================================================= */
.proyectos-slider{
  position:relative;
  width:100%;
  margin-top:5px;
}
.proyectos-viewport{
  position:relative;
  width:100%;
  overflow:hidden;
  border-radius:14px;
  transition:height .45s ease;
}
.proyectos-track{
  display:flex;
  flex-direction:column;
  width:100%;
  transition:transform .55s cubic-bezier(.22,.61,.36,1);
  will-change:transform;
}
.proyectos-track .proyecto-publico{
  width:100%;
  flex:0 0 auto;
  margin:0;
}
.proyectos-track .proyecto-publico:hover{transform:none;}

/* TARJETA */
.proyecto-publico{
  overflow:hidden;
  background:#fff;
  border:1px solid #dfe6ec;
  border-radius:14px;
  box-shadow:0 6px 18px rgba(0,0,0,.07);
  transition:opacity .35s ease,transform .35s ease,box-shadow .3s ease,border-color .3s ease;
}
.proyecto-publico:hover{
  transform:translateY(-3px);
  border-color:#cad9e5;
  box-shadow:0 12px 28px rgba(0,0,0,.11);
}
.proyecto-publico.proyecto-activo{opacity:1;}

/* CABECERA PROYECTO */
.proyecto-cabecera{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:13px 18px;
  background:linear-gradient(135deg,#002e5b,#004b87);
}
.proyecto-numero{
  display:flex;
  align-items:center;
  gap:7px;
  color:#fff;
  font-size:.82rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.4px;
}
.proyecto-numero i{color:#ffb347;font-size:16px;}
.proyecto-codigo{
  padding:5px 11px;
  background:var(--naranja);
  border-radius:20px;
  color:#fff;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.5px;
}

/* CONTENIDO PROYECTO */
.proyecto-contenido{padding:22px;}
.proyecto-titulo{
  margin:0 0 20px;
  padding-bottom:17px;
  border-bottom:1px solid #e7ebef;
  color:var(--azul-oscuro);
  font-size:1.08rem;
  font-weight:750;
  line-height:1.55;
}
.proyecto-datos{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
  margin-bottom:20px;
}
.proyecto-dato{
  display:flex;
  align-items:flex-start;
  gap:10px;
  min-width:0;
  padding:13px;
  background:#f8fafc;
  border:1px solid #e8edf2;
  border-radius:10px;
}
.proyecto-dato-icono{
  width:36px;
  height:36px;
  min-width:36px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  background:#e8f2fb;
  color:var(--azul-oscuro);
  font-size:16px;
}
.proyecto-dato>div:last-child{min-width:0;}
.proyecto-dato span{
  display:block;
  margin-bottom:2px;
  color:#818b94;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:.3px;
}
.proyecto-dato strong{
  display:block;
  color:#33424f;
  font-size:.82rem;
  line-height:1.35;
  overflow-wrap:anywhere;
}

/* TIPOS */
.tipo-emprendimiento{color:#cf6b00!important;}
.tipo-grado{color:#0056a3!important;}
.tipo-general{color:#16835e!important;}

/* ESTUDIANTES Y DOCENTE */
.proyecto-personas{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.proyecto-estudiantes,.proyecto-docente{
  padding:15px;
  background:#fbfcfd;
  border:1px solid #e7ebef;
  border-radius:10px;
}
.proyecto-subtitulo{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.proyecto-subtitulo i{color:var(--naranja);font-size:17px;}
.proyecto-subtitulo h5{
  margin:0;
  color:var(--azul-oscuro);
  font-size:.88rem;
  font-weight:750;
}
.proyecto-estudiantes ul{margin:0;padding-left:19px;}
.proyecto-estudiantes li{
  margin-bottom:4px;
  color:#5f6871;
  font-size:.82rem;
  line-height:1.45;
}
.proyecto-estudiantes li:last-child{margin-bottom:0;}
.proyecto-estudiantes li::marker{color:var(--naranja);}
.proyecto-docente p{
  margin:0;
  color:#5f6871;
  font-size:.82rem;
  font-weight:600;
  line-height:1.45;
}
.sin-estudiantes{
  display:flex;
  align-items:center;
  gap:6px;
  margin:0;
  color:#8b949d!important;
  font-size:.82rem!important;
  font-style:italic;
}
.sin-estudiantes i{color:#9ba4ac;}

/* NAVEGACIÓN CARRUSEL */
.proyectos-navegacion{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  margin-top:18px;
  padding:10px 14px;
  background:#f8fafc;
  border:1px solid #e5ebf0;
  border-radius:12px;
}
.btn-proyecto-nav{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,var(--azul-oscuro),var(--azul-medio));
  color:#fff;
  font-size:18px;
  cursor:pointer;
  box-shadow:0 4px 12px rgba(0,51,102,.18);
  transition:.3s ease;
}
.btn-proyecto-nav:hover{
  background:linear-gradient(135deg,var(--naranja),#ff9800);
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 7px 15px rgba(245,124,0,.25);
}
.btn-proyecto-nav:active{transform:scale(.94);}
.btn-proyecto-nav:disabled{
  opacity:.35;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}
.proyecto-indicador{
  min-width:120px;
  text-align:center;
}
.proyecto-indicador>span{
  display:block;
  color:#89939c;
  font-size:.69rem;
  text-transform:uppercase;
  letter-spacing:.7px;
}
.proyecto-indicador strong{
  display:block;
  margin-top:1px;
  color:var(--azul-oscuro);
  font-size:.95rem;
}

/* =========================================================
   COLUMNA DERECHA
   ========================================================= */
.organizer-section .btn-organizer{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 16px;
  background:linear-gradient(135deg,#0d1b5a,var(--azul-oscuro));
  color:#fff;
  border:0;
  border-radius:12px;
  font-weight:650;
  text-align:left;
  box-shadow:0 5px 14px rgba(0,0,0,.1);
  transition:.3s ease;
}
.organizer-section .btn-organizer:hover{
  background:linear-gradient(135deg,#08103f,#003d73);
  transform:translateY(-2px);
}
.organizer-card{
  padding:22px;
  background:linear-gradient(145deg,#fff,#f6f8fa);
  border:1px solid #e8edf1;
  border-radius:15px;
  box-shadow:var(--sombra-suave);
  text-align:center;
  transition:.3s ease;
}
.organizer-card:hover{transform:translateY(-4px);box-shadow:var(--sombra-media);}
.organizer-photo{
  width:110px;
  height:110px;
  margin-bottom:12px;
  padding:3px;
  object-fit:cover;
  border:3px solid var(--naranja);
  border-radius:50%;
  background:#fff;
}
.organizer-name{
  margin-bottom:4px;
  color:var(--azul-oscuro);
  font-size:1rem;
  font-weight:750;
}
.organizer-role,.organizer-career{
  margin:2px 0;
  color:#68727c;
  font-size:.84rem;
}
.social-icons{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  margin:14px 0;
}
.social-icons a{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#fff0dc;
  color:var(--naranja);
  transition:.3s ease;
}
.social-icons a:hover{
  background:var(--naranja);
  color:#fff;
  transform:translateY(-2px);
}
.social-icons i{color:inherit;font-size:1rem;}
.organizer-message{
  margin:0;
  color:#666;
  font-size:.85rem;
  line-height:1.65;
  text-align:justify;
}

/* COMIDA / NEGOCIOS / ÁREAS */
.food-section,.business-section,.areas-section{
  padding:20px 22px;
  background:linear-gradient(145deg,#fff,#f6f8fa);
  border:1px solid #e8edf1;
  border-radius:15px;
  box-shadow:var(--sombra-suave);
  transition:.3s ease;
}
.food-section:hover,.business-section:hover,.areas-section:hover{
  transform:translateY(-3px);
  box-shadow:var(--sombra-media);
}
.food-title,.business-title,.areas-title{
  margin-bottom:15px;
  color:var(--azul-oscuro);
  font-size:1.18rem;
  font-weight:750;
}
.food-item{
  display:flex;
  align-items:center;
  gap:12px;
  margin-bottom:13px;
  padding-bottom:13px;
  border-bottom:1px solid #e9edf0;
}
.food-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:0;}
.food-item img{
  width:65px;
  height:65px;
  min-width:65px;
  border-radius:10px;
  object-fit:cover;
}
.food-info{min-width:0;}
.food-info h5{
  margin:0 0 3px;
  color:var(--azul-oscuro);
  font-size:.9rem;
  font-weight:700;
}
.food-info p{
  margin:0;
  color:var(--naranja);
  font-size:.86rem;
  font-weight:700;
}
.business-description{
  margin:0;
  color:#666;
  font-size:.87rem;
  line-height:1.65;
  text-align:justify;
}
.areas-list{
  margin:0;
  padding-left:20px;
  color:#626b74;
  font-size:.87rem;
}
.areas-list li{margin-bottom:7px;padding-left:2px;}
.areas-list li::marker{color:var(--naranja);}
.areas-list li:last-child{margin-bottom:0;}

@media(min-width:993px){
  .right-column{
    position:sticky;
    top:90px;
    align-self:start;
  }
}

/* =========================================================
   BOTONES FLOTANTES
   ========================================================= */
.botones-flotantes{
  position:fixed;
  top:50%;
  right:20px;
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:12px;
  opacity:0;
  visibility:hidden;
  transform:translateY(-50%) translateX(80px);
  transition:opacity .45s ease,transform .45s ease,visibility .45s ease;
}
.botones-flotantes.mostrar{
  opacity:1;
  visibility:visible;
  transform:translateY(-50%) translateX(0);
}
.btn-flotante{
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  color:#fff!important;
  font-size:25px;
  box-shadow:0 5px 12px rgba(0,0,0,.25);
  transition:.3s ease;
}
.btn-flotante.whatsapp{background:#25D366;}
.btn-flotante.facebook{background:#1877F2;}
.btn-flotante:hover{
  color:#fff!important;
  transform:translateY(-3px) scale(1.08);
  box-shadow:0 8px 17px rgba(0,0,0,.3);
}

/* SUBIR */
#btnSubir{
  position:fixed;
  right:25px;
  bottom:25px;
  z-index:1000;
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  border:0;
  border-radius:50%;
  background:linear-gradient(135deg,#3b82f6,#2563eb);
  color:#fff;
  font-size:22px;
  cursor:pointer;
  opacity:0;
  visibility:hidden;
  transform:translateY(15px);
  box-shadow:0 6px 14px rgba(0,0,0,.24);
  transition:.3s ease;
}
#btnSubir.mostrar{opacity:1;visibility:visible;transform:translateY(0);}
#btnSubir:hover{
  background:linear-gradient(135deg,#2563eb,#1d4ed8);
  transform:translateY(-3px);
  box-shadow:0 8px 18px rgba(37,99,235,.4);
}
#btnSubir i{transition:.3s ease;}
#btnSubir:hover i{transform:translateY(-2px);}

/* =========================================================
   FOOTER
   ========================================================= */
.footer-dark{
  margin-top:0;
  padding-top:3rem;
  padding-bottom:2rem;
  background:#0a0a0a;
  color:#f5f5f5;
  font-size:.93rem;
}
.footer-dark h5{margin-bottom:15px;font-weight:650;}
.footer-dark p{color:#d3d3d3;line-height:1.65;}
.footer-dark ul{margin:0;padding-left:0;list-style:none;}
.footer-dark ul li{margin-bottom:7px;}
.footer-dark ul li a{color:#f1f1f1;transition:.25s ease;}
.footer-dark ul li a:hover{color:var(--naranja);padding-left:3px;}
.footer-dark a[href^="mailto"]{color:#fff;}
.footer-dark hr{opacity:.3;}
.footer-social-icons{margin-top:15px;}
.footer-social-icons a{
  width:38px;
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:rgba(255,255,255,.07);
  color:#fff!important;
  transition:.3s ease;
}
.footer-social-icons a:hover{
  background:var(--azul-claro);
  color:#fff!important;
  transform:translateY(-3px);
}
.footer-social-icons i{font-size:1.25rem;}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media(max-width:1200px){
  .navbar .container{max-width:100%;}
  .nav-link{font-size:.79rem;padding:.5rem .42rem!important;}
  .container-feria-principal{grid-template-columns:minmax(0,2fr) minmax(270px,.9fr);}
}

@media(max-width:992px){
  .banner-itsa{height:440px;}
  .banner-content h1{font-size:2.2rem;}
  .container-feria-principal{grid-template-columns:1fr;}
  .right-column{position:relative;top:auto;}
  .organizer-card,.food-section,.business-section,.areas-section{max-width:100%;}
}

@media(max-width:768px){
  .banner-itsa{height:400px;}
  .banner-overlay{background:rgba(0,43,79,.58);}
  .banner-content{max-width:100%;text-align:center;}
  .banner-content h1{font-size:1.9rem;}
  .banner-content p{font-size:.96rem;}
  .banner-content .btn{padding:10px 22px;font-size:.85rem;}
  .seccion-feria{padding:45px 0 60px;}
  .titulo-seccion{font-size:2rem;}
  .subtitulo-seccion{margin-bottom:30px;font-size:1rem;}
  .datos-feria-grid{grid-template-columns:1fr;}
  .feria-info-card,.datos-feria-card,.proyectos-feria-card{padding:22px;}
  .feria-info-card h3{font-size:1.45rem;}
  .resumen-proyectos{grid-template-columns:1fr;}
  .proyecto-datos{grid-template-columns:1fr;}
  .proyecto-personas{grid-template-columns:1fr;}
  .proyectos-navegacion{margin-top:14px;}
  .btn-proyecto-nav{width:40px;height:40px;font-size:17px;}
  .proyecto-indicador{min-width:100px;}
  .botones-flotantes{right:13px;}
  .btn-flotante{width:46px;height:46px;font-size:22px;}
  #btnSubir{right:15px;bottom:15px;width:47px;height:47px;}
}

@media(max-width:576px){
  body{padding-top:61px;}
  .navbar-brand{font-size:1rem;}
  .navbar-brand img{width:36px;height:36px;}
  .banner-itsa{height:350px;}
  .banner-content{padding:20px 8px;}
  .banner-content h1{font-size:1.65rem;margin-bottom:12px;}
  .banner-content p{font-size:.9rem;line-height:1.55;margin-bottom:20px;}
  .titulo-seccion{font-size:1.65rem;}
  .subtitulo-seccion{font-size:.92rem;}
  .feria-info-card,.datos-feria-card,.proyectos-feria-card{
    padding:18px;
    border-radius:12px;
  }
  .feria-info-icon{width:50px;height:50px;font-size:22px;}
  .feria-info-card h3{font-size:1.3rem;}
  .feria-descripcion{font-size:.9rem;text-align:left;}
  .titulo-bloque-feria h3{font-size:1.15rem;}
  .dato-feria{padding:13px;}
  .proyecto-contenido{padding:17px;}
  .proyecto-cabecera{padding:11px 14px;}
  .proyecto-titulo{font-size:.94rem;line-height:1.5;}
  .proyecto-dato{padding:11px;}
  .proyecto-personas{gap:10px;}
  .proyecto-estudiantes,.proyecto-docente{padding:13px;}
  .resumen-item{padding:12px;}
  .proyectos-navegacion{gap:10px;padding:9px 11px;}
  .btn-proyecto-nav{width:38px;height:38px;font-size:16px;}
  .proyecto-indicador{min-width:90px;}
  .proyecto-indicador strong{font-size:.88rem;}
  .organizer-photo{width:95px;height:95px;}
  .organizer-message,.business-description{text-align:left;}
  .food-item img{width:58px;height:58px;min-width:58px;}
  .footer-dark{text-align:center;}
  .footer-dark .row>div{margin-bottom:1.8rem;}
  .footer-dark ul li a:hover{padding-left:0;}
  .footer-social-icons{justify-content:center;}
}