/* =========================================================
   FUNDACIÓN NIÁGARA
   TRATAMIENTOS - CSS FINAL CONSOLIDADO
   ========================================================= */


/* =========================================================
   1. HEADER GLOBAL
   ========================================================= */

.site-header{
  position:sticky !important;
  top:0 !important;
  z-index:9900 !important;

  background:#ffffff !important;
  background-color:#ffffff !important;

  opacity:1 !important;

  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;

  border-bottom:1px solid rgba(18,58,45,.10) !important;

  box-shadow:
    0 4px 18px rgba(18,58,45,.045);
}

.site-header .nav-wrap{
  background:#ffffff !important;
}


/* =========================================================
   2. ESTRUCTURA GENERAL
   ========================================================= */

.t-container{
  width:100%;
  max-width:1180px;

  margin-left:auto;
  margin-right:auto;

  padding-left:24px;
  padding-right:24px;

  box-sizing:border-box;
}

.t-section{
  padding-top:78px !important;
  padding-bottom:78px !important;
}

.t-section h2{
  color:#143b32;

  font-family:"Montserrat",sans-serif;

  line-height:1.15;
}

.t-eyebrow{
  font-family:"Montserrat",sans-serif;

  font-size:13px;
  font-weight:800;

  letter-spacing:2px;

  color:#006b63;
}


/* =========================================================
   3. HERO
   El diseño principal lo controla hero-global.css
   ========================================================= */

.t-hero{
  overflow:hidden;
}

.t-hero-content{
  position:relative;
  z-index:2;
}


/* =========================================================
   4. BOTONES
   ========================================================= */

.t-btn{
  display:inline-flex;

  align-items:center;
  justify-content:center;

  min-height:50px;

  padding:0 24px;

  border-radius:10px;

  font-family:"Montserrat",sans-serif;
  font-size:14px;
  font-weight:700;

  text-decoration:none;

  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease;
}

.t-btn-primary{
  background:#0d6b5d;
  border:1px solid #0d6b5d;

  color:#ffffff;
}

.t-btn-outline{
  background:#ffffff;

  border:1px solid #0d6b5d;

  color:#0d6b5d;
}

@media(hover:hover){

  .t-btn:hover{
    transform:translateY(-3px);

    box-shadow:
      0 10px 22px rgba(18,58,45,.15);
  }

  .t-btn-primary:hover{
    background:#095348;
  }

  .t-btn-outline:hover{
    background:#0d6b5d;
    color:#ffffff;
  }
}


/* =========================================================
   5. RESUMEN RÁPIDO / HIGHLIGHTS
   ========================================================= */

.t-highlights{
  padding:40px 0;

  background:#f7f5ef;
}

.t-highlights-grid{
  display:grid;

  grid-template-columns:
    repeat(4,minmax(0,1fr));

  gap:22px;
}

.t-highlight-card{
  position:relative;

  overflow:hidden;

  min-height:185px;

  padding:28px 24px;

  border:1px solid #d9e4de;
  border-radius:20px;

  background:#ffffff;

  box-shadow:
    0 8px 24px rgba(18,58,45,.06);

  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    background-color .28s ease;
}

.t-highlight-card::before{
  content:"";

  position:absolute;

  top:0;
  left:0;

  width:100%;
  height:4px;

  background:
    linear-gradient(
      90deg,
      #0e4b3f 0%,
      #d4a847 100%
    );
}

.t-highlight-number{
  width:42px;
  height:42px;

  display:inline-flex;

  align-items:center;
  justify-content:center;

  margin-bottom:17px;

  border-radius:50%;

  background:#edf4f1;

  color:#0e4b3f;

  font-weight:800;
  font-size:14px;

  transition:
    transform .25s ease,
    background-color .25s ease,
    color .25s ease;
}

.t-highlight-card h3{
  margin:0 0 10px;

  font-family:"Montserrat",sans-serif;

  font-size:22px;
  line-height:1.25;

  color:#123a2d;

  transition:color .25s ease;
}

.t-highlight-card p{
  margin:0;

  font-size:16px;
  line-height:1.6;

  color:#50645d;
}

@media(hover:hover){

  .t-highlight-card:hover{
    transform:translateY(-8px);

    border-color:#b9d0c7;

    background:#fcfdfc;

    box-shadow:
      0 18px 40px rgba(18,58,45,.12),
      0 4px 12px rgba(18,58,45,.05);
  }

  .t-highlight-card:hover
  .t-highlight-number{
    transform:scale(1.1);

    background:#d4a847;

    color:#123a2d;
  }

  .t-highlight-card:hover h3{
    color:#087063;
  }
}


/* =========================================================
   6. TARJETAS GENERALES
   ========================================================= */

.t-card,
.t-process-card,
.t-modality-card{
  border:1px solid #dbe5e0;

  border-radius:18px;

  background:#ffffff;

  box-shadow:
    0 10px 28px rgba(18,58,45,.055);

  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease,
    background-color .28s ease;
}

@media(hover:hover){

  .t-card:hover,
  .t-process-card:hover,
  .t-modality-card:hover{
    transform:translateY(-7px);

    border-color:#bfd4cb;

    box-shadow:
      0 18px 40px rgba(18,58,45,.12);

    background:#ffffff;
  }
}


/* =========================================================
   7. ENFOQUE
   ========================================================= */

.t-callout.t-callout-single{
  display:block !important;

  grid-template-columns:1fr !important;
}

.t-callout.t-callout-single > div{
  max-width:900px;
}


/* =========================================================
   8. EQUIPO INTERDISCIPLINARIO PREMIUM
   ========================================================= */

.t-team-premium{
  position:relative;

  overflow:hidden;

  padding:85px 0;

  background:
    radial-gradient(
      circle at 85% 10%,
      rgba(212,168,71,.12),
      transparent 32%
    ),
    linear-gradient(
      150deg,
      #0b4338 0%,
      #103f35 55%,
      #0b372f 100%
    );
}

