:root {
  /* 🎨 Paleta inspirada en BNV (ajustable) */
  --fiab-primary: #0B2C71;
  /* azul profundo #004B8D*/
  --fiab-secondary: #1B365D;
  /* azul petróleo */
  --fiab-accent: #D71920;
  /* verde esmeralda  #00A873 */
  --fiab-teal: #00B3A6;
  /* acento teal */
  --fiab-dark: #0E1A2B;
  --fiab-gray: #4F6580;
  /* #6C7A89*/
  --fiab-light: #F5F8FB;
  --bs-emphasis-color: #000;
  --fiab-gradient: linear-gradient(135deg, var(--fiab-accent), var(--fiab-primary));
  --fiab-gradient-alt: linear-gradient(135deg, var(--fiab-teal), var(--fiab-secondary));
  --shadow-lg: 0 1rem 2rem rgba(0, 0, 0, .15);
  --shadow-md: 0 .5rem 1rem rgba(0, 0, 0, .10);

  --bs-border-radius: .375rem;
  --bs-border-radius-sm: .25rem;
  --bs-border-radius-lg: .5rem;
  --bs-border-radius-xl: 1rem;
  --bs-border-radius-xxl: 2rem;
  --bs-border-radius-2xl: var(--bs-border-radius-xxl);
  --bs-border-radius-pill: 50rem;

  --bs-nav-link-hover-color: var(--fiab-secondary);

  --bs-body-font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
}

body {
  font-family: var(--bs-body-font-family);
  scroll-behavior: smooth;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
}

/* Estilo global para todo lo que se muestre desde rich text */
.richtext-content * {
  font-family: var(--bs-body-font-family, 'Arial', sans-serif) !important;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 1.5rem) !important;
  line-height: 1.5 !important;
  color: inherit !important;
}


a {
  text-decoration: none !important
}

p {
  font-size: clamp(1rem, 0.75rem + 1.5vw, 1.5rem);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

.btn-cta {
  background: var(--fiab-accent);
  color: #fff;
  border: 0;
  padding: .7rem 1.2rem;
  border-radius: 1.75rem;
  box-shadow: var(--shadow-md);
  transition: transform .18s ease, box-shadow .18s ease, filter .2s;
  font-size: 1.25rem;
}

.btn.active {
  background: var(--fiab-accent);
  color: #fff;
  border: 0;
  padding: .7rem 1.2rem;
  border-radius: 1.75rem;
  box-shadow: var(--shadow-md);
  transition: transform .18s ease, box-shadow .18s ease, filter .2s;
  font-size: 1.25rem;
}

.btn-cta:hover,
.btn-cta:focus {
  transform: translateY(-2px);
  box-shadow: var(--shadow-lg);
  filter: brightness(1.05);
  color: #fff;
}

.btn-ghost {
  background: transparent;
  border: 2px solid rgba(255, 255, 255, .8);
  color: #fff;
  padding: .8rem 1.1rem;
  border-radius: .75rem;
  transition: all .2s ease;
}

.btn-ghost:hover {
  background: rgba(255, 255, 255, .12);
  border-color: #fff;
  color: #fff;
  transform: translateY(-1px);
}

.btn:hover,
.btn:focus,
.btn.focus {
  color: #fff;
  text-decoration: none;
  background-color: #A4C8E1;
}

/* Header */
/*Dale un color de fondo inicial (aunque sea transparente)
Así evitas que el navegador pinte blanco por defecto
#topnav {
  background-color: transparent;
}*/

.navbar {
  transition: background-color .35s ease, box-shadow .35s ease, padding .3s ease;
  backdrop-filter: blur(30px);
  box-shadow: 0px 0px 30px rgba(227, 228, 237, 0.37);
  border: 2px solid rgba(255, 255, 255, 0.18);
}

.navbar-brand {
  font-size: 1.5rem;
}

.navbar-brand>img {
  width: 15rem;
  height: auto;
}

.navbar-transparent {
  background: transparent;
}

.nav-item {
  padding: 2rem 2rem;
}

.navbar-solid {
  background: #fff;
  box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .08);
}


.navbar .nav-link {
  font-weight: 600;
  text-decoration: none;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
}

.navbar.navbar-solid .nav-link {
  color: var(--fiab-dark) !important;
  text-decoration: none;
}

.navbar .nav-link:hover {
  color: var(--fiab-accent) !important;
}