.t-team-premium::before{
  content:"";

  position:absolute;

  width:420px;
  height:420px;

  right:-180px;
  top:-200px;

  border:1px solid rgba(255,255,255,.05);

  border-radius:50%;

  pointer-events:none;
}


/* Encabezado */

.t-team-heading{
  position:relative;

  z-index:2;

  max-width:900px;

  margin-bottom:46px;
}

.t-team-heading .t-eyebrow{
  color:#dfb75d !important;
}

.t-team-heading h2{
  max-width:820px;

  margin:12px 0 18px;

  font-family:"Montserrat",sans-serif;

  font-size:46px;
  line-height:1.08;

  color:#ffffff !important;
}

.t-team-heading p{
  max-width:820px;

  margin:0;

  font-size:18px;
  line-height:1.7;

  color:rgba(255,255,255,.76);
}


/* Grilla */

.t-team-premium-grid{
  position:relative;

  z-index:2;

  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:22px;
}


/* Tarjetas */

.t-team-premium-card{
  position:relative;

  overflow:hidden;

  min-height:250px;

  padding:27px 26px 30px;

  border:
    1px solid rgba(255,255,255,.13);

  border-radius:20px;

  background:
    linear-gradient(
      145deg,
      rgba(255,255,255,.095),
      rgba(255,255,255,.045)
    );

  box-shadow:
    0 10px 30px rgba(0,0,0,.10);

  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);

  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease,
    background .3s ease;
}

.t-team-premium-card::after{
  content:"";

  position:absolute;

  width:160px;
  height:160px;

  right:-80px;
  bottom:-90px;

  border-radius:50%;

  background:
    rgba(216,173,83,.08);

  transition:
    transform .35s ease,
    background .35s ease;

  pointer-events:none;
}


/* Superior tarjeta */

.t-team-card-top{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;

  gap:13px;

  margin-bottom:22px;
}

.t-team-badge{
  flex:0 0 auto;

  width:48px;
  height:48px;

  display:flex;

  align-items:center;
  justify-content:center;

  border:
    1px solid rgba(216,173,83,.42);

  border-radius:14px;

  background:
    rgba(216,173,83,.14);

  color:#efc66b;

  font-family:"Montserrat",sans-serif;

  font-size:13px;
  font-weight:800;

  letter-spacing:.05em;

  transition:
    transform .3s ease,
    background .3s ease,
    color .3s ease;
}

.t-team-line{
  width:46px;
  height:2px;

  border-radius:2px;

  background:
    linear-gradient(
      90deg,
      #d8ad53,
      rgba(216,173,83,0)
    );

  transition:width .3s ease;
}


/* Textos */

.t-team-premium-card h3{
  position:relative;

  z-index:2;

  margin:0 0 13px;

  font-family:"Montserrat",sans-serif;

  font-size:24px;
  line-height:1.2;

  color:#ffffff !important;

  transition:
    color .25s ease,
    transform .25s ease;
}

.t-team-premium-card p{
  position:relative;

  z-index:2;

  margin:0;

  font-size:16px;
  line-height:1.65;

  color:
    rgba(255,255,255,.77) !important;

  transition:color .25s ease;
}


/* Hover equipo */

@media(hover:hover){

  .t-team-premium-card:hover{
    transform:
      translateY(-9px)
      scale(1.015);

    border-color:
      rgba(216,173,83,.55);

    background:
      linear-gradient(
        145deg,
        rgba(255,255,255,.14),
        rgba(255,255,255,.07)
      );

    box-shadow:
      0 24px 50px
      rgba(0,0,0,.22);
  }

  .t-team-premium-card:hover::after{
    transform:scale(1.45);

    background:
      rgba(216,173,83,.13);
  }

  .t-team-premium-card:hover
  .t-team-badge{
    transform:
      translateY(-2px)
      rotate(-4deg)
      scale(1.08);

    background:#d8ad53;

    color:#123a2d;
  }

  .t-team-premium-card:hover
  .t-team-line{
    width:72px;
  }

  .t-team-premium-card:hover h3{
    color:#f1c971 !important;

    transform:translateX(3px);
  }

  .t-team-premium-card:hover p{
    color:#ffffff !important;
  }
}


/* Séptima tarjeta centrada */

@media(min-width:1001px){

  .t-team-premium-card-last{
    grid-column:2;
  }
}


/* =========================================================
   9. PROCESO TERAPÉUTICO
   ========================================================= */

.t-process-grid{
  display:grid;

  grid-template-columns:
    repeat(3,minmax(0,1fr));

  gap:24px;

  margin-top:38px;
}

.t-process-card{
  padding:34px;

  min-height:245px;
}

.t-process-card h3{
  margin:14px 0 14px;

  font-family:"Montserrat",sans-serif;

  font-size:24px;

  color:#123a2d;
}

.t-process-card p{
  margin:0;

  line-height:1.7;

  color:#52655f;
}


/* =========================================================
   10. PASOS DE INGRESO
   ========================================================= */

.t-steps,
.t-admission-steps{
  display:grid;

  grid-template-columns:
    repeat(2,minmax(0,1fr));

  gap:20px;

  margin-top:35px;
}

.t-step,
.t-admission-step{
  position:relative;

  padding:30px;

  border:1px solid #dce5e1;

  border-radius:18px;

  background:#ffffff;

  box-shadow:
    0 10px 28px
    rgba(18,58,45,.055);

  transition:
    transform .28s ease,
    box-shadow .28s ease,
    border-color .28s ease;
}

.t-step-number,
.t-number{
  width:42px;
  height:42px;

  display:inline-flex;

  align-items:center;
  justify-content:center;

  border-radius:50%;

  background:#edf4f1;

  color:#006b63;

  font-weight:800;

  transition:
    transform .25s ease,
    background-color .25s ease,
    color .25s ease;
}

.t-step h3,
.t-admission-step h3{
  color:#143b32;

  font-family:"Montserrat",sans-serif;

  margin:15px 0 10px;
}

@media(hover:hover){

  .t-step:hover,
  .t-admission-step:hover{
    transform:translateY(-6px);

    border-color:#bdd2c9;

    box-shadow:
      0 18px 35px
      rgba(18,58,45,.10);
  }

  .t-step:hover
  .t-step-number,
  .t-admission-step:hover
  .t-step-number,
  .t-step:hover
  .t-number{
    transform:scale(1.1);

    background:#d8ad53;

    color:#123a2d;
  }
}


/* =========================================================
   11. FAMILIA Y RECUPERACIÓN
   ========================================================= */

.t-family,
.t-family-section{
  padding:82px 0 !important;

  background:#ffffff !important;

  text-align:center;
}

.t-family h2,
.t-family-section h2{
  max-width:850px;

  margin-left:auto !important;
  margin-right:auto !important;

  font-size:44px !important;
}

.t-family p,
.t-family-section p{
  max-width:820px;

  margin-left:auto !important;
  margin-right:auto !important;

  font-size:18px;

  line-height:1.75;

  color:#586a64;
}


/* =========================================================
   12. UBICACIÓN
   ========================================================= */

.t-location,
.t-location-section{
  padding:75px 0 !important;

  background:#f7f5ef !important;
}

.t-location-card,
.t-contact-card{
  margin-top:28px !important;

  padding:32px 38px !important;

  border:1px solid #d5e5df !important;

  border-radius:18px !important;

  background:#edf5f2 !important;

  box-shadow:
    0 8px 25px
    rgba(18,58,45,.04);

  transition:
    transform .28s ease,
    box-shadow .28s ease,
    background .28s ease,
    border-color .28s ease;
}

.t-location-card strong,
.t-contact-card strong{
  color:#123f34;
}

@media(hover:hover){

  .t-location-card:hover,
  .t-contact-card:hover{
    transform:translateY(-6px);

    background:#e4f0ec !important;

    border-color:#b7d2c8 !important;

    box-shadow:
      0 18px 40px
      rgba(18,58,45,.11);
  }
}


/* =========================================================
   13. FAQ
   ========================================================= */

.t-faq,
.t-faq-section{
  padding:82px 0 !important;

  background:#ffffff !important;
}