.navbar-collapse {
  box-shadow: 0;
}

.navbar>.container,
.navbar>.container-fluid,
.navbar>.container-lg,
.navbar>.container-md,
.navbar>.container-sm,
.navbar>.container-xl,
.navbar>.container-xxl {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: flex-start;
}

@media (min-width: 1200px) {
  .navbar-nav>li>a {
    padding-top: 14.5px;
    padding-bottom: 14.5px;
  }
}

/* Base: deja el offcanvas como está en desktop */
/*.offcanvas {
  background: rgba(227, 228, 237, 0.37);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  color: #fff;
*/



/* Header del offcanvas pegado arriba, con safe-area */
.offcanvas .offcanvas-header.sticky-top {
  background: linear-gradient(180deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0));
  padding-top: calc(env(safe-area-inset-top, 0px) + .75rem);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.offcanvas .offcanvas-title {
  color: #fff;
}

.offcanvas .btn-close {
  filter: invert(1);
}

/* Cuerpo scrolleable y cómodo al tacto */
.offcanvas .offcanvas-body {
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 1.25rem);
}

/* Links en el panel */
.offcanvas .nav-link {
  color: #e8f1f4 !important;
  font-weight: 600;
  padding: .75rem 0;
  font-size: 1.25rem;
}

.offcanvas .nav-link:hover {
  color: var(--fiab-accent) !important;
}

/* Transición suave para el cambio de color */
.language-switch .code {
  transition: color .2s ease;
}

/* Navbar transparente (oscuro) - antes de scroll > 40 */
#topnav.navbar-dark .language-switch .code {
  color: rgba(255, 255, 255, .6);
  /* inactivo */
}

#topnav.navbar-dark .language-switch .code.active {
  color: #fff;
  /* activo ES/EN */
}

/* Navbar sólido (claro) - después de scroll > 40 */
#topnav.navbar-light .language-switch .code {
  color: rgba(17, 17, 17, .6);
  /* inactivo */
}

#topnav.navbar-light .language-switch .code.active {
  color: #111;
  /* activo ES/EN */
}

/*
nav {
  overflow: hidden;
  position: relative;
  transform: translateX(-300px);
  height: 100%;
  width: 400px;
  transition: all 800ms cubic-bezier(.8, 0, .33, 1);
  border-radius: 0% 0% 100% 50%;
}
  */


nav.nav-open {
  transform: translateX(0px);
  border-radius: 0% 0% 0% 0%;
  background: rgba(255, 255, 255, 0.6);
}


nav .menu-btn {
  position: absolute;
  top: 30%;
  right: 8%;
  padding: 6px;
  /* width: 4rem; */
  cursor: pointer;
  z-index: 2;
  border-radius: 1rem;
}

nav .menu-btn .line-light {
  padding: 0;
  width: 30px;
  background: #fff;
  height: 2px;
  margin: 5px 0;
  transition: all 700ms cubic-bezier(.9, 0, .33, 1);
}

nav .menu-btn .line-dark {
  padding: 0;
  width: 30px;
  background: #54585A;
  height: 2px;
  margin: 5px 0;
  transition: all 700ms cubic-bezier(.9, 0, .33, 1);
}


nav .menu-btn .line.line--1 {
  width: 30px;
  transform: rotate(0) translateY(0);
}


nav .menu-btn .line.line--1.line-cross {
  width: 30px;
  transform: rotate(45deg) translateY(10px);
  background: rgba(0, 0, 0, 0.6);
}

nav .menu-btn .line.line--2 {
  width: 28px;
  transform: translateX(0);
}

nav .menu-btn .line.line--2.line-fade-out {
  width: 28px;
  transform: translate(30px);
  opacity: 0;
}

nav .menu-btn .line.line--3 {
  width: 20px;
  transform: rotate(0) translateY(0);
}

nav .menu-btn .line.line--3.line-cross {
  width: 30px;
  transform: rotate(-45deg) translateY(-10px);
  background: rgba(0, 0, 0, 0.6);
}