.t-faq details,
.t-faq-section details{
  max-width:950px;

  margin:0 auto 12px !important;

  padding:0 22px;

  border:1px solid #dce5e1;

  border-radius:12px;

  background:#ffffff;

  transition:
    transform .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

.t-faq summary,
.t-faq-section summary{
  padding:19px 0;

  cursor:pointer;

  color:#173c33;

  font-family:"Montserrat",sans-serif;

  font-weight:600;

  transition:
    color .22s ease,
    padding-left .22s ease;
}

.t-faq details p,
.t-faq-section details p{
  margin:0;

  padding:0 0 20px;

  line-height:1.65;

  color:#52655f;
}

@media(hover:hover){

  .t-faq details:hover,
  .t-faq-section details:hover{
    transform:translateY(-2px);

    border-color:#b7d0c6;

    box-shadow:
      0 10px 24px
      rgba(18,58,45,.07);
  }

  .t-faq details:hover summary,
  .t-faq-section details:hover summary{
    color:#087063;

    padding-left:5px;
  }
}


/* =========================================================
   14. CTA FINAL
   ========================================================= */

.t-cta,
.t-treatment-cta{
  max-width:1180px;

  margin:30px auto 80px !important;

  padding:48px 54px !important;

  border-radius:20px !important;

  background:
    linear-gradient(
      135deg,
      #0c463a,
      #123f34
    ) !important;

  color:#ffffff !important;

  box-shadow:
    0 18px 42px
    rgba(18,58,45,.12);
}

.t-cta h2,
.t-treatment-cta h2{
  color:#ffffff !important;

  font-size:38px !important;
}

.t-cta p,
.t-treatment-cta p{
  max-width:720px;

  color:
    rgba(255,255,255,.87) !important;
}


/* =========================================================
   15. FOOTER
   ========================================================= */

.site-footer{
  margin-top:0 !important;
}


/* =========================================================
   16. TABLET
   ========================================================= */

@media(max-width:1050px){

  .t-highlights-grid{
    grid-template-columns:
      repeat(2,1fr);
  }

  .t-team-premium-grid{
    grid-template-columns:
      repeat(2,1fr);
  }

  .t-process-grid{
    grid-template-columns:
      repeat(2,1fr);
  }

  .t-team-premium-card-last{
    grid-column:auto;
  }
}


/* =========================================================
   17. MÓVIL
   ========================================================= */

@media(max-width:650px){

  .t-container{
    padding-left:20px;
    padding-right:20px;
  }

  .t-section{
    padding-top:55px !important;
    padding-bottom:55px !important;
  }

  .t-highlights-grid,
  .t-team-premium-grid,
  .t-process-grid,
  .t-steps,
  .t-admission-steps{
    grid-template-columns:1fr;
  }

  .t-team-premium{
    padding:60px 0;
  }

  .t-team-heading h2{
    font-size:34px;
  }

  .t-team-premium-card{
    min-height:auto;
  }

  .t-family h2,
  .t-family-section h2{
    font-size:34px !important;
  }

  .t-cta,
  .t-treatment-cta{
    margin:
      20px 20px 55px !important;

    padding:
      34px 26px !important;
  }

  .t-cta h2,
  .t-treatment-cta h2{
    font-size:31px !important;
  }
}


/* =========================================================
   18. ACCESIBILIDAD
   ========================================================= */

@media(prefers-reduced-motion:reduce){

  *,
  *::before,
  *::after{
    transition:none !important;

    animation:none !important;

    transform:none !important;
  }
}
/* =========================================================
   PROCESO DE INGRESO - RECORRIDO SERPIENTE
   FUNDACIÓN NIÁGARA
   ========================================================= */

.t-admission-snake-section{
  position:relative;
  overflow:hidden;

  padding:85px 0 95px !important;

  background:
    radial-gradient(
      circle at 12% 15%,
      rgba(216,173,83,.10),
      transparent 27%
    ),
    radial-gradient(
      circle at 88% 82%,
      rgba(13,107,93,.08),
      transparent 28%
    ),
    #f7f5ef;
}


/* =========================================================
   ENCABEZADO
   ========================================================= */

.t-admission-snake-section .t-admission-heading{
  max-width:820px;

  margin:0 auto 55px;

  text-align:center;
}

.t-admission-snake-section .t-admission-heading h2{
  margin:12px 0 16px;

  font-family:"Montserrat",sans-serif;

  font-size:44px;
  line-height:1.1;

  color:#123a2d;
}

.t-admission-snake-section .t-admission-heading p{
  max-width:740px;

  margin:0 auto;

  font-size:18px;
  line-height:1.7;

  color:#53675f;
}


/* =========================================================
   CONTENEDOR DEL RECORRIDO
   ========================================================= */

.t-snake-flow{
  position:relative;

  max-width:1050px;

  margin:0 auto;

  padding:20px 0;
}


/* =========================================================
   LÍNEA CENTRAL
   ========================================================= */

.t-snake-line{
  position:absolute;

  left:50%;
  top:55px;
  bottom:55px;

  width:8px;

  transform:translateX(-50%);

  border-radius:999px;

  background:
    linear-gradient(
      180deg,
      #d8ad53 0%,
      #0d6b5d 25%,
      #d8ad53 50%,
      #0d6b5d 75%,
      #d8ad53 100%
    );

  opacity:.30;

  box-shadow:
    0 0 18px rgba(18,58,45,.08);
}


/* =========================================================
   CADA ETAPA
   ========================================================= */

.t-snake-step{
  position:relative;

  display:grid;

  grid-template-columns:
    minmax(0,1fr)
    130px
    minmax(0,1fr);

  align-items:center;

  min-height:180px;

  margin-bottom:18px;
}


/* =========================================================
   NODOS / NÚMEROS
   ========================================================= */

.t-snake-node{
  grid-column:2;

  justify-self:center;

  position:relative;

  z-index:5;

  width:86px;
  height:86px;

  display:flex;

  align-items:center;
  justify-content:center;

  border-radius:50%;

  border:5px solid #f7f5ef;

  background:
    linear-gradient(
      135deg,
      #0d6b5d,
      #0a4d43
    );

  color:#ffffff;

  font-family:"Montserrat",sans-serif;

  font-size:18px;
  font-weight:800;

  letter-spacing:.05em;

  box-shadow:
    0 12px 28px rgba(18,58,45,.18);

  transition:
    transform .30s ease,
    background .30s ease,
    color .30s ease,
    box-shadow .30s ease;
}


/* círculo interior */

.t-snake-node::before{
  content:"";

  position:absolute;

  inset:8px;

  border-radius:50%;

  border:
    1px dashed rgba(255,255,255,.30);
}


/* asegurar número arriba */

.t-snake-node span{
  position:relative;
  z-index:2;
}


/* último nodo */

.t-snake-node-final{
  background:
    linear-gradient(
      135deg,
      #d8ad53,
      #bd9138
    );

  color:#123a2d;
}


/* =========================================================
   TARJETAS
   ========================================================= */

.t-snake-card{
  position:relative;

  z-index:3;

  width:100%;
  max-width:390px;

  padding:25px 27px;

  border:
    1px solid rgba(18,58,45,.12);

  border-radius:28px;

  background:
    rgba(255,255,255,.88);

  box-shadow:
    0 14px 35px
    rgba(18,58,45,.07);

  transition:
    transform .30s ease,
    box-shadow .30s ease,
    border-color .30s ease,
    background .30s ease;
}


/* izquierda */

.t-snake-step.left
.t-snake-card{
  grid-column:1;

  justify-self:end;

  margin-right:24px;
}


/* derecha */

.t-snake-step.right
.t-snake-card{
  grid-column:3;

  justify-self:start;

  margin-left:24px;
}


/* =========================================================
   ETIQUETA DE CADA ETAPA
   ========================================================= */

.t-snake-label{
  margin-bottom:8px;

  font-family:"Montserrat",sans-serif;

  font-size:11px;
  font-weight:800;

  letter-spacing:1.6px;

  text-transform:uppercase;

  color:#c0953f;

  transition:
    color .25s ease,
    transform .25s ease;
}


/* =========================================================
   TEXTO
   ========================================================= */

.t-snake-card h3{
  margin:0 0 11px;

  font-family:"Montserrat",sans-serif;

  font-size:25px;
  line-height:1.2;

  color:#123a2d;

  transition:
    color .25s ease,
    transform .25s ease;
}

.t-snake-card p{
  margin:0;

  font-size:16px;
  line-height:1.65;

  color:#52655f;

  transition:color .25s ease;
}


/* =========================================================
   CONEXIONES CURVAS ENTRE TARJETA Y NODO
   ========================================================= */

.t-snake-step.left
.t-snake-card::after,
.t-snake-step.right
.t-snake-card::after{
  content:"";

  position:absolute;

  top:50%;

  width:58px;
  height:50px;

  border-radius:50%;

  pointer-events:none;
}


/* Curva izquierda */

.t-snake-step.left
.t-snake-card::after{
  right:-49px;

  border-top:
    3px solid rgba(216,173,83,.55);

  border-right:
    3px solid rgba(216,173,83,.55);

  transform:
    translateY(-50%)
    rotate(10deg);
}


/* Curva derecha */

.t-snake-step.right
.t-snake-card::after{
  left:-49px;

  border-top:
    3px solid rgba(216,173,83,.55);

  border-left:
    3px solid rgba(216,173,83,.55);

  transform:
    translateY(-50%)
    rotate(-10deg);
}


/* =========================================================
   HOVER / MOVIMIENTO
   ========================================================= */

@media(hover:hover){

  .t-snake-step:hover
  .t-snake-node{

    transform:
      scale(1.13)
      rotate(-4deg);

    background:
      linear-gradient(
        135deg,
        #d8ad53,
        #bd9138
      );

    color:#123a2d;

    box-shadow:
      0 18px 38px rgba(18,58,45,.20),
      0 0 0 12px rgba(216,173,83,.12);
  }


  /* último nodo hace el efecto inverso */

  .t-snake-step:hover
  .t-snake-node-final{

    background:
      linear-gradient(
        135deg,
        #0d6b5d,
        #0a4d43
      );

    color:#ffffff;
  }


  .t-snake-step:hover
  .t-snake-card{

    transform:
      translateY(-7px)
      scale(1.015);

    border-color:
      rgba(216,173,83,.42);

    background:#ffffff;

    box-shadow:
      0 24px 50px
      rgba(18,58,45,.14);
  }


  .t-snake-step:hover
  .t-snake-card h3{

    color:#087063;

    transform:translateX(3px);
  }


  .t-snake-step:hover
  .t-snake-label{

    color:#d3a23f;

    transform:translateX(3px);
  }


  .t-snake-step:hover
  .t-snake-card p{

    color:#314f46;
  }

}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:900px){

  .t-snake-flow{
    max-width:760px;
  }

  .t-snake-line{
    left:42px;

    transform:none;
  }

  .t-snake-step{
    grid-template-columns:
      85px
      minmax(0,1fr);

    gap:18px;

    min-height:auto;

    margin-bottom:28px;
  }

  .t-snake-node{
    grid-column:1;

    width:70px;
    height:70px;

    font-size:15px;
  }

  .t-snake-step.left
  .t-snake-card,
  .t-snake-step.right
  .t-snake-card{

    grid-column:2;

    justify-self:stretch;

    max-width:none;

    margin:0;
  }

  .t-snake-step.left
  .t-snake-card::after,
  .t-snake-step.right
  .t-snake-card::after{

    display:none;
  }

}


/* =========================================================
   MÓVIL
   ========================================================= */

@media(max-width:650px){

  .t-admission-snake-section{
    padding:
      60px 0 70px !important;
  }

  .t-admission-snake-section
  .t-admission-heading{

    margin-bottom:38px;
  }

  .t-admission-snake-section
  .t-admission-heading h2{

    font-size:34px;
  }

  .t-snake-line{
    left:31px;

    width:6px;
  }

  .t-snake-step{
    grid-template-columns:
      64px
      minmax(0,1fr);

    gap:12px;
  }

  .t-snake-node{
    width:56px;
    height:56px;

    border-width:3px;

    font-size:13px;
  }

  .t-snake-card{
    padding:20px 20px;

    border-radius:20px;
  }

  .t-snake-card h3{
    font-size:21px;
  }

  .t-snake-card p{
    font-size:15px;
  }

}


/* =========================================================
   ACCESIBILIDAD
   ========================================================= */

@media(prefers-reduced-motion:reduce){

  .t-snake-node,
  .t-snake-card,
  .t-snake-card h3,
  .t-snake-label{

    transition:none !important;

    transform:none !important;
  }

}
/* =========================================================
   UBICACIÓN Y COBERTURA PREMIUM
   ========================================================= */

.t-location-premium{
  position:relative;
  overflow:hidden;

  padding:90px 0;

  background:
    radial-gradient(
      circle at 90% 10%,
      rgba(216,173,83,.10),
      transparent 28%
    ),
    #f7f5ef;
}


/* GRID PRINCIPAL */

.t-location-grid{
  display:grid;

  grid-template-columns:
    minmax(0,1.15fr)
    minmax(380px,.85fr);

  gap:60px;

  align-items:center;
}


/* =========================================================
   TEXTO IZQUIERDA
   ========================================================= */

.t-location-copy h2{
  max-width:720px;

  margin:14px 0 24px;

  font-family:"Montserrat",sans-serif;

  font-size:44px;
  line-height:1.1;

  color:#123a2d;
}

.t-location-copy p{
  max-width:760px;

  margin:0 0 18px;

  font-size:17px;
  line-height:1.75;

  color:#465e56;
}

.t-location-lead{
  font-size:19px !important;

  color:#263f37 !important;
}


/* =========================================================
   CIUDADES
   ========================================================= */

.t-coverage-tags{
  display:flex;

  flex-wrap:wrap;

  gap:10px;

  margin-top:30px;
}

.t-coverage-tags span{
  padding:9px 14px;

  border:1px solid #d2dfda;

  border-radius:999px;

  background:#ffffff;

  color:#18483e;

  font-size:14px;
  font-weight:600;

  transition:
    transform .22s ease,
    background .22s ease,
    color .22s ease,
    border-color .22s ease,
    box-shadow .22s ease;
}

@media(hover:hover){

  .t-coverage-tags span:hover{
    transform:translateY(-3px);

    background:#0d6b5d;

    border-color:#0d6b5d;

    color:#ffffff;

    box-shadow:
      0 8px 18px
      rgba(13,107,93,.16);
  }

}


/* =========================================================
   PANEL DERECHO
   ========================================================= */

.t-location-panel{
  position:relative;

  overflow:hidden;

  padding:34px;

  border:
    1px solid rgba(18,58,45,.10);

  border-radius:24px;

  background:
    linear-gradient(
      145deg,
      #ffffff,
      #edf5f2
    );

  box-shadow:
    0 18px 45px
    rgba(18,58,45,.08);

  transition:
    transform .3s ease,
    box-shadow .3s ease,
    border-color .3s ease;
}


/* detalle decorativo */

.t-location-panel::after{
  content:"";

  position:absolute;

  width:180px;
  height:180px;

  right:-90px;
  top:-90px;

  border-radius:50%;

  background:
    rgba(216,173,83,.10);

  transition:
    transform .35s ease;
}


/* cabecera */