/* ===== MÓVILES: fullscreen real ===== */
@media (max-width: 991px) {
  .offcanvas-mobile-full {
    /* Usa las variables de Bootstrap para forzar tamaño */
    --bs-offcanvas-width: 100vw;
    --bs-offcanvas-height: 100dvh;
    /* respeta barras/teclados móviles */
  }

  /* End/Start: ocupa toda la pantalla */
  .offcanvas-mobile-full.offcanvas-start,
  .offcanvas-mobile-full.offcanvas-end {
    width: var(--bs-offcanvas-width);
    max-width: 100vw;
    height: var(--bs-offcanvas-height);
    max-height: 100dvh;
    border: 0 !important;
  }

  /* Top/Bottom también a pantalla completa si los usas */
  .offcanvas-mobile-full.offcanvas-top,
  .offcanvas-mobile-full.offcanvas-bottom {
    height: var(--bs-offcanvas-height);
    max-height: 100dvh;
    width: 100vw;
    border: 0 !important;
  }

  /* Tema del offcanvas sincronizado con el navbar */
  #navmenu.offcanvas-theme-dark {
    color: var(--fiab-primary);
  }

  #navmenu.offcanvas-theme-dark .offcanvas-title,
  #navmenu.offcanvas-theme-dark .nav-link {
    color: #54585A !important;
    font-size: 2rem;
  }

  #navmenu.offcanvas-theme-dark .btn-close {
    filter: invert(1);
    color: var(--fiab-primary);
  }

  /*#navmenu.offcanvas-theme-light {
    background: rgba(255, 255, 255, 0.98);
    color: var(--fiab-dark);
    backdrop-filter: blur(16px);
  }*/

  #navmenu.offcanvas-theme-light .btn-close {
    filter: none;
  }


  .navbar.navbar-solid .nav-link {
    text-decoration: none;
    color: #54585A !important;
    font-size: 2rem;
  }

  .btn-cta {
    background: var(--fiab-accent);
    color: #fff;
    border: 0;
    padding: .7rem 1.2rem;
    border-radius: 1.75rem;
    box-shadow: var(--shadow-md);
    transition: transform .18s ease, box-shadow .18s ease, filter .2s;
    font-size: 2.25rem;
  }

  #topnav.navbar-dark .language-switch .code {
    color: #425563;
    font-size: 1.25rem;
  }

  #topnav.navbar-dark .language-switch .code.active {
    color: var(--fiab-primary);
    font-size: 1.25rem;
  }
}

/* Transparencias del backdrop un poco más oscuras para legibilidad */
.offcanvas-backdrop.show {
  background-color: rgba(0, 0, 0, .6);
}

/* (Opcional) realza el botón CTA dentro del offcanvas */
.offcanvas .btn.btn-cta {
  display: inline-block;
  width: 100%;
  padding-top: 10px;
  padding-bottom: 10px;
}


/* Hero */
/* 
    #hero{
      position: relative; min-height: 92vh; color:#fff; display:flex; align-items:center;
      background: radial-gradient(1200px 600px at 10% 10%, rgba(0,0,0,.2), transparent),
                  url('https://images.unsplash.com/photo-1614886750264-afed539cf2bb?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D') center/cover no-repeat fixed;
      isolation:isolate;
    }*/
#logo-fiab2 {
  height: 150px;
}


/*.seccion-video {
  height: 45rem;
}*/

/*  Hace el video responsive  */
.video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%;
}

.video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* Selector de idioma */
.language-switch {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.6rem;
  margin: 0.5rem 0;
  font-family: var(--bs-body-font-family);
  font-size: 0.85rem;
  font-weight: 600;
}

/* Letras clicables */
.code {
  color: #999;
  transition: color 0.3s ease;
  text-decoration: none;
}

.code.active {
  color: var(--fiab-light);
}

/* Toggle con profundidad interna */
.switch-btn {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 26px;
  border-radius: 40px;
  background: #e0e0e0;
  border: none;
  overflow: hidden;
  transition: all 0.3s ease;

  /* profundidad interna */
  box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.15),
    inset -2px -2px 5px rgba(255, 255, 255, 0.7);
}

/* Círculo indicador con bandera activa */
.switch-btn::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  transition: all 0.3s ease;

  /* ligera sombra para “levantar” el círculo dentro del surco */
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* Español activo */
.switch-btn.active-es::after {
  left: 2px;
  background-image: url('ES.svg');
  transition: left 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    background-image 0.25s ease;
}

/* Inglés activo */
.switch-btn.active-en::after {
  left: calc(100% - 24px);
  background-image: url('GB.svg');
  transition: left 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    background-image 0.25s ease;
}