.t-location-panel-head{
  position:relative;

  z-index:2;

  display:flex;

  align-items:center;

  gap:16px;

  padding-bottom:25px;

  margin-bottom:10px;

  border-bottom:
    1px solid rgba(18,58,45,.10);
}

.t-location-icon{
  width:58px;
  height:58px;

  flex:0 0 auto;

  display:flex;

  align-items:center;
  justify-content:center;

  border-radius:17px;

  background:#123f34;

  color:#d8ad53;

  font-family:"Montserrat",sans-serif;

  font-size:20px;
  font-weight:800;
}

.t-location-panel-head small{
  display:block;

  margin-bottom:5px;

  color:#a27c31;

  font-size:11px;
  font-weight:800;

  letter-spacing:1.5px;
}

.t-location-panel-head h3{
  margin:0;

  font-family:"Montserrat",sans-serif;

  font-size:23px;

  color:#123a2d;
}


/* =========================================================
   INFORMACIÓN
   ========================================================= */

.t-location-info{
  position:relative;

  z-index:2;
}

.t-location-item{
  display:grid;

  grid-template-columns:42px 1fr;

  gap:15px;

  padding:20px 0;

  border-bottom:
    1px solid rgba(18,58,45,.09);

  transition:
    transform .25s ease,
    padding-left .25s ease;
}

.t-location-item:last-child{
  border-bottom:none;
}

.t-location-item-number{
  width:38px;
  height:38px;

  display:flex;

  align-items:center;
  justify-content:center;

  border-radius:12px;

  background:#e1ece8;

  color:#0d6b5d;

  font-size:12px;
  font-weight:800;

  transition:
    background .25s ease,
    color .25s ease,
    transform .25s ease;
}

.t-location-item strong{
  display:block;

  margin-bottom:4px;

  color:#123a2d;

  font-size:16px;
}

.t-location-item p{
  margin:0;

  color:#53665f;

  font-size:15px;
}


/* =========================================================
   BOTONES
   ========================================================= */

.t-location-actions{
  position:relative;

  z-index:2;

  display:flex;

  gap:12px;

  margin-top:25px;
}

.t-location-actions a{
  min-height:50px;

  display:inline-flex;

  align-items:center;
  justify-content:center;

  padding:0 20px;

  border-radius:10px;

  font-family:"Montserrat",sans-serif;

  font-size:13px;
  font-weight:700;

  text-decoration:none;

  transition:
    transform .22s ease,
    box-shadow .22s ease,
    background .22s ease,
    color .22s ease;
}

.t-location-primary{
  background:#0d6b5d;

  color:#ffffff;
}

.t-location-secondary{
  border:1px solid #0d6b5d;

  background:#ffffff;

  color:#0d6b5d;
}


/* =========================================================
   HOVER
   ========================================================= */

@media(hover:hover){

  .t-location-panel:hover{
    transform:translateY(-7px);

    border-color:
      rgba(216,173,83,.35);

    box-shadow:
      0 28px 55px
      rgba(18,58,45,.13);
  }

  .t-location-panel:hover::after{
    transform:scale(1.3);
  }

  .t-location-item:hover{
    transform:translateX(5px);
  }

  .t-location-item:hover
  .t-location-item-number{
    transform:scale(1.08);

    background:#d8ad53;

    color:#123a2d;
  }

  .t-location-actions a:hover{
    transform:translateY(-3px);

    box-shadow:
      0 10px 22px
      rgba(18,58,45,.14);
  }

  .t-location-primary:hover{
    background:#095348;
  }

  .t-location-secondary:hover{
    background:#0d6b5d;

    color:#ffffff;
  }

}


/* =========================================================
   TABLET
   ========================================================= */

@media(max-width:900px){

  .t-location-grid{
    grid-template-columns:1fr;

    gap:38px;
  }

}


/* =========================================================
   MÓVIL
   ========================================================= */

@media(max-width:650px){

  .t-location-premium{
    padding:60px 0;
  }

  .t-location-copy h2{
    font-size:34px;
  }

  .t-location-panel{
    padding:25px 22px;
  }

  .t-location-actions{
    flex-direction:column;
  }

  .t-location-actions a{
    width:100%;
  }

}
/* =========================================================
   LOGO NIÁGARA - PANEL UBICACIÓN
   ========================================================= */