/* Responsive */
@media (max-width: 480px) {
  .switch-btn {
    width: 50px;
    height: 22px;
    box-shadow: inset 1px 1px 3px rgba(0, 0, 0, 0.15),
      inset -1px -1px 3px rgba(255, 255, 255, 0.7);
  }

  .switch-btn::after {
    width: 18px;
    height: 18px;
  }

  .language-switch {
    font-size: 0.75rem;
    gap: 0.5rem;
  }
}

/**/



#hero {
  position: relative;
  min-height: 92vh;
  color: #fff;
  display: flex;
  align-items: center;
  background: radial-gradient(1200px 600px at 10% 10%, rgba(0, 0, 0, .2), transparent),
    url('fondo.png') center/cover no-repeat;
  background-attachment: fixed;
  isolation: isolate;
}

/* https://www.travelandleisure.com/thmb/9nI7e36Z-nnRMf7biL6Gwd9OtF8=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc():format(webp)/TAL-hanging-bridge-MONTEVERDECR1023-6c4f81c0c43c4c64a2c612e7ce0c33b4.jpg?q=80&w=1974&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D */

/* Ajustes para móviles */
@media (max-width: 768px) {
  #hero {
    background-attachment: scroll;
    /* evita problemas en iOS/Android */
    background-position: center top;
    /* mueve la imagen hacia arriba */
    min-height: 80vh;
    /* opcional: menos alto en móviles */
  }

}


#hero .p {
  color: #EAF7F1;
}

#hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .55));
  z-index: 0;
}

#hero .content {
  position: relative;
  z-index: 1;
}

.pt-10 {
  padding-top: 10rem;
}

.eyebrow {
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
  color: #EAF7F1;
  opacity: .9;
}

.display-4 {
  text-wrap: balance;
}

/* Secciones */
section {
  padding: 12.5rem 0;
}

.section-light {
  background: #fff;
}

.section-alt {
  background: var(--fiab-light);
}

.section-title {
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--fiab-dark);
  margin-bottom: .75rem;
  font-size: clamp(1rem, 1.00rem + 1.5vw, 2rem);
  color: var(--fiab-primary);
}

.section-lead {
  color: var(--fiab-gray);

}

.section-lead-justify {
  color: var(--fiab-gray);
  text-align: justify;
}

/* Carta del presidente */
.card-president {
  border: 0;
  box-shadow: var(--shadow-md);
  border-radius: 1rem;
  overflow: hidden;
}

.card-president .photo {
  min-height: 455px;
  background: url('RodrigoBolanosBNV.jpg') center/cover;
}

/* Formularios */
.form-card {
  border: 0;
  border-radius: 1rem;
  box-shadow: var(--shadow-md);
}

.form-label {
  font-weight: 600;
}

.form-control:focus,
.form-select:focus {
  border-color: var(--fiab-accent);
  box-shadow: 0 0 0 .25rem rgba(0, 168, 115, .15);
}

.required::after {
  content: " *";
  color: #d6336c;
}

/* Agenda */
.agenda-day .badge {
  background: var(--fiab-secondary);
}

.agenda-item {
  background: #fff;
  border-radius: .85rem;
  border: 1px solid rgba(14, 26, 43, .06);
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .05);
}

.timeline {
  position: relative;
  margin-left: 1rem;
  padding-left: 1.75rem;
  border-left: 3px solid var(--fiab-accent);
}

.timeline .dot {
  position: absolute;
  left: -9px;
  width: 18px;
  height: 18px;
  background: var(--fiab-primary);
  border: 3px solid #fff;
  border-radius: 50%;
  box-shadow: 0 0 0 3px rgba(0, 75, 141, .2);
}

.agenda-item h5 {
  font-size: 1.7rem;
  color: var(--fiab-primary);
  font-weight: bold;
}

.agenda-item p {
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
}

/* Sede */
.venue-card {
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}

/* Galería */
.gallery img {
  border-radius: .85rem;
  transition: transform .35s ease, filter .35s ease;
  box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .12);
}

.gallery a:hover img {
  transform: translateY(-4px) scale(1.02);
  filter: saturate(1.05) contrast(1.05);
}

/* Footer */
footer {
  background: #0B1422;
  color: #cbd5e1;
}

footer a {
  color: #cbd5e1;
  text-decoration: none;
}

footer a:hover {
  color: #fff;
}

/* Canvas preview */
/*
    #previewCanvas{ width:100%; max-width:100%; border-radius:1rem; box-shadow: var(--shadow-md); background:#fff; }
    .canvas-legend .badge{ font-weight:600; }
    */

/* Nav link text decoration */
@media (min-width: 768px) {
  .navbar-expand-lg .navbar-nav .nav-link {
    text-decoration: none;
  }

}


/* Tarjetas de patrocinadores */
.sponsor-card {
  border: 1px solid rgba(14, 26, 43, .06);
  border-radius: 1rem;
  box-shadow: 0 .35rem .75rem rgba(0, 0, 0, .04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.sponsor-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 .9rem 1.4rem rgba(0, 0, 0, .10);
  border-color: rgba(14, 26, 43, .12);
}

.sponsor-logo-wrap {
  width: 100%;
  max-width: 220px;
  aspect-ratio: 3 / 1;
  /* caja horizontal para logos */
  display: grid;
  place-items: center;
  background: #fff;
  border-radius: .75rem;
  padding: .75rem 1rem;
  border: 1px rgba(14, 26, 43, .08);
}

.sponsor-logo {
  max-height: 64px;
  /* controla altura visible del logo */
  width: auto;
  object-fit: contain;
  filter: grayscale(15%) contrast(1.05);
  transition: filter .25s ease, transform .18s ease;
}

@media (min-width: 992px) {
  .sponsor-logo {
    max-height: 80px;
  }
}

.sponsor-card:hover .sponsor-logo {
  filter: none;
  /* color pleno al hover */
}

.sponsor-name {
  color: var(--fiab-dark);
  font-weight: 700;
  line-height: 1.25;
  text-wrap: balance;
}

/* estilo del formulario de registro */
.crmEntityFormView {
  background: #fff;
  border-radius: 16px;
  padding: 2rem;
  box-shadow: 10px 10px 20px #babecc, -10px -10px #fff;
  animation: fadeInUp 0.6s ease;
  font-size: 1.5rem;
}

.crmEntityFormView .cell div.info.required label:after {
  content: none !important;
  /* Elimina el asterisco extra */
}

/* Animación sutil al cargar */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.form-control {
  border-radius: 10px;
  border: 1px solid var(--fiab-gray);
  padding: 10px 14px;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.form-control:focus {
  border-color: var(--fiab-accent);
  box-shadow: 0 0 6px rgba(0, 123, 255, 0.3);
  outline: none;
}

/* Captcha */
.captcha-cell {
  padding: 1rem;
  border: 1px solid var(--fiab-gray);
  border-radius: 10px;
  background: var(--fiab-light);
}

.submit-btn {
  display: inline-block;
  background: var(--fiab-accent);
  color: #fff !important;
  border: none;
  padding: 0.9rem 1.5rem;
  border-radius: 12px;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}

.submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}


/* AGENDA  */

.agenda-list .panel {
  margin-bottom: 24px;
}

.agenda-list .panel-title {
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
  font-weight: bold;
}

.agenda-list .list-group-item {
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  margin-bottom: 8px;
  font-size: clamp(1rem, 0.75rem + 1.5vw, 2rem);
}

.agenda-list .list-group-item:focus {
  outline: 2px solid #005a9e;
  outline-offset: 2px;
}



.nav-pills {
  --bs-nav-pills-border-radius: var(--bs-border-radius);
}

.nav-pills .nav-link {
  border-radius: var(--bs-nav-pills-border-radius)
}

/* Pills activos o desplegados */
.nav-pills .nav-link.active,
.nav-pills .show>.nav-link {
  color: #fff;
  background: var(--fiab-primary);
  /* Gradiente en vez de background-color */
  border-color: transparent;
  transition: background 0.3s ease, color 0.3s ease;
}

/* Hover/Focus en pills activos */
.nav-pills .nav-link.active:hover,
.nav-pills .nav-link.active:focus,
.nav-pills .show>.nav-link:hover,
.nav-pills .show>.nav-link:focus {
  color: #fff;
  background: var(--fiab-gray);
  filter: brightness(1.05);
  /* pequeño realce al pasar el mouse */
}



.nav-link {
  color: var(--fiab-accent);
}

.nav-fill>.nav-link,
.nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center
}

.nav-justified>.nav-link,
.nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center
}

.nav-fill .nav-item .nav-link,
.nav-justified .nav-item .nav-link {
  width: 100%
}