.t-location-panel-head .t-location-brandmark{
    width: 64px !important;
    height: 64px !important;
    min-width: 64px !important;
    flex: 0 0 64px !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    position: relative !important;

    background: #ffffff !important;
    border: 1px solid rgba(18,58,45,.14) !important;
    border-radius: 18px !important;

    padding: 7px !important;
    margin: 0 !important;

    overflow: hidden !important;

    box-shadow: 0 10px 24px rgba(18,58,45,.12);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.t-location-panel-head .t-location-brandmark img{
    width: 48px !important;
    height: 48px !important;

    max-width: 48px !important;
    max-height: 48px !important;

    object-fit: contain !important;

    display: block !important;

    position: static !important;
    inset: auto !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
}

@media (hover:hover){

    .t-location-panel-head .t-location-brandmark:hover{
        transform: translateY(-3px) scale(1.04);

        border-color: rgba(211,170,85,.65) !important;

        box-shadow:
            0 15px 30px rgba(18,58,45,.18);
    }
}

@media (max-width:768px){

    .t-location-panel-head .t-location-brandmark{
        width: 58px !important;
        height: 58px !important;
        min-width: 58px !important;
        flex-basis: 58px !important;

        padding: 6px !important;
        border-radius: 16px !important;
    }

    .t-location-panel-head .t-location-brandmark img{
        width: 44px !important;
        height: 44px !important;

        max-width: 44px !important;
        max-height: 44px !important;
    }
}
/* =========================================================
   FAQ - PREGUNTAS FRECUENTES
   ========================================================= */

.t-faq details{
    background:#ffffff;
    border:1px solid rgba(18,58,45,.12);
    border-radius:16px;
    margin-bottom:12px;
    overflow:hidden;

    box-shadow:0 5px 18px rgba(18,58,45,.05);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        border-color .25s ease;
}

.t-faq details:hover{
    transform:translateY(-2px);
    border-color:rgba(211,170,85,.55);
    box-shadow:0 12px 28px rgba(18,58,45,.10);
}

.t-faq summary{
    position:relative;

    padding:20px 58px 20px 22px;

    cursor:pointer;
    list-style:none;

    font-family:"Montserrat",sans-serif;
    font-weight:600;
    font-size:17px;
    line-height:1.45;
    color:#123A2D;
}

.t-faq summary::-webkit-details-marker{
    display:none;
}

.t-faq summary::after{
    content:"+";

    position:absolute;
    right:20px;
    top:50%;

    transform:translateY(-50%);

    width:32px;
    height:32px;

    display:flex;
    align-items:center;
    justify-content:center;

    border-radius:50%;

    background:#F5F0E6;
    color:#123A2D;

    font-size:24px;
    font-weight:400;

    transition:
        transform .25s ease,
        background-color .25s ease,
        color .25s ease;
}

.t-faq details[open] summary::after{
    content:"−";
    background:#123A2D;
    color:#ffffff;
}

.t-faq details[open]{
    border-color:rgba(211,170,85,.45);
}

.t-faq details p{
    margin:0;
    padding:0 22px 22px;

    font-size:16px;
    line-height:1.7;
    color:#42504A;
}


/* MÓVIL */

@media (max-width:768px){

    .t-faq details{
        border-radius:14px;
        margin-bottom:10px;
    }

    .t-faq summary{
        padding:17px 52px 17px 18px;

        font-size:15px;
        line-height:1.4;
    }

    .t-faq summary::after{
        right:16px;

        width:28px;
        height:28px;

        font-size:21px;
    }

    .t-faq details p{
        padding:0 18px 18px;

        font-size:14px;
        line-height:1.65;
    }
}
/* =========================================================
   FAQ - ELIMINAR FONDO BLANCO DEL CONTENEDOR
   ========================================================= */

.t-faq{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.t-faq-list,
.t-faq-container{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

/* Móvil */
@media (max-width:768px){

    .t-faq{
        background: transparent !important;
        padding: 0 !important;
    }

    .t-faq details{
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}
/* =========================================================
   SERPIENTE - ANIMACIÓN PROCESO DE INGRESO
   ========================================================= */

.t-snake-flow{
    position: relative;
}

/* Línea base */
.t-snake-line{
    position: absolute;
    overflow: hidden;
}

/* Línea animada */
.t-snake-line::after{
    content:"";
    position:absolute;
    inset:0;

    background: linear-gradient(
        180deg,
        #D3AA55 0%,
        #14705B 100%
    );

    transform: scaleY(0);
    transform-origin: top;

    transition: transform 1.5s cubic-bezier(.22,.61,.36,1);
}

/* Cuando la sección entra en pantalla */
.t-snake-flow.snake-started .t-snake-line::after{
    transform: scaleY(1);
}


/* Cada etapa */
.t-snake-step{
    opacity:0;
    transform:translateY(28px);

    transition:
        opacity .55s ease,
        transform .55s ease;
}

.t-snake-step.snake-visible{
    opacity:1;
    transform:translateY(0);
}


/* Nodo numerado */
.t-snake-node{
    transition:
        transform .32s ease,
        background-color .32s ease,
        box-shadow .32s ease,
        border-color .32s ease;
}

.t-snake-step.snake-visible .t-snake-node{
    transform:scale(1.08);

    box-shadow:
        0 0 0 7px rgba(211,170,85,.13),
        0 10px 25px rgba(18,58,45,.14);

    border-color:#D3AA55;
}


/* Tarjeta */
.t-snake-card{
    transition:
        transform .32s ease,
        box-shadow .32s ease,
        border-color .32s ease;
}

@media (hover:hover){

    .t-snake-step:hover .t-snake-card{
        transform:translateY(-5px);

        border-color:rgba(211,170,85,.65);

        box-shadow:
            0 18px 38px rgba(18,58,45,.13);
    }

    .t-snake-step:hover .t-snake-node{
        transform:scale(1.13);
    }
}


/* Último punto */
.t-snake-node-final{
    background:#D3AA55 !important;
    color:#123A2D !important;
}


/* Móvil */
@media (max-width:768px){

    .t-snake-step{
        transform:translateY(20px);
    }

    .t-snake-step.snake-visible{
        transform:none;
    }

    .t-snake-step.snake-visible .t-snake-node{
        transform:scale(1.04);
    }
}


/* Accesibilidad */
@media (prefers-reduced-motion:reduce){

    .t-snake-step{
        opacity:1 !important;
        transform:none !important;
    }

    .t-snake-line::after{
        transform:scaleY(1) !important;
        transition:none !important;
    }
}
/* Separación botones hero - móvil */
@media (max-width: 768px){

    .t-actions{
        display:flex !important;
        flex-direction:column !important;
        gap:14px !important;
    }

    .t-actions .t-btn{
        width:100% !important;
        margin:0 !important;
    }
}

/* Modalidades con detalles desplegables */

.t-program-grid {
  align-items: start;
}

.t-program-card {
  min-width: 0;
}

.t-program-details {
  margin-top: 26px;
  border-top: 1px solid #d8e2db;
}

.t-program-details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 64px;
  padding: 18px 0;
  color: #123f34;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.5;
  cursor: pointer;
  list-style: none;
}

.t-program-details > summary::-webkit-details-marker {
  display: none;
}

.t-program-details > summary::marker {
  content: "";
}

.t-program-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  border: 1px solid #b8c8bb;
  border-radius: 50%;
  background: #eef3e9;
  color: #123f34;
}

.t-program-toggle::before {
  content: "+";
  font-size: 25px;
  font-weight: 400;
}

.t-program-details[open] > summary .t-program-toggle {
  background: #123f34;
  border-color: #123f34;
  color: #ffffff;
}

.t-program-details[open] > summary .t-program-toggle::before {
  content: "−";
}

.t-program-details > summary .t-program-label-open {
  display: none;
}

.t-program-details[open] > summary .t-program-label-closed {
  display: none;
}

.t-program-details[open] > summary .t-program-label-open {
  display: inline;
}

.t-program-details > summary:focus-visible {
  outline: 3px solid #947129;
  outline-offset: 5px;
  border-radius: 6px;
}

.t-program-content {
  padding: 8px 0 4px;
  border-top: 1px solid #e3e9e3;
}

.t-program-content h4 {
  margin: 25px 0 12px;
  color: #123f34;
  font-size: 17px;
  line-height: 1.5;
}

.t-program-content ul {
  padding-left: 22px;
}

.t-program-content li {
  margin-bottom: 10px;
}

.t-program-content .t-btn {
  box-sizing: border-box;
  max-width: 100%;
  margin-top: 12px;
  white-space: normal;
  text-align: center;
}

@media (hover: hover) {
  .t-program-details > summary:hover {
    color: #0d6b5d;
  }

  .t-program-details > summary:hover .t-program-toggle {
    border-color: #0d6b5d;
  }
}

@media (max-width: 768px) {
  .t-program-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .t-program-details > summary {
    font-size: 15px;
  }

  .t-program-content .t-btn {
    width: 100%;
  }
}
/* Presentación compacta del equipo */

.t-team-brief {
  padding: 36px 0;
  background: #123f34;
}

.t-team-brief-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.t-team-brief-copy {
  min-width: 0;
  max-width: 700px;
}

.t-team-brief .t-eyebrow {
  margin-bottom: 10px;
  color: #e3c579;
}

.t-team-brief h2 {
  margin: 0 0 10px;
  color: #ffffff;
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.2;
}

.t-team-brief p {
  margin: 0;
  color: #e0eae4;
  font-size: 16px;
  line-height: 1.7;
}

.t-team-brief-link {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  flex-shrink: 0;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid #a9bfb4;
  border-radius: 12px;
  color: #ffffff;
  font-weight: 700;
  text-decoration: none;
}

.t-team-brief-link:focus-visible {
  outline: 3px solid #e3c579;
  outline-offset: 5px;
}

@media (hover: hover) {
  .t-team-brief-link:hover {
    background: #ffffff;
    border-color: #ffffff;
    color: #123f34;
  }
}

@media (max-width: 768px) {
  .t-team-brief-inner {
    flex-direction: column;
    align-items: stretch;
    gap: 22px;
  }

  .t-team-brief-link {
    align-self: flex-start;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* Tarjetas dentro del enfoque desplegable */

.t-approach-content {
  padding-top: 24px;
}

.t-approach-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 24px;
}

.t-approach-card {
  min-width: 0;
  padding: 28px;
  border: 1px solid #d8e2db;
  border-radius: 20px;
  background: #f7f9f4;
}

.t-approach-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  margin-bottom: 18px;
  border-radius: 12px;
  background: #e8eedf;
  color: #466035;
  font-size: 14px;
  font-weight: 700;
}

.t-approach-card h3 {
  margin: 0 0 16px;
  color: #123f34;
  font-size: 21px;
  line-height: 1.35;
}

.t-approach-card p,
.t-approach-card li {
  color: #46594f;
  font-size: 16px;
  line-height: 1.75;
}

.t-approach-card p {
  margin: 0 0 14px;
}

.t-approach-card p:last-child {
  margin-bottom: 0;
}

.t-approach-card ul {
  margin: 14px 0 0;
  padding-left: 20px;
}

.t-approach-card li {
  margin-bottom: 8px;
}

.t-approach-card-featured {
  background: #123f34;
  border-color: #123f34;
}

.t-approach-card-featured h3 {
  color: #ffffff;
}

.t-approach-card-featured p {
  color: #e3ece6;
}

.t-approach-card-featured .t-approach-number {
  background: #e3c579;
  color: #123f34;
}

.t-approach-card-wide {
  grid-column: 1 / -1;
  background: #ffffff;
}

.t-approach-modes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.t-approach-modes > div {
  min-width: 0;
}

.t-approach-modes h4 {
  margin: 0 0 10px;
  color: #123f34;
  font-size: 17px;
}

.t-approach-card .t-approach-note {
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid #d8e2db;
  font-size: 15px;
}

@media (max-width: 768px) {
  .t-approach-grid,
  .t-approach-modes {
    grid-template-columns: minmax(0, 1fr);
  }

  .t-approach-card {
    padding: 24px 20px;
  }

  .t-approach-card h3 {
    font-size: 20px;
  }
}

/* Todas las tarjetas del enfoque en verde */

.t-approach-grid .t-approach-card {
  background: #123f34;
  border-color: #123f34;
}

.t-approach-grid .t-approach-card h3,
.t-approach-grid .t-approach-card h4 {
  color: #ffffff;
}

.t-approach-grid .t-approach-card p,
.t-approach-grid .t-approach-card li {
  color: #e3ece6;
}

.t-approach-grid .t-approach-number {
  background: #e3c579;
  color: #123f34;
}

.t-approach-grid .t-approach-note {
  border-top-color: #68877a;
}

/* Botón Conocer modalidades del encabezado */
.t-hero .t-actions a[href="#modalidades"] {
  background: #ffffff;
  color: #123f34;
  border: 1px solid #123f34;
  box-shadow: 0 4px 14px rgba(18, 63, 52, .10);
}

.t-hero .t-actions a[href="#modalidades"]::after {
  content: "↓";
  margin-left: 12px;
}

.t-hero .t-actions a[href="#modalidades"]:hover {
  background: #f0f4eb;
}

.t-hero .t-actions a[href="#modalidades"]:focus-visible {
  outline: 3px solid #947129;
  outline-offset: 4px;
}