.nav-underline {
  --bs-nav-underline-gap: 1rem;
  --bs-nav-underline-border-width: .125rem;
  --bs-nav-underline-link-active-color: var(--bs-emphasis-color);
  gap: var(--bs-nav-underline-gap)
}

.nav-underline .nav-link {
  padding-right: 0;
  padding-left: 0;
  border-bottom: var(--bs-nav-underline-border-width) solid transparent
}

.nav-underline .nav-link:hover,
.nav-underline .nav-link:focus {
  border-bottom-color: currentcolor
}

.nav-underline .nav-link.active,
.nav-underline .show>.nav-link {
  font-weight: 700;
  color: var(--bs-nav-underline-link-active-color);
  border-bottom-color: currentcolor
}

.nav-fill>.nav-link,
.nav-fill .nav-item {
  flex: 1 1 auto;
  text-align: center
}

.nav-justified>.nav-link,
.nav-justified .nav-item {
  flex-basis: 0;
  flex-grow: 1;
  text-align: center
}



.tab-content>.tab-pane {
  display: none
}

.tab-content>.active {
  display: block
}




.mb-3 {
  margin-bottom: 1rem !important;
}



/* Estilos para la seccion de expositores */
.slider_expositores {
  overflow: hidden;
  position: relative;
  width: 100%;
  background: #f8f9fa;
  padding: 20px 0;
}

.slider_expositores-track {
  display: flex;
  width: calc(300px * 4 * 2);
  animation: scroll 40s linear infinite;
}

/* ⏸️ Se detiene al pasar el mouse en el carrusel */
.slider_expositores-track:hover {
  animation-play-state: paused;
}

.slider_expositores-item {
  flex: 0 0 300px;
  margin: 0 15px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}


.expositor-card {
  height: 360px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
  position: relative;
  background: #fff;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.expositor-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.expositor-info {
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 10px;
  text-align: center;
  transition: background 0.3s ease;

}

.expositor-info h5 {
  margin: 0;
  font-size: 1.1rem;
  min-height: 4rem;
}

.expositor-info p {
  margin: 0;
  font-size: 0.9rem;
}

/* ✨ Efecto destacado al pasar el mouse */
.slider_expositores-item:hover .expositor-card {
  transform: scale(1.07);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.slider_expositores-item:hover img {
  transform: scale(1.1);
}

.slider_expositores-item:hover .expositor-info {
  background: rgba(0, 0, 0, 0.75);
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }

  100% {
    transform: translateX(-50%);
  }
}

.slider_expositores p {
  color: #fff;
}

/* Estilos patrocinadores */

/* Estilos del carrusel 3D (scope a .pp-sponsors-3d para no afectar el sitio) */
/*.pp-sponsors-3d {
  background: var(--fiab-light);
  color: #fff;
}

.pp-sponsors-3d .stage {
  perspective: 2000px;
  position: relative;
  width: 200px;
  height: 150px;
  max-width: 90vw;
  margin: 0 auto;
  display: grid;
  place-items: center;
}

.pp-sponsors-3d .ring {
  width: 100%;
  height: 100%;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 0.3s ease-out;
  cursor: grab;
  will-change: transform;
}

.pp-sponsors-3d .ring.dragging {
  cursor: grabbing;
}

.pp-sponsors-3d .ring .item {
  position: absolute;
  inset: 0;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  backface-visibility: hidden;
  border-radius: .75rem;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.6);
  transition: opacity 0.25s ease, transform 0.25s ease;
  opacity: 1;
  background-color: #fff;
  outline: none;
}

@media (max-width: 991.98px) {
  .pp-sponsors-3d .stage {
    width: 300px;
    height: 400px;
  }
}

@media (max-width: 767.98px) {
  .pp-sponsors-3d .stage {
    width: 220px;
    height: 300px;
  }
}

/* Respeta preferencias de accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .pp-sponsors-3d .ring {
    transition: none !important;
  }

  .pp-sponsors-3d .ring .item {
    transition: none !important;
  }
}


/*
Asegurar de que las secciones tengan suficiente padding-top 
para que el contenido no quede oculto debajo del navbar fijo.ajusta según navbar 

section[id] {
  scroll-margin-top: 80px; 
}
  */

/* Agenda */
.schedule-nav .nav-item span {
  display: block
}

.schedule-nav .nav-item .heading {
  font-family: var(--bs-body-font-family);
  font-weight: 700;
  font-size: 1.5rem
}

.schedule-nav .nav-item .meta {
  -webkit-opacity: .8;
  -moz-opacity: .8;
  opacity: .8;
  font-size: 1.5rem
}

.schedule-nav .nav-link {
  background: #f0f6fa;
  border-radius: 0;
  border-right: rgba(0, 0, 0, 0.1);
  text-decoration: none
}

.schedule-tab-content {
  padding: 2rem 0
}

.schedule-tab-content .tab-pane {
  position: relative
}

.schedule-tab-content .tab-pane:after {
  content: "";
  display: block;
  background: #e5ecf4;
  position: absolute;
  width: 3px;
  height: 100%;
  left: 196px;
  top: 5px
}

/* .schedule-tab-content .tab-pane.no-timeline:after {
  display: none
} */

.schedule-tab-content .item {
  position: relative;
  margin-bottom: 2rem;
  min-height: 15rem;

}

.schedule-tab-content .item .item-talk {
  min-height: 165px
}

.schedule-tab-content .item:after {
  content: "";
  display: inline-block;
  position: absolute;
  z-index: 5;
  left: 190px;
  top: 5px;
  width: 16px;
  height: 16px;
  border: 4px solid var(--fiab-accent);
  ;
  background: white;
  border-radius: 50%
}

.schedule-tab-content .item .meta {
  position: absolute;
  left: 0;
  top: 0;
  width: 200px;
  padding: 1rem;
  padding-top: 0;
  text-align: center;
  font-size: 0.875rem
}

.schedule-tab-content .item .meta .time {
  font-size: 1.25rem;
  color: var(--fiab-accent);
}

.schedule-tab-content .item .meta .location {
  font-size: 1.25rem;
  font-weight: bold
}



.schedule-tab-content .item .profile-image {
  width: 80px
}

.schedule-tab-content .item .content {
  padding-left: 240px
}

.schedule-tab-content .item .content .title {
  font-size: 1.5rem;
  font-weight: bold;
}

.schedule-tab-content .item .content .location {
  font-size: 1.25rem;

}

.schedule-tab-content .item .content .desc {
  font-size: 1rem;
}

.modal-speaker .profile-image {
  width: 120px
}

.rounded-circle {
  border-radius: 50% !important
}

a.theme-link {
  color: #141c25;
  text-decoration: underline;
  text-decoration-color: rgba(20, 28, 37, 0.3)
}

a.theme-link:hover {
  color: var(--fiab-accent);
  ;
  text-decoration-color: var(--fiab-accent);
}

/* Patrocinadores */

.wrapper {
  width: 90%;
  margin: 0 auto;
  max-width: 80rem;
}

.cols {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
}

.col {
  width: calc(50% - 2rem);
  margin: 1rem;
  cursor: pointer;
  flex: 0 1 300px;
  /* todas iguales, 200px de ancho */
}

.container {
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
  -webkit-perspective: 1000px;
  perspective: 1000px;
}

.front,
.back {
  background-size: cover;
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  background-position: center;
  -webkit-transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  -o-transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1), -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  text-align: center;
  min-height: 10rem;
  min-width: 20rem;
  box-shadow: 0 0 10px solid blue;

  height: auto;
  border-radius: 10px;
  color: #fff;
  font-size: 1.5rem;
}

.back {
  background: #cedce7;
  background: -webkit-linear-gradient(45deg, #cedce7 0%, #596a72 100%);
  background: -o-linear-gradient(45deg, #cedce7 0%, #596a72 100%);
  background: linear-gradient(45deg, #cedce7 0%, #596a72 100%);
}

/*.front:after {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  content: '';
  display: block;
  opacity: .6;
  background-color: #000;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  border-radius: 10px;
}*/

.wrapper .col .container:hover .front,
.wrapper .col .container:hover .back {
  -webkit-transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  -o-transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
  transition: transform .7s cubic-bezier(0.4, 0.2, 0.2, 1), -webkit-transform .7s cubic-bezier(0.4, 0.2, 0.2, 1);
}

.back {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

.inner {
  -webkit-transform: translateY(-50%) translateZ(60px) scale(0.94);
  transform: translateY(-50%) translateZ(60px) scale(0.94);
  top: 50%;
  position: absolute;
  left: 0;
  width: 100%;
  padding: 2rem;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  outline: 1px solid transparent;
  -webkit-perspective: inherit;
  perspective: inherit;
  z-index: 2;
}

.wrapper .col .container .back {
  -webkit-transform: rotateY(180deg);
  transform: rotateY(180deg);
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.wrapper .col .container .front {
  -webkit-transform: rotateY(0deg);
  transform: rotateY(0deg);
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.wrapper .col .container:hover .back {
  -webkit-transform: rotateY(0deg);
  transform: rotateY(0deg);
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.wrapper .col .container:hover .front {
  -webkit-transform: rotateY(-180deg);
  transform: rotateY(-180deg);
  -webkit-transform-style: preserve-3d;
  transform-style: preserve-3d;
}

.front .inner p {
  font-size: 2rem;
  margin-bottom: 2rem;
  position: relative;
}

.front .inner p:after {
  content: '';
  width: 4rem;
  height: 2px;
  position: absolute;
  background: #C6D4DF;
  display: block;
  left: 0;
  right: 0;
  margin: 0 auto;
  bottom: -.75rem;
}

.front .inner span {
  color: rgba(255, 255, 255, 0.7);
  font-family: var(--bs-body-font-family);
  font-weight: 300;
}

@media screen and (max-width: 64rem) {
  .col {
    width: calc(33.333333% - 2rem);
  }
}

@media screen and (max-width: 48rem) {
  .col {
    width: calc(50% - 2rem);
  }
}

@media screen and (max-width: 32rem) {
  .col {
    width: 100%;
    margin: 0 0 2rem 0;
  }
}

#cr75c_identificador,
label[for="cr75c_identificador"],
#cr75c_identificador_label {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  width: 0 !important;
  position: absolute !important;
  left: -9999px !important;
}


/* ===== Patrocinadores: muro de logos + carrusel suave ===== */
.sponsor-spotlight .sponsor-logo-wrap.spotlight {
  max-width: 360px;
  aspect-ratio: 3 / 1;
  display: grid;
  place-items: center;
  background: #fff;
  border-radius: .85rem;
  padding: 1rem 1.25rem;
  border: 1px solid rgba(14,26,43,.08);
}
.sponsor-tier-title {
  font-weight: 800;
  letter-spacing: -.02em;
  color: var(--fiab-primary);
  margin: 0;
  font-size: clamp(1.1rem, 1rem + 1.2vw, 1.6rem);
}

/* Grid fluido con scroll-snap horizontal (para listas largas) */
.sponsor-wall {
  --cell-min: 160px;
  display: grid;
  grid-auto-flow: column;              /* filas horizontales */
  grid-auto-columns: minmax(var(--cell-min), 1fr);
  gap: 1rem;
  padding-bottom: .5rem;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}
.sponsor-cell { scroll-snap-align: start; }

.sponsor-card {
  display: block;
  border: 1px solid rgba(14,26,43,.06);
  border-radius: .85rem;
  box-shadow: 0 .35rem .75rem rgba(0,0,0,.04);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
  background: #fff;
}
.sponsor-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 .9rem 1.4rem rgba(0,0,0,.10);
  border-color: rgba(14,26,43,.12);
  filter: none;
}
.sponsor-logo-wrap {
  width: 100%;
  max-width: 260px;
  aspect-ratio: 3 / 1;
  display: grid;
  place-items: center;
  background: #fff;
  border-radius: .75rem;
  padding: .75rem 1rem;
}
.sponsor-logo {
  max-height: 72px;
  width: auto;
  object-fit: contain;
  filter: grayscale(25%) contrast(1.05);
  transition: filter .2s ease, transform .18s ease;
}
.sponsor-card:hover .sponsor-logo { filter: none; }

/* En pantallas grandes el muro puede ser grid 2D y deja de scrollear */
@media (min-width: 992px) {
  .sponsor-wall {
    display: grid;
    grid-auto-flow: row;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    overflow: visible;
  }
}

/* Respeta accesibilidad: reduce animaciones si el usuario lo solicita */
@media (prefers-reduced-motion: reduce) {
  .sponsor-card, .sponsor-logo { transition: none !important; }
}


/* Quitar viñetas y sangría del muro */
.sponsor-wall { list-style: none; padding-left: 0; }
.sponsor-wall .sponsor-cell { list-style: none; }

