/* =====================================================================
   DR. CAMILO HENAO — SISTEMA DE DISEÑO (styles.css)
   Estética: lujo sobrio, negro + dorado. Mobile-first. Foco en conversión.
   ---------------------------------------------------------------------
   GUÍA DE LECTURA (para orientarte rápido):
     0)  Reset / box-sizing / base
     1)  :root — TODOS los tokens de diseño (colores, espaciado, radios…)
     2)  Tipografía (Cormorant para títulos, Manrope para cuerpo)
     3)  Layout (.container, .section, grids)
     4)  Componentes (.btn, .card, .badge/.pill, .price, hairlines)
     5)  Header / Nav (barra fija translúcida + desplegable + hamburguesa)
     6)  Footer (multi-columna + legales)
     7)  Botones flotantes (.float-cta dorado + .float-wa WhatsApp)
     9)  Lightbox de galería (.lightbox)
    10)  Timeline "recorrido del paciente"
    11)  Intro preloader (#intro-preloader con el video)
    12)  Utilidades de animación (.reveal) + prefers-reduced-motion
    13)  Responsive (breakpoints ~1100px y ~760px)
   NO borres estos comentarios: son la guía de Daniel para editar.
   ===================================================================== */


/* =====================================================================
   0) RESET LIGERO + BOX-SIZING + BASE
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

/* OJO: el scroll suave lo controla Lenis desde JS. Por eso aquí dejamos
   scroll-behavior:auto. Si Lenis NO carga (o reduced-motion), el navegador
   usa su scroll normal. */
html { scroll-behavior: auto; }

body {
  margin: 0;
  background: var(--ink);
  color: var(--cream);
  font-family: var(--font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}

/* =====================================================================
   Turismo Médico — FASE 2A
   Primera mitad de la landing española. Todo el sistema permanece
   encapsulado bajo body.tourism-landing para proteger el resto del sitio.
   ===================================================================== */

.tourism-landing {
  --tourism-section-gap: clamp(5.25rem, 8vw, 8rem);
  --tourism-hairline: rgba(214, 165, 58, .2);
  --tourism-muted-line: rgba(247, 241, 231, .1);
  background: var(--ink);
}

.tourism-landing main {
  min-width: 0;
  overflow: clip;
}

.tourism-landing .tourism-hero {
  position: relative;
  padding-top: calc(var(--header-h) + clamp(2.4rem, 4.5vw, 4.5rem));
  padding-bottom: clamp(2.5rem, 4.2vw, 4.25rem);
  overflow: hidden;
  background:
    radial-gradient(circle at 78% 26%, rgba(214, 165, 58, .09), transparent 28%),
    linear-gradient(180deg, rgba(247, 241, 231, .025), transparent 44%),
    var(--ink);
}

.tourism-landing .tourism-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .42;
  background: repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(247, 241, 231, .025) 25%);
}

.tourism-landing .tourism-hero__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .72fr);
  gap: clamp(2.5rem, 6vw, 7.5rem);
  align-items: center;
}

.tourism-landing .tourism-hero__content {
  min-width: 0;
  max-width: 770px;
}

.tourism-landing .tourism-hero__content .eyebrow {
  margin-bottom: clamp(1rem, 1.5vw, 1.35rem);
}

.tourism-landing .tourism-hero h1 {
  max-width: none;
  margin: 0;
  font-size: clamp(3.35rem, 5.45vw, 6rem);
  line-height: .91;
  letter-spacing: -.038em;
  text-wrap: balance;
}

.tourism-landing .tourism-hero h1 span {
  color: var(--cream);
}

.tourism-landing .tourism-hero .lead {
  max-width: 58ch;
  margin: clamp(1.35rem, 2vw, 1.85rem) 0 0;
  color: var(--warm-gray);
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.72;
}

.tourism-landing .tourism-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin-top: clamp(1.6rem, 2.5vw, 2.35rem);
}

.tourism-landing .tourism-hero__portrait {
  position: relative;
  width: min(100%, 490px);
  margin: 0;
  justify-self: end;
  overflow: hidden;
  aspect-ratio: 4 / 5;
  border: 1px solid rgba(214, 165, 58, .28);
  border-radius: 2px;
  background: var(--charcoal);
}

.tourism-landing .tourism-hero__portrait::after,
.tourism-landing .tourism-split__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.tourism-landing .tourism-hero__portrait::after {
  background: linear-gradient(180deg, transparent 54%, rgba(5, 5, 5, .88) 100%);
}

.tourism-landing .tourism-hero__portrait picture,
.tourism-landing .tourism-hero__portrait img,
.tourism-landing .tourism-split__media picture,
.tourism-landing .tourism-split__media img,
.tourism-landing .tourism-result picture,
.tourism-landing .tourism-result img {
  display: block;
  width: 100%;
  height: 100%;
}

.tourism-landing .tourism-hero__portrait img {
  object-fit: cover;
  object-position: 50% 34%;
}

.tourism-landing .tourism-hero__portrait figcaption {
  position: absolute;
  z-index: 1;
  right: clamp(1.15rem, 2vw, 1.75rem);
  bottom: clamp(1.15rem, 2vw, 1.75rem);
  left: clamp(1.15rem, 2vw, 1.75rem);
  display: grid;
  gap: .2rem;
}

.tourism-landing .tourism-hero__portrait figcaption span {
  color: var(--cream);
  font-family: var(--font-head);
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1;
}

.tourism-landing .tourism-hero__portrait figcaption small {
  color: var(--warm-gray);
  font-size: .68rem;
  line-height: 1.45;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tourism-landing .tourism-trust {
  position: relative;
  z-index: 2;
  border-top: 1px solid var(--tourism-hairline);
  border-bottom: 1px solid var(--tourism-muted-line);
  background: #090909;
}

.tourism-landing .tourism-trust__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.tourism-landing .tourism-trust__list li {
  display: flex;
  min-width: 0;
  min-height: 76px;
  align-items: center;
  gap: .75rem;
  padding: 1rem clamp(.8rem, 1.8vw, 1.65rem);
  color: var(--cream);
  font-size: clamp(.75rem, .9vw, .87rem);
  font-weight: 600;
  line-height: 1.35;
}

.tourism-landing .tourism-trust__list li + li {
  border-left: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-trust__list li span {
  flex: 0 0 auto;
  color: var(--gold);
  font-family: var(--font-head);
  font-size: 1rem;
}

.tourism-landing .tourism-case-first.section,
.tourism-landing .tourism-virtual.section,
.tourism-landing .tourism-authority.section,
.tourism-landing .tourism-options.section,
.tourism-landing .tourism-results.section {
  padding: var(--tourism-section-gap) 0 0;
}

.tourism-landing .tourism-case-first {
  background:
    linear-gradient(120deg, rgba(214, 165, 58, .035), transparent 38%),
    #080808;
}

.tourism-landing .tourism-case-first__intro,
.tourism-landing .tourism-results__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(330px, .72fr);
  gap: clamp(2.5rem, 7vw, 7.5rem);
  align-items: end;
}

.tourism-landing .tourism-case-first__intro h2,
.tourism-landing .tourism-results__intro h2 {
  max-width: 15ch;
  margin-bottom: 0;
  font-size: clamp(2.7rem, 4.4vw, 5rem);
  line-height: .96;
}

.tourism-landing .tourism-case-first__statement {
  max-width: 52ch;
  padding-bottom: .35rem;
}

.tourism-landing .tourism-case-first__statement p {
  margin: 0 0 1.5rem;
  color: var(--warm-gray);
  line-height: 1.78;
}

.tourism-landing .tourism-principles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: clamp(3.5rem, 6vw, 5.5rem) 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--tourism-hairline);
  border-bottom: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-principles li {
  min-width: 0;
  padding: clamp(1.8rem, 3.2vw, 3rem) clamp(1.4rem, 2.8vw, 2.6rem);
}

.tourism-landing .tourism-principles li:first-child {
  padding-left: 0;
}

.tourism-landing .tourism-principles li:last-child {
  padding-right: 0;
}

.tourism-landing .tourism-principles li + li {
  border-left: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-principles li > span,
.tourism-landing .tourism-option__index {
  display: block;
  margin-bottom: clamp(1.3rem, 2vw, 2rem);
  color: var(--gold);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.tourism-landing .tourism-principles h3 {
  margin-bottom: .75rem;
  font-size: clamp(1.45rem, 2.1vw, 2rem);
}

.tourism-landing .tourism-principles p {
  max-width: 38ch;
  margin: 0;
  color: var(--warm-gray);
  font-size: .92rem;
  line-height: 1.7;
}

.tourism-landing .tourism-virtual {
  background: #080808;
}

.tourism-landing .tourism-split {
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(360px, .82fr);
  gap: clamp(2.5rem, 6.5vw, 7rem);
  align-items: center;
}

.tourism-landing .tourism-split__media {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--tourism-muted-line);
  border-radius: 2px;
  background: var(--charcoal);
}

.tourism-landing .tourism-virtual__media {
  aspect-ratio: 16 / 10;
}

.tourism-landing .tourism-virtual__media::after {
  background: linear-gradient(180deg, transparent 64%, rgba(5, 5, 5, .35));
}

.tourism-landing .tourism-virtual__media img {
  object-fit: cover;
  object-position: 50% 45%;
}

.tourism-landing .tourism-split__content {
  min-width: 0;
}

.tourism-landing .tourism-split__content h2 {
  max-width: 14ch;
  margin-bottom: 1.25rem;
  font-size: clamp(2.55rem, 4.15vw, 4.65rem);
  line-height: .96;
}

.tourism-landing .tourism-split__content .lead {
  max-width: 54ch;
  color: var(--warm-gray);
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.75;
}

.tourism-landing .tourism-virtual__facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: clamp(1.75rem, 3vw, 2.5rem) 0 0;
  border-top: 1px solid var(--tourism-hairline);
  border-bottom: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-virtual__facts div {
  min-width: 0;
  padding: 1.4rem 0;
}

.tourism-landing .tourism-virtual__facts div + div {
  padding-left: clamp(1rem, 2vw, 1.75rem);
  border-left: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-virtual__facts dt {
  margin-bottom: .45rem;
  color: var(--warm-gray);
  font-size: .72rem;
}

.tourism-landing .tourism-virtual__facts dd {
  margin: 0;
  color: var(--gold-light);
  font-family: var(--font-head);
  font-size: clamp(1.35rem, 2vw, 1.9rem);
  line-height: 1.08;
}

.tourism-landing .tourism-inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .8rem 1.25rem;
  align-items: center;
  margin-top: clamp(1.5rem, 2.8vw, 2.25rem);
}

.tourism-landing .tourism-authority {
  background:
    linear-gradient(130deg, transparent 52%, rgba(214, 165, 58, .045)),
    var(--ink);
}

.tourism-landing .tourism-split--authority {
  grid-template-columns: minmax(370px, .88fr) minmax(320px, .66fr);
}

.tourism-landing .tourism-authority__content {
  max-width: 660px;
}

.tourism-landing .tourism-authority__media {
  width: min(100%, 520px);
  justify-self: end;
  aspect-ratio: 4 / 5;
}

.tourism-landing .tourism-authority__media::after {
  background: linear-gradient(180deg, transparent 72%, rgba(5, 5, 5, .2));
}

.tourism-landing .tourism-authority__media img {
  object-fit: cover;
}

.tourism-landing .tourism-credentials {
  margin: clamp(1.8rem, 3vw, 2.5rem) 0;
  border-top: 1px solid var(--tourism-hairline);
}

.tourism-landing .tourism-credentials article {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 1rem;
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-credentials article > span {
  padding-top: .25rem;
  color: var(--gold);
  font-size: .7rem;
  font-weight: 700;
}

.tourism-landing .tourism-credentials h3 {
  margin-bottom: .35rem;
  color: var(--cream);
  font-family: var(--font-body);
  font-size: .95rem;
  font-weight: 650;
  line-height: 1.45;
}

.tourism-landing .tourism-credentials p {
  margin: 0;
  color: var(--warm-gray);
  font-size: .82rem;
  line-height: 1.55;
}

.tourism-landing .tourism-options {
  background: #080808;
}

.tourism-landing .tourism-options__head {
  max-width: 960px;
  margin-inline: auto;
}

.tourism-landing .tourism-options__head h2 {
  max-width: 18ch;
  margin-inline: auto;
  font-size: clamp(2.55rem, 4.3vw, 4.8rem);
  line-height: .96;
}

.tourism-landing .tourism-options__head .lead {
  max-width: 58ch;
  margin-inline: auto;
}

.tourism-landing .tourism-options__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: clamp(2.8rem, 5vw, 4.5rem);
  border-top: 1px solid var(--tourism-hairline);
  border-bottom: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-option {
  position: relative;
  min-width: 0;
  padding: clamp(1.6rem, 3vw, 2.8rem);
  color: var(--cream);
  transition: background-color 260ms var(--ease), color 260ms var(--ease);
}

.tourism-landing .tourism-option:first-child {
  padding-left: 0;
}

.tourism-landing .tourism-option:last-child {
  padding-right: 0;
}

.tourism-landing .tourism-option + .tourism-option {
  border-left: 1px solid var(--tourism-muted-line);
}

.tourism-landing .tourism-option__icon {
  display: block;
  width: clamp(84px, 9vw, 118px);
  aspect-ratio: 1;
  margin-bottom: clamp(1rem, 2vw, 1.75rem);
}

.tourism-landing .tourism-option__icon picture,
.tourism-landing .tourism-option__icon img {
  display: block;
  width: 100%;
  height: 100%;
}

.tourism-landing .tourism-option__icon img {
  object-fit: contain;
}

.tourism-landing .tourism-option__index {
  position: absolute;
  top: clamp(1.8rem, 3vw, 3rem);
  right: clamp(1.4rem, 2.8vw, 2.6rem);
  margin: 0;
}

.tourism-landing .tourism-option:last-child .tourism-option__index {
  right: 0;
}

.tourism-landing .tourism-option h3 {
  margin-bottom: .7rem;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}

.tourism-landing .tourism-option p {
  max-width: 36ch;
  margin: 0 0 1.25rem;
  color: var(--warm-gray);
  font-size: .9rem;
  line-height: 1.7;
}

.tourism-landing .tourism-option__action {
  color: var(--gold-light);
  font-size: .76rem;
  font-weight: 650;
  letter-spacing: .02em;
}

.tourism-landing .tourism-options__note {
  max-width: 62ch;
  margin: 1.25rem auto 0;
  color: var(--warm-gray);
  font-size: .78rem;
  line-height: 1.65;
  text-align: center;
}

.tourism-landing .tourism-results.section {
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
  background:
    linear-gradient(180deg, #080808, var(--ink) 30%),
    var(--ink);
}

.tourism-landing .tourism-results__intro > div:last-child {
  max-width: 54ch;
}

.tourism-landing .tourism-results__intro .lead {
  margin: 0 0 1.75rem;
  color: var(--warm-gray);
  font-size: clamp(1rem, 1.2vw, 1.12rem);
  line-height: 1.75;
}

.tourism-landing .tourism-results__grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: clamp(.6rem, 1.2vw, 1rem);
  align-items: end;
  margin-top: clamp(3rem, 5.5vw, 5rem);
}

.tourism-landing .tourism-result {
  min-width: 0;
  color: var(--cream);
}

.tourism-landing .tourism-result picture {
  overflow: hidden;
  aspect-ratio: 1;
  border: 1px solid rgba(247, 241, 231, .08);
  border-radius: 2px;
  background: var(--charcoal);
}

.tourism-landing .tourism-result img {
  object-fit: contain;
  transition: transform 420ms var(--ease), filter 420ms var(--ease);
}

.tourism-landing .tourism-result > span {
  display: grid;
  gap: .25rem;
  padding: .85rem .15rem 0;
}

.tourism-landing .tourism-result strong {
  color: var(--cream);
  font-family: var(--font-head);
  font-size: clamp(1.2rem, 1.6vw, 1.5rem);
  font-weight: 600;
  line-height: 1.1;
}

.tourism-landing .tourism-result small {
  color: var(--warm-gray);
  font-size: .7rem;
  letter-spacing: .04em;
}

.tourism-landing .tourism-results__disclaimer {
  max-width: 82ch;
  margin: clamp(2rem, 3.5vw, 3rem) auto 0;
  color: var(--warm-gray);
  font-size: .72rem;
  line-height: 1.65;
  text-align: center;
}

.tourism-landing .tourism-option:focus-visible,
.tourism-landing .tourism-result:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 5px;
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-option:hover {
    background: rgba(214, 165, 58, .035);
  }

  .tourism-landing .tourism-result:hover img {
    transform: scale(1.012);
    filter: brightness(1.035);
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .tourism-landing {
    --tourism-section-gap: clamp(4.75rem, 7vw, 6rem);
  }

  .tourism-landing .tourism-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(290px, .68fr);
    gap: clamp(2rem, 4vw, 3.5rem);
  }

  .tourism-landing .tourism-hero h1 {
    font-size: clamp(3.15rem, 5.8vw, 4.6rem);
  }

  .tourism-landing .tourism-split,
  .tourism-landing .tourism-split--authority {
    grid-template-columns: minmax(0, 1fr) minmax(310px, .84fr);
    gap: clamp(2rem, 4.5vw, 4rem);
  }

  .tourism-landing .tourism-case-first__intro,
  .tourism-landing .tourism-results__intro {
    gap: clamp(2rem, 5vw, 4rem);
  }

  .tourism-landing .tourism-trust__list li {
    padding-inline: .75rem;
  }
}

@media (max-width: 767px) {
  .tourism-landing {
    --tourism-section-gap: clamp(4.5rem, 16vw, 5.4rem);
  }

  .tourism-landing .tourism-hero {
    padding-top: calc(var(--header-h) + 1.8rem);
    padding-bottom: 1.75rem;
  }

  .tourism-landing .tourism-hero::before {
    background: linear-gradient(180deg, rgba(214, 165, 58, .035), transparent 42%);
  }

  .tourism-landing .tourism-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.65rem;
  }

  .tourism-landing .tourism-hero__content {
    max-width: 100%;
  }

  .tourism-landing .tourism-hero__content .eyebrow {
    margin-bottom: .8rem;
    font-size: .67rem;
  }

  .tourism-landing .tourism-hero h1 {
    max-width: 100%;
    font-size: clamp(2.55rem, 11.6vw, 3.2rem);
    line-height: .93;
  }

  .tourism-landing .tourism-hero .lead {
    max-width: 36ch;
    margin-top: 1rem;
    font-size: .94rem;
    line-height: 1.58;
  }

  .tourism-landing .tourism-hero__actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
    margin-top: 1.25rem;
  }

  .tourism-landing .tourism-hero__actions .btn {
    width: 100%;
    min-height: 48px;
  }

  .tourism-landing .tourism-hero__portrait {
    width: 100%;
    height: clamp(250px, 67vw, 310px);
    justify-self: stretch;
    aspect-ratio: auto;
  }

  .tourism-landing .tourism-hero__portrait img {
    object-position: 50% 28%;
  }

  .tourism-landing .tourism-hero__portrait figcaption {
    right: 1rem;
    bottom: .9rem;
    left: 1rem;
  }

  .tourism-landing .tourism-trust__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tourism-landing .tourism-trust__list li {
    min-height: 64px;
    padding: .8rem .65rem;
    font-size: .69rem;
  }

  .tourism-landing .tourism-trust__list li:nth-child(3) {
    border-left: 0;
  }

  .tourism-landing .tourism-trust__list li:nth-child(n + 3) {
    border-top: 1px solid var(--tourism-muted-line);
  }

  .tourism-landing .tourism-case-first__intro,
  .tourism-landing .tourism-results__intro,
  .tourism-landing .tourism-split,
  .tourism-landing .tourism-split--authority {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.8rem;
  }

  .tourism-landing .tourism-case-first__intro h2,
  .tourism-landing .tourism-results__intro h2,
  .tourism-landing .tourism-options__head h2,
  .tourism-landing .tourism-split__content h2 {
    max-width: 100%;
    font-size: clamp(2.35rem, 10.4vw, 3rem);
    line-height: .98;
  }

  .tourism-landing .tourism-case-first__statement {
    padding: 0;
  }

  .tourism-landing .tourism-principles {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2.75rem;
  }

  .tourism-landing .tourism-principles li,
  .tourism-landing .tourism-principles li:first-child,
  .tourism-landing .tourism-principles li:last-child {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: .25rem .85rem;
    padding: 1.4rem 0;
  }

  .tourism-landing .tourism-principles li + li {
    border-top: 1px solid var(--tourism-muted-line);
    border-left: 0;
  }

  .tourism-landing .tourism-principles li > span {
    grid-row: 1 / span 2;
    margin: .25rem 0 0;
  }

  .tourism-landing .tourism-principles h3,
  .tourism-landing .tourism-principles p {
    grid-column: 2;
  }

  .tourism-landing .tourism-principles h3 {
    margin-bottom: .35rem;
    font-size: 1.55rem;
  }

  .tourism-landing .tourism-virtual__media {
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-virtual__media img {
    object-position: 50% 50%;
  }

  .tourism-landing .tourism-virtual__facts dd {
    font-size: clamp(1.2rem, 5.5vw, 1.55rem);
  }

  .tourism-landing .tourism-inline-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }

  .tourism-landing .tourism-inline-actions .btn--gold {
    width: 100%;
  }

  .tourism-landing .tourism-authority__media {
    width: 100%;
    max-height: 570px;
    justify-self: stretch;
  }

  .tourism-landing .tourism-options__head .lead {
    font-size: .96rem;
  }

  .tourism-landing .tourism-options__grid {
    grid-template-columns: minmax(0, 1fr);
    margin-top: 2.75rem;
  }

  .tourism-landing .tourism-option,
  .tourism-landing .tourism-option:first-child,
  .tourism-landing .tourism-option:last-child {
    display: grid;
    grid-template-columns: 84px minmax(0, 1fr);
    column-gap: 1rem;
    padding: 1.35rem 0;
  }

  .tourism-landing .tourism-option + .tourism-option {
    border-top: 1px solid var(--tourism-muted-line);
    border-left: 0;
  }

  .tourism-landing .tourism-option__icon {
    grid-row: 1 / span 4;
    width: 84px;
    margin: 0;
  }

  .tourism-landing .tourism-option__index {
    position: static;
    grid-column: 2;
    margin: 0 0 .45rem;
  }

  .tourism-landing .tourism-option h3,
  .tourism-landing .tourism-option p,
  .tourism-landing .tourism-option__action {
    grid-column: 2;
  }

  .tourism-landing .tourism-option h3 {
    margin-bottom: .4rem;
    font-size: 1.65rem;
  }

  .tourism-landing .tourism-option p {
    margin-bottom: .8rem;
    font-size: .84rem;
  }

  .tourism-landing .tourism-results__intro > div:last-child {
    max-width: 100%;
  }

  .tourism-landing .tourism-results__intro .btn {
    width: 100%;
  }

  .tourism-landing .tourism-results__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.5rem;
    margin-top: 2.75rem;
  }

  .tourism-landing .tourism-result > span {
    padding-top: .7rem;
  }

  .tourism-landing .tourism-results__disclaimer {
    margin-top: 2.25rem;
  }

  .tourism-landing .tourism-results.section {
    padding-bottom: 1.25rem;
  }
}

@media (max-width: 389px) {
  .tourism-landing .tourism-hero h1 {
    font-size: clamp(2.4rem, 11.4vw, 2.68rem);
  }

  .tourism-landing .tourism-hero__portrait {
    height: 245px;
  }

  .tourism-landing .tourism-trust__list li {
    gap: .5rem;
    padding-inline: .5rem;
  }

  .tourism-landing .tourism-virtual__facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .tourism-landing .tourism-virtual__facts div + div {
    padding-left: 0;
    border-top: 1px solid var(--tourism-muted-line);
    border-left: 0;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .tourism-landing .tourism-enter {
    animation: tourism-enter 720ms var(--ease-out) both;
  }

  .tourism-landing .tourism-enter--2 {
    animation-delay: 70ms;
  }

  .tourism-landing .tourism-enter--3 {
    animation-delay: 140ms;
  }

  .tourism-landing .tourism-enter--4,
  .tourism-landing .tourism-enter--image {
    animation-delay: 210ms;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-enter,
  .tourism-landing .tourism-result img,
  .tourism-landing .tourism-option {
    animation: none !important;
    transition: none !important;
  }
}

/* =========================================================
   TURISMO MÉDICO — FASE 2B
   Segunda mitad encapsulada; HTML completo con mejoras nativas.
   ========================================================= */
.tourism-landing .tourism-results.section {
  padding-bottom: 0;
}

.tourism-landing .tourism-route.section,
.tourism-landing .tourism-bogota.section,
.tourism-landing .tourism-stay.section,
.tourism-landing .tourism-qualification.section,
.tourism-landing .tourism-mid-cta.section,
.tourism-landing .tourism-faq.section,
.tourism-landing .tourism-closing-section.section {
  padding: var(--tourism-section-gap) 0 0;
}

.tourism-landing .tourism-route {
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(214,165,58,.025), transparent 30%),
    var(--bg);
}

.tourism-landing .tourism-route__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .65fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: end;
  max-width: 76rem;
}

.tourism-landing .tourism-route__intro .eyebrow {
  grid-column: 1 / -1;
  margin-bottom: calc(clamp(2rem, 6vw, 7rem) * -.78);
}

.tourism-landing .tourism-route__intro h2 {
  max-width: 14ch;
  margin: 0;
  font-size: clamp(2.35rem, 4.7vw, 4.9rem);
  line-height: .98;
}

.tourism-landing .tourism-route__intro .lead {
  max-width: 31rem;
  margin: 0 0 .3rem;
}

.tourism-landing .tourism-route__timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: clamp(3.25rem, 6vw, 5.75rem) 0 0;
  padding: 0;
  list-style: none;
  counter-reset: tourism-route;
}

.tourism-landing .tourism-route__timeline::before {
  content: "";
  position: absolute;
  top: 1rem;
  right: 0;
  left: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(214,165,58,.68), rgba(214,165,58,.1));
}

.tourism-landing .tourism-route__timeline li {
  position: relative;
  min-width: 0;
  padding: 3.15rem clamp(1.15rem, 2vw, 2rem) 0 0;
}

.tourism-landing .tourism-route__timeline li + li {
  padding-left: clamp(1.15rem, 2vw, 2rem);
  border-left: 1px solid rgba(214,165,58,.14);
}

.tourism-landing .tourism-route__timeline li::before {
  content: "";
  position: absolute;
  top: .66rem;
  left: 0;
  z-index: 1;
  width: .72rem;
  height: .72rem;
  border: 1px solid rgba(243,200,90,.86);
  border-radius: 50%;
  background: var(--bg);
  box-shadow: 0 0 0 5px var(--bg);
}

.tourism-landing .tourism-route__timeline li + li::before {
  left: clamp(1.15rem, 2vw, 2rem);
}

.tourism-landing .tourism-route__number {
  display: block;
  margin-bottom: .85rem;
  color: var(--gold-light);
  font: 700 .72rem/1 var(--font-sans);
  letter-spacing: .14em;
}

.tourism-landing .tourism-route__timeline h3 {
  min-height: 2.4em;
  margin: 0 0 .65rem;
  font-size: clamp(1.12rem, 1.55vw, 1.42rem);
  line-height: 1.16;
}

.tourism-landing .tourism-route__timeline p {
  margin: 0;
  color: var(--muted);
  font-size: .91rem;
  line-height: 1.62;
}

















.tourism-landing .tourism-bogota {
  overflow: hidden;
}

.tourism-landing .tourism-bogota__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, .62fr);
  gap: clamp(2.5rem, 7vw, 8rem);
  align-items: end;
}

.tourism-landing .tourism-bogota__intro h2 {
  max-width: 13ch;
  margin: 0;
  font-size: clamp(2.5rem, 5vw, 5.35rem);
  line-height: .96;
}

.tourism-landing .tourism-bogota__copy .lead {
  margin: 0;
}

.tourism-landing .tourism-bogota__locations {
  display: grid;
  gap: 1rem;
  margin: 1.7rem 0 0;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(214,165,58,.24);
}

.tourism-landing .tourism-bogota__locations div {
  display: grid;
  grid-template-columns: minmax(7.5rem, .52fr) 1fr;
  gap: 1.25rem;
}

.tourism-landing .tourism-bogota__locations dt {
  color: var(--gold-light);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tourism-landing .tourism-bogota__locations dd {
  margin: 0;
  color: rgba(247,241,231,.78);
  font-size: .9rem;
  line-height: 1.5;
}

.tourism-landing .tourism-bogota__gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(17rem, .78fr);
  gap: clamp(.65rem, 1.2vw, 1rem);
  margin-top: clamp(2.7rem, 5.5vw, 5rem);
}

.tourism-landing .tourism-bogota__track {
  display: grid;
  grid-template-rows: repeat(3, minmax(0, 1fr));
  gap: clamp(.65rem, 1.2vw, 1rem);
  min-width: 0;
  outline: none;
}

.tourism-landing .tourism-bogota__image {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(214,165,58,.14);
  border-radius: 4px;
  background: #0a0a0a;
}

.tourism-landing .tourism-bogota__image picture,
.tourism-landing .tourism-bogota__image img {
  display: block;
  width: 100%;
  height: 100%;
}

.tourism-landing .tourism-bogota__image img {
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .7s ease;
}

.tourism-landing .tourism-bogota__image--hero {
  min-height: clamp(32rem, 61vw, 48rem);
}

.tourism-landing .tourism-bogota__image figcaption {
  position: absolute;
  right: 1rem;
  bottom: 1rem;
  left: 1rem;
  color: #fff;
  font-size: .69rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-shadow: 0 2px 14px rgba(0,0,0,.9);
  text-transform: uppercase;
}

.tourism-landing .tourism-bogota__image::after,
.tourism-landing .tourism-hotel__featured::after,
.tourism-landing .tourism-hotel__track figure::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.42));
}

.tourism-landing .tourism-stay {
  overflow: hidden;
  background: linear-gradient(180deg, rgba(255,255,255,.012), transparent 28%);
}

.tourism-landing .tourism-stay__intro {
  max-width: 58rem;
}

.tourism-landing .tourism-stay__intro h2 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(2.45rem, 4.8vw, 5.1rem);
  line-height: .97;
}

.tourism-landing .tourism-stay__intro .lead {
  max-width: 44rem;
  margin-top: 1.5rem;
}

.tourism-landing .tourism-stay__types {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: clamp(2.6rem, 5vw, 4.75rem);
  border-top: 1px solid rgba(214,165,58,.24);
  border-bottom: 1px solid rgba(214,165,58,.16);
}

.tourism-landing .tourism-stay__types article {
  position: relative;
  min-width: 0;
  padding: clamp(1.7rem, 3vw, 2.6rem) clamp(1.4rem, 3vw, 2.6rem) clamp(1.85rem, 3.5vw, 3rem) 0;
}

.tourism-landing .tourism-stay__types article + article {
  padding-left: clamp(1.4rem, 3vw, 2.6rem);
  border-left: 1px solid rgba(255,255,255,.09);
}

.tourism-landing .tourism-stay__type-icon {
  display: grid;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 1.35rem;
  color: var(--gold-light);
  place-items: center;
}

.tourism-landing .tourism-stay__type-icon svg {
  width: 100%;
  height: 100%;
}

.tourism-landing .tourism-stay__types h3 {
  margin: 0 0 .7rem;
  font-size: clamp(1.45rem, 2.2vw, 2rem);
}

.tourism-landing .tourism-stay__types p {
  max-width: 28rem;
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.tourism-landing .tourism-hotel {
  margin-top: clamp(3.5rem, 7vw, 6.5rem);
}

.tourism-landing .tourism-hotel__heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .55fr);
  gap: 2rem;
  align-items: end;
  margin-bottom: 1.4rem;
}

.tourism-landing .tourism-hotel__heading h3 {
  max-width: 15ch;
  margin: 0;
  font-size: clamp(2rem, 3.6vw, 3.8rem);
  line-height: 1;
}

.tourism-landing .tourism-hotel__heading > p {
  margin: 0 0 .25rem;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.55;
}

.tourism-landing .tourism-hotel__featured,
.tourism-landing .tourism-hotel__track figure {
  position: relative;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgba(214,165,58,.14);
  border-radius: 4px;
  background: #090909;
}

.tourism-landing .tourism-hotel__featured {
  aspect-ratio: 16 / 7;
}

.tourism-landing .tourism-hotel__featured picture,
.tourism-landing .tourism-hotel__featured img,
.tourism-landing .tourism-hotel__track picture,
.tourism-landing .tourism-hotel__track img {
  display: block;
  width: 100%;
  height: 100%;
}

.tourism-landing .tourism-hotel__featured img,
.tourism-landing .tourism-hotel__track img {
  object-fit: cover;
  transition: transform .7s cubic-bezier(.2,.7,.2,1), filter .7s ease;
}

.tourism-landing .tourism-hotel__track {
  display: flex;
  gap: clamp(.65rem, 1.2vw, 1rem);
  margin-top: clamp(.65rem, 1.2vw, 1rem);
  padding: 0 0 .75rem;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-color: rgba(214,165,58,.55) rgba(255,255,255,.06);
  scrollbar-width: thin;
  scroll-padding-inline: 0;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
}

.tourism-landing .tourism-hotel__track figure {
  flex: 0 0 min(34rem, 43vw);
  aspect-ratio: 3 / 2;
  scroll-snap-align: start;
}

.tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
  flex-basis: min(23rem, 29vw);
  aspect-ratio: 2 / 3;
}

.tourism-landing .tourism-hotel__track figcaption {
  position: absolute;
  right: .9rem;
  bottom: .85rem;
  left: .9rem;
  z-index: 1;
  color: #fff;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-shadow: 0 2px 12px rgba(0,0,0,.85);
  text-transform: uppercase;
}

.tourism-landing .tourism-hotel__track:focus-visible,
.tourism-landing .tourism-bogota__track:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.tourism-landing .tourism-qualification__intro {
  max-width: 54rem;
  margin: 0 auto;
  text-align: center;
}

.tourism-landing .tourism-qualification__intro h2 {
  max-width: 16ch;
  margin: 0 auto;
  font-size: clamp(2.4rem, 4.5vw, 4.6rem);
  line-height: .98;
}

.tourism-landing .tourism-qualification__paths {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 73rem;
  margin: clamp(2.75rem, 5.2vw, 4.8rem) auto 0;
  border-top: 1px solid rgba(214,165,58,.28);
  border-bottom: 1px solid rgba(214,165,58,.16);
}

.tourism-landing .tourism-qualification__paths article {
  padding: clamp(2rem, 4vw, 3.5rem) clamp(1.5rem, 4vw, 3.75rem) clamp(2.25rem, 4vw, 3.75rem) 0;
}

.tourism-landing .tourism-qualification__paths article + article {
  padding-right: 0;
  padding-left: clamp(1.5rem, 4vw, 3.75rem);
  border-left: 1px solid rgba(255,255,255,.1);
}

.tourism-landing .tourism-qualification__label {
  display: block;
  margin-bottom: 1.4rem;
  color: var(--cream);
  font: 500 clamp(1.25rem, 2vw, 1.6rem)/1.25 var(--font-serif);
}

.tourism-landing .tourism-qualification__paths ul {
  display: grid;
  gap: 1rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tourism-landing .tourism-qualification__paths li {
  position: relative;
  padding-left: 1.55rem;
  color: rgba(247,241,231,.76);
  line-height: 1.55;
}

.tourism-landing .tourism-qualification__paths li::before {
  content: "";
  position: absolute;
  top: .62em;
  left: 0;
  width: .46rem;
  height: .46rem;
  border: 1px solid rgba(243,200,90,.78);
  border-radius: 50%;
}

.tourism-landing .tourism-qualification__paths article:first-child li::before {
  background: rgba(214,165,58,.68);
}

.tourism-landing .tourism-mid-cta__inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
  padding: clamp(2rem, 4vw, 3.5rem) 0;
  border-top: 1px solid rgba(214,165,58,.36);
  border-bottom: 1px solid rgba(214,165,58,.18);
}

.tourism-landing .tourism-mid-cta__inner h2 {
  max-width: 17ch;
  margin: 0;
  font-size: clamp(2.15rem, 4vw, 4rem);
  line-height: 1;
}

.tourism-landing .tourism-mid-cta__inner p:not(.eyebrow) {
  margin: 1rem 0 0;
  color: var(--muted);
}

.tourism-landing .tourism-mid-cta__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: flex-end;
}

.tourism-landing .tourism-faq__layout {
  display: grid;
  grid-template-columns: minmax(19rem, .62fr) minmax(0, 1.08fr);
  gap: clamp(3rem, 9vw, 9rem);
  align-items: start;
}

.tourism-landing .tourism-faq__intro {
  position: sticky;
  top: calc(var(--header-h, 80px) + 2rem);
}

.tourism-landing .tourism-faq__intro h2 {
  max-width: 11ch;
  margin: 0;
  font-size: clamp(2.4rem, 4.3vw, 4.45rem);
  line-height: .98;
}

.tourism-landing .tourism-faq__intro .lead {
  max-width: 26rem;
  margin-top: 1.35rem;
}

.tourism-landing .tourism-faq__list {
  border-top: 1px solid rgba(214,165,58,.3);
}

.tourism-landing .tourism-faq__list details {
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.tourism-landing .tourism-faq__list summary {
  position: relative;
  display: flex;
  min-height: 4.9rem;
  padding: 1.45rem 3.25rem 1.45rem 0;
  color: var(--cream);
  font-family: var(--font-serif);
  font-size: clamp(1.16rem, 1.7vw, 1.45rem);
  line-height: 1.28;
  cursor: pointer;
  list-style: none;
  align-items: center;
}

.tourism-landing .tourism-faq__list summary::-webkit-details-marker {
  display: none;
}

.tourism-landing .tourism-faq__list summary::before,
.tourism-landing .tourism-faq__list summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: .3rem;
  width: 1rem;
  height: 1px;
  background: var(--gold-light);
  transition: transform .25s ease;
}

.tourism-landing .tourism-faq__list summary::after {
  transform: rotate(90deg);
}

.tourism-landing .tourism-faq__list details[open] summary::after {
  transform: rotate(0deg);
}

.tourism-landing .tourism-faq__list summary:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.tourism-landing .tourism-faq__list details > p {
  max-width: 44rem;
  margin: -.35rem 0 0;
  padding: 0 3.25rem 1.65rem 0;
  color: var(--muted);
  line-height: 1.68;
}

.tourism-landing .tourism-faq__list details > p strong {
  color: var(--gold-light);
  font-weight: 600;
}

.tourism-landing .tourism-closing-section.section {
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.tourism-landing .tourism-closing {
  margin-bottom: 0;
}

.tourism-landing .tourism-closing__price--featured {
  box-shadow: inset 0 1px 0 rgba(243,200,90,.42);
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-bogota__image:hover img,
  .tourism-landing .tourism-hotel__featured:hover img,
  .tourism-landing .tourism-hotel__track figure:hover img {
    transform: scale(1.012);
    filter: brightness(1.035);
  }
}

@media (max-width: 1023px) {
  .tourism-landing .tourism-route__intro {
    grid-template-columns: minmax(0, 1fr) minmax(17rem, .7fr);
    gap: 2.5rem;
  }

  .tourism-landing .tourism-route__intro .eyebrow {
    margin-bottom: -1.8rem;
  }

  .tourism-landing .tourism-route__timeline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 2.75rem;
  }

  .tourism-landing .tourism-route__timeline::before {
    display: none;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li + li {
    padding: 2rem 1.4rem 0 0;
    border-left: 0;
    border-top: 1px solid rgba(214,165,58,.2);
  }

  .tourism-landing .tourism-route__timeline li:nth-child(3n+2),
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
    padding-left: 1.4rem;
    border-left: 1px solid rgba(255,255,255,.08);
  }

  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline li + li::before {
    top: -.38rem;
    left: 0;
  }

  .tourism-landing .tourism-route__timeline li:nth-child(3n+2)::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3)::before {
    left: 1.4rem;
  }

  
  .tourism-landing .tourism-faq__layout {
    grid-template-columns: minmax(0, .82fr) minmax(25rem, 1.18fr);
    gap: 3rem;
  }

  .tourism-landing .tourism-bogota__intro {
    gap: 3rem;
  }

  .tourism-landing .tourism-bogota__gallery {
    grid-template-columns: minmax(0, 1.45fr) minmax(15rem, .75fr);
  }

  .tourism-landing .tourism-hotel__track figure {
    flex-basis: min(31rem, 62vw);
  }

  .tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
    flex-basis: min(21rem, 42vw);
  }

  .tourism-landing .tourism-mid-cta__inner {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .tourism-landing .tourism-mid-cta__actions {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-route__intro,
  .tourism-landing .tourism-bogota__intro,
  .tourism-landing .tourism-faq__layout,
  .tourism-landing .tourism-hotel__heading {
    grid-template-columns: 1fr;
    gap: 1.35rem;
  }

  .tourism-landing .tourism-route__intro .eyebrow {
    grid-column: auto;
    margin-bottom: -.65rem;
  }

  .tourism-landing .tourism-route__intro h2,
  .tourism-landing .tourism-bogota__intro h2,
  .tourism-landing .tourism-stay__intro h2,
  .tourism-landing .tourism-qualification__intro h2,
  .tourism-landing .tourism-faq__intro h2 {
    font-size: clamp(2.1rem, 10vw, 3.15rem);
    line-height: 1;
  }

  .tourism-landing .tourism-route__timeline {
    display: block;
    margin-top: 2.75rem;
    padding-left: 1.55rem;
    border-left: 1px solid rgba(214,165,58,.28);
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li + li,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2),
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
    min-height: auto;
    padding: 0 0 2.35rem 1.1rem;
    border: 0;
  }

  .tourism-landing .tourism-route__timeline li:last-child {
    padding-bottom: 0;
  }

  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline li + li::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2)::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3)::before {
    top: .14rem;
    left: -1.95rem;
  }

  .tourism-landing .tourism-route__timeline h3 {
    min-height: 0;
  }

  
  .tourism-landing .tourism-faq__intro {
    position: static;
  }

  

  

  .tourism-landing .tourism-bogota__locations div {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .tourism-landing .tourism-bogota__gallery {
    display: block;
    margin-top: 2.35rem;
  }

  .tourism-landing .tourism-bogota__image--hero {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-bogota__track {
    display: flex;
    gap: .7rem;
    margin-top: .7rem;
    padding-bottom: .55rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-padding-inline: 0;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .tourism-landing .tourism-bogota__track::-webkit-scrollbar {
    display: none;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image {
    flex: 0 0 min(78vw, 20rem);
    aspect-ratio: 4 / 3;
    scroll-snap-align: start;
  }

  .tourism-landing .tourism-stay__types {
    grid-template-columns: 1fr;
    margin-top: 2.5rem;
  }

  .tourism-landing .tourism-stay__types article,
  .tourism-landing .tourism-stay__types article + article {
    display: grid;
    grid-template-columns: 3rem 1fr;
    column-gap: 1rem;
    padding: 1.35rem 0;
    border-top: 0;
    border-left: 0;
  }

  .tourism-landing .tourism-stay__types article + article {
    border-top: 1px solid rgba(255,255,255,.09);
  }

  .tourism-landing .tourism-stay__type-icon {
    grid-row: 1 / 3;
    width: 2.45rem;
    height: 2.45rem;
    margin: 0;
  }

  .tourism-landing .tourism-stay__types h3 {
    margin-bottom: .35rem;
    font-size: 1.35rem;
  }

  .tourism-landing .tourism-stay__types p {
    font-size: .92rem;
  }

  .tourism-landing .tourism-hotel {
    margin-top: 3.5rem;
  }

  .tourism-landing .tourism-hotel__heading > p {
    max-width: 28rem;
  }

  .tourism-landing .tourism-hotel__featured {
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-hotel__track {
    gap: .7rem;
    margin-top: .7rem;
    padding-right: max(0px, calc((100vw - 100%) / 2));
    padding-bottom: .6rem;
    scrollbar-width: none;
  }

  .tourism-landing .tourism-hotel__track::-webkit-scrollbar {
    display: none;
  }

  .tourism-landing .tourism-hotel__track figure {
    flex-basis: min(80vw, 21rem);
  }

  .tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
    flex-basis: min(62vw, 16rem);
  }

  .tourism-landing .tourism-qualification__paths {
    grid-template-columns: 1fr;
    margin-top: 2.6rem;
  }

  .tourism-landing .tourism-qualification__paths article,
  .tourism-landing .tourism-qualification__paths article + article {
    padding: 1.8rem 0 2rem;
    border-left: 0;
  }

  .tourism-landing .tourism-qualification__paths article + article {
    border-top: 1px solid rgba(255,255,255,.1);
  }

  .tourism-landing .tourism-mid-cta__inner {
    gap: 1.7rem;
    padding-block: 2.25rem;
  }

  .tourism-landing .tourism-mid-cta__inner h2 {
    font-size: clamp(2rem, 10vw, 3rem);
  }

  .tourism-landing .tourism-mid-cta__actions {
    display: grid;
    width: 100%;
    grid-template-columns: 1fr;
  }

  .tourism-landing .tourism-mid-cta__actions .btn {
    width: 100%;
  }

  .tourism-landing .tourism-faq__list {
    margin-top: 1rem;
  }

  .tourism-landing .tourism-faq__list summary {
    min-height: 4.65rem;
    padding: 1.2rem 2.7rem 1.2rem 0;
    font-size: 1.12rem;
  }

  .tourism-landing .tourism-faq__list details > p {
    padding-right: .25rem;
    padding-bottom: 1.45rem;
    font-size: .94rem;
  }

  .tourism-landing .tourism-closing-section.section {
    padding-bottom: 1.35rem;
  }

}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-bogota__image img,
  .tourism-landing .tourism-hotel__featured img,
  .tourism-landing .tourism-hotel__track img,
  .tourism-landing .tourism-faq__list summary::after {
    transition: none !important;
  }
}

@keyframes tourism-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* =====================================================================
   PROCEDIMIENTOS — catálogo editorial 2026
   Componente de cards compartido con Home; hero/filtros/cierre siguen encapsulados.
   Cada frontera tiene un solo dueño del espacio vertical.
   ===================================================================== */

body.procedures-page {
  --procedures-gap-hero-catalog: clamp(4.5rem, 7vw, 6.5rem);
  --procedures-gap-catalog-closing: clamp(5rem, 7vw, 6.75rem);
  --procedures-gap-closing-footer: clamp(1.5rem, 2.4vw, 2.25rem);
}

body.procedures-page,
.home-procedures {
  --procedures-card-gap: clamp(1rem, 1.8vw, 1.5rem);
}

.procedures-page .procedures-main {
  padding-bottom: 0;
  overflow: clip;
}

/* Hero: la fotografía permanece visible y el copy entra con CSS progresivo. */
.procedures-page .procedures-hero {
  position: relative;
  display: grid;
  min-height: clamp(38rem, 78svh, 52rem);
  overflow: hidden;
  isolation: isolate;
  background: var(--ink);
}

.procedures-page .procedures-hero__media,
.procedures-page .procedures-hero__overlay {
  position: absolute;
  inset: 0;
}

.procedures-page .procedures-hero__media {
  z-index: -2;
}

.procedures-page .procedures-hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.procedures-page .procedures-hero__overlay {
  z-index: -1;
  background:
    radial-gradient(78% 70% at 50% 46%, rgba(5,5,6,.48), rgba(5,5,6,.72) 68%, rgba(5,5,6,.84) 100%),
    linear-gradient(180deg, rgba(5,5,6,.68) 0%, rgba(5,5,6,.25) 34%, rgba(5,5,6,.68) 100%);
}

.procedures-page .procedures-hero__inner {
  display: grid;
  place-items: center;
  width: 100%;
  padding-top: calc(var(--header-h) + clamp(3.5rem, 8vh, 6.5rem));
  padding-bottom: clamp(3.5rem, 8vh, 6rem);
}

.procedures-page .procedures-hero__copy {
  width: min(100%, 75rem);
  margin-inline: auto;
  text-align: center;
}

.procedures-page .procedures-hero__copy .eyebrow {
  justify-content: center;
  margin-bottom: clamp(1rem, 2vw, 1.4rem);
  color: var(--gold-light);
}

.procedures-page .procedures-hero__copy h1 {
  max-width: 18ch;
  margin: 0 auto;
  color: var(--cream);
  font-size: clamp(3.8rem, 7vw, 7.1rem);
  line-height: .91;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.procedures-page .procedures-hero__copy h1 span {
  display: block;
}

.procedures-page .procedures-hero__copy h1 span:last-child {
  color: var(--gold);
}

.procedures-page .procedures-hero__copy .lead {
  max-width: 69ch;
  margin: clamp(1.5rem, 3vw, 2.25rem) auto 0;
  color: rgba(247,241,231,.82);
  font-size: clamp(1rem, 1.55vw, 1.25rem);
  line-height: 1.62;
}

@media (prefers-reduced-motion: no-preference) {
  .procedures-page .procedures-hero__copy > * {
    animation: procedures-copy-in .7s var(--ease) both;
  }

  .procedures-page .procedures-hero__copy h1 {
    animation-delay: .08s;
  }

  .procedures-page .procedures-hero__copy .lead {
    animation-delay: .16s;
  }
}

@keyframes procedures-copy-in {
  from { opacity: 0; transform: translateY(16px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Catálogo: visible por defecto. JS solo mejora los controles y el filtrado. */
.procedures-page .procedures-catalog {
  padding: var(--procedures-gap-hero-catalog) 0 0;
  background: var(--ink);
}

.procedures-page .procedures-filters[hidden] {
  display: none;
}

.procedures-page .procedures-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .75rem;
  margin-bottom: clamp(2rem, 3vw, 2.8rem);
}

.procedures-page .procedure-filter {
  min-height: 48px;
  padding: .72rem 1.5rem;
  border: 1px solid rgba(214,165,58,.27);
  border-radius: var(--radius-pill);
  background: rgba(247,241,231,.018);
  color: var(--warm-gray);
  font: 600 .92rem/1 var(--font-body);
  transition: color 280ms var(--ease), border-color 280ms var(--ease), background 280ms var(--ease), box-shadow 280ms var(--ease), transform 280ms var(--ease);
  scroll-snap-align: center;
}

.procedures-page .procedure-filter:hover {
  color: var(--gold-light);
  border-color: rgba(243,200,90,.58);
  background: rgba(214,165,58,.07);
}

.procedures-page .procedure-filter:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

.procedures-page .procedure-filter.is-active {
  border-color: transparent;
  background: var(--grad-gold);
  color: #1a1206;
  box-shadow: 0 10px 30px rgba(214,165,58,.14);
}

:is(.procedures-page, .home-procedures) .procedures-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--procedures-card-gap);
  transition: opacity 160ms var(--ease), transform 160ms var(--ease);
}

:is(.procedures-page, .home-procedures) .procedures-grid.is-updating {
  opacity: .35;
  transform: translateY(5px);
}

:is(.procedures-page, .home-procedures) .procedure-card[hidden] {
  display: none !important;
}

:is(.procedures-page, .home-procedures) .procedure-card {
  --icon-optical-scale: 1;
  --icon-optical-x: 0px;
  --icon-optical-y: 0px;
  display: grid;
  grid-template-rows: auto 8.25rem minmax(2.3em, auto) 1fr auto;
  justify-items: center;
  gap: 1rem;
  min-width: 0;
  min-height: 31rem;
  padding: clamp(1.6rem, 2.4vw, 2.15rem);
  border: 1px solid rgba(214,165,58,.22);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(247,241,231,.022), rgba(247,241,231,0) 48%),
    var(--panel);
  box-shadow: 0 15px 40px rgba(0,0,0,.2);
  color: var(--cream);
  text-align: center;
  text-decoration: none;
  transition: transform 300ms var(--ease), border-color 300ms var(--ease), background 300ms var(--ease), box-shadow 300ms var(--ease);
}

:is(.procedures-page, .home-procedures) .procedure-card .badge {
  align-self: start;
  min-height: 2rem;
  padding-inline: .95rem;
  background: rgba(214,165,58,.09);
  border-color: rgba(214,165,58,.24);
  color: var(--gold-light);
}

:is(.procedures-page, .home-procedures) .procedure-card__icon {
  display: grid;
  place-items: center;
  width: 8.25rem;
  height: 8.25rem;
}

:is(.procedures-page, .home-procedures) .procedure-card__icon picture {
  display: block;
  width: 100%;
  height: 100%;
}

:is(.procedures-page, .home-procedures) .procedure-card__icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: translate(var(--icon-optical-x), var(--icon-optical-y)) scale(var(--icon-optical-scale));
  transform-origin: center;
  transition: transform 300ms var(--ease), filter 300ms var(--ease);
}

/* Ajustes ópticos mínimos: compensan siluetas más estrechas o más anchas. */
:is(.procedures-page, .home-procedures) .procedure-card--mamas { --icon-optical-scale: .97; }
:is(.procedures-page, .home-procedures) .procedure-card--lipopapada { --icon-optical-scale: 1.04; }
:is(.procedures-page, .home-procedures) .procedure-card--blefaroplastia { --icon-optical-scale: 1.03; --icon-optical-y: 2px; }

:is(.procedures-page, .home-procedures) .procedure-card h3 {
  align-self: start;
  margin: 0;
  color: var(--cream);
  font-size: clamp(1.72rem, 2.15vw, 2.15rem);
  line-height: 1.08;
  text-wrap: balance;
}

:is(.procedures-page, .home-procedures) .procedure-card > p {
  align-self: start;
  max-width: 34ch;
  margin: 0;
  color: var(--warm-gray);
  font-size: clamp(.94rem, 1.25vw, 1.04rem);
  line-height: 1.65;
}

:is(.procedures-page, .home-procedures) .procedure-card__cta {
  align-self: end;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .3rem 0 .38rem;
  border-bottom: 1px solid rgba(214,165,58,.34);
  color: var(--gold-light);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .005em;
}

:is(.procedures-page, .home-procedures) .procedure-card__cta span {
  transition: transform 300ms var(--ease);
}

:is(.procedures-page, .home-procedures) .procedure-card:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

@media (hover: hover) and (pointer: fine) {
  :is(.procedures-page, .home-procedures) .procedure-card:hover {
    transform: translateY(-4px);
    border-color: rgba(243,200,90,.58);
    background:
      linear-gradient(180deg, rgba(214,165,58,.045), rgba(247,241,231,.008) 52%),
      var(--panel-2);
    box-shadow: 0 22px 52px rgba(0,0,0,.28), 0 12px 32px rgba(214,165,58,.05);
  }

  :is(.procedures-page, .home-procedures) .procedure-card:hover .procedure-card__icon img {
    transform: translate(var(--icon-optical-x), var(--icon-optical-y)) scale(calc(var(--icon-optical-scale) * 1.035));
    filter: drop-shadow(0 7px 16px rgba(214,165,58,.1));
  }

  :is(.procedures-page, .home-procedures) .procedure-card:hover .procedure-card__cta span {
    transform: translateX(4px);
  }
}

/* El CTA posee ambas transiciones exteriores en Procedimientos. */
.procedures-page .procedures-closing-section {
  padding-top: var(--procedures-gap-catalog-closing);
  padding-bottom: var(--procedures-gap-closing-footer);
}

@media (min-width: 768px) and (max-width: 1024px) {
  body.procedures-page {
    --procedures-gap-hero-catalog: clamp(4rem, 8vw, 5.25rem);
    --procedures-gap-catalog-closing: clamp(4.5rem, 8vw, 5.75rem);
  }

  :is(.procedures-page, .home-procedures) .procedures-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .procedures-page .procedure-card.is-last-odd,
  .home-procedures .home-procedure-item.is-last-odd {
    grid-column: 1 / -1;
    width: calc((100% - var(--procedures-card-gap)) / 2);
    justify-self: center;
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .procedures-page .procedures-hero {
    min-height: min(82svh, 54rem);
  }

  .procedures-page .procedures-hero__media img {
    object-position: center center;
  }

  .procedures-page .procedures-hero__copy {
    max-width: 44rem;
  }

  .procedures-page .procedures-hero__copy h1 {
    font-size: clamp(4.1rem, 9vw, 5.8rem);
  }
}

@media (max-width: 767px) {
  body.procedures-page {
    --procedures-gap-hero-catalog: clamp(3.25rem, 14vw, 4rem);
    --procedures-gap-catalog-closing: clamp(3.75rem, 15vw, 4.5rem);
    --procedures-gap-closing-footer: clamp(1rem, 5vw, 1.5rem);
  }

  .procedures-page .procedures-main {
    padding-bottom: 0;
  }

  .procedures-page .procedures-hero {
    min-height: clamp(40rem, 92svh, 50rem);
  }

  .procedures-page .procedures-hero__overlay {
    background:
      radial-gradient(105% 72% at 50% 43%, rgba(5,5,6,.36), rgba(5,5,6,.68) 72%, rgba(5,5,6,.8) 100%),
      linear-gradient(180deg, rgba(5,5,6,.62), rgba(5,5,6,.12) 38%, rgba(5,5,6,.72));
  }

  .procedures-page .procedures-hero__inner {
    align-items: center;
    padding-top: calc(var(--header-h) + 2.75rem);
    padding-bottom: 3.25rem;
  }

  .procedures-page .procedures-hero__copy .eyebrow {
    display: none;
  }

  .procedures-page .procedures-hero__copy h1 {
    max-width: none;
    font-size: clamp(2.7rem, 11.7vw, 3.6rem);
    line-height: .91;
    letter-spacing: -.04em;
  }

  .procedures-page .procedures-hero__copy h1 span {
    display: block;
    white-space: nowrap;
  }

  .procedures-page .procedures-hero__copy .lead {
    max-width: 35ch;
    margin-top: 1.5rem;
    font-size: clamp(.98rem, 4.1vw, 1.08rem);
    line-height: 1.58;
  }

  .procedures-page .procedures-filters {
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: .65rem;
    width: calc(100% + (2 * var(--gutter)));
    margin-left: calc(var(--gutter) * -1);
    padding-inline: var(--gutter);
    padding-bottom: .4rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: var(--gutter);
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .procedures-page .procedures-filters::-webkit-scrollbar {
    display: none;
  }

  .procedures-page .procedure-filter {
    flex: 0 0 auto;
    min-height: 48px;
    padding-inline: 1.35rem;
  }

  :is(.procedures-page, .home-procedures) .procedures-grid {
    grid-template-columns: 1fr;
  }

  :is(.procedures-page, .home-procedures) .procedure-card {
    grid-template-rows: auto 7rem auto auto auto;
    min-height: 0;
    padding: clamp(1.45rem, 7vw, 1.85rem);
    border-radius: clamp(1.25rem, 6vw, 1.65rem);
  }

  :is(.procedures-page, .home-procedures) .procedure-card__icon {
    width: 7rem;
    height: 7rem;
  }

  :is(.procedures-page, .home-procedures) .procedure-card h3 {
    font-size: clamp(1.75rem, 8.2vw, 2.25rem);
  }

  :is(.procedures-page, .home-procedures) .procedure-card > p {
    max-width: 32ch;
    font-size: .96rem;
  }

  .procedures-page .procedures-closing-section .closing__prices {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (max-width: 374px) {
  .procedures-page .procedures-hero__copy h1 {
    font-size: clamp(2.6rem, 11.5vw, 3rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .procedures-page .procedures-hero__copy > *,
  :is(.procedures-page, .home-procedures) .procedures-grid,
  :is(.procedures-page, .home-procedures) .procedure-card,
  :is(.procedures-page, .home-procedures) .procedure-card__icon img,
  :is(.procedures-page, .home-procedures) .procedure-card__cta span {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* Mientras corre el intro, bloqueamos el scroll del documento. */
body.preloading { overflow: hidden; height: 100vh; }

img, picture, video, svg { display: block; max-width: 100%; height: auto; }
img { border-style: none; }

a { color: inherit; text-decoration: none; }
a:hover { color: var(--gold-2); }

button { font-family: inherit; font-size: inherit; cursor: pointer; border: none; background: none; color: inherit; }

ul, ol { margin: 0; padding: 0; list-style: none; }

p { margin: 0 0 1em; }

:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Selección de texto en dorado tenue */
::selection { background: rgba(246,197,85,.28); color: var(--cream); }

/* Enlace "saltar al contenido" (accesibilidad): oculto hasta foco */
.skip-link {
  position: absolute;
  left: 12px;
  top: -60px;
  z-index: var(--z-skip);
  background: var(--gold);
  color: var(--ink);
  padding: .6rem 1rem;
  border-radius: var(--radius-sm);
  font-weight: 600;
  transition: top .2s ease;
}
.skip-link:focus { top: 12px; color: var(--ink); }


/* =====================================================================
   1) :root — TOKENS DE DISEÑO
   (cambia aquí y se actualiza todo el sitio)
   ===================================================================== */
:root {
  /* --- Colores de marca --- */
  --black:      #050505;      /* negro principal */
  --charcoal:   #101012;      /* superficie oscura premium */
  --gold:       #D6A53A;      /* dorado base */
  --gold-light: #F3C85A;      /* dorado claro */
  --ivory:      #F7F1E7;      /* texto marfil */
  --stone:      #D6C2A2;      /* acento piedra / cálido */
  --warm-gray:  #BDB5A8;      /* texto secundario */

  --ink:    var(--black);     /* fondo principal (casi negro) */
  --ink-2:  #080809;          /* fondo alterno para secciones */
  --panel:  var(--charcoal);  /* tarjetas / superficies */
  --panel-2:#151519;          /* tarjeta elevada / hover */
  --cream:  var(--ivory);     /* texto principal */
  --gold-2: var(--gold-light);/* dorado claro (hover/brillo) */
  --gold-3: #9B6B24;          /* dorado oscuro (gradiente) */
  --muted:  var(--warm-gray); /* texto secundario */
  --line:   rgba(214,165,58,.20); /* bordes / hairlines doradas */
  --line-2: rgba(247,241,231,.09); /* bordes neutros muy suaves */

  /* Gradiente dorado reutilizable (botones, trazos, detalles) */
  --grad-gold: linear-gradient(135deg, var(--gold-2) 0%, var(--gold) 45%, var(--gold-3) 100%);
  --grad-gold-soft: linear-gradient(135deg, rgba(214,165,58,.14), rgba(155,107,36,.07));

  /* --- Tipografía --- */
  --font-head: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-body: 'Manrope', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* Escala tipográfica fluida (clamp): de móvil a desktop */
  --fs-h1:   clamp(2.6rem, 6vw + .5rem, 5.25rem);
  --fs-h2:   clamp(2rem, 3.4vw + .5rem, 3.5rem);
  --fs-h3:   clamp(1.5rem, 1.6vw + .6rem, 2.15rem);
  --fs-h4:   clamp(1.25rem, 1vw + .6rem, 1.6rem);
  --fs-h5:   clamp(1.1rem, .6vw + .7rem, 1.3rem);
  --fs-h6:   1rem;
  --fs-lead: clamp(1.1rem, .6vw + .9rem, 1.35rem);
  --fs-body: 1rem;
  --fs-small: .875rem;
  --fs-eyebrow: .78rem;

  /* --- Escala de espaciado (modular) --- */
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 2.75rem;
  --space-8: 3.5rem;
  --space-9: 4.5rem;
  --space-10: 6rem;
  --space-11: 8rem;
  --space-12: 10rem;

  /* --- Radios --- */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-xl: 30px;
  --radius-pill: 999px;

  /* --- Sombras suaves con tinte dorado --- */
  --shadow-sm: 0 4px 18px rgba(0,0,0,.35);
  --shadow-md: 0 14px 40px rgba(0,0,0,.45);
  --shadow-gold: 0 16px 48px rgba(214,165,58,.14);
  --shadow-gold-strong: 0 10px 34px rgba(214,165,58,.28);

  /* --- Layout --- */
  --container: 1200px;
  --container-narrow: 820px;
  --gutter: clamp(1.1rem, 4vw, 2.5rem);  /* margen lateral del contenedor */
  --header-h: 76px;                       /* alto de la barra fija */

  /* --- z-index (capas, de menor a mayor) --- */
  --z-base: 1;
  --z-float: 60;       /* botones flotantes */
  --z-header: 80;      /* barra fija */
  --z-menu: 90;        /* menú móvil overlay */
  --z-modal: 100;      /* modal agendar */
  --z-lightbox: 110;   /* lightbox galería */
  --z-intro: 200;      /* intro preloader (lo más alto) */
  --z-skip: 300;       /* skip-link siempre arriba al enfocar */

  /* --- Transiciones --- */
  --ease: cubic-bezier(.22,.61,.36,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --t-fast: .18s;
  --t: .35s;
  --t-slow: .6s;
}


/* =====================================================================
   2) TIPOGRAFÍA
   ===================================================================== */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-head);
  font-weight: 600;
  line-height: 1.08;
  margin: 0 0 .5em;
  color: var(--cream);
  letter-spacing: .005em;
}
h1 { font-size: var(--fs-h1); font-weight: 600; line-height: 1.02; letter-spacing: -.01em; }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); }
h6 { font-size: var(--fs-h6); font-family: var(--font-body); font-weight: 600; text-transform: uppercase; letter-spacing: .12em; }

/* Acentuar palabras dentro de un título en dorado: <span class="gold"> */
.gold { color: var(--gold); }
.serif { font-family: var(--font-head); }

/* .eyebrow — etiqueta dorada en mayúsculas con tracking (va arriba de un título) */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  font-weight: 600;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin: 0 0 var(--space-4);
}
/* Pequeña línea dorada antes del texto del eyebrow */
.eyebrow::before {
  content: none;
  display: none;
}

/* .lead — párrafo destacado bajo los títulos */
.lead {
  font-size: var(--fs-lead);
  line-height: 1.55;
  color: var(--muted);
  max-width: 62ch;
}

/* Texto secundario utilitario */
.text-muted { color: var(--muted); }
.text-center { text-align: center; }
.text-balance { text-wrap: balance; }

/* .sr-only — visible SOLO para lectores de pantalla (oculto a la vista).
   Fuente única de verdad: úsala en vez de repetir estilos inline de ocultamiento. */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}


/* =====================================================================
   3) LAYOUT — contenedor, secciones, grids
   ===================================================================== */
.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container--narrow { max-width: var(--container-narrow); }

/* .section — ritmo vertical generoso (lujo = aire) */
.section {
  position: relative;
  padding-block: clamp(var(--space-9), 9vw, var(--space-12));
}
.section--tight { padding-block: clamp(var(--space-7), 6vw, var(--space-9)); }
.section--alt { background: var(--ink-2); }

/* Encabezado de sección (eyebrow + título + lead centrados o no) */
.section-head { max-width: 64ch; margin-bottom: var(--space-8); }
.section-head--center { margin-inline: auto; text-align: center; }
.section-head--center .lead { margin-inline: auto; }

/* Grids reutilizables (mobile-first: 1 columna, crecen en desktop) */
.grid { display: grid; gap: var(--space-5); }
.grid--2 { grid-template-columns: 1fr; }
.grid--3 { grid-template-columns: 1fr; }
.grid--4 { grid-template-columns: 1fr; }
.grid--auto { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* Bloque de dos columnas para "texto + media" */
.split { display: grid; gap: var(--space-7); align-items: center; grid-template-columns: 1fr; }


/* =====================================================================
   4) COMPONENTES
   ===================================================================== */

/* ---- Botones ---- */
.btn {
  --btn-pad-y: .85rem;
  --btn-pad-x: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  padding: var(--btn-pad-y) var(--btn-pad-x);
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-weight: 600;
  font-size: .95rem;
  letter-spacing: .015em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform var(--t-fast) var(--ease),
              box-shadow var(--t) var(--ease),
              background var(--t) var(--ease),
              color var(--t) var(--ease),
              border-color var(--t) var(--ease),
              opacity var(--t-fast) var(--ease);
  /* NOTA: quitamos 'will-change: transform' permanente. El transform del hover
     es barato y no lo requiere; mantenerlo activo en TODOS los botones consumía
     memoria de GPU sin beneficio. */
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn .ico { width: 1.05em; height: 1.05em; }

/* .btn--gold — sólido dorado con texto oscuro (el CTA principal) */
.btn--gold {
  background: var(--grad-gold);
  color: #1a1206;
  border-color: rgba(243,200,90,.45);
  box-shadow: var(--shadow-gold);
}
.btn--gold:hover {
  color: #1a1206;
  transform: translateY(-1px);
  border-color: rgba(247,241,231,.24);
  box-shadow: var(--shadow-gold-strong);
}

/* .btn--ghost — borde dorado, fondo transparente */
.btn--ghost {
  background: rgba(247,241,231,.015);
  color: var(--cream);
  border: 1px solid var(--line);
}
.btn--ghost:hover {
  border-color: var(--gold);
  color: var(--gold-2);
  background: rgba(214,165,58,.075);
}

/* .btn--text — solo texto con subrayado dorado al hover */
.btn--text {
  padding: .4rem 0;
  border-radius: 0;
  color: var(--gold);
  position: relative;
  border-color: transparent;
}
.btn--text::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 100%; height: 1px; background: var(--grad-gold);
  transform: scaleX(0); transform-origin: left; transition: transform var(--t) var(--ease);
}
.btn--text:hover::after { transform: scaleX(1); }
.btn--text:hover { color: var(--gold-2); }

.btn--lg { --btn-pad-y: 1.05rem; --btn-pad-x: 2rem; font-size: 1rem; }
.btn--block { width: 100%; }

/* ---- Tarjetas ---- */
.card {
  position: relative;
  background: linear-gradient(180deg, rgba(247,241,231,.018), rgba(247,241,231,0) 42%), var(--panel);
  border: 1px solid rgba(214,165,58,.16);
  border-radius: var(--radius-lg);
  padding: var(--space-6);
  box-shadow: 0 12px 34px rgba(0,0,0,.18);
  transition: transform var(--t) var(--ease),
              border-color var(--t) var(--ease),
              box-shadow var(--t) var(--ease),
              background var(--t) var(--ease);
}
.card:hover {
  transform: translateY(-3px);
  border-color: rgba(243,200,90,.52);
  background: linear-gradient(180deg, rgba(214,165,58,.035), rgba(247,241,231,.012) 45%), var(--panel-2);
  box-shadow: var(--shadow-md), var(--shadow-gold);
}
.card__title { font-size: var(--fs-h4); margin-bottom: var(--space-2); }
.card__text { color: var(--muted); margin: 0; }
/* Tarjeta destacada (procedimientos con *): acento dorado SUTIL.
   Antes teñía TODO el fondo (--grad-gold-soft); con 4-5 destacadas la grilla
   se saturaba de dorado y nada destacaba de verdad. Ahora: fondo neutro (--panel)
   + borde dorado + una fina barra dorada superior. El dorado vuelve a ser acento. */
.card--featured { border-color: rgba(243,200,90,.48); }
.card--featured::before {
  content: ""; position: absolute; inset: 0 0 auto 0; height: 1px;
  background: var(--grad-gold);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

/* ---- Badge / Pill (etiquetas pequeñas) ---- */
.badge, .pill {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .35rem .8rem;
  border-radius: var(--radius-pill);
  font-size: var(--fs-small);
  font-weight: 600;
  line-height: 1;
  letter-spacing: .015em;
}
.badge {
  background: rgba(214,165,58,.10);
  color: var(--gold);
  border: 1px solid var(--line);
}
.pill { background: rgba(247,241,231,.035); color: var(--muted); border: 1px solid var(--line-2); }

/* ---- Precio (tarifa de consulta) ---- */
.price {
  display: inline-flex;
  align-items: baseline;
  gap: .35rem;
  font-family: var(--font-head);
  font-weight: 600;
  color: var(--gold);
  line-height: 1;
}
.price__amount { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.price__currency { font-size: .85em; color: var(--muted); font-family: var(--font-body); font-weight: 600; }
.price__note { display: block; font-family: var(--font-body); font-size: var(--fs-small); color: var(--muted); font-weight: 400; }

/* ---- Hairline dorada (separador fino) ---- */
.hairline { width: 100%; height: 1px; background: var(--line); border: 0; margin: var(--space-6) 0; }
.hairline--gold { background: var(--grad-gold); opacity: .55; }
.hairline--short { width: 56px; height: 2px; background: var(--grad-gold); border-radius: 2px; }


/* =====================================================================
   5) HEADER / NAV
   Barra fija translúcida con blur; se "solidifica" con .is-scrolled.
   ===================================================================== */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  height: var(--header-h);
  display: flex;
  align-items: center;
  background: linear-gradient(to bottom, rgba(5,5,5,.76), rgba(5,5,5,.22) 64%, rgba(5,5,5,0));
  backdrop-filter: blur(10px) saturate(1.05);
  -webkit-backdrop-filter: blur(10px) saturate(1.05);
  border-bottom: 1px solid rgba(214,165,58,.08);
  transition: background var(--t) var(--ease),
              border-color var(--t) var(--ease),
              backdrop-filter var(--t) var(--ease),
              box-shadow var(--t) var(--ease);
}
/* Al hacer scroll, el JS agrega .is-scrolled => fondo sólido y hairline */
.site-header.is-scrolled {
  background: rgba(5,5,5,.92);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  border-bottom-color: var(--line);
  box-shadow: 0 18px 50px rgba(0,0,0,.28);
}
/* El overlay móvil vive sobre la capa normal del header. Al abrirlo elevamos
   solo el header activo para que la hamburguesa pueda cerrarlo de nuevo. */
.site-header.is-mobile-menu-open {
  z-index: calc(var(--z-menu) + 1);
}
.site-header .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(var(--space-4), 2vw, var(--space-6));
  width: 100%;
}

/* Logo oficial dorado */
.brand { display: inline-flex; align-items: center; gap: .78rem; }
.brand__mark {
  width: 44px; height: 44px;
  display: grid; place-items: center;
  flex: 0 0 44px;
}
.brand__mark img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 5px 10px rgba(0,0,0,.28));
}
.brand__name {
  font-family: var(--font-head);
  font-size: 1.24rem;
  font-weight: 600;
  color: var(--cream);
  letter-spacing: .01em;
  line-height: 1;
}
.brand__name small { display: block; font-family: var(--font-body); font-size: .62rem; letter-spacing: .24em; text-transform: uppercase; color: var(--muted); font-weight: 600; margin-top: 4px; }

/* Navegación principal (desktop) */
.nav { display: flex; align-items: center; gap: clamp(var(--space-4), 1.8vw, var(--space-6)); }
.nav__list { display: flex; align-items: center; gap: clamp(.72rem, 1.35vw, 1.45rem); }
.nav__link {
  position: relative;
  font-family: var(--font-body);
  font-size: .91rem;
  font-weight: 600;
  color: var(--cream);
  padding: .48rem 0;
  letter-spacing: 0;
  transition: color var(--t-fast) var(--ease);
}
.nav__link::after {
  content: ""; position: absolute; left: 0; bottom: -3px;
  width: 100%; height: 1px; background: var(--gold);
  transform: scaleX(0); transform-origin: left; opacity: .86; transition: transform var(--t) var(--ease), opacity var(--t) var(--ease);
}
.nav__link:hover { color: var(--gold-2); }
.nav__link:hover::after { transform: scaleX(1); }
/* Link activo (lo marca el JS según la URL) */
.nav__link.is-active { color: var(--gold); }
.nav__link.is-active::after { transform: scaleX(1); }

/* Menú desplegable "Pacientes" */
.nav__item--has-menu { position: relative; }
.nav__toggle {
  position: relative;
  display: inline-flex; align-items: center; gap: .38rem;
  font-family: var(--font-body);
  font-size: .91rem; font-weight: 600; color: var(--cream);
  padding: .48rem 0; letter-spacing: 0;
  transition: color var(--t-fast) var(--ease);
}
.nav__toggle::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px;
  width: 100%;
  height: 1px;
  background: var(--gold);
  opacity: .86;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t) var(--ease);
}
.nav__toggle:hover,
.nav__toggle.is-active,
.nav__item--has-menu.is-open .nav__toggle { color: var(--gold-2); }
.nav__toggle.is-active::after,
.nav__item--has-menu.is-open .nav__toggle::after { transform: scaleX(1); }
.nav__toggle .caret { width: 10px; height: 10px; transition: transform var(--t) var(--ease); }
.nav__item--has-menu.is-open .caret,
.nav__toggle[aria-expanded="true"] .caret { transform: rotate(180deg); }

.nav__dropdown {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 246px;
  background:
    linear-gradient(180deg, rgba(247,241,231,.035), rgba(247,241,231,0)),
    rgba(16,16,18,.96);
  border: 1px solid var(--line);
  border-radius: calc(var(--radius-md) + 2px);
  box-shadow: 0 22px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(247,241,231,.045);
  padding: .48rem;
  display: grid;
  gap: 3px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease), visibility var(--t);
}
/* Se abre por clic (.is-open lo pone el JS) en TODOS los dispositivos. */
.nav__item--has-menu.is-open .nav__dropdown {
  opacity: 1; visibility: visible; pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
/* La apertura por HOVER se reserva a punteros finos (mouse/trackpad). En
   dispositivos táctiles (tablets, laptops táctiles) el primer toque disparaba
   el hover-CSS y el segundo el toggle JS, abriendo y cerrando de forma errática.
   Con esta @media, en táctil SOLO abre por clic (lógica JS) y se elimina el doble disparo. */
@media (hover: hover) and (pointer: fine) {
  .nav__item--has-menu:hover .nav__dropdown {
    opacity: 1; visibility: visible; pointer-events: auto;
    transform: translateX(-50%) translateY(0);
  }
}
.nav__dropdown a {
  display: block;
  padding: .72rem .85rem;
  border-radius: var(--radius-sm);
  font-size: .9rem;
  font-weight: 500;
  color: var(--muted);
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
}
.nav__dropdown a:hover,
.nav__dropdown a:focus-visible,
.nav__dropdown a.is-active {
  background: rgba(214,165,58,.105);
  color: var(--gold-light);
  transform: translateX(2px);
}

/* CTA dorado en la barra (siempre visible) */
.nav__cta { white-space: nowrap; box-shadow: 0 12px 30px rgba(214,165,58,.18); }

/* Botón hamburguesa (oculto en desktop) */
.nav__burger {
  display: none;
  width: 44px; height: 44px;
  border-radius: calc(var(--radius-sm) + 2px);
  border: 1px solid var(--line);
  background: rgba(214,165,58,.065);
  position: relative;
  transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
}
.nav__burger:hover { border-color: rgba(214,165,58,.32); background: rgba(214,165,58,.095); }
.nav__burger span {
  position: absolute; left: 50%; top: 50%;
  width: 20px; height: 1.5px; background: var(--gold-light);
  transform: translate(-50%,-50%);
  transition: transform var(--t) var(--ease), opacity var(--t-fast) var(--ease);
}
.nav__burger span:nth-child(1) { transform: translate(-50%, -7px); }
.nav__burger span:nth-child(3) { transform: translate(-50%, 5px); }
/* Estado abierto (.is-open lo pone el JS) => se convierte en "X" */
.nav__burger.is-open span:nth-child(1) { transform: translate(-50%,-50%) rotate(45deg); }
.nav__burger.is-open span:nth-child(2) { opacity: 0; }
.nav__burger.is-open span:nth-child(3) { transform: translate(-50%,-50%) rotate(-45deg); }

/* ---- Menú móvil (overlay a pantalla completa) ---- */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: var(--z-menu);
  background:
    radial-gradient(80% 60% at 50% 0%, rgba(214,165,58,.075), transparent 62%),
    rgba(5,5,5,.985);
  backdrop-filter: blur(14px) saturate(1.08);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  padding: calc(var(--header-h) + var(--space-6)) var(--gutter) var(--space-8);
  display: flex;
  flex-direction: column;
  gap: .16rem;
  overflow-y: auto;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease), visibility var(--t);
}
.mobile-menu.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); }
.mobile-menu a {
  font-family: var(--font-body);
  font-size: clamp(1.06rem, 4.8vw, 1.34rem);
  font-weight: 600;
  color: var(--cream);
  padding: .88rem 0;
  border-bottom: 1px solid var(--line-2);
  letter-spacing: 0;
  transition: color var(--t-fast) var(--ease), padding-left var(--t-fast) var(--ease);
}
.mobile-menu a:hover, .mobile-menu a.is-active { color: var(--gold-light); padding-left: .18rem; }
.mobile-menu__group-label {
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: var(--space-5);
  padding-top: var(--space-3);
}
.mobile-menu__sub { display: grid; gap: 0; padding-left: var(--space-3); border-left: 1px solid var(--line); }
.mobile-menu__sub a { font-size: clamp(.95rem, 4vw, 1.08rem); font-family: var(--font-body); color: var(--muted); padding-block: .72rem; }
.mobile-menu .btn { margin-top: var(--space-5); justify-content: center; }


/* =====================================================================
   6) FOOTER
   ===================================================================== */
.site-footer {
  --footer-legal-space: clamp(2.75rem, 5vw, 4.5rem);
  background:
    linear-gradient(180deg, rgba(214,165,58,.035), transparent 34%),
    var(--ink-2);
  border-top: 1px solid var(--line);
  padding-block: var(--space-9) var(--space-6);
  margin-top: 0;
}
.footer__grid {
  display: grid;
  gap: clamp(var(--space-6), 4vw, var(--space-8));
  grid-template-columns: 1fr;
}
.footer__col h4 {
  font-family: var(--font-body);
  font-size: var(--fs-eyebrow);
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: var(--space-4);
}
.footer__brand .brand { margin-bottom: var(--space-4); }
.footer__tagline { color: var(--muted); max-width: 40ch; line-height: 1.75; }
.footer__col ul { display: grid; gap: .66rem; }
.footer__col a { color: var(--cream); font-size: .92rem; transition: color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease); }
.footer__col a:hover { color: var(--gold-2); }
.footer__sede {
  margin-bottom: var(--space-4);
  padding-bottom: var(--space-3);
  border-bottom: 1px solid var(--line-2);
}
.footer__sede strong { display: block; color: var(--cream); font-weight: 650; margin-bottom: 3px; }
.footer__sede span { color: var(--muted); font-size: .9rem; line-height: 1.55; }
.footer__actions { display: grid; justify-items: start; gap: var(--space-5); margin-top: var(--space-4); }
.footer__socials { display: flex; gap: var(--space-3); }
.footer__socials a {
  width: 42px; height: 42px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%;
  color: var(--gold); background: rgba(16,16,18,.58); transition: background var(--t) var(--ease), transform var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease);
}
.footer__socials a:hover { background: rgba(214,165,58,.105); border-color: rgba(214,165,58,.36); color: var(--gold-light); transform: translateY(-2px); }
.footer__socials svg { width: 20px; height: 20px; }
.footer__action-label { display: none; }
.footer__agenda { margin: 0; }

/* Línea legal con disclaimer + links legales + copyright */
.footer__legal {
  position: relative;
  margin-top: 0;
  padding-top: var(--footer-legal-space);
  display: grid;
  gap: var(--space-4);
}
.footer__legal::before {
  content: "";
  position: absolute;
  inset: calc(var(--footer-legal-space) * .42) 0 auto;
  height: 1px;
  background: var(--line-2);
}
.footer__disclaimer { color: var(--muted); font-size: var(--fs-small); max-width: 80ch; }
.footer__legal-bottom { display: grid; gap: var(--space-4); }
.footer__legal-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); }
.footer__legal-links a { color: var(--muted); font-size: var(--fs-small); }
.footer__legal-links a:hover { color: var(--gold-2); }
.footer__legal-meta { display: grid; gap: .2rem; }
.footer__copy,
.footer__credit { margin: 0; color: var(--muted); font-size: var(--fs-small); }
.footer__credit { color: rgba(189,181,168,.72); font-size: .78rem; }


/* =====================================================================
   7) BOTONES FLOTANTES (.float-cta dorado + .float-wa WhatsApp)
   Ocultos por defecto; el JS revela el CTA con .is-visible.
   ===================================================================== */
.float-stack {
  position: fixed;
  right: clamp(1rem, 3vw, 1.75rem);
  /* Respetamos el safe-area inferior de iOS (barra de gestos del iPhone) para
     que el WhatsApp no quede bajo la barra del sistema y sea fácil de tocar. */
  bottom: calc(clamp(1rem, 3vw, 1.75rem) + env(safe-area-inset-bottom));
  z-index: var(--z-float);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: var(--space-3);
}

/* CTA dorado flotante "Agendar" */
.float-cta {
  opacity: 0;
  transform: translateY(16px) scale(.96);
  pointer-events: none;
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease);
  box-shadow: var(--shadow-gold-strong);
}
.float-cta.is-visible { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; }

/* WhatsApp (siempre visible) — ESTÉTICA DE MARCA: panel oscuro + glifo dorado.
   Antes era verde #25d366 saturado; rompía la disciplina negro+dorado justo en
   el elemento más visible (fijo, esquina inferior). Ahora usa el mismo
   tratamiento que .footer__socials a (panel + icono --gold +
   borde --line + sombra suave). Para señalar "es WhatsApp" sin teñir todo el
   botón, dejamos un micro-punto verde diminuto vía ::after (detalle mínimo).
   Para volver al verde clásico: background:#25d366; color:#fff; y quita el ::after. */
.float-wa {
  position: relative;
  width: 56px; height: 56px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: var(--panel);
  color: var(--gold);
  border: 1px solid var(--line);
  box-shadow: var(--shadow-sm);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease),
              background var(--t) var(--ease), border-color var(--t) var(--ease);
}
.float-wa:hover {
  transform: translateY(-3px) scale(1.04);
  color: var(--gold-2);
  border-color: var(--gold);
  background: var(--panel-2);
  box-shadow: var(--shadow-gold);
}
.float-wa svg { width: 30px; height: 30px; }
/* Micro-detalle verde mínimo (punto de presencia) para señalar que es WhatsApp.
   EDITAR: si se prefiere total disciplina dorada, elimina este bloque ::after. */
.float-wa::after {
  content: "";
  position: absolute; top: 6px; right: 6px;
  width: 9px; height: 9px; border-radius: 50%;
  background: #25d366;
  border: 1.5px solid var(--panel);
}
/* =====================================================================
   9) LIGHTBOX DE GALERÍA (.lightbox)
   El JS lo crea/abre con .is-open al hacer clic en una imagen.
   ===================================================================== */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--z-lightbox);
  display: grid;
  place-items: center;
  padding: var(--gutter);
  background: rgba(2,2,3,.92);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--t) var(--ease), visibility var(--t);
}
.lightbox.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.lightbox__img {
  max-width: min(1100px, 94vw);
  max-height: 86vh;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  transform: scale(.96);
  transition: transform var(--t) var(--ease-out);
}
.lightbox.is-open .lightbox__img { transform: scale(1); }
.lightbox__close {
  position: absolute; top: 18px; right: 18px;
  width: 46px; height: 46px; display: grid; place-items: center;
  border: 1px solid var(--line); border-radius: 50%; color: var(--gold);
  background: rgba(5,5,6,.5);
  transition: background var(--t) var(--ease), transform var(--t) var(--ease);
}
.lightbox__close:hover { background: rgba(246,197,85,.12); transform: rotate(90deg); }
.lightbox__caption { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; color: var(--muted); font-size: var(--fs-small); }


/* =====================================================================
   10) TIMELINE "RECORRIDO DEL PACIENTE"
   Línea vertical + nodos. El trazo SVG lo anima el JS (path con dashoffset).
   ===================================================================== */
.timeline { position: relative; display: grid; gap: var(--space-7); }
/* SVG del trazo: position absoluta a la izquierda; el JS controla el path */
.timeline__track { position: absolute; left: 19px; top: 0; bottom: 0; width: 2px; }
.timeline__track svg { width: 2px; height: 100%; overflow: visible; }
.timeline__path {
  fill: none;
  stroke: var(--gold);
  stroke-width: 2;
  /* El JS define stroke-dasharray/offset para el efecto de dibujado */
}
.timeline__step { position: relative; padding-left: 64px; }
.timeline__node {
  position: absolute; left: 8px; top: 2px;
  width: 24px; height: 24px; border-radius: 50%;
  border: 2px solid var(--gold);
  background: var(--ink);
  display: grid; place-items: center;
  color: var(--gold); font-size: .8rem; font-weight: 700;
  z-index: var(--z-base);
}
/* Los pasos usan <h3> (jerarquía correcta tras el <h2> de la sección); el
   tamaño visual se baja a --fs-h5 para que sigan viéndose como subtítulos. */
.timeline__step h3 { margin-bottom: var(--space-1); font-size: var(--fs-h5); }
.timeline__step p { color: var(--muted); margin: 0; }


/* =====================================================================
   11) INTRO PRELOADER (#intro-preloader)
   Solo en el Home. Fijo, fondo negro, scrim radial dorado, video a pantalla.
   .is-done => fade-out. body.preloading bloquea el scroll (ver sección 0).
   ===================================================================== */
#intro-preloader {
  position: fixed;
  inset: 0;
  z-index: var(--z-intro);
  background: var(--ink);
  display: grid;
  place-items: center;
  overflow: hidden;
  transition: opacity var(--t-slow) var(--ease), visibility var(--t-slow);
  cursor: pointer;
  outline: none;
}
/* Scrim radial dorado para dar calidez al video */
#intro-preloader::after {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(120% 90% at 50% 40%, rgba(246,197,85,.12), rgba(5,5,6,.0) 55%),
              linear-gradient(to top, rgba(5,5,6,.85), rgba(5,5,6,0) 40%);
  pointer-events: none;
  z-index: 2;
}
#intro-preloader video {
  width: 100%; height: 100%;
  object-fit: cover;
  z-index: 1;
}
#intro-preloader:focus-visible { box-shadow: inset 0 0 0 2px var(--gold-light); }
/* Estado finalizado: desvanecer y dejar de bloquear */
#intro-preloader.is-done { opacity: 0; visibility: hidden; pointer-events: none; }
/* Inactivo desde el HTML: solo initIntro puede habilitarlo en desktop. */
#intro-preloader[data-intro-disabled] { display: none; }
@media (max-width: 1024px), (hover: none), (pointer: coarse), (pointer: none) {
  #intro-preloader { display: none; }
}


/* =====================================================================
   12) UTILIDADES DE ANIMACIÓN (.reveal)
   Estado inicial oculto+desplazado; .is-in => visible (lo agrega el JS).
   IMPORTANTE: con prefers-reduced-motion TODO queda visible (ver más abajo).
   ===================================================================== */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity var(--t-slow) var(--ease-out), transform var(--t-slow) var(--ease-out);
  /* NOTA: el 'will-change' NO va permanente aquí (había decenas de .reveal en el
     Home y eso consume memoria de GPU sin parar). El JS (initReveals) lo activa
     solo mientras el elemento va a animar y lo limpia al añadir .is-in. */
}
.reveal.is-in { opacity: 1; transform: none; }

/* Variantes de dirección */
.reveal--left  { transform: translateX(-32px); }
.reveal--right { transform: translateX(32px); }
.reveal--scale { transform: scale(.94); }
.reveal--left.is-in, .reveal--right.is-in, .reveal--scale.is-in { transform: none; }

/* Variantes de delay (para stagger manual sin JS) */
.reveal--d1 { transition-delay: .08s; }
.reveal--d2 { transition-delay: .16s; }
.reveal--d3 { transition-delay: .24s; }
.reveal--d4 { transition-delay: .32s; }
.reveal--d5 { transition-delay: .40s; }


/* =====================================================================
   13) RESPONSIVE — breakpoints ~1100px y ~760px (mobile-first)
   ===================================================================== */

/* >=760px: grids empiezan a crecer */
@media (min-width: 760px) {
  .grid--2 { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr 1fr; }
  .footer__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .footer__legal-links { justify-content: flex-start; }
}

/* >=1100px: layout completo de desktop */
@media (min-width: 1100px) {
  .grid--3 { grid-template-columns: repeat(3, 1fr); }
  .grid--4 { grid-template-columns: repeat(4, 1fr); }
  .footer__grid { grid-template-columns: 1.6fr 1fr 1fr 1.2fr; }
  .footer__legal-bottom { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .footer__legal-meta { justify-items: end; text-align: right; }
  .footer__sede--instagram { display: none; }
  .footer__actions { margin-top: var(--space-6); }
  .footer__socials a {
    width: auto;
    min-width: 8.75rem;
    height: 44px;
    grid-template-columns: 20px auto;
    gap: .65rem;
    padding-inline: 1rem;
    border-radius: var(--radius-pill);
  }
  .footer__action-label { display: inline; color: var(--cream); font-size: .82rem; font-weight: 600; }
  .footer__agenda { min-width: 11rem; justify-content: center; }
}

/* <=1024px: en tablet/móvil escondemos el nav de escritorio y mostramos hamburguesa.
   (Lo ponemos amplio para que el menú no se apriete en pantallas medianas.) */
@media (max-width: 1024px) {
  .nav__list, .nav__cta { display: none; }
  .nav__burger { display: grid; }
}

/* <=760px: ajustes finos móvil */
@media (max-width: 760px) {
  :root { --header-h: 64px; }
  .section { padding-block: clamp(var(--space-8), 12vw, var(--space-10)); }
  .float-wa { width: 50px; height: 50px; }
  .float-wa svg { width: 26px; height: 26px; }
  /* Que los flotantes no se encimen: el WhatsApp va abajo del CTA, con aire */
  .float-stack { gap: var(--space-2); }
  .brand__name small { display: none; }
}

/* Alturas muy cortas (móvil apaisado, teclado abierto): ocultamos el indicador
   de scroll del hero para que NO compita con el WhatsApp flotante en la misma
   franja inferior. El hero__scroll vive en el style inline de index.html. */
@media (max-height: 640px) {
  .hero__scroll { display: none; }
}


/* =====================================================================
   PREFERS-REDUCED-MOTION
   Si el usuario pide menos movimiento: nada de entradas, todo visible,
   sin transiciones costosas. (Lenis tampoco arranca, eso lo controla el JS.)
   ===================================================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
  .reveal { opacity: 1 !important; transform: none !important; }
  /* El intro se salta de inmediato (el JS también lo maneja) */
  #intro-preloader { display: none !important; }
  body.preloading { overflow: auto !important; height: auto !important; }
}

/* Fallback real sin JavaScript: Home conserva una lectura estática completa.
   Con scripting activo, las secuencias y los includes no cambian. */
@media (scripting: none) {
  .home-page #intro-preloader {
    display: none;
  }

  .home-page main .reveal,
  .doctor-page .doctor-pillars__head .reveal,
  .doctor-page .doctor-work-method .reveal,
  .doctor-page .doctor-closing-section .reveal,
  .procedures-page .procedures-closing-section .reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  /* Hero y Eternia dejan de compartir un escenario absoluto sin su timeline. */
  .home-page .home-opening__stage {
    height: auto;
    overflow: visible;
  }

  .home-page .home-opening .hero,
  .home-page .home-opening .eternia-experience {
    position: relative;
    inset: auto;
  }

  .home-page .eternia-experience {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .home-page .home-journey__step-icon {
    opacity: 1;
    transform: none;
  }

  @media (min-width: 1025px) {
    .home-page .home-opening .hero,
    .home-page .home-opening .eternia-experience {
      height: auto;
      min-height: 100svh;
    }
  }
}

/* =====================================================================
   Correccion final del recorrido animado
   La ocultacion existe solo con mejora progresiva; sin JS el contenido
   conserva una lectura vertical completa.
   ===================================================================== */
@media (min-width: 900px) {
  .home-journey:not(.is-enhanced) .home-journey__scroll {
    height: auto;
  }

  .home-journey:not(.is-enhanced) .home-journey__stage {
    position: relative;
    top: auto;
    display: block;
    min-height: 0;
    padding-top: var(--space-4);
    padding-bottom: clamp(4rem, 8vw, 7rem);
  }

  .home-journey:not(.is-enhanced) .home-journey__visual {
    width: min(70vw, 390px);
    margin-bottom: var(--space-7);
    transform: none;
  }

  .home-journey:not(.is-enhanced) .home-journey__steps {
    display: grid;
    min-height: 0;
  }

  .home-journey:not(.is-enhanced) .home-journey__step {
    position: relative;
    inset: auto;
    max-width: 44rem;
    margin-inline: auto;
    padding: clamp(1.8rem, 5vw, 3rem) 0;
    transform: none;
    opacity: 1;
    visibility: visible;
    text-align: center;
    border-top: 1px solid var(--line-2);
  }

  .home-journey:not(.is-enhanced) .home-journey__step:last-child {
    border-bottom: 1px solid var(--line-2);
  }

  .home-journey:not(.is-enhanced) .home-journey__step h3,
  .home-journey:not(.is-enhanced) .home-journey__step p {
    margin-inline: auto;
  }

  .home-journey:not(.is-enhanced) .home-journey__progress {
    display: none;
  }

  .home-journey.is-enhanced .home-journey__scroll {
    height: 500svh;
  }

  .home-journey.is-enhanced .home-journey__stage {
    position: relative;
    top: auto;
  }

  .home-journey.is-enhanced .home-journey__step {
    position: absolute;
    inset: 50% 0 auto;
    transform: translateY(calc(-50% + 34px));
    opacity: 0;
    visibility: hidden;
    transition: none;
  }

  .home-journey.is-enhanced .home-journey__visual-icon {
    opacity: 0;
    visibility: hidden;
    transition: none;
  }
}

/* =====================================================================
   Resultados compartidos — Home + El Doctor
   Una sola composición, una entrada progresiva segura y un único gap real.
   ===================================================================== */
.home-results .section-head {
  width: 100%;
  max-width: 78rem;
}

.home-results__title {
  max-width: none;
  margin-inline: auto;
  font-size: clamp(2.7rem, 4vw, 3.75rem);
  line-height: .98;
  text-align: center;
  text-wrap: balance;
}

.home-results__title span {
  display: inline;
}

/* Sin JavaScript, sin IntersectionObserver o ante cualquier fallo, todos los
   elementos permanecen visibles. El estado oculto solo existe después de que
   initSharedResults() confirma la mejora progresiva. */
.home-results [data-results-reveal] {
  opacity: 1;
  transform: none;
}

.home-results.is-results-enhanced [data-results-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity 620ms var(--ease-out), transform 620ms var(--ease-out);
}

.home-results.is-results-enhanced .home-results__grid .home-result-card:nth-child(odd) {
  transform: translate3d(-22px, 30px, 0);
}

.home-results.is-results-enhanced .home-results__grid .home-result-card:nth-child(even) {
  transform: translate3d(22px, 30px, 0);
}

.home-results.is-results-enhanced [data-results-reveal].is-in {
  opacity: 1;
  transform: none;
}

@media (min-width: 768px) {
  body.doctor-page {
    --doctor-results-gap-total: clamp(5rem, 10vw, 6rem);
    --doctor-specialties-shadow-space: 1.5rem;
  }

  /* El espacio total se define una sola vez. La pequeña reserva inferior solo
     evita recortar la sombra de las cards; Resultados absorbe el resto. */
  .doctor-page .doctor-specialties {
    padding-bottom: var(--doctor-specialties-shadow-space);
  }

  .doctor-page .doctor-results {
    padding-top: calc(var(--doctor-results-gap-total) - var(--doctor-specialties-shadow-space));
  }
}

@media (min-width: 1025px) {
  body.doctor-page {
    --doctor-results-gap-total: clamp(6rem, 9vw, 8.5rem);
  }
}

@media (max-width: 767px) {
  .home-results__title {
    max-width: 100%;
    font-size: clamp(2rem, 8.6vw, 2.5rem);
    line-height: 1.02;
  }

  .home-results__title span {
    display: block;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-results [data-results-reveal],
  .home-results.is-results-enhanced [data-results-reveal],
  .home-results.is-results-enhanced .home-results__grid .home-result-card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}


/* =====================================================================
   14) COMPONENTES DE FASE 2 (páginas de contenido)
   Acordeón FAQ · Quick-facts ·
   Bloque "Lo que sí / lo que no" · Hero de página interior · Breadcrumb.
   La lógica del acordeón vive en main.js (initFaq).
   NO borres estos comentarios: son la guía para editar.
   ===================================================================== */

/* ---- Acordeón FAQ (.faq > .faq__item) ---- */
.faq { display: grid; gap: var(--space-3); }
.faq__item { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); overflow: hidden; }
.faq__q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);
  padding: var(--space-5); text-align: left; font-family: var(--font-head);
  font-size: var(--fs-h5); color: var(--cream); cursor: pointer;
}
.faq__q:hover { color: var(--gold-2); }
/* Ícono "+" que se vuelve "–" al abrir */
.faq__icon { flex: none; width: 22px; height: 22px; position: relative; }
.faq__icon::before, .faq__icon::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 2px; background: var(--gold); transform: translate(-50%,-50%); transition: transform var(--t) var(--ease); }
.faq__icon::after { transform: translate(-50%,-50%) rotate(90deg); }
.faq__item.is-open .faq__icon::after { transform: translate(-50%,-50%) rotate(0); }
/* Panel: animación suave con grid-template-rows (0fr -> 1fr), sin adivinar alturas */
.faq__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows var(--t) var(--ease); }
.faq__item.is-open .faq__a { grid-template-rows: 1fr; }
.faq__a-inner { overflow: hidden; }
.faq__a p { padding: 0 var(--space-5) var(--space-5); color: var(--muted); margin: 0; }
/* ---- Quick-facts (datos rápidos del procedimiento) ---- */
.facts { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
.fact { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4); border: 1px solid rgba(214,165,58,.16); border-radius: var(--radius-md); background: linear-gradient(180deg, rgba(247,241,231,.018), rgba(247,241,231,0)), var(--panel); }
.fact__icon { flex: none; width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); color: var(--gold); background: rgba(214,165,58,.09); }
.fact__icon svg { width: 20px; height: 20px; }
.fact__label { font-size: var(--fs-small); color: var(--muted); }
.fact__value { font-weight: 600; color: var(--cream); }

/* ---- Bloque "Lo que SÍ / lo que NO" (honestidad = lujo) ---- */
.willnot { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
.willnot__col { padding: var(--space-6); border: 1px solid rgba(214,165,58,.16); border-radius: var(--radius-lg); background: linear-gradient(180deg, rgba(247,241,231,.018), rgba(247,241,231,0)), var(--panel); box-shadow: 0 12px 34px rgba(0,0,0,.16); }
.willnot__col h3 { display: flex; align-items: center; gap: .5rem; margin-bottom: var(--space-4); }
.willnot ul { display: grid; gap: .2rem; }
.willnot li { display: flex; align-items: flex-start; gap: .6rem; color: var(--muted); padding: .4rem 0; }
.willnot li::before { content: ""; flex: none; width: 18px; height: 18px; margin-top: 3px; background-repeat: no-repeat; background-position: center; }
.willnot--yes li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none'%3E%3Cpath d='M4 9.5l3.5 3.5L14 6' stroke='%23f6c555' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.willnot--no li::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none'%3E%3Cpath d='M5 5l8 8M13 5l-8 8' stroke='%23746d66' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* ---- Hero de página interior + breadcrumb ---- */
.page-hero { position: relative; padding-block: calc(var(--header-h) + var(--space-8)) var(--space-8); }
.page-hero__bg { position: absolute; inset: 0; z-index: 0; background: radial-gradient(100% 80% at 50% -20%, rgba(246,197,85,.12), rgba(5,5,6,0) 60%), linear-gradient(180deg, var(--ink), var(--ink-2)); }
.page-hero .container { position: relative; z-index: 1; }
.breadcrumb { display: flex; flex-wrap: wrap; gap: .4rem; font-size: var(--fs-small); color: var(--muted); margin-bottom: var(--space-4); }
.breadcrumb a:hover { color: var(--gold-2); }
.breadcrumb span[aria-current] { color: var(--gold); }

/* ---- Retrato (foto del doctor / editorial) — reutilizable ---- */
.portrait { position: relative; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); box-shadow: var(--shadow-md); aspect-ratio: 4 / 5; }
.portrait img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(.15) contrast(1.02); }
.portrait__tag { position: absolute; left: var(--space-4); bottom: var(--space-4); background: rgba(5,5,6,.7); backdrop-filter: blur(6px); border: 1px solid var(--line); border-radius: var(--radius-pill); padding: .4rem .9rem; font-size: var(--fs-small); color: var(--gold); }

/* ---- Cita / testimonio (.quote) — reutilizable ---- */
.quote { position: relative; }
.quote__mark { font-family: var(--font-head); font-size: 3.5rem; line-height: .6; color: var(--gold); opacity: .6; }
.quote__text { font-family: var(--font-head); font-size: var(--fs-h5); color: var(--cream); font-style: italic; margin: var(--space-3) 0 var(--space-4); }
.quote__author { color: var(--gold); font-weight: 600; font-size: .92rem; }
.quote__meta { color: var(--muted); font-size: var(--fs-small); }

/* ---- Filtros por categoría (reutilizable: procedimientos, resultados) ---- */
.filters { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-7); }
.filter {
  padding: .55rem 1.15rem; border-radius: var(--radius-pill); border: 1px solid var(--line);
  background: rgba(247,241,231,.018); color: var(--muted); font-weight: 600; font-size: .9rem;
  transition: color var(--t) var(--ease), border-color var(--t) var(--ease), background var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.filter:hover { color: var(--gold-2); border-color: rgba(243,200,90,.55); background: rgba(214,165,58,.07); }
.filter.is-active { background: var(--grad-gold); color: #1a1206; border-color: transparent; box-shadow: var(--shadow-gold); }

/* Tarjeta de procedimiento (layout en columna) + utilidad para ocultar al filtrar */
.proc-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  text-decoration: none;
}
.proc-card .ver {
  margin-top: auto;
  padding-top: var(--space-2);
  color: var(--gold);
  font-size: .9rem;
  font-weight: 700;
  letter-spacing: .01em;
}
.proc-card:hover .ver { color: var(--gold-light); }
.proc-card--available {
  border-color: rgba(243,200,90,.42);
}
.proc-card--pending {
  border-style: solid;
  background:
    linear-gradient(180deg, rgba(214,165,58,.026), rgba(247,241,231,.01) 44%),
    var(--panel);
}
.proc-card--pending .ver { color: var(--stone); }
.proc-card--pending:hover .ver { color: var(--gold-light); }
.is-hidden { display: none !important; }

/* Procedimientos internos: hero, acciones, disclaimers y placeholders responsables */
.proc-hero .split { align-items: center; }
.procedure-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-5);
}
.proc-hero__media {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--line);
  box-shadow: var(--shadow-md);
}
.procedure-placeholder {
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: var(--space-6);
  border: 1px solid rgba(214,165,58,.22);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(214,165,58,.10), transparent 34%),
    linear-gradient(180deg, rgba(247,241,231,.035), rgba(247,241,231,.012)),
    var(--panel);
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
}
.procedure-placeholder--hero {
  min-height: clamp(360px, 42vw, 560px);
  border-radius: inherit;
}
.procedure-placeholder h2,
.procedure-placeholder h3 {
  margin: 0;
  color: var(--cream);
}
.procedure-placeholder h2 {
  font-size: clamp(2.2rem, 4.6vw, 4.8rem);
}
.procedure-placeholder h3 { font-size: var(--fs-h4); }
.procedure-placeholder p {
  max-width: 48ch;
  margin: 0;
  color: var(--muted);
}
.procedure-disclaimer {
  max-width: 78ch;
  margin: var(--space-4) auto 0;
  color: var(--warm-gray);
  font-size: var(--fs-small);
  text-align: center;
}
.procedure-result-grid .procedure-placeholder { min-height: 280px; }

/* Fase 1.6.1: compactación premium para catálogo y páginas internas */
.procedures-main,
.procedure-main {
  scroll-padding-top: calc(var(--header-h) + var(--space-4));
}
.procedures-main [id],
.procedure-main [id] {
  scroll-margin-top: calc(var(--header-h) + var(--space-5));
}
.procedures-hero {
  padding-block: calc(var(--header-h) + var(--space-7)) var(--space-5);
}
.procedures-hero .section-head {
  margin-bottom: 0;
}
.procedures-catalog {
  padding-top: var(--space-5);
}
.procedures-catalog .filters {
  margin-bottom: var(--space-5);
}
.procedures-catalog .grid--3 {
  gap: var(--space-4);
}
.procedures-catalog .proc-card {
  min-height: 245px;
}
.procedure-main .proc-hero {
  padding-block: calc(var(--header-h) + var(--space-7)) var(--space-6);
}
.procedure-main .proc-hero .lead {
  margin-bottom: 0;
}
.procedure-main .procedure-facts {
  padding-block: var(--space-5);
}
.procedure-main .facts {
  gap: var(--space-3);
}
.procedure-main .fact {
  padding: var(--space-4);
}
.procedure-main .procedure-disclaimer {
  max-width: 72ch;
  margin-top: var(--space-3);
}
.procedure-main .section-head {
  margin-bottom: var(--space-6);
}
.procedure-placeholder {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.procedure-placeholder::before {
  content: "";
  position: absolute;
  inset: var(--space-4);
  z-index: -1;
  border: 1px solid rgba(214,165,58,.12);
  border-radius: calc(var(--radius-lg) - 8px);
}
.procedure-placeholder::after {
  content: "";
  position: absolute;
  inset: auto var(--space-6) var(--space-5);
  z-index: -1;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(243,200,90,.42), transparent);
}
.procedure-placeholder--hero {
  min-height: clamp(300px, 34vw, 460px);
}
.procedure-result-grid .procedure-placeholder {
  min-height: 235px;
}
.procedure-candidate {
  padding-block: clamp(var(--space-7), 7vw, var(--space-10));
}
.procedure-candidate .section-head {
  margin-bottom: var(--space-5);
}
.procedure-candidate .willnot__col {
  padding: var(--space-5);
  background:
    linear-gradient(180deg, rgba(214,165,58,.035), rgba(247,241,231,.012)),
    var(--panel);
}
.procedure-candidate .willnot ul {
  gap: .15rem;
}
.procedure-candidate .willnot li {
  padding: .52rem 0;
  border-bottom: 1px solid rgba(247,241,231,.055);
}
.procedure-candidate .willnot li:last-child {
  border-bottom: 0;
}

/* Responsive de los componentes de Fase 2 */
@media (min-width: 760px) {
  .facts { grid-template-columns: repeat(3, 1fr); }
  .willnot { grid-template-columns: 1fr 1fr; }
}


/* =====================================================================
   15) FASE 1.5 — AGENDA Y CONTACTO PREMIUM
   Estilos page-specific para agendar.html y contacto.html.
   ===================================================================== */

/* ---- Agenda ---- */
.appointment-hero {
  padding-top: calc(var(--header-h) + var(--space-8));
  background:
    radial-gradient(70% 64% at 50% 0%, rgba(214,165,58,.09), transparent 66%),
    linear-gradient(180deg, rgba(16,16,18,.88), rgba(5,5,5,0));
}
.appointment-hero__head {
  position: relative;
  margin-bottom: 0;
}
.appointment-options {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}
.appointment-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.appointment-card .card__title {
  margin-top: var(--space-3);
}
.appointment-card .price {
  margin: var(--space-3) 0;
}
.appointment-card .card__text {
  flex: 1;
}
.appointment-card .btn {
  align-self: flex-start;
  margin-top: var(--space-5);
}
/* ---- Contacto ---- */
.contact-hero {
  padding-top: calc(var(--header-h) + var(--space-8));
  background:
    radial-gradient(66% 62% at 18% 8%, rgba(214,165,58,.08), transparent 64%),
    linear-gradient(180deg, rgba(16,16,18,.72), rgba(5,5,5,0));
}
.contact-hero__head {
  margin-bottom: 0;
}
.contact-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin-top: var(--space-6);
}
.contact-section {
  padding-top: var(--space-6);
}
.contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}
.contact-card {
  min-height: 100%;
}
.contact-card .card__title {
  margin-top: var(--space-3);
}
.contact-card--consultorio {
  border-color: rgba(243,200,90,.42);
}
.contact-actions {
  display: grid;
  justify-items: center;
  gap: var(--space-3);
  margin-top: var(--space-7);
}
.contact-actions > .btn {
  min-width: min(100%, 280px);
}
.contact-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  width: min(100%, 720px);
  margin-top: var(--space-3);
}
.contact-meta p {
  margin: 0;
  padding: var(--space-4);
  border: 1px solid var(--line-2);
  border-radius: var(--radius-md);
  background: rgba(247,241,231,.018);
}
.contact-meta strong {
  display: block;
  color: var(--cream);
  font-size: var(--fs-small);
  margin-bottom: .18rem;
}
.contact-meta span {
  color: var(--muted);
  overflow-wrap: anywhere;
}
.contact-placeholder {
  width: min(100%, 860px);
  margin-inline: auto;
  padding: clamp(var(--space-6), 5vw, var(--space-8));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(214,165,58,.035), rgba(247,241,231,.012)),
    var(--panel);
  text-align: center;
  box-shadow: 0 18px 50px rgba(0,0,0,.18);
}
.contact-placeholder .eyebrow {
  justify-content: center;
}
.contact-placeholder .lead {
  margin-inline: auto;
}
.contact-placeholder__ctas {
  display: flex;
  justify-content: center;
  margin-top: var(--space-5);
}

@media (min-width: 760px) {
  .appointment-options,
  .contact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .contact-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Los bloques editoriales densos del Home necesitan el lienzo libre. */
.float-cta.is-section-suppressed,
.float-wa.is-section-suppressed {
  opacity: 0;
  pointer-events: none;
  transform: translateY(14px) scale(.96);
}

@media (max-width: 760px) {
  .contact-hero__actions {
    align-items: stretch;
    flex-direction: column;
  }
  .contact-hero__actions .btn,
  .appointment-card .btn {
    width: 100%;
  }
  .contact-placeholder {
    margin-bottom: calc(var(--space-8) + env(safe-area-inset-bottom));
  }
  .contact-placeholder__ctas .btn {
    width: 100%;
  }
}

@media (max-width: 760px) {
  .procedures-main,
  .procedure-main {
    padding-bottom: calc(var(--space-9) + env(safe-area-inset-bottom));
  }
  .procedures-hero,
  .procedure-main .proc-hero {
    padding-block: calc(var(--header-h) + var(--space-5)) var(--space-4);
  }
  .procedures-hero .breadcrumb,
  .procedure-main .breadcrumb {
    margin-bottom: var(--space-3);
  }
  .procedures-hero .eyebrow,
  .procedure-main .proc-hero .eyebrow {
    margin-bottom: var(--space-3);
  }
  .procedures-hero .lead,
  .procedure-main .proc-hero .lead {
    font-size: 1.02rem;
    line-height: 1.5;
  }
  .procedures-catalog {
    padding-top: var(--space-4);
  }
  .procedures-catalog .filters {
    gap: var(--space-2);
    margin-bottom: var(--space-4);
  }
  .procedures-catalog .filter {
    flex: 1 1 calc(50% - var(--space-2));
    min-height: 42px;
    padding: .55rem .75rem;
    font-size: .84rem;
  }
  .procedures-catalog .proc-card {
    min-height: auto;
    padding: var(--space-5);
  }
  .procedures-catalog .card__title {
    font-size: clamp(1.55rem, 8vw, 2.05rem);
  }
  .procedure-actions {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }
  .procedure-actions .btn {
    width: 100%;
  }
  .procedure-main .split {
    gap: var(--space-5);
  }
  .proc-hero__media {
    box-shadow: 0 12px 34px rgba(0,0,0,.18);
  }
  .procedure-placeholder {
    min-height: 220px;
    padding: var(--space-5);
    gap: var(--space-2);
  }
  .procedure-placeholder--hero {
    min-height: 235px;
  }
  .procedure-placeholder h2 {
    font-size: clamp(2rem, 12vw, 3rem);
  }
  .procedure-placeholder h3 {
    font-size: clamp(1.45rem, 8vw, 2rem);
  }
  .procedure-placeholder p {
    font-size: .95rem;
    line-height: 1.5;
  }
  .procedure-placeholder::before {
    inset: var(--space-3);
  }
  .procedure-placeholder::after {
    inset-inline: var(--space-5);
    bottom: var(--space-4);
  }
  .procedure-main .procedure-facts {
    padding-block: var(--space-4);
  }
  .procedure-main .fact {
    padding: var(--space-3);
    gap: var(--space-2);
  }
  .procedure-main .fact__icon {
    width: 36px;
    height: 36px;
  }
  .procedure-disclaimer {
    padding-inline: var(--space-2);
    text-align: left;
  }
  .procedure-candidate {
    padding-block: var(--space-6);
  }
  .procedure-candidate .willnot__col {
    padding: var(--space-4);
  }
  .procedure-candidate .willnot li {
    padding: .48rem 0;
  }
  .procedure-result-grid .procedure-placeholder {
    min-height: 205px;
  }
  .procedure-main .closing {
    margin-bottom: var(--space-6);
  }
}

/* Fase 1.6.5 — Responsive Global Premium */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

main {
  overflow-x: clip;
  padding-bottom: env(safe-area-inset-bottom);
}

[id] {
  scroll-margin-top: calc(var(--header-h) + var(--space-5));
}

.container,
.section,
.page-hero,
.grid > *,
.split > *,
.card,
.closing,
.procedure-placeholder,
.authorized-placeholder,
.appointment-options > *,
.contact-grid > * {
  min-width: 0;
}

.lead,
.text-muted,
.card__text,
.construction-panel p,
.authorized-placeholder p,
.contact-meta span {
  overflow-wrap: break-word;
}

.btn {
  max-width: 100%;
  min-height: 44px;
  white-space: normal;
  text-align: center;
}

.btn--text {
  min-height: 0;
}

.responsive-cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-4);
  margin-top: var(--space-6);
}

.responsive-cta-row .btn {
  flex: 0 1 auto;
}

.portrait--placeholder {
  display: grid;
  background:
    radial-gradient(70% 70% at 50% 22%, rgba(214,165,58,.12), transparent 62%),
    linear-gradient(180deg, rgba(247,241,231,.035), rgba(247,241,231,.008)),
    var(--panel);
}

.portrait--placeholder .authorized-placeholder {
  height: 100%;
  min-height: 100%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.authorized-placeholder {
  position: relative;
  display: flex;
  min-height: 260px;
  flex-direction: column;
  justify-content: flex-end;
  gap: var(--space-3);
  padding: clamp(var(--space-5), 4vw, var(--space-7));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(214,165,58,.10), rgba(247,241,231,.016) 48%, rgba(5,5,5,.18)),
    var(--panel);
  box-shadow: 0 16px 44px rgba(0,0,0,.22);
  overflow: hidden;
}

.authorized-placeholder::before {
  content: "";
  position: absolute;
  inset: var(--space-4);
  border: 1px dashed rgba(214,165,58,.26);
  border-radius: calc(var(--radius-lg) - 6px);
  pointer-events: none;
}

.authorized-placeholder::after {
  content: "";
  position: absolute;
  inset: auto var(--space-5) var(--space-5);
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(243,200,90,.5), transparent);
  opacity: .55;
  pointer-events: none;
}

.authorized-placeholder > * {
  position: relative;
  z-index: 1;
}

.authorized-placeholder h3 {
  margin: 0;
  font-size: clamp(1.6rem, 3vw, 2.35rem);
}

.authorized-placeholder p {
  max-width: 42ch;
  margin: 0;
  color: var(--muted);
}

.authorized-placeholder--portrait {
  align-items: flex-start;
  justify-content: flex-end;
}

.result-placeholder {
  aspect-ratio: 4 / 3;
  min-height: 230px;
}

.authorized-grid {
  align-items: stretch;
}

.construction-page {
  padding-top: calc(var(--header-h) + var(--space-7));
  padding-bottom: var(--space-5);
}

.construction-page .section-head {
  margin-bottom: 0;
}

.construction-section {
  padding-top: var(--space-4);
}

.construction-panel,
.thanks-panel {
  width: min(100%, 920px);
  margin-inline: auto;
  border-color: rgba(214,165,58,.22);
  background:
    radial-gradient(70% 80% at 50% 0%, rgba(214,165,58,.08), transparent 64%),
    linear-gradient(180deg, rgba(247,241,231,.026), rgba(247,241,231,.01)),
    var(--panel);
}

.construction-eyebrow {
  justify-content: center;
}

.construction-lead {
  margin-inline: auto;
  max-width: 58ch;
}

.construction-note {
  max-width: 70ch;
  margin: var(--space-5) auto 0;
  font-size: var(--fs-small);
}

.thanks-section {
  min-height: calc(100svh - var(--header-h));
  display: grid;
  align-items: center;
  padding-top: calc(var(--header-h) + var(--space-7));
}

.legal-page {
  padding-top: calc(var(--header-h) + var(--space-7));
}

.legal-copy {
  margin-top: var(--space-3);
}

.legal-actions {
  margin-top: var(--space-7);
}

@media (min-width: 1440px) {
  :root {
    --container: 1240px;
  }

  .section {
    padding-block: clamp(var(--space-9), 7vw, var(--space-12));
  }

  .hero__inner,
  .section-head {
    max-width: 68ch;
  }
}

@media (max-width: 1279px) {
  .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer .container,
  .footer__grid {
    min-width: 0;
  }
}

@media (max-width: 1024px) {
  :root {
    --header-h: 72px;
  }

  .section {
    padding-block: clamp(var(--space-7), 9vw, var(--space-10));
  }

  .section--tight {
    padding-block: clamp(var(--space-6), 7vw, var(--space-8));
  }

  .page-hero {
    padding-block: calc(var(--header-h) + var(--space-6)) var(--space-7);
  }

  .split {
    gap: var(--space-6);
  }

  .card {
    padding: clamp(var(--space-5), 3vw, var(--space-6));
  }

  .construction-page,
  .legal-page,
  .thanks-section {
    padding-top: calc(var(--header-h) + var(--space-6));
  }
}

@media (max-width: 768px) {
  :root {
    --gutter: 20px;
    --fs-h1: clamp(2.45rem, 12vw, 3.75rem);
    --fs-h2: clamp(2rem, 9.5vw, 3rem);
    --fs-h3: clamp(1.55rem, 7vw, 2.1rem);
    --fs-lead: clamp(1rem, 4.2vw, 1.16rem);
  }

  h1,
  h2 {
    line-height: 1.04;
  }

  .lead {
    line-height: 1.56;
  }

  .section {
    padding-block: var(--space-7);
  }

  .section--tight {
    padding-block: var(--space-6);
  }

  .section-head {
    margin-bottom: var(--space-5);
  }

  .page-hero,
  .hero {
    min-height: auto;
    padding-block: calc(var(--header-h) + var(--space-5)) var(--space-6);
  }

  .hero__inner {
    max-width: 100%;
  }

  .hero__ctas,
  .closing__ctas,
  .responsive-cta-row {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-3);
  }

  .hero__ctas .btn,
  .closing__ctas .btn,
  .responsive-cta-row .btn {
    width: 100%;
  }

  .grid {
    gap: var(--space-4);
  }

  .grid--2,
  .grid--3,
  .grid--4,
  .grid--auto,
  .facts,
  .appointment-options,
  .contact-grid,
  .contact-meta {
    grid-template-columns: 1fr;
  }

  .card,
  .closing,
  .construction-panel,
  .thanks-panel,
  .contact-placeholder {
    border-radius: var(--radius-md);
    padding: var(--space-5);
  }

  .proc-card,
  .appointment-card,
  .contact-card {
    min-height: auto;
  }

  .authorized-placeholder,
  .procedure-placeholder {
    min-height: 210px;
    padding: var(--space-5);
  }

  .result-placeholder {
    aspect-ratio: auto;
    min-height: 205px;
  }

  .authorized-placeholder::before {
    inset: var(--space-3);
  }

  .authorized-placeholder::after {
    inset-inline: var(--space-4);
    bottom: var(--space-4);
  }

  .portrait--placeholder {
    max-width: min(100%, 430px);
    margin-inline: auto;
  }

  .appointment-hero,
  .contact-hero {
    padding-top: calc(var(--header-h) + var(--space-5));
  }

  .contact-actions > .btn {
    width: 100%;
  }

  .construction-page {
    padding-top: calc(var(--header-h) + var(--space-5));
    padding-bottom: var(--space-3);
  }

  .construction-section {
    padding-top: var(--space-3);
  }

  .construction-panel h2,
  .thanks-panel h1 {
    font-size: clamp(2.3rem, 13vw, 3.25rem);
  }

  .construction-note {
    margin-top: var(--space-4);
  }

  .site-footer {
    padding-bottom: calc(var(--space-9) + env(safe-area-inset-bottom));
  }

  .float-stack {
    right: max(1rem, env(safe-area-inset-right));
    bottom: calc(1rem + env(safe-area-inset-bottom));
  }
}

@media (max-width: 430px) {
  :root {
    --gutter: 18px;
  }

  .section {
    padding-block: var(--space-6);
  }

  .section--tight {
    padding-block: var(--space-5);
  }

  .page-hero,
  .hero {
    padding-block: calc(var(--header-h) + var(--space-4)) var(--space-5);
  }

  .eyebrow {
    max-width: 100%;
    gap: .45rem;
    letter-spacing: .16em;
  }

  .eyebrow::before {
    width: 22px;
  }

  .badge,
  .pill,
  .filter {
    max-width: 100%;
    white-space: normal;
  }

  .btn--lg {
    --btn-pad-y: .9rem;
    --btn-pad-x: 1.15rem;
    font-size: .95rem;
  }

  .price__amount {
    font-size: clamp(1.9rem, 13vw, 2.45rem);
  }

  .card__title {
    font-size: clamp(1.45rem, 8vw, 1.9rem);
  }

  .procedures-catalog .filter {
    flex-basis: 100%;
  }

  .procedure-main .fact {
    grid-template-columns: auto 1fr;
  }

  .procedure-disclaimer {
    font-size: .88rem;
  }
}

/* Fase 2.1 — Confianza y curaduría */
.metric__num--text {
  max-width: 12ch;
  margin-inline: auto;
  font-family: var(--font-body);
  font-size: clamp(1.25rem, 2.4vw, 1.8rem);
  font-weight: 650;
  line-height: 1.15;
  text-wrap: balance;
}

.metric__num--price {
  font-size: clamp(1.7rem, 3.4vw, 2.65rem);
  white-space: nowrap;
}

@media (max-width: 430px) {
  .metric__num--text {
    max-width: 15ch;
  }
}

@media (max-width: 390px) {
  :root {
    --gutter: 16px;
    --fs-h1: clamp(2.2rem, 13vw, 3.1rem);
    --fs-h2: clamp(1.85rem, 10vw, 2.6rem);
  }

  .card,
  .closing,
  .construction-panel,
  .thanks-panel,
  .authorized-placeholder,
  .procedure-placeholder,
  .contact-placeholder {
    padding: var(--space-4);
  }

  .brand__name {
    font-size: 1.05rem;
  }

  .brand__name small {
    letter-spacing: .16em;
  }
}

@media (max-width: 360px) {
  :root {
    --gutter: 14px;
  }

  .brand__mark {
    width: 40px;
    height: 40px;
  }

  .btn {
    padding-inline: 1rem;
  }

  .eyebrow {
    font-size: .7rem;
    letter-spacing: .13em;
  }

  .construction-panel h2,
  .thanks-panel h1 {
    font-size: clamp(2.05rem, 12vw, 2.75rem);
  }
}


/* =====================================================================
   Fase 1.8 — Fotografía real Home + Doctor
   ===================================================================== */
.doctor-photo {
  margin: 0;
  isolation: isolate;
  background:
    linear-gradient(180deg, rgba(247,241,231,.035), rgba(247,241,231,0) 44%),
    var(--panel);
}

.doctor-photo::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(5,5,5,0) 52%, rgba(5,5,5,.62)),
    radial-gradient(90% 70% at 50% 18%, rgba(243,200,90,.08), transparent 62%);
  opacity: .9;
}

.doctor-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}

.doctor-photo__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: saturate(.92) contrast(1.04) brightness(.9);
  transform: scale(1.002);
}

.doctor-photo__caption {
  z-index: 2;
}

.doctor-photo--home {
  max-width: min(100%, 470px);
  margin-inline: auto;
  box-shadow: 0 24px 72px rgba(0,0,0,.34), 0 0 0 1px rgba(214,165,58,.06);
}

.doctor-photo--home .doctor-photo__img {
  object-position: 50% 38%;
}

.doctor-photo--authority {
  box-shadow: 0 28px 82px rgba(0,0,0,.38), 0 0 0 1px rgba(214,165,58,.08);
}

.doctor-photo--authority .doctor-photo__img {
  object-position: 50% 56%;
}

@media (min-width: 1024px) {
  .doctor-photo--authority {
    transform: translateY(6px);
  }
}

@media (max-width: 768px) {
  .doctor-photo {
    max-width: min(100%, 430px);
    margin-inline: auto;
  }

  .doctor-photo--home .doctor-photo__img {
    object-position: 50% 35%;
  }

  .doctor-photo--authority .doctor-photo__img {
    object-position: 50% 52%;
  }
}

@media (max-width: 430px) {
  .doctor-photo {
    max-width: min(100%, 380px);
    aspect-ratio: 4 / 5.15;
  }

  .doctor-photo__caption {
    left: var(--space-3);
    bottom: var(--space-3);
  }
}

/* =====================================================================
   Fase 1.9 — Sistema completo de procedimientos internos
   Extiende los componentes existentes sin alterar navegación ni includes.
   ===================================================================== */

.facts--4 {
  grid-template-columns: 1fr;
}

.facts--4 .fact {
  min-width: 0;
}

.facts--4 .fact__value {
  display: inline-block;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.procedure-supporting-note {
  max-width: 68ch;
  margin: var(--space-4) 0 0;
  color: var(--warm-gray);
  font-size: var(--fs-small);
}

.procedure-evaluation__list {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.procedure-evaluation__list ul {
  display: grid;
  grid-template-columns: 1fr;
  margin: 0;
}

.procedure-evaluation__list li {
  position: relative;
  padding: var(--space-4) var(--space-4) var(--space-4) 2.2rem;
  color: var(--warm-gray);
  border-bottom: 1px solid var(--line-2);
}

.procedure-evaluation__list li:last-child {
  border-bottom: 0;
}

.procedure-evaluation__list li::before {
  content: "";
  position: absolute;
  top: 1.72rem;
  left: .35rem;
  width: 1rem;
  height: 1px;
  background: var(--gold);
}

.procedure-disclaimer--emphasis {
  color: var(--gold-light);
}

.procedure-authorized-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
  align-items: end;
  padding: clamp(var(--space-6), 6vw, var(--space-9));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(214,165,58,.08), transparent 42%),
    var(--panel);
  box-shadow: 0 20px 56px rgba(0,0,0,.2);
}

.procedure-authorized-panel h2,
.procedure-authorized-panel p {
  margin: 0;
}

.procedure-authorized-panel p:last-child {
  max-width: 58ch;
  color: var(--warm-gray);
}

.procedure-related .closing {
  margin-top: var(--space-9);
}

.eyebrow--center {
  justify-content: center;
}

.content-centered {
  max-width: 68ch;
  margin-inline: auto;
}

@media (min-width: 760px) {
  .facts--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .procedure-evaluation__list ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .procedure-evaluation__list li:nth-child(odd) {
    border-right: 1px solid var(--line-2);
  }

  .procedure-evaluation__list li:nth-last-child(-n + 2) {
    border-bottom: 0;
  }

  .procedure-authorized-panel {
    grid-template-columns: minmax(0, 1.1fr) minmax(280px, .9fr);
  }
}

@media (min-width: 1180px) {
  .facts--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .procedure-main .proc-hero h1 {
    font-size: clamp(2.35rem, 12vw, 3.65rem);
    line-height: .98;
  }

  .facts--4 {
    gap: var(--space-2);
  }

  .procedure-evaluation__list li {
    padding-block: var(--space-3);
  }

  .procedure-evaluation__list li::before {
    top: 1.4rem;
  }

  .procedure-authorized-panel {
    padding: var(--space-5);
    border-radius: var(--radius-md);
  }

  .procedure-related .closing {
    margin-top: var(--space-7);
  }
}

@media (max-width: 430px) {
  .procedure-main .proc-hero h1 {
    font-size: clamp(2.15rem, 11.5vw, 3rem);
  }

  .procedure-authorized-panel {
    padding: var(--space-4);
  }
}

/* =====================================================================
   Fase 1.9.1 — QA editorial y alineación
   Centrado selectivo: jerarquía y UI al centro; lectura médica a la izquierda.
   ===================================================================== */

.procedures-hero .section-head {
  max-width: 860px;
  margin-inline: auto;
  text-align: center;
}

.procedures-hero .eyebrow,
.procedure-main .section-head .eyebrow,
.procedure-main .container--narrow > .eyebrow {
  justify-content: center;
}

.procedures-hero .lead {
  max-width: 68ch;
  margin-inline: auto;
}

.procedures-catalog .filters {
  justify-content: center;
}

.procedures-catalog .proc-card,
.procedure-related .proc-card {
  align-items: center;
  text-align: center;
}

.procedures-catalog .proc-card .badge,
.procedure-related .proc-card .badge {
  align-self: center;
}

.proc-card .ver {
  align-self: center;
  display: inline-flex;
  justify-content: center;
  width: fit-content;
  padding-bottom: .22rem;
  border-bottom: 1px solid rgba(214,165,58,.34);
  transition:
    color var(--t) var(--ease),
    border-color var(--t) var(--ease);
}

.proc-card:hover .ver,
.proc-card:focus-visible .ver {
  border-color: var(--gold-light);
}

.facts--4 .fact {
  justify-content: center;
  text-align: center;
}

.procedure-main .container--narrow > h2,
.procedure-main .section-head {
  text-align: center;
}

.procedure-main .container--narrow > h2 {
  max-width: 19ch;
  margin-inline: auto;
}

.procedure-main .container--narrow > .lead,
.procedure-main .section-head .lead {
  max-width: 68ch;
  margin-inline: auto;
  text-align: center;
}

.procedure-main .faq__q,
.procedure-main .faq__a p,
.procedure-main .timeline,
.procedure-main .willnot__col,
.procedure-main .procedure-evaluation__list,
.procedure-main .container--narrow > .text-muted {
  text-align: left;
}

@media (max-width: 760px) {
  .procedures-catalog .filter {
    flex: 1 1 calc(50% - var(--space-2));
    min-width: 0;
  }

  .procedure-main .proc-hero .split > div:first-child {
    text-align: center;
  }

  .procedure-main .proc-hero .eyebrow {
    justify-content: center;
  }

  .procedure-main .procedure-actions {
    justify-content: center;
  }

  .procedure-main .procedure-placeholder--hero {
    align-items: center;
    text-align: center;
  }

  .procedure-main .facts--4 {
    gap: var(--space-2);
  }

  .procedure-main .facts--4 .fact {
    padding: .8rem var(--space-3);
  }

  .procedure-main .procedure-authorized-panel {
    text-align: center;
  }

  .procedure-main .procedure-authorized-panel .eyebrow {
    justify-content: center;
  }

  .procedure-main .faq__q {
    padding-right: 4rem;
  }
}

@media (max-width: 430px) {
  .procedures-catalog .filter {
    flex-basis: calc(50% - var(--space-2));
  }

  .procedure-main .facts--4 .fact {
    gap: .65rem;
  }
}

/* =====================================================================
   Fase 2.0 — Páginas de pacientes, confianza y contenido final
   Sistema editorial compartido con composiciones distintas por página.
   ===================================================================== */

.patient-page main {
  min-width: 0;
  overflow: clip;
}

.patient-page section[id],
.patient-page article[id],
.patient-page h2[id] {
  scroll-margin-top: calc(var(--header-h) + var(--space-4));
}

.patient-hero {
  padding-top: calc(var(--header-h) + clamp(var(--space-8), 9vw, var(--space-11)));
  padding-bottom: clamp(var(--space-7), 7vw, var(--space-10));
  background:
    linear-gradient(180deg, rgba(214,165,58,.035), transparent 54%),
    repeating-linear-gradient(90deg, transparent 0, transparent calc(25% - 1px), rgba(247,241,231,.025) 25%),
    var(--ink);
}

.patient-hero__inner {
  text-align: center;
}

.patient-hero__inner .eyebrow {
  justify-content: center;
}

.patient-hero__inner h1 {
  max-width: 14ch;
  margin-inline: auto;
  font-size: clamp(2.75rem, 7vw, 5.7rem);
}

.patient-hero__inner .lead {
  max-width: 66ch;
  margin: var(--space-5) auto 0;
}

.patient-hero__actions,
.patient-cta__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
}

.patient-hero__actions {
  margin-top: var(--space-6);
}

.patient-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-5);
}

.patient-grid--principles {
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.patient-principle {
  min-width: 0;
  padding: var(--space-6) 0;
}

.patient-principle + .patient-principle {
  border-top: 1px solid var(--line-2);
}

.patient-index {
  display: block;
  margin-bottom: var(--space-5);
  font-family: var(--font-head);
  font-size: 1.1rem;
  color: var(--gold);
}

.patient-principle h3 {
  font-size: clamp(1.45rem, 3vw, 2rem);
}

.patient-principle p {
  max-width: 40ch;
  margin: 0;
  color: var(--warm-gray);
}

.authorized-state {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-6);
  align-items: end;
  padding: clamp(var(--space-6), 6vw, var(--space-10));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(214,165,58,.09), transparent 42%),
    linear-gradient(180deg, rgba(247,241,231,.02), transparent),
    var(--panel);
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
}

.authorized-state h2 {
  max-width: 15ch;
  margin-bottom: 0;
}

.authorized-state__copy {
  max-width: 58ch;
}

.authorized-state__copy > p:first-child {
  margin-top: 0;
  color: var(--cream);
  font-size: var(--fs-lead);
}

.patient-note {
  color: var(--warm-gray);
  font-size: var(--fs-small);
  line-height: 1.65;
}

.patient-note--center {
  max-width: 76ch;
  margin: var(--space-5) auto 0;
  text-align: center;
}

.patient-note-panel {
  max-width: 920px;
  margin-inline: auto;
  padding: clamp(var(--space-6), 5vw, var(--space-8));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.patient-note-panel .eyebrow {
  justify-content: center;
}

.patient-note-panel p {
  max-width: 68ch;
  margin-inline: auto;
  color: var(--warm-gray);
}

.patient-cta {
  max-width: 980px;
  margin-inline: auto;
  padding: clamp(var(--space-7), 7vw, var(--space-10)) var(--gutter);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
  background: linear-gradient(90deg, transparent, rgba(214,165,58,.055), transparent);
}

.patient-cta .eyebrow {
  justify-content: center;
}

.patient-cta h2 {
  max-width: 17ch;
  margin-inline: auto;
}

.patient-cta > p:not(.eyebrow) {
  max-width: 62ch;
  margin: 0 auto var(--space-6);
  color: var(--warm-gray);
}

.patient-cta__actions .btn--text {
  margin-inline: var(--space-3);
}

/* Turismo médico */
.travel-story__grid,
.travel-preparation__grid,
.travel-location__panel,
.experience-story__grid,
.payment-definition__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(var(--space-6), 6vw, var(--space-10));
  align-items: center;
}

.travel-story__media {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--panel);
  box-shadow: 0 26px 70px rgba(0,0,0,.32);
}

.travel-story__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 58%, rgba(5,5,5,.42));
}

.travel-story__media picture,
.travel-story__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.travel-story__media img {
  object-fit: cover;
  object-position: 50% 44%;
  filter: saturate(.9) contrast(1.04) brightness(.91);
}

.travel-story__copy .lead {
  margin-bottom: var(--space-6);
}

.travel-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid var(--line);
}

.travel-facts div {
  min-width: 0;
  padding: var(--space-5) 0;
}

.travel-facts div + div {
  padding-left: var(--space-5);
  border-left: 1px solid var(--line);
}

.travel-facts dt {
  margin-bottom: var(--space-2);
  color: var(--warm-gray);
  font-size: var(--fs-small);
}

.travel-facts dd {
  margin: 0;
  font-family: var(--font-head);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  color: var(--gold-light);
}

.travel-timeline,
.payment-flow,
.experience-path {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.patient-step {
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: var(--space-4);
  padding: var(--space-5) 0;
  border-bottom: 1px solid var(--line-2);
}

.patient-step > span {
  padding-top: .15rem;
  color: var(--gold);
  font-size: var(--fs-small);
  font-weight: 600;
}

.patient-step h3 {
  margin-bottom: var(--space-2);
  font-size: clamp(1.3rem, 2vw, 1.7rem);
}

.patient-step p {
  max-width: 48ch;
  margin: 0;
  color: var(--warm-gray);
}

.patient-checklist {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.patient-checklist li {
  position: relative;
  padding: var(--space-4) 0 var(--space-4) 2rem;
  border-bottom: 1px solid var(--line-2);
  color: var(--warm-gray);
}

.patient-checklist li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.7rem;
  width: 1rem;
  height: 1px;
  background: var(--gold);
}

.travel-location__panel {
  padding: clamp(var(--space-6), 5vw, var(--space-8));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--panel);
}

.travel-location__details {
  display: grid;
  gap: var(--space-5);
}

.travel-location__details p {
  display: grid;
  gap: var(--space-2);
  margin: 0;
}

.travel-location__details strong {
  color: var(--gold);
  font-size: var(--fs-small);
  text-transform: uppercase;
  letter-spacing: .08em;
}

.travel-location__details span {
  color: var(--cream);
}

/* Experiencias y señales de confianza */
.experience-story__copy {
  max-width: 58ch;
}

.experience-story__copy p {
  color: var(--warm-gray);
}

.experience-story__copy p:first-child {
  margin-top: 0;
  color: var(--cream);
  font-size: var(--fs-lead);
}

.experience-path {
  margin-top: var(--space-8);
}

.authorized-state--voices {
  border-radius: 0;
  border-inline: 0;
  box-shadow: none;
}

.patient-grid--trust {
  grid-template-columns: 1fr;
}

.resource-card {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: var(--space-6);
  border-top: 1px solid var(--line);
  color: var(--cream);
  transition: border-color var(--t) var(--ease), background var(--t) var(--ease);
}

.resource-card:hover {
  border-color: var(--gold-light);
  background: rgba(214,165,58,.035);
}

.resource-card > span:not(.badge) {
  margin-bottom: var(--space-6);
  color: var(--gold);
  font-size: var(--fs-small);
}

.resource-card h3 {
  font-size: clamp(1.35rem, 2.2vw, 1.8rem);
}

.resource-card p {
  margin: 0;
  color: var(--warm-gray);
}

/* Pagos */
.payment-prices {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-4);
  max-width: 960px;
  margin-inline: auto;
}

.payment-price {
  padding: clamp(var(--space-6), 5vw, var(--space-8));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(180deg, rgba(214,165,58,.05), transparent 42%),
    var(--panel);
}

.payment-price h3 {
  margin: var(--space-5) 0 var(--space-4);
}

.payment-price > p:last-child {
  max-width: 42ch;
  margin: var(--space-5) 0 0;
  color: var(--warm-gray);
}

.payment-definition__copy {
  max-width: 60ch;
}

.payment-definition__copy p {
  color: var(--warm-gray);
}

.payment-value {
  margin: 0 0 var(--space-5);
  font-family: var(--font-head);
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1;
  color: var(--gold-light) !important;
}

.payment-disclosure .patient-note-panel {
  text-align: left;
}

.payment-disclosure .patient-note-panel .eyebrow {
  justify-content: flex-start;
}

.payment-disclosure .patient-note-panel p {
  margin-inline: 0;
}

/* Gracias */
.patient-page--thanks .thanks-section {
  padding-bottom: clamp(var(--space-9), 10vw, var(--space-12));
}

.thanks-panel--complete {
  max-width: 980px;
  padding: clamp(var(--space-6), 6vw, var(--space-9));
}

.thanks-panel__header {
  max-width: 700px;
  margin-inline: auto;
  text-align: center;
}

.thanks-panel__header .eyebrow {
  justify-content: center;
}

.thanks-panel__header .lead {
  margin-inline: auto;
}

.thanks-check {
  display: grid;
  width: 54px;
  height: 54px;
  margin: 0 auto var(--space-5);
  place-items: center;
  border: 1px solid var(--gold);
  border-radius: 50%;
  color: var(--gold-light);
  font-family: var(--font-head);
  font-size: 1.8rem;
}

.thanks-steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: var(--space-8) 0 var(--space-6);
  padding: 0;
  list-style: none;
  border-block: 1px solid var(--line);
}

.thanks-steps li {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: var(--space-3);
  padding: var(--space-5) 0;
}

.thanks-steps li + li {
  border-top: 1px solid var(--line-2);
}

.thanks-steps span {
  color: var(--gold);
  font-size: var(--fs-small);
}

.thanks-steps strong {
  color: var(--cream);
}

.thanks-steps p {
  margin: var(--space-1) 0 0;
  color: var(--warm-gray);
  font-size: var(--fs-small);
}

.thanks-reminder {
  max-width: 66ch;
  margin: 0 auto var(--space-6);
  color: var(--warm-gray);
  font-size: var(--fs-small);
  line-height: 1.65;
  text-align: center;
}

@media (min-width: 640px) {
  .payment-prices {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .thanks-steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .thanks-steps li {
    display: block;
    padding: var(--space-6);
  }

  .thanks-steps li + li {
    border-top: 0;
    border-left: 1px solid var(--line-2);
  }

  .thanks-steps span {
    display: block;
    margin-bottom: var(--space-5);
  }
}

@media (min-width: 768px) {
  .patient-grid--principles {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .patient-principle {
    padding: var(--space-7) var(--space-5);
  }

  .patient-principle:first-child {
    padding-left: 0;
  }

  .patient-principle:last-child {
    padding-right: 0;
  }

  .patient-principle + .patient-principle {
    border-top: 0;
    border-left: 1px solid var(--line-2);
  }

  .authorized-state {
    grid-template-columns: minmax(0, 1fr) minmax(320px, .86fr);
  }

  .travel-timeline {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    border-bottom: 1px solid var(--line);
  }

  .travel-timeline .patient-step {
    display: block;
    padding: var(--space-6) var(--space-4);
    border-bottom: 0;
  }

  .travel-timeline .patient-step + .patient-step {
    border-left: 1px solid var(--line-2);
  }

  .travel-timeline .patient-step > span {
    display: block;
    margin-bottom: var(--space-6);
  }

  .experience-path {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .experience-path .patient-step {
    display: block;
    padding: var(--space-6);
    border-bottom: 0;
  }

  .experience-path .patient-step + .patient-step {
    border-left: 1px solid var(--line-2);
  }

  .experience-path .patient-step > span {
    display: block;
    margin-bottom: var(--space-5);
  }

  .patient-grid--trust {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payment-flow {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .payment-flow .patient-step:nth-child(odd) {
    padding-right: var(--space-6);
  }

  .payment-flow .patient-step:nth-child(even) {
    padding-left: var(--space-6);
    border-left: 1px solid var(--line-2);
  }
}

@media (min-width: 1024px) {
  .travel-story__grid {
    grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  }

  .travel-preparation__grid,
  .travel-location__panel,
  .experience-story__grid,
  .payment-definition__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .travel-preparation__grid,
  .experience-story__grid,
  .payment-definition__grid {
    align-items: start;
  }

  .patient-grid--trust {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

}

@media (min-width: 1440px) {
  .patient-hero__inner h1 {
    font-size: 5.7rem;
  }

  .travel-story__grid {
    gap: var(--space-11);
  }

  .travel-story__media {
    aspect-ratio: 16 / 9;
  }
}

@media (max-width: 767px) {
  .patient-hero {
    padding-top: calc(var(--header-h) + var(--space-7));
    padding-bottom: var(--space-7);
  }

  .patient-hero__inner h1 {
    font-size: clamp(2.55rem, 13vw, 4rem);
    line-height: .98;
  }

  .patient-hero__inner .lead {
    margin-top: var(--space-4);
  }

  .patient-hero__actions,
  .patient-cta__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .patient-hero__actions .btn,
  .patient-cta__actions .btn:not(.btn--text) {
    width: 100%;
    white-space: normal;
  }

  .authorized-state,
  .travel-location__panel,
  .payment-price {
    border-radius: var(--radius-md);
  }

  .authorized-state h2 {
    max-width: none;
  }

  .travel-story__media {
    aspect-ratio: 4 / 3;
  }

  .travel-facts {
    grid-template-columns: 1fr;
  }

  .travel-facts div + div {
    padding-left: 0;
    border-top: 1px solid var(--line-2);
    border-left: 0;
  }

  .travel-location__panel,
  .patient-note-panel,
  .payment-disclosure .patient-note-panel {
    text-align: center;
  }

  .travel-location__panel .eyebrow,
  .payment-disclosure .patient-note-panel .eyebrow {
    justify-content: center;
  }

  .payment-disclosure .patient-note-panel p {
    margin-inline: auto;
  }

}

@media (max-width: 430px) {
  .patient-hero__inner h1 {
    font-size: clamp(2.35rem, 12.4vw, 3.35rem);
  }

  .patient-principle,
  .authorized-state,
  .payment-price,
  .resource-card,
  .thanks-panel--complete {
    padding: var(--space-5);
  }

  .patient-cta {
    padding-block: var(--space-7);
  }

  .patient-cta h2 {
    max-width: none;
  }

  .price__amount {
    font-size: 2rem;
  }
}

/* =====================================================================
   Fase 2.3 — Integración editorial de casos visuales autorizados
   Registros reales con lectura responsable, sin promesas ni comparación
   clínica fuera de contexto.
   ===================================================================== */

.clinical-gallery__head {
  max-width: 780px;
  margin-inline: auto;
  margin-bottom: clamp(var(--space-7), 7vw, var(--space-10));
}

.clinical-gallery__head .lead {
  max-width: 65ch;
  margin-inline: auto;
}

.clinical-gallery {
  max-width: 1120px;
  margin-inline: auto;
}

.clinical-case {
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(280px, .94fr);
  gap: clamp(var(--space-6), 6vw, var(--space-10));
  align-items: center;
  min-width: 0;
  padding-block: clamp(var(--space-7), 7vw, var(--space-10));
  border-top: 1px solid var(--line);
}

.clinical-case:last-child {
  border-bottom: 1px solid var(--line);
}

.clinical-case:nth-child(even) .clinical-case__media {
  order: 2;
}

.clinical-case:nth-child(even) .clinical-case__content {
  order: 1;
}

.clinical-case__media {
  position: relative;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 1;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: #080809;
  box-shadow: 0 24px 64px rgba(0,0,0,.32);
}

.clinical-case__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(247,241,231,.04);
  border-radius: inherit;
}

.clinical-case__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.clinical-case__content {
  min-width: 0;
}

.clinical-case__label,
.clinical-case__note {
  font-family: var(--font-body);
}

.clinical-case__label {
  margin: 0 0 var(--space-3);
  color: var(--gold-light);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.clinical-case__content h3,
.clinical-case__content h2 {
  margin-bottom: var(--space-4);
  line-height: 1;
}

.clinical-case__content h3 {
  font-size: clamp(2.4rem, 5vw, 4.6rem);
}

.clinical-case__content > p:not(.eyebrow):not(.clinical-case__label):not(.clinical-case__note) {
  max-width: 52ch;
  color: var(--warm-gray);
}

.clinical-case__content .btn--text {
  margin-top: var(--space-3);
}

.clinical-case__note {
  max-width: 54ch;
  margin-top: var(--space-4);
  padding-top: var(--space-4);
  color: var(--warm-gray);
  font-size: var(--fs-small);
  line-height: 1.65;
  border-top: 1px solid var(--line-2);
}

.clinical-gallery__disclaimer {
  max-width: 78ch;
  margin: clamp(var(--space-7), 7vw, var(--space-9)) auto 0;
  text-align: center;
}

.clinical-case--procedure {
  max-width: 1120px;
  margin-inline: auto;
  padding: clamp(var(--space-5), 5vw, var(--space-8));
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(214,165,58,.06), transparent 42%),
    var(--panel);
  box-shadow: 0 24px 70px rgba(0,0,0,.22);
}

.clinical-case--procedure:last-child {
  border-bottom: 1px solid var(--line);
}

.clinical-case--procedure .clinical-case__media {
  box-shadow: 0 18px 48px rgba(0,0,0,.28);
}

@media (max-width: 900px) {
  .clinical-case,
  .clinical-case--procedure {
    grid-template-columns: 1fr;
    gap: var(--space-6);
  }

  .clinical-case:nth-child(even) .clinical-case__media,
  .clinical-case:nth-child(even) .clinical-case__content {
    order: initial;
  }

  .clinical-case__media {
    width: min(100%, 680px);
    margin-inline: auto;
  }

  .clinical-case__content {
    text-align: center;
  }

  .clinical-case__content .eyebrow {
    justify-content: center;
  }

  .clinical-case__content > p,
  .clinical-case__note {
    margin-inline: auto;
  }

  .clinical-case__content .btn--text {
    justify-content: center;
  }
}

@media (max-width: 430px) {
  .clinical-gallery__head {
    margin-bottom: var(--space-6);
  }

  .clinical-case {
    gap: var(--space-5);
    padding-block: var(--space-7);
  }

  .clinical-case--procedure {
    padding: var(--space-4);
    border-radius: var(--radius-md);
  }

  .clinical-case__media {
    border-radius: var(--radius-sm);
  }

  .clinical-case__content h3 {
    font-size: clamp(2.25rem, 12vw, 3.15rem);
  }

  .clinical-case__content h2 {
    font-size: clamp(2rem, 10.5vw, 2.8rem);
  }
}

/* =====================================================================
   Fase 2.4 — Cierre editorial y lightbox accesible
   Contexto visible para registros autorizados y ampliación sin recortes.
   ===================================================================== */

.clinical-case__media {
  display: grid;
  gap: .7rem;
  aspect-ratio: auto;
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.clinical-case__media::after {
  display: none;
}

.clinical-case__img {
  aspect-ratio: 1;
  height: auto;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: #080809;
  box-shadow: 0 24px 64px rgba(0,0,0,.32);
}

.clinical-case--procedure .clinical-case__media {
  box-shadow: none;
}

.clinical-case__caption {
  display: grid;
  gap: .12rem;
  padding-inline: .2rem;
  color: var(--warm-gray);
  font-family: var(--font-body);
  font-size: .76rem;
  line-height: 1.5;
}

.clinical-case__caption strong {
  color: var(--ivory);
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.clinical-case__img[role="button"]:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.procedure-placeholder--hero .btn--text {
  width: fit-content;
  margin-top: var(--space-2);
}

.lightbox {
  padding: clamp(64px, 8vh, 92px) clamp(18px, 4vw, 56px) clamp(92px, 14vh, 132px);
  background: rgba(2,2,3,.96);
  transition: opacity var(--t) var(--ease), visibility 0s linear var(--t);
}

.lightbox.is-open {
  transition-delay: 0s;
}

.lightbox__img {
  width: auto;
  max-width: min(1180px, 94vw);
  max-height: calc(100dvh - 190px);
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--black);
  box-shadow: 0 30px 90px rgba(0,0,0,.48);
}

.lightbox__close {
  color: var(--gold-light);
  background: rgba(16,16,18,.88);
  backdrop-filter: blur(10px);
}

.lightbox__close:hover,
.lightbox__close:focus-visible {
  background: rgba(214,165,58,.12);
}

.lightbox__close:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

.lightbox__caption {
  bottom: clamp(18px, 3.5vh, 34px);
  left: 50%;
  right: auto;
  width: min(760px, calc(100vw - 40px));
  margin: 0;
  padding: .7rem 1rem;
  color: var(--ivory);
  font-family: var(--font-body);
  line-height: 1.5;
  text-align: center;
  transform: translateX(-50%);
  border: 1px solid var(--line-2);
  border-radius: var(--radius-sm);
  background: rgba(5,5,5,.78);
  backdrop-filter: blur(10px);
}

@media (hover: hover) and (pointer: fine) {
  .clinical-case__img[role="button"] {
    transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
  }

  .clinical-case__img[role="button"]:hover {
    border-color: rgba(243,200,90,.42);
    box-shadow: 0 28px 72px rgba(0,0,0,.4);
  }
}

@media (max-width: 900px) {
  .clinical-case__caption {
    text-align: center;
  }

  .procedure-placeholder--hero .btn--text {
    align-self: center;
  }
}

@media (max-width: 430px) {
  .clinical-case__media {
    gap: .55rem;
  }

  .clinical-case__img {
    border-radius: var(--radius-sm);
  }

  .clinical-case__caption {
    font-size: .72rem;
  }

  .lightbox {
    padding: 72px 14px 118px;
  }

  .lightbox__img {
    max-width: calc(100vw - 28px);
    max-height: calc(100dvh - 212px);
    border-radius: var(--radius-sm);
  }

  .lightbox__close {
    top: 14px;
    right: 14px;
    width: 44px;
    height: 44px;
  }

  .lightbox__caption {
    bottom: 18px;
    width: calc(100vw - 28px);
    padding: .65rem .8rem;
    font-size: .76rem;
  }
}

/* =====================================================================
   Refinamiento visual e inmersivo del Home
   Componentes encapsulados para no alterar páginas clínicas ni internas.
   ===================================================================== */

/* Confianza */
.home-trust .grid--4 {
  align-items: stretch;
}

.home-trust .card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: clamp(1.6rem, 2.2vw, 2.35rem);
  text-align: center;
}

.home-trust .pillar__icon {
  margin: 0 auto var(--space-4);
}

.home-trust .card__title,
.home-trust .card__text {
  margin-inline: auto;
  text-align: center;
  text-wrap: balance;
}

.home-trust .card__text {
  max-width: 27ch;
}

/* Ancla humana del doctor */
.home-doctor__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.home-doctor__copy .eyebrow,
.home-doctor__copy .btn--text {
  justify-content: center;
}

.home-doctor__copy .lead,
.home-doctor__copy .text-muted {
  max-width: 58ch;
  margin-inline: auto;
}

.home-doctor__quote {
  max-width: 25ch;
  margin: var(--space-4) auto var(--space-6);
  font-size: var(--fs-h4);
  line-height: 1.25;
  text-wrap: balance;
}

/* Procedimientos destacados del Home */
.home-procedures .filters {
  justify-content: center;
}

/* El wrapper posee el reveal; el enlace conserva hover/focus del catálogo. */
.home-procedures .home-procedure-item {
  display: grid;
  min-width: 0;
}

.home-procedures .proc-card {
  min-width: 0;
  height: 100%;
  align-items: center;
  padding: clamp(1.5rem, 2.2vw, 2.2rem);
  text-align: center;
}

.home-procedures .card--featured::before {
  display: none;
}

.home-procedures .proc-card .badge {
  align-self: center;
}

.home-procedures .proc-card .card__title,
.home-procedures .proc-card .card__text {
  margin-inline: auto;
  text-align: center;
  text-wrap: balance;
}

.home-procedures .proc-card .card__text {
  max-width: 34ch;
}

.home-procedures .proc-card .ver {
  align-self: center;
  margin-top: auto;
}

/* Métricas oficiales compactas */
.home-metrics {
  padding-block: clamp(2.6rem, 5vw, 4.5rem);
}

.home-metrics .metrics-grid {
  gap: 0;
}

.home-metrics .metrics-grid .metric {
  position: relative;
  grid-template-rows: minmax(3.65rem, auto) auto;
  padding: clamp(1rem, 2vw, 1.65rem) clamp(.7rem, 2vw, 1.6rem);
}

.home-metrics .metrics-grid .metric + .metric {
  border-left: 1px solid var(--line-2);
}

.home-metrics .metrics-grid .metric__num,
.home-metrics .metrics-grid .metric__num--text,
.home-metrics .metrics-grid .metric__num--price,
.home-metrics .metrics-grid .metric__currency,
.home-metrics .metrics-grid .metric__suffix,
.home-metrics .metrics-grid .metric__label {
  font-family: var(--font-body);
  letter-spacing: 0;
}

.home-metrics .metrics-grid .metric__num {
  min-height: 0;
  font-size: clamp(1.85rem, 3.15vw, 3.1rem);
  font-weight: 600;
  line-height: 1.08;
  font-variant-numeric: tabular-nums;
}

.home-metrics .metrics-grid .metric__num--text {
  display: grid;
  overflow: hidden;
  max-width: 14ch;
  place-content: center;
  font-size: clamp(1.45rem, 2.3vw, 2.2rem);
  font-weight: 600;
  line-height: 1.08;
}

.home-metrics .metrics-grid .metric__num--text.is-roll-ready:not(.is-rolled) > span {
  display: block;
  transform: translateY(115%);
  opacity: 0;
}

.home-metrics .metrics-grid .metric__num--text.is-rolled > span {
  transform: translateY(0);
  opacity: 1;
  transition: transform .7s var(--ease), opacity .5s var(--ease);
}

.home-metrics .metrics-grid .metric__num--text.is-rolled > span + span {
  transition-delay: .1s;
}

.home-metrics .metrics-grid .metric__num--price {
  font-size: clamp(1.45rem, 2.4vw, 2.25rem);
}

.home-metrics .metrics-grid .metric__currency {
  margin-right: .08em;
  font-size: .58em;
  color: var(--gold-light);
}

.home-metrics .metrics-grid .metric__suffix {
  margin-left: .3em;
  font-size: .38em;
  font-weight: 600;
  color: var(--stone);
}

.home-metrics .metrics-grid .metric__label {
  max-width: 22ch;
  padding-top: .65rem;
  font-size: clamp(.75rem, 1.15vw, .9rem);
  line-height: 1.4;
}

/* Recorrido inmersivo */
.home-journey {
  position: relative;
  overflow: visible;
  border-block: 1px solid var(--line-2);
  background:
    radial-gradient(70% 58% at 28% 52%, rgba(214,165,58,.075), transparent 70%),
    var(--black);
}

.home-journey__intro {
  position: relative;
  z-index: 2;
  padding-top: clamp(4.5rem, 9vw, 8rem);
  padding-bottom: clamp(2.2rem, 4vw, 3.8rem);
}

.home-journey__intro .section-head {
  margin-bottom: 0;
}

.home-journey__scroll {
  position: relative;
  height: 500svh;
}

.home-journey__stage {
  position: sticky;
  top: 0;
  display: grid;
  width: min(100%, 1480px);
  min-height: 100svh;
  margin-inline: auto;
  padding: clamp(7rem, 12vh, 9rem) var(--gutter) clamp(4rem, 8vh, 6rem);
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  align-items: center;
  gap: clamp(2rem, 7vw, 7rem);
}

.home-journey__visual {
  position: relative;
  width: min(42vw, 530px);
  margin-inline: auto;
  transform: scale(.55) rotate(-3deg);
  transform-origin: 50% 55%;
}

.home-journey__visual::after {
  content: "";
  position: absolute;
  inset: 13% 16%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(214,165,58,.06);
  filter: blur(46px);
}

.home-journey__visual svg {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.home-journey__path {
  fill: none;
  stroke: var(--gold);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  opacity: .82;
}

.home-journey__path--middle { opacity: .52; }
.home-journey__path--inner { opacity: .32; }
.home-journey__path--axis { opacity: .68; stroke-dasharray: 3 9; }

.home-journey__steps {
  position: relative;
  min-height: min(52vh, 440px);
}

.home-journey__step {
  position: absolute;
  inset: 50% 0 auto;
  max-width: 38rem;
  transform: translateY(calc(-50% + 34px));
  opacity: 0;
  visibility: hidden;
  transition: opacity .45s var(--ease), transform .65s var(--ease), visibility 0s linear .65s;
}

.home-journey__step.is-active {
  transform: translateY(-50%);
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

.home-journey__number {
  display: block;
  margin-bottom: var(--space-3);
  color: var(--gold);
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.home-journey__step h3 {
  margin-bottom: var(--space-3);
  font-size: clamp(2.75rem, 5.2vw, 5.8rem);
  line-height: .98;
  text-wrap: balance;
}

.home-journey__step p {
  max-width: 48ch;
  margin: 0;
  color: var(--warm-gray);
  font-size: clamp(1rem, 1.35vw, 1.2rem);
  line-height: 1.7;
}

.home-journey__counter {
  position: absolute;
  top: clamp(6.5rem, 10vh, 8rem);
  right: var(--gutter);
  display: flex;
  gap: .45rem;
  color: var(--warm-gray);
  font-family: var(--font-body);
  font-size: .78rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: .12em;
}

.home-journey__counter [data-journey-current] {
  color: var(--gold-light);
  font-weight: 700;
}

.home-journey__progress {
  position: absolute;
  right: var(--gutter);
  bottom: clamp(2.5rem, 6vh, 4.5rem);
  left: var(--gutter);
  height: 1px;
  overflow: hidden;
  background: var(--line-2);
}

.home-journey__progress span {
  display: block;
  width: 100%;
  height: 100%;
  transform: scaleX(.2);
  transform-origin: left;
  background: var(--grad-gold);
}

.home-journey.is-static .home-journey__scroll {
  height: auto;
}

.home-journey.is-static .home-journey__stage {
  position: relative;
  top: auto;
  display: block;
  min-height: 0;
  padding-top: var(--space-4);
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

.home-journey.is-static .home-journey__visual {
  width: min(70vw, 390px);
  margin-bottom: var(--space-7);
  transform: none !important;
}

.home-journey.is-static .home-journey__steps {
  display: grid;
  min-height: 0;
}

.home-journey.is-static .home-journey__step {
  position: relative;
  inset: auto;
  max-width: 44rem;
  margin-inline: auto;
  padding: clamp(1.8rem, 5vw, 3rem) 0;
  transform: none;
  opacity: 1;
  visibility: visible;
  text-align: center;
  border-top: 1px solid var(--line-2);
}

.home-journey.is-static .home-journey__step:last-child {
  border-bottom: 1px solid var(--line-2);
}

.home-journey.is-static .home-journey__step h3,
.home-journey.is-static .home-journey__step p {
  margin-inline: auto;
}

.home-journey.is-static .home-journey__counter,
.home-journey.is-static .home-journey__progress {
  display: none;
}

/* Resultados preparados para integración 1:1 */
.home-results__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(.8rem, 1.6vw, 1.35rem);
}

.home-result-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--panel);
  box-shadow: 0 18px 48px rgba(0,0,0,.2);
  transition: transform var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}

.home-result-card.reveal:nth-child(odd) {
  transform: translate3d(-22px, 34px, 0);
}

.home-result-card.reveal:nth-child(even) {
  transform: translate3d(22px, 34px, 0);
}

.home-result-card.reveal.is-in {
  transform: none;
}

.home-result-card::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(110deg, transparent 25%, rgba(243,200,90,.1) 48%, transparent 70%);
  transform: translateX(-120%);
  transition: transform .85s var(--ease);
}

.home-result-card__media {
  position: relative;
  display: flex;
  aspect-ratio: 1;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding: clamp(1rem, 2vw, 1.6rem);
  text-align: center;
  background:
    linear-gradient(180deg, transparent 30%, rgba(5,5,5,.88) 100%),
    radial-gradient(circle at 50% 35%, rgba(214,165,58,.08), transparent 48%),
    var(--charcoal);
}

.home-result-card__media::before {
  content: "";
  position: absolute;
  inset: 8% 8% 22%;
  border: 1px dashed rgba(214,165,58,.2);
  border-radius: calc(var(--radius-md) - 4px);
}

.home-result-card__media > * {
  position: relative;
  z-index: 1;
}

.home-result-card__media span {
  position: absolute;
  top: 50%;
  right: 14%;
  left: 14%;
  margin: 0;
  transform: translateY(-50%);
  color: var(--gold);
  font-family: var(--font-body);
  font-size: clamp(.68rem, .9vw, .78rem);
  font-weight: 650;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.home-result-card__media h3 {
  max-width: 100%;
  margin: 0;
  font-size: clamp(1.45rem, 1.8vw, 1.8rem);
  line-height: 1.05;
  text-wrap: balance;
}

@media (hover: hover) and (pointer: fine) {
  .home-result-card:hover {
    transform: translateY(-6px);
    border-color: rgba(243,200,90,.38);
    box-shadow: 0 26px 64px rgba(0,0,0,.3);
  }

  .home-result-card:hover::after {
    transform: translateX(120%);
  }
}

/* Turismo médico */
.home-tourism .split {
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
}

.home-tourism__copy .lead {
  max-width: 50ch;
}

.home-tourism .ministeps.home-tourism__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.8rem, 1.6vw, 1.2rem);
}

.home-tourism .ministep.home-tourism__step {
  display: grid;
  min-width: 0;
  min-height: 13.5rem;
  place-items: center;
  align-content: center;
  gap: .9rem;
  padding: clamp(1.15rem, 2vw, 1.7rem);
  text-align: center;
  border: 1px solid var(--line-2);
  border-radius: var(--radius-md);
  background: rgba(16,16,18,.68);
}

.home-tourism__icon {
  display: grid;
  width: 48px;
  height: 48px;
  place-items: center;
  color: var(--gold-light);
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(214,165,58,.055);
}

.home-tourism__icon svg {
  width: 24px;
  height: 24px;
}

.home-tourism .home-tourism__step h3,
.home-tourism .home-tourism__step p {
  margin-inline: auto;
  text-align: center;
  text-wrap: balance;
}

.home-tourism .home-tourism__step h3 {
  font-size: clamp(1.35rem, 2vw, 1.7rem);
}

.home-tourism .home-tourism__step p {
  max-width: 29ch;
  font-size: .88rem;
  line-height: 1.55;
}

/* Aviso responsable compacto */
.home-consent {
  padding-block: clamp(2.8rem, 5vw, 4.5rem);
}

.home-consent__notice {
  display: grid;
  grid-template-columns: auto minmax(15rem, .9fr) minmax(18rem, 1fr) auto;
  align-items: center;
  gap: clamp(1rem, 2.5vw, 2.4rem);
  padding: clamp(1.35rem, 2.5vw, 2rem);
  border-block: 1px solid var(--line);
  background: linear-gradient(90deg, rgba(214,165,58,.045), rgba(16,16,18,.72), rgba(214,165,58,.025));
}

.home-consent__notice .eyebrow,
.home-consent__notice h2,
.home-consent__notice p {
  margin: 0;
}

.home-consent__notice h2 {
  font-size: clamp(1.8rem, 3vw, 2.75rem);
  line-height: 1.05;
}

.home-consent__notice > p:not(.eyebrow) {
  color: var(--warm-gray);
  font-size: clamp(.85rem, 1.2vw, .98rem);
  line-height: 1.6;
}

.home-consent__notice .btn--text {
  white-space: nowrap;
}

/* Cierre */
.home-closing-section {
  padding-block: clamp(3rem, 6vw, 5rem);
}

.closing.home-closing {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  padding: clamp(2.75rem, 5vw, 4.6rem) clamp(1.1rem, 4vw, 3.5rem);
  background:
    radial-gradient(90% 90% at 50% -25%, rgba(214,165,58,.1), transparent 64%),
    var(--panel);
  text-align: center;
}

.closing.home-closing .eyebrow {
  justify-content: center;
}

.closing.home-closing .lead {
  max-width: 50rem;
}

.closing.home-closing .closing__prices {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: clamp(2rem, 6vw, 5.5rem);
  margin: clamp(1.6rem, 3vw, 2.25rem) 0 clamp(1.8rem, 3vw, 2.5rem);
}

.closing.home-closing .closing__ctas {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}

/* Doctor: cada frontera tiene un único dueño del espacio vertical. */
body.doctor-page {
  --doctor-gap-results-work: 4rem;
  --doctor-gap-work-closing: 4rem;
}

.doctor-page .doctor-results {
  padding-bottom: 0;
}

.doctor-page .doctor-work-method {
  padding-top: var(--doctor-gap-results-work);
  padding-bottom: 0;
}

.doctor-page .doctor-closing-section {
  padding-top: var(--doctor-gap-work-closing);
}

@media (min-width: 768px) {
  body.doctor-page {
    --doctor-gap-results-work: clamp(5rem, 10vw, 6rem);
    --doctor-gap-work-closing: clamp(4.5rem, 8.5vw, 5.5rem);
  }
}

@media (min-width: 1025px) {
  body.doctor-page {
    --doctor-gap-results-work: clamp(6.375rem, 7.5vw, 7rem);
    --doctor-gap-work-closing: clamp(4.8125rem, 6vw, 5.5rem);
  }
}

.closing.home-closing .price-block {
  display: grid;
  min-width: min(100%, 13.5rem);
  justify-items: center;
  gap: .55rem;
}

.closing.home-closing .price-block__label {
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.closing.home-closing .price {
  margin: 0;
  font-family: var(--font-body);
  font-variant-numeric: tabular-nums;
}

.closing.home-closing .price__amount {
  font-family: var(--font-body);
  font-weight: 600;
  letter-spacing: 0;
}

.closing.home-closing .price__currency {
  font-family: var(--font-body);
  letter-spacing: 0;
}

.float-cta.is-suppressed {
  opacity: 0 !important;
  transform: translateY(16px) scale(.96) !important;
  pointer-events: none !important;
}

@media (max-width: 1099px) {
  .home-trust .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-metrics .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: 0;
  }

  .home-metrics .metrics-grid .metric {
    border: 0;
  }

  .home-metrics .metrics-grid .metric:nth-child(even) {
    border-left: 1px solid var(--line-2);
  }

  .home-metrics .metrics-grid .metric:nth-child(n + 3) {
    border-top: 1px solid var(--line-2);
  }

  .home-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-consent__notice {
    grid-template-columns: minmax(12rem, .8fr) minmax(18rem, 1.2fr) auto;
  }

  .home-consent__notice .eyebrow {
    grid-column: 1 / -1;
  }
}

@media (max-width: 899px) {
  .home-journey__intro {
    padding-bottom: var(--space-6);
  }

  .home-journey__scroll {
    height: auto;
  }

  .home-journey__stage {
    position: relative;
    top: auto;
    display: block;
    min-height: 0;
    padding-top: var(--space-4);
    padding-bottom: clamp(4rem, 10vw, 6rem);
  }

  .home-journey__visual {
    width: min(74vw, 360px);
    margin-bottom: var(--space-7);
    transform: none !important;
  }

  .home-journey__steps {
    display: grid;
    min-height: 0;
    gap: 0;
  }

  .home-journey__step,
  .home-journey__step.is-active {
    position: relative;
    inset: auto;
    display: grid;
    max-width: 42rem;
    margin-inline: auto;
    padding: clamp(1.8rem, 6vw, 3rem) 0;
    transform: none;
    opacity: 1;
    visibility: visible;
    text-align: center;
    border-top: 1px solid var(--line-2);
  }

  .home-journey__step:last-child {
    border-bottom: 1px solid var(--line-2);
  }

  .home-journey__step h3,
  .home-journey__step p {
    margin-inline: auto;
  }

  .home-journey__step h3 {
    font-size: clamp(2.35rem, 10vw, 3.8rem);
  }

  .home-journey__step p {
    max-width: 38ch;
    font-size: .98rem;
  }

  .home-journey__counter,
  .home-journey__progress {
    display: none;
  }

  .home-tourism .split {
    grid-template-columns: 1fr;
  }

  .home-tourism__copy {
    text-align: center;
  }

  .home-tourism__copy .eyebrow,
  .home-tourism__copy .btn--text {
    justify-content: center;
  }

  .home-tourism__copy .lead {
    margin-inline: auto;
  }

  .home-consent__notice {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .home-consent__notice .eyebrow {
    grid-column: auto;
  }

  .home-consent__notice .btn--text {
    justify-content: center;
    white-space: normal;
    text-align: center;
  }
}

@media (max-width: 640px) {
  .home-trust .grid--4,
  .home-results__grid {
    grid-template-columns: 1fr;
  }

  .home-trust .card,
  .home-procedures .proc-card {
    padding: 1.45rem;
  }

  .home-metrics {
    padding-block: 2.2rem;
  }

  .home-metrics .metrics-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: none;
  }

  .home-metrics .metrics-grid .metric {
    grid-template-rows: minmax(3rem, auto) auto;
    padding: 1rem .45rem;
  }

  .home-metrics .metrics-grid .metric__num {
    font-size: clamp(1.25rem, 7vw, 1.85rem);
  }

  .home-metrics .metrics-grid .metric__num--text,
  .home-metrics .metrics-grid .metric__num--price {
    font-size: clamp(1.05rem, 5.7vw, 1.55rem);
  }

  .home-metrics .metrics-grid .metric__suffix {
    margin-left: .18em;
    font-size: .38em;
  }

  .home-metrics .metrics-grid .metric__label {
    max-width: 16ch;
    padding-top: .45rem;
    font-size: clamp(.65rem, 3vw, .78rem);
  }

  .home-result-card {
    width: min(100%, 28rem);
    margin-inline: auto;
  }

  .home-tourism .ministeps.home-tourism__grid {
    grid-template-columns: 1fr;
  }

  .home-tourism .ministep.home-tourism__step {
    min-height: 0;
    padding: 1.25rem;
  }

  .closing.home-closing .closing__prices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  .closing.home-closing .price-block {
    min-width: 0;
  }

  .closing.home-closing .price {
    white-space: nowrap;
  }

  .closing.home-closing .price__amount {
    font-size: clamp(1.6rem, 8vw, 2.35rem);
  }

  .closing.home-closing .price__currency {
    font-size: clamp(.65rem, 2.8vw, .8rem);
  }
}

@media (max-width: 390px) {
  .home-metrics .metrics-grid .metric {
    padding-inline: .3rem;
  }

  .home-metrics .metrics-grid .metric__num--text,
  .home-metrics .metrics-grid .metric__num--price {
    font-size: clamp(.98rem, 5.3vw, 1.25rem);
  }

  .closing.home-closing .closing__prices {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .doctor-page .doctor-closing-section .closing__prices {
    display: grid;
    grid-template-columns: 1fr;
  }
}

@media (min-width: 1440px) {
  .home-journey__stage {
    padding-inline: max(var(--gutter), calc((100vw - 1480px) / 2 + var(--gutter)));
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-metrics .metrics-grid .metric__num--text > span {
    transform: none;
    opacity: 1;
    transition: none;
  }

  .home-journey__scroll {
    height: auto;
  }

  .home-journey__stage {
    position: relative;
    top: auto;
  }

  .home-result-card,
  .home-result-card::after,
  .float-cta {
    transition: none !important;
  }
}

/* =====================================================================
   Refinamiento responsive del Home — segunda ronda
   Alineación armónica, métricas repetibles y recorrido móvil progresivo.
   ===================================================================== */

/* Confianza: tres filas estables mantienen títulos y cuerpos alineados. */
.home-trust .card {
  display: grid;
  grid-template-rows: 3.75rem 2rem 1fr;
  justify-items: center;
  align-content: start;
  gap: 1rem;
}

.home-trust .pillar__icon {
  margin: 0;
}

.home-trust .card__title {
  align-self: center;
  margin: 0;
  font-size: 1.3rem;
  line-height: 1.15;
  white-space: nowrap;
  text-wrap: nowrap;
}

.home-trust .card__text {
  align-self: start;
  max-width: 31ch;
  margin: 0;
  font-size: .94rem;
  line-height: 1.65;
}

/* Ancla humana: composición editorial deliberada de dos líneas. */
.home-doctor__headline {
  margin-inline: auto;
  font-size: 3rem;
  line-height: 1.02;
}

.home-doctor__headline span,
.home-doctor__quote span {
  display: block;
  white-space: nowrap;
}

.home-doctor__quote {
  max-width: none;
  margin-top: 2rem;
  font-size: 1.55rem;
  line-height: 1.35;
}

.doctor-photo--home .doctor-photo__img {
  object-position: 50% 34%;
}

/* Recorrido: iconografía semántica sin numeración decorativa. */
.home-journey__symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.home-journey__visual-icons {
  position: absolute;
  inset: 50% auto auto 50%;
  display: grid;
  width: 7.25rem;
  height: 7.25rem;
  transform: translate(-50%, -50%);
  place-items: center;
}

.home-journey__visual-icon {
  position: absolute;
  inset: 0;
  display: grid;
  transform: translateY(18px) scale(.92);
  place-items: center;
  color: var(--gold-light);
  opacity: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: rgba(5,5,5,.88);
  box-shadow: 0 20px 56px rgba(0,0,0,.36);
  transition: opacity .45s var(--ease), transform .6s var(--ease);
}

.home-journey__visual-icon.is-active {
  transform: none;
  opacity: 1;
}

.home-journey__visual-icon svg,
.home-journey__step-icon svg {
  width: 2.6rem;
  height: 2.6rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.home-journey__step {
  right: 0;
  left: 0;
  margin-inline: auto;
  text-align: center;
}

.home-journey__step h3,
.home-journey__step p {
  margin-inline: auto;
  text-align: center;
}

.home-journey__step-icon {
  display: none;
}

/* Turismo: bloque editorial centrado y filas internas consistentes. */
.home-tourism__copy {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.home-tourism__copy .eyebrow,
.home-tourism__copy .btn--text {
  justify-content: center;
}

.home-tourism__copy .lead {
  margin-inline: auto;
}

.home-tourism__headline {
  margin-inline: auto;
  font-size: 3rem;
  line-height: 1.03;
}

.home-tourism__headline span {
  display: block;
  white-space: nowrap;
}

.home-tourism .ministep.home-tourism__step {
  grid-template-rows: auto 1fr;
}

.home-tourism .home-tourism__step > div {
  display: grid;
  height: 100%;
  grid-template-rows: minmax(3.45rem, auto) 1fr;
  align-content: start;
}

.home-tourism .home-tourism__step h3 {
  align-self: center;
  margin: 0;
  font-size: 1.45rem;
  line-height: 1.12;
}

.home-tourism .home-tourism__step p {
  align-self: start;
  margin: 0;
}

/* Experiencias autorizadas: una sola lectura vertical y compacta. */
.home-consent__notice {
  display: flex;
  max-width: 72rem;
  margin-inline: auto;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 2.15rem 2rem;
  text-align: center;
  background: linear-gradient(180deg, rgba(214,165,58,.04), rgba(16,16,18,.7));
}

.home-consent__notice .eyebrow,
.home-consent__notice .btn--text {
  justify-content: center;
}

.home-consent__headline {
  margin: 0;
  font-size: 2.75rem;
  line-height: 1.02;
}

.home-consent__headline span {
  display: block;
  white-space: nowrap;
}

.home-consent__notice > p:not(.eyebrow) {
  max-width: 58ch;
  margin: 0;
}

@media (max-width: 1099px) {
  .home-trust .card {
    grid-template-rows: 3.75rem 2.25rem 1fr;
  }

  .home-trust .card__title {
    font-size: 1.5rem;
  }

  .home-doctor__headline,
  .home-tourism__headline {
    font-size: 2.55rem;
  }
}

@media (max-width: 899px) {
  .float-cta.is-journey-suppressed,
  .float-wa.is-journey-suppressed {
    transform: translateY(14px) scale(.96);
    opacity: 0;
    pointer-events: none;
  }

  .home-doctor__headline {
    font-size: 2.75rem;
  }

  .home-journey__visual {
    width: min(64vw, 300px);
    margin-bottom: 2rem;
  }

  .home-journey__visual-icons {
    display: none;
  }

  .home-journey__step {
    gap: .85rem;
  }

  .home-journey__step-icon {
    display: grid;
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto .35rem;
    transform: translateY(10px);
    place-items: center;
    color: var(--gold-light);
    opacity: 0;
    border: 1px solid var(--line);
    border-radius: 50%;
    background: rgba(214,165,58,.045);
    transition: opacity .45s var(--ease), transform .6s var(--ease);
  }

  .home-journey.is-mobile-reveal .home-journey__step,
  .home-journey.is-mobile-reveal .home-journey__step.is-active {
    transform: translateY(28px);
    opacity: 0;
    transition: opacity .65s var(--ease), transform .75s var(--ease);
  }

  .home-journey.is-mobile-reveal .home-journey__step.is-active {
    transform: none;
    opacity: 1;
  }

  .home-journey.is-mobile-reveal .home-journey__step.is-active .home-journey__step-icon {
    transform: none;
    opacity: 1;
  }

  .home-journey.is-static .home-journey__step-icon {
    transform: none;
    opacity: 1;
  }

  .home-tourism__headline {
    font-size: 2.65rem;
  }
}

@media (max-width: 640px) {
  .home-trust .card {
    grid-template-rows: 3.5rem auto auto;
    gap: .85rem;
    min-height: 15.75rem;
  }

  .home-trust .card__title {
    font-size: 1.32rem;
  }

  .home-trust .card__text {
    max-width: 32ch;
    font-size: .9rem;
  }

  .home-doctor__headline {
    font-size: 2.15rem;
  }

  .home-doctor__quote {
    font-size: 1.2rem;
  }

  .home-tourism__headline {
    font-size: 2.2rem;
  }

  .home-tourism .home-tourism__step > div {
    grid-template-rows: minmax(3.25rem, auto) minmax(4.1rem, auto);
    gap: .55rem;
  }

  .home-tourism .home-tourism__step h3 {
    align-self: center;
  }

  .home-tourism .home-tourism__step p {
    align-self: start;
  }

  .home-consent__notice {
    padding: 1.8rem 1rem;
  }

  .home-consent__headline {
    font-size: 2.1rem;
  }
}

@media (max-width: 390px) {
  .home-trust .card__title {
    font-size: 1.22rem;
  }

  .home-doctor__headline {
    font-size: 1.9rem;
  }

  .home-doctor__quote {
    font-size: 1.08rem;
  }

  .home-tourism__headline {
    font-size: 1.95rem;
  }

  .home-consent__headline {
    font-size: 1.85rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-journey__visual-icon,
  .home-journey__step-icon,
  .home-journey.is-mobile-reveal .home-journey__step {
    transform: none;
    opacity: 1;
    transition: none;
  }
}

/* =====================================================================
   Hero + Transición Eternia
   Una sola secuencia inicial, aislada del resto del Home y sus includes.
   ===================================================================== */
.home-opening {
  position: relative;
  min-width: 0;
  color: var(--ivory);
  background: var(--black);
  overflow: clip;
}

.home-opening__stage {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  background: var(--black);
  overflow: hidden;
}

.home-opening .hero,
.home-opening .eternia-experience {
  position: absolute;
  inset: 0;
  min-height: 100vh;
  min-height: 100svh;
}

.home-opening .hero {
  z-index: 2;
  isolation: isolate;
}

.home-opening .hero__media {
  transform-origin: 50% 50%;
  will-change: transform, opacity;
}

.home-opening .hero__media img {
  object-position: 50% 38%;
  filter: saturate(.92) contrast(1.025);
}

.home-opening .hero__media::after {
  background:
    linear-gradient(90deg, var(--black) 0%, rgba(5,5,5,.9) 13%, rgba(5,5,5,.3) 48%, rgba(5,5,5,.06) 100%),
    linear-gradient(180deg, rgba(5,5,5,.12), transparent 42%, rgba(5,5,5,.42));
}

.home-opening .hero__inner,
.home-opening .hero__scroll {
  will-change: transform, opacity;
}

.eternia-experience {
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(13rem, 1fr) auto minmax(13rem, 1fr);
  align-items: center;
  gap: clamp(1.5rem, 4vw, 5rem);
  padding: calc(var(--header-h) + 1rem) max(var(--gutter), calc((100vw - 1440px) / 2 + var(--gutter))) 1.25rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: var(--black);
}

.eternia-experience.is-visible {
  visibility: visible;
}

.eternia-experience__copy {
  grid-column: 1;
  max-width: 25rem;
  justify-self: end;
}

.eternia-experience__copy .eyebrow {
  margin-bottom: 1rem;
}

.eternia-experience__copy h2 {
  margin: 0;
  font-size: 2.65rem;
  line-height: 1.04;
  text-wrap: balance;
}

.eternia-experience__media {
  position: relative;
  grid-column: 2;
  height: min(86svh, 920px);
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: #090909 image-set(
    url('/assets/img/home/eternia-video-poster.webp') type('image/webp'),
    url('/assets/img/home/eternia-video-poster.jpg') type('image/jpeg')
  ) center / contain no-repeat;
  box-shadow: 0 32px 90px rgba(0,0,0,.48);
  will-change: transform, opacity;
}

.eternia-experience__media video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #090909;
}

.home-doctor .doctor-photo--home .doctor-photo__img {
  object-position: 50% 40%;
}

@media (hover: hover) and (pointer: fine) {
  .home-trust .card {
    transition: transform 300ms var(--ease), border-color 300ms var(--ease), box-shadow 300ms var(--ease);
  }

  .home-trust .card:hover {
    transform: translateY(-5px);
    border-color: rgba(214,165,58,.36);
    box-shadow: 0 24px 58px rgba(0,0,0,.3);
  }

  .home-trust .card:hover .pillar__icon {
    box-shadow: 0 0 26px rgba(214,165,58,.12);
  }
}

/* Tablet: transición breve dentro del flujo, sin pin prolongado. */
@media (min-width: 768px) and (max-width: 1023px) {
  .home-opening__stage {
    min-height: auto;
    overflow: visible;
  }

  .home-opening .hero,
  .home-opening .eternia-experience {
    position: relative;
    inset: auto;
  }

  .home-opening .hero {
    min-height: 88svh;
  }

  .home-opening .hero__media {
    width: 56vw;
  }

  .home-opening .hero__inner {
    max-width: min(43ch, 49vw);
  }

  .home-opening .eternia-experience {
    display: grid;
    min-height: 70svh;
    grid-template-columns: minmax(12rem, .8fr) auto;
    gap: 2rem;
    padding-block: 4rem;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .eternia-experience__copy {
    grid-column: 1;
    justify-self: end;
  }

  .eternia-experience__copy h2 {
    font-size: 2.25rem;
  }

  .eternia-experience__media {
    grid-column: 2;
    height: min(68svh, 720px);
  }
}

/* Mobile: foto, contenido y video en flujo natural. */
@media (max-width: 767px) {
  .home-opening,
  .home-opening__stage {
    overflow: visible;
  }

  .home-opening__stage {
    min-height: auto;
  }

  .home-opening .hero,
  .home-opening .eternia-experience {
    position: relative;
    inset: auto;
    min-height: auto;
  }

  .home-opening .hero {
    display: flex;
    flex-direction: column;
    padding: 0;
    overflow: visible;
  }

  .home-opening .hero__bg {
    position: absolute;
    inset: 52svh 0 0;
  }

  .home-opening .hero__grain {
    display: none;
  }

  .home-opening .hero__media {
    position: relative;
    inset: auto;
    z-index: 1;
    order: 1;
    width: 100%;
    height: 52svh;
    min-height: 25rem;
    max-height: 34rem;
  }

  .home-opening .hero__media img {
    object-position: 50% 32%;
  }

  .home-opening .hero__media::after {
    background: linear-gradient(180deg, transparent 55%, rgba(5,5,5,.96) 100%);
  }

  .home-opening .hero > .container {
    position: relative;
    z-index: 3;
    order: 2;
    width: 100%;
    margin-top: -1px;
    padding-block: 2.15rem 1.5rem;
    background: var(--black);
  }

  .home-opening .hero__inner {
    max-width: 34rem;
    margin-inline: auto;
    text-align: center;
  }

  .home-opening .hero__inner .eyebrow {
    justify-content: center;
  }

  .home-opening .hero h1 {
    font-size: 3.4rem;
    line-height: .94;
  }

  .home-opening .hero .lead {
    max-width: 31rem;
    margin-inline: auto;
    font-size: .98rem;
  }

  .home-opening .hero__ctas {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
    max-width: 29rem;
    margin-inline: auto;
  }

  .home-opening .hero__ctas .btn {
    width: 100%;
    min-height: 3.25rem;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .home-opening .hero__scroll {
    position: relative;
    inset: auto;
    z-index: 3;
    order: 3;
    transform: none;
    padding: .75rem 0 1.8rem;
    background: var(--black);
  }

  .home-opening .eternia-experience {
    display: flex;
    flex-direction: column;
    gap: 1.4rem;
    padding: 3.5rem var(--gutter) 4rem;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    background: var(--black);
  }

  .eternia-experience__copy {
    display: flex;
    max-width: 31rem;
    flex-direction: column;
    align-items: center;
    justify-self: auto;
    text-align: center;
  }

  .eternia-experience__copy .eyebrow {
    justify-content: center;
  }

  .eternia-experience__copy h2 {
    font-size: 2.35rem;
  }

  .eternia-experience__media {
    width: min(100%, 27rem);
    height: auto;
    margin-inline: auto;
    aspect-ratio: 9 / 16;
    border: 1px solid var(--line);
    border-radius: 1rem;
    box-shadow: 0 24px 65px rgba(0,0,0,.4);
  }

  .home-trust .grid--4 {
    display: flex;
    width: calc(100% + var(--gutter));
    margin-right: calc(var(--gutter) * -1);
    gap: .85rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding: .25rem var(--gutter) 1rem 0;
  }

  .home-trust .grid--4::-webkit-scrollbar {
    display: none;
  }

  .home-trust .card {
    flex: 0 0 88%;
    min-height: 22rem;
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  .home-trust .card:active {
    transform: translateY(-2px);
    border-color: rgba(214,165,58,.36);
  }

  .home-doctor .split {
    grid-template-columns: 1fr;
  }

  .home-doctor .doctor-photo--home {
    width: min(100%, 34rem);
    margin-inline: auto;
  }
}

@media (max-width: 430px) {
  .home-opening .hero__media {
    height: 50svh;
    min-height: 23rem;
  }

  .home-opening .hero__bg {
    inset-block-start: 50svh;
  }

  .home-opening .hero h1 {
    font-size: 3rem;
  }

  .eternia-experience__copy h2 {
    font-size: 2rem;
  }

  .home-trust .card {
    flex-basis: 89%;
    min-height: 21rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-opening__stage {
    min-height: auto;
    overflow: visible;
  }

  .home-opening .hero,
  .home-opening .eternia-experience {
    position: relative;
    inset: auto;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .home-opening .eternia-experience {
    min-height: 100svh;
  }

  .home-trust .card {
    transition: none;
  }
}

/* =====================================================================
   Segunda iteración final — Portal cinematográfico Hero → Eternia
   La fotografía ocupa primero el escenario completo; el portal vertical
   se abre encima y conserva poster hasta que el video emite `playing`.
   ===================================================================== */
.home-opening .hero__title-line {
  display: block;
}

.home-opening .hero__media-dim {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: block;
  pointer-events: none;
  background: var(--black);
  opacity: 0;
}

.eternia-experience__poster,
.eternia-experience__poster img,
.eternia-experience__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.eternia-experience__poster {
  z-index: 2;
  margin: 0;
  opacity: 1;
  transition: opacity 200ms ease;
  pointer-events: none;
}

.eternia-experience__poster img,
.eternia-experience__media video {
  display: block;
  object-fit: contain;
  background: #090909;
}

.eternia-experience__media video {
  z-index: 1;
  opacity: 0;
  transition: opacity 200ms ease;
}

.eternia-experience.is-video-playing .eternia-experience__poster {
  opacity: 0;
}

.eternia-experience.is-video-playing .eternia-experience__media video {
  opacity: 1;
}

.eternia-experience__play {
  position: absolute;
  z-index: 4;
  inset: 50% auto auto 50%;
  display: inline-flex;
  min-height: 3.25rem;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  padding: .8rem 1rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ivory);
  background: rgba(5,5,5,.86);
  box-shadow: 0 18px 50px rgba(0,0,0,.4);
  font: 600 .78rem/1 var(--font-body);
  transform: translate(-50%, -50%);
  cursor: pointer;
  backdrop-filter: blur(10px);
}

.eternia-experience__play[hidden] {
  display: none;
}

.eternia-experience__play:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.home-trust__mobile-nav {
  display: none;
}

/* Desktop: una única escena. La foto es full-stage desde el inicio y su
   clip lateral produce la composición de dos columnas sin cambiar de ratio. */
@media (min-width: 1025px) {
  .home-opening__stage {
    height: 100svh;
    min-height: 42rem;
  }

  .home-opening .hero,
  .home-opening .eternia-experience {
    height: 100%;
    min-height: 0;
  }

  .home-opening .hero__media {
    position: absolute;
    inset: 0;
    z-index: 1;
    width: 100%;
    height: 100%;
    clip-path: inset(0 0 0 45% round 0);
    transform: none;
    will-change: transform, clip-path, opacity;
  }

  .home-opening .hero__media picture,
  .home-opening .hero__media img {
    display: block;
    width: 100%;
    height: 100%;
  }

  .home-opening .hero__media img {
    object-fit: cover;
    object-position: 0% 50%;
  }

  .home-opening .hero__media::after {
    z-index: 2;
    background:
      linear-gradient(90deg, rgba(5,5,5,.96) 0%, rgba(5,5,5,.84) 24%, rgba(5,5,5,.22) 48%, rgba(5,5,5,.03) 78%),
      linear-gradient(180deg, rgba(5,5,5,.08), transparent 48%, rgba(5,5,5,.34));
  }

  .home-opening .hero > .container,
  .home-opening .hero__scroll {
    position: relative;
    z-index: 5;
  }

  .home-opening .hero__inner {
    max-width: min(39rem, 43vw);
  }

  .eternia-experience {
    z-index: 6;
    grid-template-columns: minmax(17rem, .85fr) auto minmax(2rem, .18fr);
    gap: clamp(2.25rem, 5vw, 6.5rem);
    background: transparent;
  }

  .eternia-experience__copy {
    width: min(100%, 25rem);
    justify-self: end;
  }

  .eternia-experience__copy h2 {
    font-size: 3rem;
    line-height: 1;
  }

  .eternia-experience__media {
    height: clamp(620px, 82svh, 920px);
    max-height: calc(100svh - var(--header-h) - 1.5rem);
    border: 1px solid rgba(214,165,58,.12);
    border-radius: .25rem;
    background: #090909;
    will-change: transform, clip-path, opacity;
  }

  .home-opening.is-static .home-opening__stage {
    height: auto;
    overflow: visible;
  }

  .home-opening.is-static .hero,
  .home-opening.is-static .eternia-experience {
    position: relative;
    min-height: 100svh;
  }

  .home-opening.is-static .hero__media {
    clip-path: inset(0 0 0 45% round 0);
  }

  .home-opening.is-static .eternia-experience {
    background: var(--black);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }
}

/* Tablet parte del flujo mobile: sin pin ni timeline propio. */
@media (max-width: 1024px) {
  .home-opening,
  .home-opening__stage {
    overflow: visible;
  }

  .home-opening__stage {
    min-height: auto;
  }

  .home-opening .hero,
  .home-opening .eternia-experience {
    position: relative;
    inset: auto;
    min-height: auto;
  }

  .home-opening .hero {
    display: flex;
    flex-direction: column;
    padding: 0;
  }

  .home-opening .hero__media {
    position: relative;
    inset: auto;
    z-index: 1;
    order: 1;
    width: 100%;
    height: min(55svh, 39rem);
    min-height: 28rem;
    overflow: hidden;
  }

  .home-opening .hero__media picture,
  .home-opening .hero__media img {
    display: block;
    width: 100%;
    height: 100%;
  }

  .home-opening .hero__media img {
    object-fit: cover;
    object-position: 50% 44%;
  }

  .home-opening .hero__media::after {
    background: linear-gradient(180deg, rgba(5,5,5,.02) 48%, rgba(5,5,5,.96) 100%);
  }

  .home-opening .hero > .container {
    position: relative;
    z-index: 3;
    order: 2;
    width: 100%;
    padding-block: 2.2rem 1.5rem;
    background: var(--black);
  }

  .home-opening .hero__inner {
    max-width: 38rem;
    margin-inline: auto;
    text-align: center;
  }

  .home-opening .hero__inner .eyebrow {
    justify-content: center;
  }

  .home-opening .hero__ctas {
    max-width: 30rem;
    margin-inline: auto;
  }

  .home-opening .hero__scroll {
    position: relative;
    inset: auto;
    z-index: 3;
    order: 3;
    transform: none;
    padding: .65rem 0 1.5rem;
    background: var(--black);
  }

  .home-opening .eternia-experience {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    padding: clamp(3.5rem, 8vw, 6rem) var(--gutter);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    background: var(--black);
  }

  .eternia-experience__copy {
    display: flex;
    width: min(100%, 34rem);
    max-width: none;
    align-items: center;
    flex-direction: column;
    text-align: center;
  }

  .eternia-experience__copy .eyebrow {
    justify-content: center;
  }

  .eternia-experience__copy h2 {
    max-width: 12ch;
    font-size: 2.45rem;
    line-height: 1.02;
  }

  .eternia-experience__media {
    width: min(100%, 29rem);
    height: auto;
    margin-inline: auto;
    aspect-ratio: 9 / 16;
    border: 1px solid var(--line);
    border-radius: 1.125rem;
    background: #090909;
    box-shadow: 0 24px 65px rgba(0,0,0,.42);
  }

  .home-doctor .split {
    display: grid;
    grid-template-columns: 1fr;
    text-align: center;
  }

  .home-doctor__copy {
    display: contents;
  }

  .home-doctor__copy .eyebrow {
    grid-row: 1;
    justify-content: center;
  }

  .home-doctor__headline {
    grid-row: 2;
    max-width: 18ch;
    margin-inline: auto;
  }

  .home-doctor .doctor-photo--home {
    grid-row: 3;
    width: min(100%, 34rem);
    margin: 1.5rem auto 2rem;
  }

  .home-doctor__copy .lead { grid-row: 4; }
  .home-doctor__copy .text-muted { grid-row: 5; }
  .home-doctor__quote { grid-row: 6; }
  .home-doctor__copy .btn { grid-row: 7; justify-self: center; }

  .home-doctor__copy .lead,
  .home-doctor__copy .text-muted,
  .home-doctor__quote {
    max-width: 42rem;
    margin-inline: auto;
  }
}

@media (max-width: 767px) {
  .home-opening .hero__media {
    height: 52svh;
    min-height: 24rem;
    max-height: 34rem;
  }

  .home-opening .hero h1 {
    font-size: 3.35rem;
  }

  .home-opening .hero__ctas {
    display: grid;
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .home-opening .hero__ctas .btn {
    width: 100%;
    min-height: 3.25rem;
    justify-content: center;
  }

  .home-opening .eternia-experience {
    padding-block: 3.5rem 4rem;
  }

  .eternia-experience__copy h2 {
    font-size: 2.2rem;
  }

  .home-trust .grid--4 {
    scroll-padding-inline: 0 var(--gutter);
  }

  .home-trust .card {
    transform: scale(.95);
    opacity: .62;
    transition: transform 280ms var(--ease), opacity 280ms var(--ease), border-color 280ms var(--ease);
  }

  .home-trust .card.is-active {
    transform: scale(1);
    opacity: 1;
    border-color: rgba(214,165,58,.3);
  }

  .home-trust__mobile-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .35rem;
  }

  .home-trust__swipe {
    color: var(--warm-gray);
    font: 650 .68rem/1.2 var(--font-body);
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .home-trust__dots {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
  }

  .home-trust__dots span {
    display: block;
    width: .38rem;
    height: .38rem;
    border-radius: 50%;
    background: rgba(247,241,231,.22);
    transition: width 220ms ease, border-radius 220ms ease, background-color 220ms ease;
  }

  .home-trust__dots span.is-active {
    width: 1rem;
    border-radius: 999px;
    background: var(--gold);
  }
}

@media (max-width: 430px) {
  .home-doctor__headline {
    font-size: 1.7rem;
  }

  .home-opening .hero h1 {
    font-size: 3rem;
  }

  .home-opening .hero__media {
    height: 50svh;
    min-height: 23rem;
  }

  .eternia-experience__copy h2 {
    font-size: 2rem;
  }
}

@media (max-width: 390px) {
  .home-doctor__headline {
    font-size: 1.58rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .eternia-experience__poster,
  .eternia-experience__media video,
  .home-trust .card,
  .home-trust__dots span {
    transition: none;
  }

  .home-opening .hero__media-dim {
    display: none;
  }

  .eternia-experience__media video {
    opacity: 1;
  }
}

/* =====================================================================
   Ajustes finos desktop — Home
   Composición editorial sin alterar la transición Hero → Eternia.
   ===================================================================== */
.eternia-desktop-break {
  display: none;
}

@media (min-width: 1025px) {
  .home-opening .hero > .container {
    width: 100%;
    max-width: none;
    padding-inline: 0;
  }

  .home-opening .hero__inner {
    width: 34rem;
    max-width: none;
    margin-left: max(3.5rem, calc((45vw - 34rem) / 2));
  }

  .home-opening .hero h1 {
    width: 100%;
    font-size: 4.75rem;
    white-space: nowrap;
  }

  .home-opening .hero__title-line:first-child,
  .home-opening .hero__title-line:nth-child(2) {
    display: inline;
  }

  .home-opening .hero__title-line:first-child::after {
    content: " ";
  }

  .home-opening .hero__title-line:nth-child(3) {
    display: block;
  }

  .home-opening .hero .lead {
    max-width: 32rem;
    margin-bottom: clamp(1.5rem, 2.3vw, 2rem);
  }

  .home-opening .hero__ctas {
    align-items: stretch;
    gap: .9rem;
  }

  .eternia-desktop-break {
    display: block;
  }

  .eternia-experience__copy {
    width: min(100%, 34rem);
    max-width: 34rem;
    justify-self: center;
    text-align: center;
  }

  .eternia-experience__copy .eyebrow {
    justify-content: center;
  }

  .home-trust .card {
    grid-template-rows: 3.75rem minmax(2.25rem, auto) 1fr;
    width: 100%;
    padding: 2rem 1rem 2.2rem;
    justify-items: center;
  }

  .home-trust .pillar__icon {
    align-self: start;
    justify-self: center;
  }

  .home-trust .card__title {
    display: flex;
    width: 100%;
    min-height: 2.25rem;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    font-size: 1.0625rem;
    white-space: nowrap;
    text-align: center;
    letter-spacing: 0;
  }

  .home-trust .card__text {
    width: 100%;
    max-width: 27ch;
    justify-self: center;
    align-self: start;
    font-size: .9rem;
    line-height: 1.55;
    text-align: center;
    margin-inline: auto;
  }
}

@media (min-width: 1025px) and (max-width: 1440px) {
  .home-opening .hero__inner {
    width: 31.5rem;
    margin-left: max(3.5rem, calc((45vw - 31.5rem) / 2));
  }

  .home-opening .hero h1 {
    font-size: 4.375rem;
  }
}

/* =====================================================================
   Resultados reales en Home — cards clínicas y galerías autorizadas
   ===================================================================== */
.home-journey + .home-results {
  padding-top: clamp(4.5rem, 7vw, 7rem);
}

.home-results .section-head .lead {
  max-width: 64ch;
}

.home-results__grid {
  grid-template-columns: minmax(0, 1.18fr) repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(1rem, 1.7vw, 1.5rem);
}

.home-result-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
  background: #0d0d0f;
}

.home-result-card:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 5px;
}

.home-result-card__media {
  display: grid;
  width: 100%;
  padding: 0;
  place-items: center;
  overflow: hidden;
  background: #050505;
}

.home-result-card__media::before {
  display: none;
}

.home-result-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(5,5,5,.02) 55%, rgba(5,5,5,.34) 100%);
}

.home-result-card__media picture,
.home-result-card__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.home-result-card__media img {
  position: relative;
  z-index: 1;
  object-fit: contain;
  object-position: center;
  background: #050505;
  transition: transform .5s var(--ease-out), opacity .3s var(--ease);
}

.home-result-card__media .home-result-card__badge {
  position: absolute;
  top: 1rem;
  right: auto;
  left: 1rem;
  z-index: 3;
  width: auto;
  padding: .44rem .72rem;
  transform: none;
  border: 1px solid rgba(243,200,90,.3);
  border-radius: 999px;
  color: var(--gold-light);
  background: rgba(5,5,5,.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-size: .66rem;
  line-height: 1;
  letter-spacing: .08em;
}

.home-result-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: center;
  padding: clamp(1.15rem, 2vw, 1.65rem);
  text-align: center;
}

.home-result-card__body h3 {
  margin: 0 0 .35rem;
  font-size: clamp(1.55rem, 2vw, 2rem);
  line-height: 1.05;
}

.home-result-card__body p {
  margin: 0 0 1.2rem;
  color: var(--warm-gray);
  font-size: .92rem;
  line-height: 1.55;
}

.home-result-card__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  margin-top: auto;
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.home-result-card__action span {
  transition: transform .3s var(--ease-out);
}

.home-results__disclaimer {
  max-width: 82ch;
  margin: clamp(1.5rem, 3vw, 2.3rem) auto 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.65;
  text-align: center;
}

.home-results__cta {
  margin-top: clamp(1.4rem, 2.6vw, 2rem);
  text-align: center;
}

@media (hover: hover) and (pointer: fine) {
  .home-result-card:hover .home-result-card__media img {
    transform: scale(1.018);
  }

  .home-result-card:hover .home-result-card__action span {
    transform: translateX(4px);
  }
}

/* Home + Doctor: las mismas cuatro portadas editoriales. */
.home-page .home-results__grid,
.doctor-page .doctor-results .home-results__grid,
.tourism-landing .tourism-results .home-results__grid {
  grid-template-columns: minmax(0, 1fr);
}

.home-page .home-result-card--featured,
.doctor-page .doctor-results .home-result-card--featured,
.tourism-landing .tourism-results .home-result-card--featured {
  display: flex;
  grid-column: auto;
  grid-template-columns: none;
}

.home-page .home-result-card__media,
.doctor-page .doctor-results .home-result-card__media,
.tourism-landing .tourism-results .home-result-card__media {
  aspect-ratio: 1;
  flex-shrink: 0;
}

.home-page .home-result-card__media picture,
.doctor-page .doctor-results .home-result-card__media picture,
.tourism-landing .tourism-results .home-result-card__media picture {
  position: absolute;
  inset: 0;
}

.home-page .home-result-card__media img,
.doctor-page .doctor-results .home-result-card__media img,
.tourism-landing .tourism-results .home-result-card__media img {
  object-fit: cover;
}

.home-page .home-result-card--hd .home-result-card__media img,
.doctor-page .doctor-results .home-result-card--hd .home-result-card__media img,
.tourism-landing .tourism-results .home-result-card--hd .home-result-card__media img {
  object-position: 50% 20%;
}

@media (min-width: 768px) {
  .home-page .home-results__grid,
  .doctor-page .doctor-results .home-results__grid,
  .tourism-landing .tourism-results .home-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .home-page .home-trust .section-head {
    width: 100%;
    max-width: none;
  }

  .home-page .home-results__grid,
  .doctor-page .doctor-results .home-results__grid,
  .tourism-landing .tourism-results .home-results__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Galería agrupada: una sola capa reutilizable para los nueve casos. */
.lightbox__content {
  display: grid;
  width: min(1180px, calc(100vw - 7rem));
  max-height: calc(100dvh - 8rem);
  grid-template-rows: minmax(0, 1fr) auto;
  gap: .85rem;
  place-items: center;
}

.lightbox__picture {
  display: grid;
  min-width: 0;
  min-height: 0;
  place-items: center;
}

.lightbox__content .lightbox__img {
  width: auto;
  max-width: 100%;
  max-height: calc(100dvh - 13rem);
  object-fit: contain;
}

.lightbox__meta {
  display: grid;
  width: min(760px, 100%);
  gap: .3rem;
  justify-items: center;
  text-align: center;
}

.lightbox__counter {
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: .72rem;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: .12em;
}

.lightbox__meta .lightbox__caption {
  position: static;
  transform: none;
  width: auto;
  margin: 0;
  padding: 0;
  color: var(--ivory);
  font-size: .86rem;
  line-height: 1.5;
}

.lightbox__note {
  margin: 0;
  color: var(--muted);
  font-size: .74rem;
  line-height: 1.5;
}

.lightbox__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid var(--line);
  border-radius: 50%;
  color: var(--gold-light);
  background: rgba(16,16,18,.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.lightbox__nav[hidden] { display: none; }

.lightbox__nav--prev { left: clamp(.8rem, 2vw, 2rem); }
.lightbox__nav--next { right: clamp(.8rem, 2vw, 2rem); }

.lightbox__nav:hover,
.lightbox__nav:focus-visible {
  background: rgba(214,165,58,.14);
}

.lightbox__nav:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

@media (min-width: 768px) and (max-width: 1099px) {
  .home-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-result-card--featured {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: minmax(0, 1fr) minmax(15rem, .72fr);
  }

  .home-result-card--featured .home-result-card__body {
    justify-content: center;
  }
}

@media (max-width: 767px) {
  .home-journey + .home-results {
    padding-top: clamp(3.5rem, 12vw, 5rem);
  }

  .home-results__grid {
    grid-template-columns: 1fr;
  }

  .home-result-card--featured {
    display: flex;
  }

  .home-result-card__media .home-result-card__badge {
    top: .8rem;
    left: .8rem;
  }

  .lightbox {
    padding: 4.75rem .85rem 1rem;
  }

  .lightbox__content {
    width: 100%;
    max-height: calc(100dvh - 5.75rem);
  }

  .lightbox__content .lightbox__img {
    max-height: calc(100dvh - 11rem);
    border-radius: 6px;
  }

  .lightbox__close {
    top: .85rem;
    right: .85rem;
  }

  .lightbox__nav {
    top: auto;
    bottom: 1.1rem;
    width: 42px;
    height: 42px;
    transform: none;
  }

  .lightbox__nav--prev { left: .85rem; }
  .lightbox__nav--next { right: .85rem; }

  .lightbox__meta {
    padding-inline: 3rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-result-card,
  .home-result-card__media img,
  .home-result-card__action span,
  .lightbox__img {
    transition: none !important;
  }
}

/* =====================================================================
   Mejora final de Tu recorrido — introduccion, hitos y cierre sincronizados
   ===================================================================== */
.home-journey__title-mask {
  overflow: hidden;
}

.home-journey__path--track {
  stroke: rgba(214, 165, 58, .2);
  opacity: 1;
}

.home-journey__path--track.home-journey__path--middle { opacity: .72; }
.home-journey__path--track.home-journey__path--inner { opacity: .52; }
.home-journey__path--track.home-journey__path--axis {
  opacity: .62;
  stroke-dasharray: 3 9;
}

.home-journey__path--progress {
  stroke: var(--gold-light);
  opacity: .94;
  filter: drop-shadow(0 0 3px rgba(243, 200, 90, .16));
}

.home-journey__path--progress.home-journey__path--middle { opacity: .7; }
.home-journey__path--progress.home-journey__path--inner { opacity: .48; }
.home-journey__path--progress.home-journey__path--axis { opacity: .82; }

.home-journey__node {
  fill: #0a0a0b;
  stroke: rgba(214, 165, 58, .38);
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
  transform-box: fill-box;
  transform-origin: center;
}

@media (min-width: 900px) {
  .home-journey:not(.is-enhanced) .home-journey__counter {
    display: none;
  }

  .home-journey.is-enhanced .home-journey__scroll {
    height: 400svh;
  }

  .home-journey.is-enhanced .home-journey__stage {
    position: relative;
    top: auto;
    height: calc(100svh - var(--journey-header-offset, 0px));
    min-height: calc(100svh - var(--journey-header-offset, 0px));
    padding-top: clamp(2.5rem, 5vh, 4rem);
    padding-bottom: clamp(2.5rem, 5vh, 4rem);
    overflow: hidden;
  }

  .home-journey.is-enhanced .home-journey__intro {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    width: min(100%, 72rem);
    padding: clamp(2.5rem, 7vh, 5rem) var(--gutter);
    place-items: center;
    pointer-events: none;
  }

  .home-journey.is-enhanced .home-journey__intro .section-head {
    width: 100%;
  }

  .home-journey.is-enhanced .home-journey__visual {
    width: min(43vw, 580px);
    transform-origin: 50% 55%;
  }

  .home-journey.is-enhanced .home-journey__counter {
    top: clamp(2rem, 4.5vh, 3.25rem);
  }

  .home-journey.is-enhanced .home-journey__progress {
    bottom: clamp(1.6rem, 3.5vh, 2.5rem);
  }

  .home-journey.is-enhanced .home-journey__progress span {
    transform: scaleX(0);
  }
}

.home-journey + .home-results {
  padding-top: clamp(2.75rem, 4vw, 4.5rem);
}

@media (max-width: 899px) {
  .home-journey__intro {
    padding-top: clamp(4rem, 12vw, 6.5rem);
    padding-bottom: var(--space-6);
  }

  .home-journey__node {
    fill: rgba(214, 165, 58, .16);
    stroke: rgba(214, 165, 58, .55);
  }

  .home-journey + .home-results {
    padding-top: clamp(3rem, 9vw, 4rem);
  }
}

/* =====================================================================
   Ajustes mobile del Home — encuadre, ritmo y carrusel centrado
   ===================================================================== */
@media (max-width: 767px) {
  body.home-page .site-header,
  body.home-page .site-header.is-scrolled {
    background: #050505;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }

  body.home-page .site-header::before,
  body.home-page .site-header::after {
    display: none;
    content: none;
  }

  body.home-page .home-opening {
    padding-top: var(--header-h);
  }

  body.home-page .home-opening .hero__media {
    height: min(64svh, 36rem);
    min-height: 31rem;
    max-height: 36rem;
    background: #050505;
  }

  body.home-page .home-opening .hero__media img {
    object-fit: cover;
    object-position: 50% 33%;
  }

  body.home-page .home-opening .hero__media::after {
    background: linear-gradient(
      180deg,
      transparent 0%,
      transparent 66%,
      rgba(5, 5, 5, .22) 76%,
      rgba(5, 5, 5, .8) 91%,
      #050505 100%
    );
  }

  body.home-page .home-opening .hero > .container {
    padding-top: 1.35rem;
    padding-bottom: 1.5rem;
  }

  body.home-page .home-opening .hero h1 {
    width: 100%;
    max-width: 100%;
    margin-inline: auto;
    white-space: nowrap;
    font-size: 2.9rem;
    line-height: .94;
  }

  body.home-page .home-opening .hero h1 .hero__title-line {
    display: inline;
  }

  body.home-page .home-opening .hero h1 .hero__title-line:first-child::after {
    content: " ";
  }

  body.home-page .home-opening .hero h1 .hero__title-line.gold {
    display: block;
  }

  body.home-page .eternia-experience {
    padding-top: 3.25rem;
    padding-bottom: 1.35rem;
    gap: 1.35rem;
  }

  body.home-page .eternia-experience .eternia-desktop-break {
    display: block;
  }

  body.home-page .eternia-experience h2 {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    white-space: nowrap;
    font-size: 2.08rem;
    line-height: .98;
  }

  body.home-page .home-trust {
    padding-top: 3.1rem;
  }

  body.home-page .home-trust__header {
    margin-bottom: 2rem;
    text-align: center;
  }

  body.home-page .home-trust__header .eyebrow,
  body.home-page .home-trust__header .lead {
    margin-inline: auto;
  }

  body.home-page #pilares-title {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    font-size: 2.1rem;
    line-height: 1;
  }

  body.home-page #pilares-title .home-trust__mobile-line {
    display: block;
    white-space: nowrap;
  }

  body.home-page .home-trust .grid--4 {
    display: flex;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: .25rem calc((100% - 74vw) / 2) 1rem;
    gap: 1rem;
    overflow-x: auto;
    scroll-padding-inline: calc((100% - 74vw) / 2);
    scroll-snap-type: x mandatory;
    overscroll-behavior-inline: contain;
  }

  body.home-page .home-trust .grid--4 > [data-pillar-card] {
    flex: 0 0 74vw;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  body.home-page .home-doctor,
  body.home-page .home-doctor .split__content {
    text-align: center;
  }

  body.home-page .home-doctor .split {
    row-gap: 0;
  }

  body.home-page .home-doctor .eyebrow,
  body.home-page .home-doctor .lead,
  body.home-page .home-doctor .doctor-note,
  body.home-page .home-doctor .doctor-quote {
    margin-inline: auto;
  }

  body.home-page .home-doctor .section-title {
    margin-bottom: .8rem;
  }

  body.home-page .home-doctor .doctor-photo {
    margin: .8rem auto 1.45rem;
  }

  body.home-page .home-doctor .lead {
    margin-top: 0;
    margin-bottom: 1rem;
  }

  body.home-page .home-doctor .doctor-note {
    margin-bottom: 1rem;
  }

  body.home-page .home-doctor .doctor-quote {
    margin-top: 1.25rem;
    margin-bottom: 1.5rem;
  }

  body.home-page .home-doctor .btn-row {
    justify-content: center;
  }

  body.home-page .metrics-grid {
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--line-2);
    border-radius: var(--radius-md);
  }

  body.home-page .home-metrics .metrics-grid .metric {
    border: 0;
    border-radius: 0;
  }

  body.home-page .home-metrics .metrics-grid .metric:nth-child(even) {
    border-left: 1px solid var(--line-2);
  }

  body.home-page .home-metrics .metrics-grid .metric:nth-child(n + 3) {
    border-top: 1px solid var(--line-2);
  }

  body.home-page .float-stack {
    right: max(.75rem, env(safe-area-inset-right));
    bottom: calc(.75rem + env(safe-area-inset-bottom));
  }

  body.home-page .float-wa {
    width: 46px;
    height: 46px;
  }

  body.home-page .float-wa svg {
    width: 23px;
    height: 23px;
  }
}

@media (max-width: 390px) {
  body.home-page .home-opening .hero h1 {
    font-size: 2.55rem;
  }

  body.home-page .eternia-experience h2 {
    font-size: 1.78rem;
  }

  body.home-page #pilares-title {
    font-size: 2rem;
  }
}

@media (min-width: 391px) and (max-width: 430px) {
  body.home-page .home-opening .hero h1 {
    font-size: 2.72rem;
  }

  body.home-page .eternia-experience h2 {
    font-size: 1.9rem;
  }
}

/* =====================================================================
   Correccion mobile final de Tu recorrido
   Los sentinelas solo participan en el modo mejorado <=767px. Sin JS,
   tablet y desktop conservan sus flujos actuales.
   ===================================================================== */
.home-journey__mobile-track,
.home-journey__mobile-dots {
  display: none;
}

@media (max-width: 767px) {
  /* Ajuste puntual Home mobile: centra el encabezado de El Doctor aunque
     su contenedor use display: contents en este breakpoint. */
  body.home-page .home-doctor__headline {
    width: min(100%, 23rem);
    max-width: 23rem;
    margin-inline: auto;
    justify-self: center;
    text-align: center;
  }

  /* Compacta el cierre sin alterar el ritmo de desktop ni otras páginas. */
  body.home-page .home-closing-section {
    padding-block: 2rem;
  }

  body.home-page .closing.home-closing {
    padding-block: 2rem;
  }

  body.home-page .site-footer {
    margin-top: 1.5rem;
  }

  html.home-journey-mobile-active,
  html.home-journey-mobile-active body.home-page {
    overflow-x: clip;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__scroll {
    display: grid;
    height: auto;
    min-height: 0;
    align-items: start;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__stage,
  body.home-page .home-journey.is-mobile-story .home-journey__mobile-track {
    grid-area: 1 / 1;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__stage {
    align-self: start;
    position: sticky;
    top: var(--journey-header-offset, var(--header-h));
    z-index: 2;
    display: block;
    width: 100%;
    min-height: calc(100svh - var(--journey-header-offset, var(--header-h)));
    height: calc(100svh - var(--journey-header-offset, var(--header-h)));
    margin: 0;
    padding: 0 20px;
    overflow: hidden;
    background: var(--black);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-track {
    z-index: 1;
    display: flex;
    min-width: 0;
    padding-top: 42svh;
    flex-direction: column;
    pointer-events: none;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-sentinel {
    display: block;
    min-height: 52svh;
    flex: 0 0 52svh;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-close {
    display: block;
    min-height: 28svh;
    flex: 0 0 28svh;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__intro {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    width: 100%;
    padding: clamp(2.6rem, 9svh, 4.5rem) 20px;
    align-content: center;
    transition:
      opacity .18s ease,
      transform .2s ease,
      visibility 0s linear .2s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__intro .section-head {
    width: 100%;
    margin: 0;
  }

  body.home-page .home-journey.is-mobile-story.is-story-started .home-journey__intro {
    transform: translateY(-14px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__visual {
    position: absolute;
    top: clamp(.8rem, 2svh, 1.2rem);
    left: 50%;
    z-index: 2;
    width: min(54vw, 13.5rem);
    margin: 0;
    transform: translateX(-50%) scale(.94) !important;
    transform-origin: center;
    opacity: .34;
    transition: opacity .2s ease, transform .2s ease;
  }

  body.home-page .home-journey.is-mobile-story.is-story-started .home-journey__visual {
    transform: translateX(-50%) scale(1) !important;
    opacity: .9;
  }

  body.home-page .home-journey.is-mobile-story.is-story-closing .home-journey__visual {
    transform: translateX(-50%) scale(.97) !important;
    opacity: .42;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__visual-icons {
    display: grid;
    width: 4rem;
    height: 4rem;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__visual-icon {
    width: 100%;
    height: 100%;
    transform: translateY(7px) scale(.96);
    opacity: 0;
    visibility: hidden;
    transition:
      opacity .18s ease,
      transform .2s ease,
      visibility 0s linear .2s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__visual-icon.is-active {
    transform: none;
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__visual-icon svg {
    width: 1.8rem;
    height: 1.8rem;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__steps {
    position: absolute;
    top: clamp(13.75rem, 35svh, 17rem);
    right: 20px;
    bottom: 5rem;
    left: 20px;
    display: block;
    min-height: 0;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step,
  body.home-page .home-journey.is-mobile-story .home-journey__step.is-active {
    position: absolute;
    inset: 0;
    display: grid;
    width: 100%;
    max-width: 28rem;
    height: 100%;
    margin: auto;
    padding: 0;
    align-content: center;
    gap: .85rem;
    transform: translateY(14px);
    opacity: 0;
    visibility: hidden;
    filter: blur(2px);
    text-align: center;
    border: 0;
    transition:
      opacity .2s ease,
      transform .2s ease,
      filter .2s ease,
      visibility 0s linear .2s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step.is-active {
    transform: none;
    opacity: 1;
    visibility: visible;
    filter: none;
    transition-delay: 0s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step.is-entering {
    transform: translateY(14px);
    opacity: 0;
    visibility: visible;
    filter: blur(2px);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step.is-leaving {
    transform: translateY(-14px);
    opacity: .08;
    visibility: visible;
    filter: blur(2px);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step-icon {
    display: none;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step h3 {
    margin: 0 auto;
    font-size: clamp(2.1rem, 10vw, 2.8rem);
    line-height: .98;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__step p {
    max-width: 34ch;
    margin: 0 auto;
    font-size: .96rem;
    line-height: 1.6;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__counter {
    top: clamp(12.6rem, 32svh, 15.8rem);
    right: 20px;
    z-index: 5;
    display: flex;
    transition: opacity .18s ease, visibility 0s linear .18s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-dots {
    position: absolute;
    bottom: 3.25rem;
    left: 50%;
    z-index: 5;
    display: flex;
    gap: .55rem;
    transform: translateX(-50%);
    transition: opacity .18s ease, visibility 0s linear .18s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-dots span {
    display: block;
    width: 5px;
    height: 5px;
    border: 1px solid rgba(214, 165, 58, .6);
    border-radius: 50%;
    background: transparent;
    transition: transform .18s ease, background-color .18s ease, opacity .18s ease;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-dots span.is-complete {
    background: rgba(214, 165, 58, .48);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__mobile-dots span.is-active {
    transform: scale(1.55);
    background: var(--gold-light);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__progress {
    right: 20px;
    bottom: 1.45rem;
    left: 20px;
    z-index: 5;
    display: block;
    transition: opacity .18s ease, visibility 0s linear .18s;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__progress span {
    transform: scaleX(0);
  }

  body.home-page .home-journey.is-mobile-story .home-journey__node.is-complete {
    fill: rgba(214, 165, 58, .34);
    stroke: rgba(243, 200, 90, .72);
    opacity: .68;
  }

  body.home-page .home-journey.is-mobile-story .home-journey__node.is-active {
    fill: var(--gold);
    stroke: var(--gold-light);
    opacity: 1;
    filter: drop-shadow(0 0 5px rgba(243, 200, 90, .28));
  }

  body.home-page .home-journey.is-mobile-story .home-journey__node.is-pulsing,
  body.home-page .home-journey.is-mobile-story .home-journey__visual-icon.is-pulsing {
    animation: journey-mobile-pulse .22s ease-out;
  }

  body.home-page .home-journey.is-mobile-story.is-story-closing .home-journey__steps,
  body.home-page .home-journey.is-mobile-story.is-story-closing .home-journey__counter,
  body.home-page .home-journey.is-mobile-story.is-story-closing .home-journey__mobile-dots,
  body.home-page .home-journey.is-mobile-story.is-story-closing .home-journey__progress {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
}

@keyframes journey-mobile-pulse {
  0% { transform: scale(.97); }
  55% { transform: scale(1.04); }
  100% { transform: scale(1); }
}

/* =====================================================================
   Página El Doctor — hero editorial y criterio médico
   ===================================================================== */
.doctor-page .doctor-hero {
  padding-top: calc(var(--header-h) + clamp(3.5rem, 5vw, 5rem));
  padding-bottom: 0;
}

.doctor-page .doctor-hero__layout {
  gap: clamp(2.5rem, 5vw, 5.5rem);
}

.doctor-page .doctor-hero__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
  text-align: center;
}

.doctor-page .doctor-hero__title {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  column-gap: .18em;
  width: 100%;
  max-width: 12em;
  margin-top: var(--space-4);
  margin-inline: auto;
  line-height: .92;
}

.doctor-page .doctor-hero__line {
  display: inline-block;
}

.doctor-page .doctor-criterion__title > span {
  display: block;
}

.doctor-page .doctor-hero__lead {
  max-width: 37rem;
  margin-top: var(--space-5);
  margin-inline: auto;
}

.doctor-page .doctor-hero__actions {
  justify-content: center;
  margin-top: var(--space-5);
}

.doctor-page .doctor-hero__content .eyebrow,
.doctor-page .doctor-criterion__eyebrow {
  justify-content: center;
}

.doctor-page .doctor-hero__portrait {
  width: min(100%, 590px);
  margin-inline: auto;
  transform: none;
}

.doctor-page .doctor-hero__portrait .doctor-photo__img {
  object-position: 50% 100%;
}

.doctor-page .doctor-criterion {
  padding: clamp(4.5rem, 6vw, 5.5rem) 0 clamp(4.5rem, 8vw, 8.5rem);
  overflow: clip;
}

.doctor-page .doctor-criterion__grid {
  display: grid;
  grid-template-areas:
    "eyebrow"
    "title"
    "media"
    "copy";
  gap: 0;
  align-items: center;
}

.doctor-page .doctor-criterion__eyebrow {
  grid-area: eyebrow;
  text-align: center;
}

.doctor-page .doctor-criterion__title {
  grid-area: title;
  max-width: 15ch;
  margin-top: var(--space-4);
  margin-inline: auto;
  text-align: center;
}

.doctor-page .doctor-criterion__media {
  grid-area: media;
  width: min(100%, 520px);
  aspect-ratio: 4 / 5;
  margin: var(--space-6) auto 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: #000;
  box-shadow: var(--shadow-md);
}

.doctor-page .doctor-criterion__media picture,
.doctor-page .doctor-criterion__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.doctor-page .doctor-criterion__media img {
  object-fit: contain;
  object-position: center;
}

.doctor-page .doctor-criterion__copy {
  grid-area: copy;
  max-width: 42rem;
  margin-top: var(--space-5);
  margin-inline: auto;
  text-align: center;
}

.doctor-page .doctor-criterion__copy .lead,
.doctor-page .doctor-criterion__copy .text-muted {
  max-width: 39rem;
  margin-inline: auto;
}

.doctor-page .doctor-criterion__copy .text-muted {
  margin-top: var(--space-4);
}

@media (min-width: 760px) {
  .doctor-page .doctor-hero__layout {
    grid-template-columns: minmax(0, .94fr) minmax(390px, 1.06fr);
  }

  .doctor-page .doctor-criterion__grid {
    grid-template-columns: minmax(340px, .92fr) minmax(0, 1.08fr);
    grid-template-areas:
      "media eyebrow"
      "media title"
      "media copy";
    column-gap: clamp(2.5rem, 7vw, 7rem);
  }

  .doctor-page .doctor-criterion__media {
    margin: 0;
    align-self: stretch;
  }

  .doctor-page .doctor-criterion__title {
    align-self: end;
    max-width: none;
    font-size: clamp(2.8rem, 4vw, 4.5rem);
  }

  .doctor-page .doctor-criterion__title > span {
    white-space: nowrap;
  }

  .doctor-page .doctor-criterion__copy {
    align-self: start;
  }
}

@media (min-width: 760px) and (max-width: 1023px) {
  .doctor-page .doctor-criterion__title > span {
    white-space: normal;
  }
}

@media (min-width: 1100px) {
  .doctor-page .doctor-hero__title {
    font-size: clamp(4.25rem, 5.1vw, 6.35rem);
  }

  .doctor-page .doctor-hero__portrait {
    justify-self: end;
  }

  .doctor-page .doctor-criterion__title {
    font-size: clamp(3.35rem, 4vw, 4.8rem);
  }
}

@media (max-width: 759px) {
  .doctor-page .doctor-hero {
    padding-top: calc(var(--header-h) + clamp(3rem, 12vw, 3.5rem));
    padding-bottom: 0;
  }

  .doctor-page .doctor-hero__layout {
    gap: var(--space-6);
  }

  .doctor-page .doctor-hero__content,
  .doctor-page .doctor-criterion__eyebrow,
  .doctor-page .doctor-criterion__title,
  .doctor-page .doctor-criterion__copy {
    text-align: center;
  }

  .doctor-page .doctor-hero__content .eyebrow,
  .doctor-page .doctor-criterion__eyebrow {
    justify-content: center;
  }

  .doctor-page .doctor-hero__title,
  .doctor-page .doctor-hero__lead,
  .doctor-page .doctor-criterion__title,
  .doctor-page .doctor-criterion__copy,
  .doctor-page .doctor-criterion__copy .lead,
  .doctor-page .doctor-criterion__copy .text-muted {
    margin-inline: auto;
  }

  .doctor-page .doctor-hero__title {
    max-width: none;
    font-size: clamp(3.75rem, 17vw, 5.6rem);
  }

  .doctor-page .doctor-hero__lead {
    max-width: 34rem;
  }

  .doctor-page .doctor-hero__portrait {
    order: 2;
    width: min(100%, 470px);
    aspect-ratio: 4 / 5;
  }

  .doctor-page .doctor-hero__portrait .doctor-photo__img {
    object-position: 50% 100%;
  }

  .doctor-page .doctor-criterion {
    padding: clamp(3rem, 12vw, 3.5rem) 0 var(--space-8);
  }

  .doctor-page .doctor-criterion__title {
    max-width: 100%;
    font-size: clamp(2rem, 10vw, 2.75rem);
  }

  .doctor-page .doctor-criterion__title > span {
    white-space: nowrap;
  }

  .doctor-page .doctor-criterion__media {
    margin-top: var(--space-5);
  }

  .doctor-page .doctor-criterion__copy {
    margin-top: var(--space-5);
  }

  body.doctor-page .float-stack {
    right: max(.75rem, env(safe-area-inset-right));
    bottom: calc(.75rem + env(safe-area-inset-bottom));
  }

  body.doctor-page .float-wa {
    width: 48px;
    height: 48px;
    min-width: 48px;
    min-height: 48px;
  }

  body.doctor-page .float-wa svg {
    width: 24px;
    height: 24px;
  }

  body.doctor-page .float-cta.is-doctor-formation-suppressed,
  body.doctor-page .float-wa.is-doctor-formation-suppressed,
  body.doctor-page .float-cta.is-doctor-specialties-suppressed,
  body.doctor-page .float-wa.is-doctor-specialties-suppressed {
    opacity: 0;
    pointer-events: none;
    transform: translateY(14px) scale(.96);
  }
}

@media (max-width: 430px) {
  .doctor-page .doctor-criterion__title {
    font-size: 2.35rem;
  }
}

@media (max-width: 390px) {
  .doctor-page .doctor-hero__title {
    font-size: 3.65rem;
  }

  .doctor-page .doctor-criterion__title {
    font-size: 2.25rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .doctor-page [data-doctor-hero],
  .doctor-page [data-doctor-criterion] {
    scroll-behavior: auto;
  }
}

/* =====================================================================
   Página El Doctor — formación editorial y pilares de la práctica
   Componentes aislados: no alteran las timelines clínicas ni el Home.
   ===================================================================== */
body.doctor-page {
  --doctor-section-edge: clamp(2.25rem, 2.8vw, 3rem);
  --doctor-formation-to-pillars: clamp(4.5rem, 5.5vw, 6rem);
}

.doctor-page .doctor-criterion {
  padding-bottom: var(--doctor-section-edge);
}

.doctor-page .doctor-formation {
  padding-top: var(--doctor-section-edge);
  padding-bottom: 0;
  overflow: clip;
}

.doctor-page .doctor-formation__head {
  max-width: 68rem;
  margin-bottom: clamp(2.25rem, 3.25vw, 3rem);
}

.doctor-page .doctor-formation__head .eyebrow,
.doctor-page .doctor-formation__head .lead {
  margin-inline: auto;
}

.doctor-page .doctor-formation__head h2 {
  max-width: 18ch;
  margin-inline: auto;
  font-size: clamp(3.25rem, 4.8vw, 4.9rem);
  line-height: .96;
}

.doctor-page .doctor-formation__head .lead {
  max-width: 49rem;
}

.doctor-page .doctor-timeline-wrap {
  --doctor-timeline-progress: 0;
  --doctor-timeline-rail-top: 1.32rem;
  --doctor-timeline-rail-height: calc(100% - 2.64rem);
  position: relative;
  max-width: 70rem;
  margin-inline: auto;
}

.doctor-page .doctor-timeline {
  position: relative;
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.doctor-page .doctor-timeline__rail {
  position: absolute;
  z-index: 0;
  top: var(--doctor-timeline-rail-top);
  left: 1.55rem;
  width: 1px;
  height: var(--doctor-timeline-rail-height);
  overflow: visible;
  background: rgba(247,241,231,.14);
  transform-origin: 50% 0;
}

.doctor-page .doctor-timeline__progress {
  position: absolute;
  inset: 0;
  display: block;
  background: linear-gradient(180deg, var(--gold-light), var(--gold) 52%, #9B6B24);
  box-shadow: 0 0 12px rgba(214,165,58,.18);
  transform: scaleY(var(--doctor-timeline-progress));
  transform-origin: 50% 0;
  will-change: transform;
}

.doctor-page .doctor-timeline__step {
  position: relative;
  z-index: 1;
  min-width: 0;
  padding: 0 0 clamp(3rem, 4.25vw, 4.25rem) clamp(5.25rem, 8vw, 7rem);
  opacity: 1;
  transition: opacity 320ms var(--ease), filter 320ms var(--ease);
}

.doctor-page .doctor-timeline__step:last-child {
  padding-bottom: 0;
}

.doctor-page .doctor-timeline__step::after {
  content: '';
  position: absolute;
  top: 1.55rem;
  left: 3.1rem;
  width: clamp(1.15rem, 2.2vw, 2.65rem);
  height: 1px;
  background: rgba(214,165,58,.2);
  transition: background-color 320ms var(--ease), width 320ms var(--ease);
}

.doctor-page .doctor-timeline__node {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  width: 3.1rem;
  height: 3.1rem;
  place-items: center;
  border: 1px solid rgba(214,165,58,.46);
  border-radius: 50%;
  background: var(--black);
  box-shadow: 0 0 0 7px var(--black);
  color: var(--gold);
  font: 700 .72rem/1 var(--font-body);
  letter-spacing: .08em;
  transition: color 320ms var(--ease), border-color 320ms var(--ease), background 320ms var(--ease), box-shadow 320ms var(--ease);
}

.doctor-page .doctor-timeline__content {
  width: min(100%, 60rem);
  min-width: 0;
  padding-top: .15rem;
}

.doctor-page .doctor-timeline__content h3 {
  max-width: none;
  margin: 0 0 1.15rem;
  font-size: clamp(1.8rem, 3vw, 2.55rem);
  line-height: 1.04;
  text-wrap: balance;
}

.doctor-page .doctor-timeline__body > p {
  max-width: 58ch;
  margin: 0;
  color: var(--warm-gray);
  font-size: clamp(.96rem, 2.5vw, 1.05rem);
  line-height: 1.68;
}

.doctor-page .doctor-rethus {
  min-width: 0;
  margin-top: 1.5rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--panel);
}

.doctor-page .doctor-rethus h4 {
  margin: 0;
  color: var(--cream);
  font-family: var(--font-head);
  font-size: clamp(1.3rem, 1.8vw, 1.65rem);
  line-height: 1.2;
}

.doctor-page .doctor-rethus > p {
  margin: .85rem 0 0;
  color: var(--warm-gray);
  font-size: .95rem;
  line-height: 1.65;
}

.doctor-page .doctor-rethus__data {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  margin: 1.25rem 0;
}

.doctor-page .doctor-rethus__data > div {
  min-width: 0;
}

.doctor-page .doctor-rethus dt {
  margin-bottom: .3rem;
  color: var(--gold-light);
  font: 600 .75rem/1.5 var(--font-body);
}

.doctor-page .doctor-rethus dd {
  margin: 0;
  color: var(--cream);
  font: 500 .95rem/1.55 var(--font-body);
}

.doctor-page .doctor-rethus .btn {
  min-height: 44px;
  max-width: 100%;
  white-space: normal;
}

@media (max-width: 767px) {
  .doctor-page .doctor-rethus .btn {
    width: 100%;
    padding-inline: .75rem;
  }
}

@media (min-width: 768px) {
  .doctor-page .doctor-rethus__data {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1280px) {
  .doctor-page .doctor-rethus__data {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.doctor-page .doctor-credentials {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
}

.doctor-page .doctor-credential {
  display: grid;
  grid-template-columns: 3.5rem minmax(0, 1fr);
  gap: 1rem;
  min-width: 0;
  padding: 1.15rem 1.2rem;
  border: 1px solid rgba(214,165,58,.16);
  border-radius: 1rem;
  background: rgba(247,241,231,.018);
}

.doctor-page .doctor-credential time,
.doctor-page .doctor-training-list time,
.doctor-page .doctor-training-list__year {
  color: var(--gold);
  font: 700 .73rem/1.45 var(--font-body);
  letter-spacing: .08em;
}

.doctor-page .doctor-credential h4 {
  margin: 0 0 .3rem;
  font-size: clamp(1.15rem, 1.5vw, 1.4rem);
  line-height: 1.15;
}

.doctor-page .doctor-credential p {
  margin: 0;
  color: var(--warm-gray);
  font-size: .88rem;
  line-height: 1.55;
}

.doctor-page .doctor-training-overview {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  margin-bottom: .9rem;
}

.doctor-page .doctor-training-overview > span {
  color: var(--gold);
  font: 700 .72rem/1.4 var(--font-body);
  letter-spacing: .1em;
}

.doctor-page .doctor-training-overview p {
  margin: 0;
  color: var(--warm-gray);
  font-size: .95rem;
}

.doctor-page .doctor-training-details {
  border: 1px solid rgba(214,165,58,.17);
  border-radius: 1rem;
  background: rgba(247,241,231,.016);
  overflow: clip;
}

.doctor-page .doctor-training-details summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 1rem;
  gap: 1rem;
  align-items: center;
  min-height: 3.5rem;
  padding: .9rem 1.1rem;
  color: var(--cream);
  cursor: pointer;
  font: 650 .78rem/1.35 var(--font-body);
  letter-spacing: .08em;
  list-style: none;
  text-transform: uppercase;
  transition: color 260ms var(--ease), background-color 260ms var(--ease);
}

.doctor-page .doctor-training-details summary::-webkit-details-marker {
  display: none;
}

.doctor-page .doctor-training-details summary:focus-visible {
  outline: 2px solid rgba(243,200,90,.75);
  outline-offset: -3px;
}

.doctor-page .doctor-training-details summary::after {
  content: '+';
  color: var(--gold);
  font: 500 1.25rem/1 var(--font-body);
  text-align: center;
  transition: transform 260ms var(--ease);
}

.doctor-page .doctor-training-details[open] summary::after {
  transform: rotate(45deg);
}

.doctor-page .doctor-training-details[open] summary {
  background: rgba(214,165,58,.045);
  color: var(--gold-light);
}

.doctor-page .doctor-training-details__count {
  color: var(--muted);
  font-size: .66rem;
  letter-spacing: .06em;
}

.doctor-page .doctor-training-list {
  margin: 0;
  padding: 0 1.1rem .45rem;
  list-style: none;
}

.doctor-page .doctor-training-list li {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: .85rem 0;
  border-top: 1px solid rgba(247,241,231,.09);
  color: var(--warm-gray);
  font-size: .88rem;
  line-height: 1.55;
}

.doctor-page .doctor-practice-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .8rem;
  margin: 0;
}

.doctor-page .doctor-practice-details > div {
  padding: 1.1rem 1.2rem;
  border-top: 1px solid rgba(214,165,58,.28);
  background: linear-gradient(90deg, rgba(214,165,58,.035), transparent 65%);
}

.doctor-page .doctor-practice-details dt {
  margin-bottom: .45rem;
  color: var(--gold);
  font: 700 .7rem/1.35 var(--font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.doctor-page .doctor-practice-details dd {
  margin: 0;
  color: var(--warm-gray);
  font-size: .94rem;
  line-height: 1.58;
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-future {
  opacity: .6;
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-complete {
  opacity: .76;
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-active {
  opacity: 1;
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-future .doctor-timeline__node {
  border-color: rgba(214,165,58,.34);
  color: rgba(243,200,90,.72);
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-complete .doctor-timeline__node {
  border-color: rgba(243,200,90,.62);
  background: rgba(214,165,58,.10);
  color: var(--gold-light);
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-complete::after,
.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-active::after {
  background: rgba(243,200,90,.5);
}

.doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-active .doctor-timeline__node {
  border-color: var(--gold-light);
  background: var(--gold);
  box-shadow: 0 0 0 7px var(--black), 0 0 24px rgba(214,165,58,.18);
  color: var(--black);
}

.doctor-page .doctor-formation.is-awaiting-entry [data-doctor-formation-intro],
.doctor-page .doctor-formation.is-awaiting-entry .doctor-timeline__rail {
  opacity: 0;
}

.doctor-page .doctor-formation.is-awaiting-entry [data-doctor-formation-intro] {
  transform: translateY(18px);
}

.doctor-page .doctor-timeline-wrap.is-complete .doctor-timeline__progress {
  box-shadow: 0 0 10px rgba(214,165,58,.14);
}

.doctor-page .doctor-pillars {
  padding-top: var(--doctor-formation-to-pillars);
  overflow: clip;
}

.doctor-page .doctor-pillars__head {
  max-width: 74rem;
  margin-bottom: clamp(2.75rem, 4vw, 3.75rem);
}

.doctor-page .doctor-pillars__head .eyebrow {
  justify-content: center;
}

.doctor-page .doctor-pillars__head h2 {
  max-width: 24ch;
  margin-inline: auto;
  font-size: clamp(3.5rem, 4.6vw, 4.9rem);
  line-height: .98;
}

.doctor-page .doctor-pillars__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.doctor-page .doctor-pillar-card {
  position: relative;
  display: grid;
  grid-template-rows: 4rem minmax(3.1rem, auto) 1fr;
  min-width: 0;
  gap: 1rem;
  padding: clamp(1.75rem, 3vw, 2.6rem) clamp(1.35rem, 2.4vw, 2.25rem);
  overflow: hidden;
  border: 1px solid rgba(214,165,58,.18);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(247,241,231,.02), rgba(247,241,231,0) 44%), var(--panel);
  box-shadow: 0 14px 38px rgba(0,0,0,.22);
  text-align: center;
  transition: transform 300ms var(--ease), opacity 280ms var(--ease), border-color 300ms var(--ease), background 300ms var(--ease), box-shadow 300ms var(--ease);
}

.doctor-page .doctor-pillar-card__icon {
  display: grid;
  width: 4rem;
  height: 4rem;
  place-items: center;
  justify-self: center;
  border: 1px solid rgba(214,165,58,.25);
  border-radius: 1rem;
  background: rgba(214,165,58,.07);
  color: var(--gold);
  transition: color 300ms var(--ease), border-color 300ms var(--ease), background 300ms var(--ease), box-shadow 300ms var(--ease);
}

.doctor-page .doctor-pillar-card__icon svg {
  width: 2rem;
  height: 2rem;
}

.doctor-page .doctor-pillar-card__title {
  display: flex;
  width: 100%;
  max-width: 14ch;
  min-height: 3.1rem;
  align-items: center;
  justify-content: center;
  justify-self: center;
  margin: 0;
  font-size: clamp(1.3rem, 1.75vw, 1.65rem);
  line-height: 1.08;
  text-wrap: balance;
}

.doctor-page .doctor-pillar-card__text {
  width: 100%;
  max-width: 29ch;
  justify-self: center;
  margin: 0;
  color: var(--warm-gray);
  font-size: clamp(.92rem, 1.1vw, 1rem);
  line-height: 1.68;
  text-wrap: pretty;
}

.doctor-page .doctor-pillars__mobile-nav {
  display: none;
}

@media (min-width: 768px) {
  .doctor-page .doctor-pillars__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .doctor-page .doctor-pillar-card {
    min-height: 20rem;
  }
}

@media (min-width: 1025px) {
  .doctor-page .doctor-pillars__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 1.5vw, 1.4rem);
  }

  .doctor-page .doctor-pillar-card {
    min-height: clamp(21.25rem, 25vw, 25.625rem);
    padding: 2rem clamp(1.15rem, 1.5vw, 1.5rem);
  }

  .doctor-page .doctor-pillar-card__text {
    font-size: clamp(.92rem, 1vw, .96rem);
    line-height: 1.58;
  }
}

@media (hover: hover) and (pointer: fine) {
  .doctor-page .doctor-pillar-card:hover {
    transform: translateY(-5px);
    border-color: rgba(243,200,90,.48);
    background: linear-gradient(180deg, rgba(214,165,58,.04), rgba(247,241,231,.012) 48%), var(--panel-2);
    box-shadow: 0 24px 58px rgba(0,0,0,.31), 0 14px 40px rgba(214,165,58,.08);
  }

  .doctor-page .doctor-pillar-card:hover .doctor-pillar-card__icon {
    border-color: rgba(243,200,90,.42);
    background: rgba(214,165,58,.10);
    color: var(--gold-light);
    box-shadow: 0 0 24px rgba(214,165,58,.13);
  }
}

@media (max-width: 767px) {
  body.doctor-page {
    --doctor-section-edge: clamp(1.5rem, 7vw, 2rem);
    --doctor-formation-to-pillars: clamp(3rem, 13vw, 4rem);
  }

  .doctor-page .doctor-formation__head {
    margin-bottom: clamp(1.75rem, 8vw, 2.25rem);
  }

  .doctor-page .doctor-formation__head h2 {
    max-width: 12ch;
    font-size: clamp(2.45rem, 11vw, 3rem);
    line-height: .98;
  }

  .doctor-page .doctor-pillars__head h2 {
    width: 100%;
    max-width: 100%;
    font-size: clamp(2.4rem, 10.6vw, 2.95rem);
    line-height: .98;
  }

  .doctor-page .doctor-formation__head .lead {
    max-width: 23rem;
    font-size: .98rem;
    line-height: 1.6;
  }

  .doctor-page .doctor-timeline-wrap {
    --doctor-timeline-rail-top: 1.35rem;
    --doctor-timeline-rail-height: calc(100% - 2.7rem);
  }

  .doctor-page .doctor-timeline__rail {
    left: 1.3rem;
  }

  .doctor-page .doctor-timeline__step {
    padding: 0 .15rem clamp(2.6rem, 11vw, 3.35rem) 4rem;
  }

  .doctor-page .doctor-timeline__step::after {
    top: 1.3rem;
    left: 2.6rem;
    width: 1rem;
  }

  .doctor-page .doctor-timeline__node {
    width: 2.6rem;
    height: 2.6rem;
    box-shadow: 0 0 0 5px var(--black);
    font-size: .64rem;
  }

  .doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-active .doctor-timeline__node {
    box-shadow: 0 0 0 5px var(--black), 0 0 18px rgba(214,165,58,.16);
  }

  .doctor-page .doctor-timeline__content h3 {
    max-width: 18ch;
    margin-bottom: .9rem;
    font-size: clamp(1.55rem, 7.5vw, 1.9rem);
    line-height: 1.05;
  }

  .doctor-page .doctor-credentials,
  .doctor-page .doctor-practice-details {
    grid-template-columns: 1fr;
  }

  .doctor-page .doctor-credential {
    grid-template-columns: 3.1rem minmax(0, 1fr);
    gap: .75rem;
    padding: 1rem;
  }

  .doctor-page .doctor-credential h4 {
    font-size: 1.12rem;
  }

  .doctor-page .doctor-training-overview {
    display: grid;
    gap: .3rem;
  }

  .doctor-page .doctor-training-details summary {
    grid-template-columns: minmax(0, 1fr) 1rem;
    gap: .75rem;
    padding: .85rem .9rem;
    font-size: .7rem;
  }

  .doctor-page .doctor-training-details__count {
    display: none;
  }

  .doctor-page .doctor-training-list {
    padding-inline: .9rem;
  }

  .doctor-page .doctor-training-list li {
    grid-template-columns: 4.6rem minmax(0, 1fr);
    gap: .7rem;
    padding: .75rem 0;
    font-size: .82rem;
    line-height: 1.5;
  }

  .doctor-page .doctor-practice-details > div {
    padding: .95rem 1rem;
  }

  .doctor-page .doctor-practice-details dd {
    font-size: .88rem;
  }

  .doctor-page .doctor-pillars__head {
    margin-bottom: 2.25rem;
  }

  .doctor-page .doctor-pillars__grid {
    display: flex;
    width: 100%;
    margin: 0;
    padding: .25rem calc((100% - 74vw) / 2) 1rem;
    gap: 1rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: calc((100% - 74vw) / 2);
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .doctor-page .doctor-pillars__grid::-webkit-scrollbar {
    display: none;
  }

  .doctor-page .doctor-pillar-card {
    flex: 0 0 74vw;
    min-height: 21rem;
    padding: 1.8rem 1rem 2rem;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  .doctor-page .doctor-pillars.is-carousel-ready .doctor-pillar-card {
    opacity: .68;
    transform: scale(.95);
  }

  .doctor-page .doctor-pillars.is-carousel-ready .doctor-pillar-card.is-active {
    opacity: 1;
    transform: scale(1);
    border-color: rgba(243,200,90,.4);
  }

  .doctor-page .doctor-pillars__mobile-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .35rem;
    padding-inline: calc((100% - 74vw) / 2);
  }

  .doctor-page .doctor-pillars__swipe {
    color: var(--warm-gray);
    font: 650 .68rem/1.2 var(--font-body);
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .doctor-page .doctor-pillars__dots {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
  }

  .doctor-page .doctor-pillars__dots span {
    display: block;
    width: .38rem;
    height: .38rem;
    border-radius: 50%;
    background: rgba(247,241,231,.22);
    transition: width 220ms ease, border-radius 220ms ease, background-color 220ms ease;
  }

  .doctor-page .doctor-pillars__dots span.is-active {
    width: 1rem;
    border-radius: 999px;
    background: var(--gold);
  }
}

@media (max-width: 390px) {
  .doctor-page .doctor-timeline__step {
    padding-left: 4rem;
  }

  .doctor-page .doctor-timeline__content h3 {
    font-size: 1.5rem;
  }

  .doctor-page .doctor-pillar-card__title {
    font-size: 1.22rem;
  }

  .doctor-page .doctor-pillar-card__text {
    font-size: .9rem;
    line-height: 1.58;
  }
}

@media (prefers-reduced-motion: reduce) {
  .doctor-page .doctor-formation.is-enhanced .doctor-timeline__step,
  .doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-future,
  .doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-complete,
  .doctor-page .doctor-formation.is-enhanced .doctor-timeline__step.is-active,
  .doctor-page .doctor-pillars.is-carousel-ready .doctor-pillar-card,
  .doctor-page .doctor-pillars.is-carousel-ready .doctor-pillar-card.is-active {
    opacity: 1;
    transform: none;
    filter: none;
    transition: none;
  }

  .doctor-page .doctor-formation.is-awaiting-entry [data-doctor-formation-intro],
  .doctor-page .doctor-formation.is-awaiting-entry .doctor-timeline__rail {
    opacity: 1;
    transform: none;
  }

  .doctor-page .doctor-timeline__progress,
  .doctor-page .doctor-timeline__node,
  .doctor-page .doctor-pillar-card,
  .doctor-page .doctor-pillar-card__icon,
  .doctor-page .doctor-pillars__dots span {
    transition: none;
  }

  .doctor-page .doctor-formation.is-static .doctor-timeline__progress {
    transform: scaleY(1);
  }

  .doctor-page .doctor-formation.is-static .doctor-timeline__step.is-active .doctor-timeline__node {
    box-shadow: 0 0 0 7px var(--black);
  }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .doctor-page .doctor-formation.is-static .doctor-timeline__step.is-active .doctor-timeline__node {
    box-shadow: 0 0 0 5px var(--black);
  }
}

/* =====================================================================
   Página El Doctor — Especialidades editoriales con fotografía
   Componente aislado: no modifica las cards globales ni el Home.
   ===================================================================== */
body.doctor-page {
  --doctor-pillars-specialties-edge: clamp(3rem, 4vw, 4rem);
}

.doctor-page .doctor-pillars {
  padding-bottom: var(--doctor-pillars-specialties-edge);
}

.doctor-page .doctor-specialties {
  padding-top: var(--doctor-pillars-specialties-edge);
  overflow: clip;
}

.doctor-page .doctor-specialties__head {
  max-width: 72rem;
  margin-bottom: clamp(2.25rem, 3.25vw, 3rem);
}

.doctor-page .doctor-specialties__head .eyebrow {
  justify-content: center;
}

.doctor-page .doctor-specialties__head h2 {
  max-width: 16ch;
  margin-inline: auto;
  font-size: clamp(3.45rem, 5vw, 5rem);
  line-height: .98;
}

.doctor-page .doctor-specialties__carousel,
.doctor-page .doctor-specialties__track {
  min-width: 0;
}

.doctor-page .doctor-specialties__track {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

.doctor-page .doctor-specialties__track:focus-visible {
  outline: 1px solid rgba(243,200,90,.72);
  outline-offset: .35rem;
}

.doctor-page .doctor-specialty-card {
  --doctor-specialty-entry-y: 0px;
  --doctor-specialty-scale: 1;
  position: relative;
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(214,165,58,.19);
  border-radius: var(--radius-lg);
  background: linear-gradient(180deg, rgba(247,241,231,.018), rgba(247,241,231,0) 48%), var(--panel);
  box-shadow: 0 16px 42px rgba(0,0,0,.22);
  opacity: 1;
  transform: translateY(var(--doctor-specialty-entry-y)) scale(var(--doctor-specialty-scale));
  transform-origin: 50% 50%;
  transition: transform 300ms var(--ease), opacity 280ms var(--ease), border-color 300ms var(--ease), background 300ms var(--ease), box-shadow 300ms var(--ease);
}

.doctor-page .doctor-specialty-card__media {
  position: relative;
  aspect-ratio: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: #17130f;
}

.doctor-page .doctor-specialty-card__media::after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 18%;
  background: linear-gradient(180deg, transparent, rgba(5,5,5,.16));
  pointer-events: none;
}

.doctor-page .doctor-specialty-card__media picture,
.doctor-page .doctor-specialty-card__media img {
  display: block;
  width: 100%;
  height: 100%;
}

.doctor-page .doctor-specialty-card__media img {
  object-fit: cover;
  object-position: center;
  transition: transform 300ms var(--ease);
}

.doctor-page .doctor-specialty-card__body {
  display: grid;
  grid-template-rows: auto minmax(2.65rem, auto) 1fr auto;
  gap: .9rem;
  min-height: 15.5rem;
  justify-items: center;
  padding: clamp(1.75rem, 2.25vw, 2rem);
  text-align: center;
}

.doctor-page .doctor-specialty-card__pill {
  display: inline-flex;
  min-height: 1.9rem;
  align-items: center;
  justify-content: center;
  padding: .38rem .95rem;
  border: 1px solid rgba(214,165,58,.24);
  border-radius: var(--radius-pill);
  background: rgba(214,165,58,.08);
  color: var(--gold);
  font: 650 .76rem/1 var(--font-body);
  letter-spacing: .04em;
}

.doctor-page .doctor-specialty-card__title {
  display: flex;
  min-height: 2.65rem;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: var(--cream);
  font-size: clamp(1.8rem, 2.4vw, 2.2rem);
  line-height: 1.05;
  text-wrap: balance;
}

.doctor-page .doctor-specialty-card__text {
  width: 100%;
  max-width: 32ch;
  margin: 0;
  color: var(--warm-gray);
  font-size: clamp(.93rem, 1.2vw, 1rem);
  line-height: 1.65;
  text-wrap: pretty;
}

.doctor-page .doctor-specialty-card__cta {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  padding: .55rem .25rem;
  border-bottom: 1px solid rgba(214,165,58,.28);
  color: var(--gold);
  font: 650 .92rem/1.2 var(--font-body);
  transition: color 300ms var(--ease), border-color 300ms var(--ease);
}

.doctor-page .doctor-specialty-card__cta:focus-visible {
  outline: 2px solid rgba(243,200,90,.82);
  outline-offset: .3rem;
  border-radius: .2rem;
}

.doctor-page .doctor-specialty-card__arrow {
  display: inline-block;
  transition: transform 300ms var(--ease);
}

.doctor-page .doctor-specialty-card:focus-within {
  border-color: rgba(243,200,90,.5);
  box-shadow: 0 22px 54px rgba(0,0,0,.28), 0 12px 34px rgba(214,165,58,.065);
}

.doctor-page .doctor-specialties__mobile-nav {
  display: none;
}

/* La ocultación de entrada solo existe después de inicializar correctamente
   el enhancement. Sin JavaScript, todo permanece visible. */
.doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro],
.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card {
  opacity: 0;
}

.doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro],
.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card {
  transform: translateY(16px);
}

.doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro],
.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card,
.doctor-page .doctor-specialties.is-entered [data-doctor-specialties-intro],
.doctor-page .doctor-specialties.is-entered .doctor-specialty-card {
  transition-duration: 620ms;
  transition-timing-function: var(--ease-out);
}

.doctor-page .doctor-specialties.is-entered [data-doctor-specialties-intro],
.doctor-page .doctor-specialties.is-entered .doctor-specialty-card {
  opacity: 1;
  transform: translateY(0) scale(var(--doctor-specialty-scale));
}

.doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro]:nth-child(1),
.doctor-page .doctor-specialties.is-entered [data-doctor-specialties-intro]:nth-child(1) {
  transition-delay: 0ms;
}

.doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro]:nth-child(2),
.doctor-page .doctor-specialties.is-entered [data-doctor-specialties-intro]:nth-child(2) {
  transition-delay: 80ms;
}

.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card:nth-child(1),
.doctor-page .doctor-specialties.is-entered .doctor-specialty-card:nth-child(1) {
  transition-delay: 160ms;
}

.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card:nth-child(2),
.doctor-page .doctor-specialties.is-entered .doctor-specialty-card:nth-child(2) {
  transition-delay: 250ms;
}

.doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card:nth-child(3),
.doctor-page .doctor-specialties.is-entered .doctor-specialty-card:nth-child(3) {
  transition-delay: 340ms;
}

@media (min-width: 768px) and (max-width: 1024px) {
  body.doctor-page {
    --doctor-pillars-specialties-edge: clamp(2.5rem, 5vw, 3.25rem);
  }

  .doctor-page .doctor-specialties__track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
  }

  .doctor-page .doctor-specialty-card:nth-child(3) {
    grid-column: 1 / -1;
    width: calc((100% - 1.25rem) / 2);
    justify-self: center;
  }
}

@media (min-width: 1025px) {
  .doctor-page .doctor-specialties__track {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
  }
}

@media (hover: hover) and (pointer: fine) and (min-width: 1025px) {
  .doctor-page .doctor-specialty-card:hover {
    transform: translateY(-5px);
    border-color: rgba(243,200,90,.52);
    background: linear-gradient(180deg, rgba(214,165,58,.035), rgba(247,241,231,.01) 50%), var(--panel-2);
    box-shadow: 0 25px 58px rgba(0,0,0,.31), 0 14px 38px rgba(214,165,58,.075);
  }

  .doctor-page .doctor-specialty-card:hover .doctor-specialty-card__media img {
    transform: scale(1.02);
  }

  .doctor-page .doctor-specialty-card:hover .doctor-specialty-card__cta {
    color: var(--gold-light);
    border-color: rgba(243,200,90,.58);
  }

  .doctor-page .doctor-specialty-card:hover .doctor-specialty-card__arrow {
    transform: translateX(4px);
  }
}

@media (max-width: 767px) {
  body.doctor-page {
    --doctor-pillars-specialties-edge: var(--space-6);
  }

  .doctor-page .doctor-specialties__head {
    margin-bottom: 2rem;
  }

  .doctor-page .doctor-specialties__head h2 {
    max-width: 100%;
    font-size: clamp(2.65rem, 12vw, 3.25rem);
  }

  .doctor-page .doctor-specialties__carousel {
    width: 100vw;
    margin-left: calc(50% - 50vw);
  }

  .doctor-page .doctor-specialties__track {
    display: flex;
    width: 100%;
    margin: 0;
    padding: .25rem calc((100vw - 78vw) / 2) 1rem;
    gap: 1rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: calc((100vw - 78vw) / 2);
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }

  .doctor-page .doctor-specialties__track::-webkit-scrollbar {
    display: none;
  }

  .doctor-page .doctor-specialty-card {
    flex: 0 0 78vw;
    scroll-snap-align: center;
    scroll-snap-stop: always;
  }

  .doctor-page .doctor-specialty-card__body {
    min-height: 16.25rem;
    padding: 1.5rem 1.35rem 1.65rem;
  }

  .doctor-page .doctor-specialty-card__title {
    font-size: clamp(1.75rem, 8vw, 2rem);
  }

  .doctor-page .doctor-specialty-card__text {
    font-size: .93rem;
    line-height: 1.62;
  }

  .doctor-page .doctor-specialties.is-carousel-ready .doctor-specialty-card {
    --doctor-specialty-scale: .96;
    opacity: .82;
  }

  .doctor-page .doctor-specialties.is-carousel-ready .doctor-specialty-card.is-active {
    --doctor-specialty-scale: 1;
    opacity: 1;
    border-color: rgba(243,200,90,.52);
  }

  .doctor-page .doctor-specialties.is-awaiting-entry.is-carousel-ready .doctor-specialty-card {
    opacity: 0;
  }

  .doctor-page .doctor-specialties.is-entered.is-carousel-ready .doctor-specialty-card:not(.is-active) {
    opacity: .82;
  }

  .doctor-page .doctor-specialties__mobile-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: .15rem;
    padding-inline: calc((100vw - 78vw) / 2);
  }

  .doctor-page .doctor-specialties__swipe {
    color: var(--warm-gray);
    font: 650 .68rem/1.2 var(--font-body);
    text-transform: uppercase;
    letter-spacing: .08em;
  }

  .doctor-page .doctor-specialties__dots {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
  }

  .doctor-page .doctor-specialties__dots span {
    display: block;
    width: .4rem;
    height: .4rem;
    border-radius: 50%;
    background: rgba(247,241,231,.24);
    transition: width 220ms ease, border-radius 220ms ease, background-color 220ms ease;
  }

  .doctor-page .doctor-specialties__dots span.is-active {
    width: 1.05rem;
    border-radius: 999px;
    background: var(--gold);
  }
}

@media (max-width: 390px) {
  .doctor-page .doctor-specialty-card__body {
    min-height: 16.75rem;
    padding-inline: 1.15rem;
  }

  .doctor-page .doctor-specialties__swipe {
    max-width: 14rem;
    font-size: .64rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .doctor-page .doctor-specialties.is-awaiting-entry [data-doctor-specialties-intro],
  .doctor-page .doctor-specialties.is-awaiting-entry .doctor-specialty-card,
  .doctor-page .doctor-specialties.is-entered [data-doctor-specialties-intro],
  .doctor-page .doctor-specialties.is-entered .doctor-specialty-card,
  .doctor-page .doctor-specialties.is-carousel-ready .doctor-specialty-card,
  .doctor-page .doctor-specialties.is-carousel-ready .doctor-specialty-card.is-active {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .doctor-page .doctor-specialty-card,
  .doctor-page .doctor-specialty-card__media img,
  .doctor-page .doctor-specialty-card__cta,
  .doctor-page .doctor-specialty-card__arrow,
  .doctor-page .doctor-specialties__dots span {
    transition: none;
  }
}


/* =====================================================================
   PÁGINAS LEGALES — lectura editorial y spacing ownership
   El hero no aporta padding inferior: el documento es el único dueño de
   esa transición. El documento también posee el espacio previo al footer.
   ===================================================================== */
.legal-page {
  --legal-measure: 860px;
  --legal-transition: clamp(3rem, 6vw, 5rem);
  background: var(--ink);
}

.legal-main {
  min-width: 0;
}

.legal-hero {
  padding-block: calc(var(--header-h) + clamp(3rem, 7vw, 6.5rem)) 0;
  text-align: center;
}

.legal-hero__inner {
  max-width: 1040px;
}

.legal-hero h1 {
  max-width: 18ch;
  margin: 0 auto clamp(1.25rem, 2.4vw, 1.75rem);
  font-size: clamp(2.75rem, 6.2vw, 5.6rem);
  line-height: .98;
  overflow-wrap: anywhere;
}

.legal-hero__lead {
  max-width: 62ch;
  margin: 0 auto 1rem;
  color: var(--muted);
  font-size: clamp(1.05rem, 1.35vw, 1.28rem);
  line-height: 1.75;
}

.legal-updated {
  margin: 0;
  color: rgba(189,181,168,.7);
  font-size: .78rem;
  letter-spacing: .05em;
}

.legal-document {
  padding-block: var(--legal-transition) clamp(4rem, 8vw, 7rem);
}

.legal-document__inner {
  max-width: calc(var(--legal-measure) + (var(--gutter) * 2));
}

.legal-toc {
  padding-block: clamp(1.5rem, 3vw, 2.15rem);
  border-block: 1px solid var(--line);
}

.legal-toc__label {
  margin: 0 0 1rem;
  color: var(--gold);
  font-size: var(--fs-eyebrow);
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
}

.legal-toc ol {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem 2rem;
  list-style: decimal-leading-zero;
  padding-left: 2.15rem;
}

.legal-toc li {
  color: rgba(214,165,58,.72);
  padding-left: .15rem;
}

.legal-toc a {
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.5;
  transition: color var(--t-fast) var(--ease);
}

.legal-toc a:hover {
  color: var(--gold-2);
}

.legal-document__content {
  margin-top: 0;
}

.legal-copy-section {
  position: relative;
  scroll-margin-top: calc(var(--header-h) + 1.5rem);
  padding-top: clamp(3rem, 6vw, 5.25rem);
}

.legal-copy-section + .legal-copy-section {
  margin-top: clamp(3rem, 6vw, 5.25rem);
  border-top: 1px solid var(--line-2);
}

.legal-section-number {
  margin: 0 0 .65rem;
  color: var(--gold);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.legal-copy-section h2 {
  max-width: 20ch;
  margin-bottom: clamp(1.2rem, 2vw, 1.6rem);
  font-size: clamp(2rem, 4vw, 3.15rem);
  line-height: 1.02;
}

.legal-copy-section h3 {
  margin: clamp(2rem, 4vw, 3rem) 0 .85rem;
  font-family: var(--font-body);
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: .02em;
}

.legal-copy-section p,
.legal-copy-section li,
.legal-copy-section dd {
  color: var(--muted);
  font-size: clamp(.98rem, 1.15vw, 1.06rem);
  line-height: 1.85;
}

.legal-copy-section p {
  margin: 0;
}

.legal-copy-section p + p,
.legal-copy-section ul + p,
.legal-copy-section dl + p,
.legal-copy-section .legal-price-list + p {
  margin-top: 1.15rem;
}

.legal-copy-section strong {
  color: var(--cream);
  font-weight: 650;
}

.legal-copy-section a {
  color: var(--gold-2);
  text-decoration: underline;
  text-decoration-color: rgba(214,165,58,.45);
  text-underline-offset: .2em;
}

.legal-copy-section ul {
  display: grid;
  gap: .65rem;
  margin-top: 1rem;
  padding-left: 1.25rem;
  list-style: disc;
}

.legal-copy-section li::marker {
  color: var(--gold);
}

.legal-contact-list {
  display: grid;
  gap: 0;
  margin: 1.5rem 0 0;
  border-block: 1px solid var(--line-2);
}

.legal-contact-list > div {
  display: grid;
  grid-template-columns: minmax(8rem, .42fr) minmax(0, 1fr);
  gap: 1rem;
  padding-block: 1rem;
}

.legal-contact-list > div + div {
  border-top: 1px solid var(--line-2);
}

.legal-contact-list dt {
  color: var(--cream);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.legal-contact-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.legal-price-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 1.5rem;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--line);
}

.legal-price-list > div {
  display: grid;
  gap: .4rem;
  padding: clamp(1.35rem, 3vw, 2rem);
  background: var(--panel);
}

.legal-price-list span {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.legal-price-list strong {
  color: var(--gold-2);
  font-family: var(--font-head);
  font-size: clamp(1.8rem, 4vw, 2.6rem);
  font-weight: 600;
  line-height: 1;
}

.legal-redirect-page .legal-main {
  min-height: 70vh;
}

.legal-redirect-page .legal-hero__inner {
  display: grid;
  justify-items: center;
}

.legal-redirect-page .legal-hero {
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

@media (max-width: 759px) {
  .legal-page {
    --legal-transition: 3rem;
  }

  .legal-hero {
    padding-top: calc(var(--header-h) + 3rem);
  }

  .legal-hero h1 {
    max-width: 11ch;
    font-size: clamp(2.65rem, 13vw, 4rem);
  }

  .legal-hero__lead {
    max-width: 34ch;
    font-size: 1rem;
  }

  .legal-toc ol {
    grid-template-columns: 1fr;
    gap: .65rem;
  }

  .legal-copy-section {
    padding-top: 2.75rem;
  }

  .legal-copy-section + .legal-copy-section {
    margin-top: 2.75rem;
  }

  .legal-contact-list > div {
    grid-template-columns: 1fr;
    gap: .35rem;
  }

  .legal-price-list {
    grid-template-columns: 1fr;
  }

  .legal-page .site-footer {
    --footer-legal-space: 2.75rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .legal-page *,
  .legal-page *::before,
  .legal-page *::after {
    scroll-behavior: auto;
  }
}

/* =====================================================================
   RESULTADOS — archivo visual editorial autorizado (FASE 2A)
   El HTML y el grid normal son el fallback. JS solo revela filtros y
   activa el cálculo masonry después de validar las piezas declaradas.
   ===================================================================== */

body.results-page {
  --results-gutter: clamp(1.25rem, 4vw, 3rem);
  --results-card-gap: 10px;
  --results-hero-filters-gap: clamp(2.5rem, 4vw, 4rem);
  --results-feed-disclaimer-gap: clamp(2rem, 3vw, 2.75rem);
  --results-disclaimer-cta-gap: clamp(2.75rem, 5vw, 4.75rem);
  background: #050505;
}

.results-page .results-main {
  padding-bottom: 0;
  overflow: clip;
}

.results-page .results-hero {
  position: relative;
  isolation: isolate;
  padding: calc(var(--header-h) + clamp(3.75rem, 7vw, 6.25rem)) 0 var(--results-hero-filters-gap);
  overflow: hidden;
  background: #050505;
}

.results-page .results-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(62% 78% at 50% 9%, rgba(214,165,58,.065), transparent 66%),
    linear-gradient(180deg, rgba(214,165,58,.018), transparent 48%);
}

.results-page .results-hero__inner {
  width: min(100%, 66rem);
  margin-inline: auto;
  text-align: center;
}

.results-page .results-hero .eyebrow {
  justify-content: center;
}

.results-page .results-hero h1 {
  max-width: 16ch;
  margin: 0 auto;
  color: var(--cream);
  font-size: clamp(4.4rem, 7vw, 7rem);
  line-height: .88;
  letter-spacing: -.038em;
  text-wrap: balance;
}

.results-page .results-hero h1 span {
  display: inline;
}

.results-page .results-hero h1 span:last-child {
  color: var(--gold-light);
}

.results-page .results-hero .lead {
  max-width: 69ch;
  margin: clamp(1.35rem, 2.5vw, 2rem) auto 0;
  color: rgba(247,241,231,.76);
  font-size: clamp(1rem, 1.25vw, 1.18rem);
  line-height: 1.65;
}

.results-page .results-archive {
  padding: 0 0 var(--results-disclaimer-cta-gap);
  background: #050505;
}

.results-page .results-archive__container {
  max-width: 106rem;
  padding-inline: var(--results-gutter);
}

.results-page .results-filters[hidden] {
  display: none !important;
}

.results-page .results-filters {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .65rem;
  margin-bottom: clamp(1.15rem, 2vw, 1.65rem);
}

.results-page .results-filter {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .72rem 1.45rem;
  border: 1px solid rgba(214,165,58,.25);
  border-radius: var(--radius-pill);
  background: rgba(247,241,231,.018);
  color: rgba(247,241,231,.72);
  font-size: .88rem;
  font-weight: 650;
  line-height: 1;
  transition:
    color 220ms var(--ease),
    border-color 220ms var(--ease),
    background 220ms var(--ease),
    transform 220ms var(--ease);
}

.results-page .results-filter:hover {
  color: var(--gold-light);
  border-color: rgba(243,200,90,.55);
  background: rgba(214,165,58,.055);
}

.results-page .results-filter:focus-visible,
.results-page .results-card__link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.results-page .results-filter.is-active {
  border-color: rgba(243,200,90,.76);
  background: rgba(214,165,58,.13);
  color: var(--gold-light);
}

.results-page .results-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--results-card-gap);
  align-items: start;
  transition: opacity 150ms var(--ease), transform 150ms var(--ease);
}

.results-page .results-grid.is-filtering {
  opacity: .45;
  transform: translateY(3px);
}

.results-page .results-archive.is-masonry-active .results-grid {
  position: relative;
  align-items: initial;
}

.results-page .results-card {
  min-width: 0;
  align-self: start;
}

.results-page .results-card[hidden] {
  display: none !important;
}

.results-page .results-card--clinical-wide {
  grid-column: span 2;
}

.results-page .results-card__link {
  display: block;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(247,241,231,.07);
  border-radius: 8px;
  background: #080809;
  color: var(--cream);
  box-shadow: none;
  transition:
    transform 260ms var(--ease),
    border-color 260ms var(--ease),
    box-shadow 260ms var(--ease);
}

.results-page .results-card__figure {
  margin: 0;
}

.results-page .results-card__media {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: #080809;
}

.results-page .results-card__media picture,
.results-page .results-card__media img {
  display: block;
  width: 100%;
}

.results-page .results-card__media img {
  height: auto;
  object-fit: contain;
  transition: transform 320ms var(--ease);
}

.results-page .results-card__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  border: 1px solid rgba(247,241,231,.025);
}

.results-page .results-card__video-badge {
  position: absolute;
  top: .7rem;
  left: .7rem;
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  min-height: 2rem;
  padding: .38rem .68rem;
  border: 1px solid rgba(243,200,90,.5);
  border-radius: var(--radius-pill);
  background: rgba(5,5,5,.78);
  color: var(--gold-light);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  backdrop-filter: blur(7px);
}

.results-page .results-card__video-badge svg {
  width: .9rem;
  height: .9rem;
}

.results-page .results-card__hover-label {
  position: absolute;
  right: .75rem;
  bottom: .75rem;
  padding: .35rem .62rem;
  border: 1px solid rgba(247,241,231,.14);
  border-radius: var(--radius-pill);
  background: rgba(5,5,5,.76);
  color: rgba(247,241,231,.88);
  font-size: .67rem;
  font-weight: 650;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 220ms var(--ease), transform 220ms var(--ease);
  backdrop-filter: blur(7px);
}

.results-page .results-card__caption {
  display: grid;
  gap: .1rem;
  padding: .58rem .7rem .64rem;
  border-top: 1px solid rgba(247,241,231,.045);
  background: rgba(247,241,231,.012);
}

.results-page .results-card__category,
.results-page .results-card__type {
  overflow: hidden;
  text-overflow: ellipsis;
}

.results-page .results-card__category {
  color: rgba(247,241,231,.93);
  font-size: clamp(.74rem, .82vw, .82rem);
  font-weight: 650;
  line-height: 1.35;
}

.results-page .results-card__type {
  color: rgba(189,181,168,.72);
  font-size: clamp(.64rem, .7vw, .7rem);
  line-height: 1.35;
}

@media (hover: hover) and (pointer: fine) {
  .results-page .results-card__link:hover {
    color: var(--cream);
    transform: translateY(-3px);
    border-color: rgba(243,200,90,.4);
    box-shadow: 0 10px 24px rgba(0,0,0,.14);
  }

  .results-page .results-card__link:hover .results-card__media img {
    transform: scale(1.016);
  }

  .results-page .results-card__link:hover .results-card__hover-label {
    opacity: 1;
    transform: translateY(0);
  }
}

.results-page .results-disclaimer {
  max-width: 78ch;
  margin: var(--results-feed-disclaimer-gap) auto 0;
  padding-top: clamp(1.25rem, 2vw, 1.75rem);
  border-top: 1px solid rgba(247,241,231,.08);
  color: rgba(189,181,168,.72);
  font-size: clamp(.78rem, .9vw, .88rem);
  line-height: 1.7;
  text-align: center;
}

/* El disclaimer posee la transición hacia el CTA; el footer conserva la
   responsabilidad principal de la frontera final. */
.results-page .results-closing-section {
  padding: 0 0 clamp(1.25rem, 2.5vw, 2rem);
  background: #050505;
}

.results-page .results-closing-section .closing.home-closing {
  padding-block: clamp(2.5rem, 4.5vw, 4rem);
}

.results-page .results-archive.is-results-enhanced .results-filters {
  animation: results-block-in 420ms var(--ease) both;
}

.results-page .results-archive.is-results-enhanced .results-grid {
  animation: results-block-in 480ms 80ms var(--ease) both;
}

@keyframes results-block-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: no-preference) {
  .results-page .results-hero__inner > * {
    animation: results-block-in 560ms var(--ease) both;
  }

  .results-page .results-hero__inner h1 {
    animation-delay: 70ms;
  }

  .results-page .results-hero__inner .lead {
    animation-delay: 140ms;
  }

}

@media (min-width: 1280px) {
  .results-page .results-hero > .container {
    max-width: 106rem;
    padding-inline: var(--results-gutter);
  }

  .results-page .results-hero__inner {
    width: 100%;
  }

  .results-page .results-hero h1 {
    max-width: none;
  }
}

@media (min-width: 1600px) {
  .results-page .results-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 900px) and (max-width: 1199px) {
  body.results-page {
    --results-card-gap: 8px;
  }

  .results-page .results-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (min-width: 768px) and (max-width: 899px) {
  body.results-page {
    --results-card-gap: 8px;
  }

  .results-page .results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.results-page {
    --results-gutter: 1.25rem;
    --results-card-gap: 7px;
    --results-hero-filters-gap: 2.5rem;
    --results-feed-disclaimer-gap: 2rem;
    --results-disclaimer-cta-gap: 2.75rem;
  }

  .results-page .results-hero {
    padding-top: calc(var(--header-h) + clamp(2.9rem, 12vw, 4rem));
  }

  .results-page .results-hero .eyebrow {
    margin-bottom: .9rem;
    font-size: .67rem;
  }

  .results-page .results-hero h1 {
    max-width: 16ch;
    font-size: clamp(2.5rem, 10.7vw, 3.2rem);
    line-height: .91;
    letter-spacing: -.035em;
  }

  .results-page .results-hero .lead {
    max-width: 35ch;
    margin-top: 1.25rem;
    font-size: .96rem;
    line-height: 1.6;
  }

  .results-page .results-filters {
    justify-content: flex-start;
    flex-wrap: nowrap;
    width: 100%;
    gap: .55rem;
    padding: 0 0 .45rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: .05rem;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .results-page .results-filters::-webkit-scrollbar {
    display: none;
  }

  .results-page .results-filter {
    min-height: 48px;
    padding-inline: 1.18rem;
    scroll-snap-align: start;
  }

  .results-page .results-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .results-page .results-card__link {
    border-radius: 6px;
  }

  .results-page .results-card__video-badge {
    top: .45rem;
    left: .45rem;
    min-height: 1.75rem;
    padding: .3rem .48rem;
    font-size: .58rem;
  }

  .results-page .results-card__caption {
    gap: .08rem;
    padding: .45rem .5rem .5rem;
  }

  .results-page .results-card__category {
    font-size: .67rem;
    white-space: normal;
  }

  .results-page .results-card__type {
    font-size: .59rem;
    white-space: normal;
  }

  .results-page .results-card__hover-label {
    display: none;
  }

  .results-page .results-disclaimer {
    font-size: .76rem;
    text-align: left;
  }

  .results-page .results-closing-section {
    padding-bottom: 1rem;
  }

  .results-page .results-closing-section .closing.home-closing {
    padding: 2.25rem 1rem;
  }
}

@media (max-width: 374px) {
  body.results-page {
    --results-gutter: 1rem;
    --results-card-gap: 6px;
  }

  .results-page .results-hero h1 {
    font-size: clamp(2.35rem, 10.5vw, 2.8rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .results-page .results-hero__inner > *,
  .results-page .results-archive.is-results-enhanced .results-filters,
  .results-page .results-archive.is-results-enhanced .results-grid,
  .results-page .results-grid,
  .results-page .results-card__link,
  .results-page .results-card__media img,
  .results-page .results-card__hover-label {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* =====================================================================
   RESULTADOS — extensión mixed-media del lightbox compartido (FASE 2B)
   El alcance visual se activa solo en el modo results-archive. Home y
   Doctor conservan íntegramente el tratamiento histórico del visor.
   ===================================================================== */

.lightbox .lightbox__video[hidden],
.lightbox .lightbox__media-error[hidden] {
  display: none !important;
}

.lightbox--results-archive {
  padding:
    max(4.75rem, calc(env(safe-area-inset-top) + 3.75rem))
    max(.9rem, env(safe-area-inset-right))
    max(1rem, env(safe-area-inset-bottom))
    max(.9rem, env(safe-area-inset-left));
  overscroll-behavior: contain;
  background: rgba(2,2,3,.975);
}

.lightbox--results-archive [hidden] {
  display: none !important;
}

.lightbox--results-archive .lightbox__content {
  width: min(1240px, calc(100vw - 7.5rem));
  max-height: calc(100dvh - 6.5rem);
  gap: clamp(.7rem, 1.5vh, 1rem);
}

.lightbox--results-archive .lightbox__picture,
.lightbox--results-archive .lightbox__video {
  min-width: 0;
  min-height: 0;
}

.lightbox--results-archive .lightbox__picture {
  width: 100%;
  height: 100%;
}

.lightbox--results-archive .lightbox__content .lightbox__img,
.lightbox--results-archive .lightbox__video {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 12rem);
  object-fit: contain;
  border: 1px solid rgba(247,241,231,.11);
  border-radius: 8px;
  background: #050505;
  box-shadow: 0 30px 90px rgba(0,0,0,.5);
}

.lightbox--results-archive .lightbox__video {
  justify-self: center;
  aspect-ratio: 9 / 16;
}

.lightbox--results-archive .lightbox__meta {
  width: min(800px, 100%);
  gap: .25rem;
}

.lightbox--results-archive .lightbox__counter {
  color: rgba(243,200,90,.88);
}

.lightbox--results-archive .lightbox__meta .lightbox__caption {
  color: rgba(247,241,231,.94);
  transform: none;
}

.lightbox--results-archive .lightbox__note {
  color: rgba(189,181,168,.76);
}

.lightbox--results-archive .lightbox__media-error {
  display: grid;
  width: min(32rem, calc(100vw - 3rem));
  min-height: 13rem;
  padding: 2rem;
  place-content: center;
  justify-items: center;
  gap: 1rem;
  border: 1px solid rgba(247,241,231,.12);
  border-radius: 10px;
  background: rgba(16,16,18,.92);
  text-align: center;
}

.lightbox--results-archive .lightbox__media-error p {
  margin: 0;
  color: rgba(247,241,231,.86);
  line-height: 1.55;
}

.lightbox--results-archive .lightbox__direct-link {
  display: inline-flex;
  min-height: 44px;
  padding: .7rem 1rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(243,200,90,.42);
  border-radius: var(--radius-pill);
  color: var(--gold-light);
  font-size: .82rem;
  font-weight: 650;
}

.lightbox--results-archive .lightbox__direct-link:hover,
.lightbox--results-archive .lightbox__direct-link:focus-visible {
  border-color: rgba(243,200,90,.75);
  background: rgba(214,165,58,.1);
}

.lightbox--results-archive .lightbox__direct-link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .lightbox--results-archive {
    padding:
      max(4.35rem, calc(env(safe-area-inset-top) + 3.6rem))
      max(.6rem, env(safe-area-inset-right))
      max(.75rem, env(safe-area-inset-bottom))
      max(.6rem, env(safe-area-inset-left));
  }

  .lightbox--results-archive .lightbox__content {
    width: 100%;
    max-height: calc(100dvh - 5.4rem);
    gap: .65rem;
  }

  .lightbox--results-archive .lightbox__content .lightbox__img,
  .lightbox--results-archive .lightbox__video {
    max-width: calc(100vw - 1.2rem);
    max-height: calc(100dvh - 11.75rem);
    border-radius: 6px;
  }

  .lightbox--results-archive .lightbox__meta {
    padding-inline: 2.9rem;
  }

  .lightbox--results-archive .lightbox__meta .lightbox__caption {
    font-size: .78rem;
  }

  .lightbox--results-archive .lightbox__nav {
    top: 50%;
    bottom: auto;
    width: 44px;
    height: 44px;
    transform: translateY(-50%);
  }

  .lightbox--results-archive .lightbox__nav--prev {
    left: .55rem;
  }

  .lightbox--results-archive .lightbox__nav--next {
    right: .55rem;
  }

  .lightbox--results-archive .lightbox__close {
    top: max(.75rem, env(safe-area-inset-top));
    right: max(.75rem, env(safe-area-inset-right));
    width: 46px;
    height: 46px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lightbox--results-archive,
  .lightbox--results-archive .lightbox__img,
  .lightbox--results-archive .lightbox__video,
  .lightbox--results-archive .lightbox__close,
  .lightbox--results-archive .lightbox__nav {
    animation: none !important;
    transition: none !important;
    transform: none !important;
  }

  .lightbox--results-archive .lightbox__nav {
    transform: translateY(-50%) !important;
  }
}

/* =====================================================================
   TURISMO MÉDICO — FASE 2C
   Direction pass integral. Estas reglas permanecen encapsuladas en la
   landing y preservan estructura, datos, media y comportamiento global.
   ===================================================================== */

.tourism-landing {
  --tourism-section-gap: clamp(4.75rem, 7vw, 7rem);
  --tourism-opener-width: 66rem;
  --tourism-copy: rgba(247, 241, 231, .76);
  --tourism-copy-strong: rgba(247, 241, 231, .9);
}

.tourism-landing .tourism-hero {
  min-height: min(850px, 92svh);
  padding-top: calc(var(--header-h) + clamp(2rem, 3vw, 3.25rem));
  padding-bottom: clamp(2.25rem, 3.5vw, 3.5rem);
  background:
    radial-gradient(circle at 76% 34%, rgba(214, 165, 58, .12), transparent 29%),
    radial-gradient(circle at 20% 8%, rgba(247, 241, 231, .035), transparent 26%),
    #050505;
}

.tourism-landing .tourism-hero::before {
  opacity: .3;
  background:
    linear-gradient(90deg, transparent 49.94%, rgba(247, 241, 231, .035) 50%, transparent 50.06%),
    linear-gradient(180deg, transparent 78%, rgba(5, 5, 5, .92));
}

.tourism-landing .tourism-hero__grid {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: clamp(.75rem, 1.6vw, 1.5rem);
  min-height: clamp(570px, 68vh, 700px);
}

.tourism-landing .tourism-hero__content {
  z-index: 2;
  grid-column: 1 / 9;
  grid-row: 1;
  max-width: 850px;
  padding: clamp(1.5rem, 3vw, 3rem) 0;
  text-align: center;
}

.tourism-landing .tourism-hero__content .eyebrow {
  margin-bottom: clamp(.8rem, 1.2vw, 1.1rem);
}

.tourism-landing .tourism-hero h1 {
  max-width: 15ch;
  margin-inline: auto;
  font-size: clamp(4.4rem, 7vw, 7.35rem);
  line-height: .86;
  letter-spacing: -.045em;
}

.tourism-landing .tourism-hero__support {
  margin: clamp(1rem, 1.6vw, 1.4rem) 0 0;
  color: var(--gold-light);
  font-family: var(--font-head);
  font-size: clamp(1.7rem, 2.45vw, 2.55rem);
  font-weight: 500;
  line-height: 1.05;
}

.tourism-landing .tourism-hero .lead {
  max-width: 51ch;
  margin: clamp(1rem, 1.45vw, 1.35rem) auto 0;
  color: var(--tourism-copy);
  font-size: clamp(1rem, 1.12vw, 1.13rem);
  line-height: 1.65;
}

.tourism-landing .tourism-hero__actions {
  justify-content: center;
  margin-top: clamp(1.4rem, 2vw, 1.9rem);
}

.tourism-landing .tourism-hero__portrait {
  z-index: 1;
  grid-column: 8 / -1;
  grid-row: 1;
  width: min(100%, 520px);
  margin-left: clamp(-4rem, -3vw, -1rem);
  border: 0;
  border-radius: 0;
  background: transparent;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 16%, #000 100%);
}

.tourism-landing .tourism-hero__portrait::after {
  background:
    linear-gradient(180deg, transparent 50%, rgba(5, 5, 5, .92) 100%),
    linear-gradient(90deg, rgba(5, 5, 5, .68), transparent 30%);
}

.tourism-landing .tourism-hero__portrait figcaption {
  left: clamp(2.4rem, 5vw, 4.5rem);
}

.tourism-landing .tourism-trust__list li {
  min-height: 70px;
  justify-content: center;
  color: rgba(247, 241, 231, .86);
  font-size: clamp(.76rem, .82vw, .84rem);
  letter-spacing: .015em;
}

.tourism-landing .tourism-case-first__intro,
.tourism-landing .tourism-results__intro,
.tourism-landing .tourism-route__intro,
.tourism-landing .tourism-bogota__intro,
.tourism-landing .tourism-stay__intro,
.tourism-landing .tourism-qualification__intro,
.tourism-landing .tourism-faq__intro {
  display: block;
  width: min(100%, var(--tourism-opener-width));
  max-width: var(--tourism-opener-width);
  margin-inline: auto;
  text-align: center;
}

.tourism-landing .tourism-case-first__intro h2,
.tourism-landing .tourism-results__intro h2,
.tourism-landing .tourism-options__head h2,
.tourism-landing .tourism-route__intro h2,
.tourism-landing .tourism-bogota__intro h2,
.tourism-landing .tourism-stay__intro h2,
.tourism-landing .tourism-qualification__intro h2,
.tourism-landing .tourism-faq__intro h2 {
  max-width: 18ch;
  margin: 0 auto;
  font-size: clamp(2.9rem, 4.55vw, 5rem);
  line-height: .94;
  letter-spacing: -.025em;
}

.tourism-landing .tourism-case-first__statement,
.tourism-landing .tourism-results__intro > div:last-child,
.tourism-landing .tourism-route__intro .lead,
.tourism-landing .tourism-bogota__copy,
.tourism-landing .tourism-stay__intro .lead,
.tourism-landing .tourism-faq__intro .lead {
  max-width: 58ch;
  margin: 1.35rem auto 0;
}

.tourism-landing .tourism-case-first__statement p,
.tourism-landing .tourism-results__intro .lead,
.tourism-landing .tourism-route__intro .lead,
.tourism-landing .tourism-bogota__copy .lead,
.tourism-landing .tourism-stay__intro .lead,
.tourism-landing .tourism-faq__intro .lead {
  color: var(--tourism-copy);
  font-size: clamp(.98rem, 1.15vw, 1.1rem);
  line-height: 1.68;
}

.tourism-landing .tourism-case-first__statement p {
  margin-bottom: 1.1rem;
}

.tourism-landing .tourism-principles {
  margin-top: clamp(2.7rem, 4.5vw, 4.1rem);
}

.tourism-landing .tourism-principles li {
  padding-top: clamp(1.65rem, 2.5vw, 2.3rem);
  padding-bottom: clamp(1.65rem, 2.5vw, 2.3rem);
}

.tourism-landing .tourism-principles li > span {
  margin-bottom: 1.05rem;
}

.tourism-landing .tourism-principles p,
.tourism-landing .tourism-option p,
.tourism-landing .tourism-route__timeline p,
.tourism-landing .tourism-stay__types p,
.tourism-landing .tourism-faq__list details > p {
  color: var(--tourism-copy);
}

.tourism-landing .tourism-split {
  gap: clamp(2.75rem, 6vw, 6.5rem);
}

.tourism-landing .tourism-virtual__media {
  aspect-ratio: 3 / 2;
  border-color: rgba(214, 165, 58, .2);
}

.tourism-landing .tourism-split__content h2 {
  max-width: 15ch;
  margin-bottom: 1rem;
  font-size: clamp(2.8rem, 4.3vw, 4.7rem);
  line-height: .94;
  letter-spacing: -.025em;
}

.tourism-landing .tourism-split__content .lead {
  color: var(--tourism-copy);
  line-height: 1.66;
}

.tourism-landing .tourism-virtual__facts {
  margin-top: clamp(1.35rem, 2.4vw, 2rem);
}

.tourism-landing .tourism-virtual .tourism-split__content h2 {
  font-size: clamp(2.8rem, 3.6vw, 4.15rem);
}

.tourism-landing .tourism-authority {
  background:
    radial-gradient(circle at 78% 42%, rgba(214, 165, 58, .065), transparent 28%),
    var(--ink);
}

.tourism-landing .tourism-authority__content {
  max-width: 700px;
}

.tourism-landing .tourism-authority__media {
  border-color: rgba(214, 165, 58, .2);
}

.tourism-landing .tourism-credentials {
  margin-top: 1.65rem;
}

.tourism-landing .tourism-credentials h3 {
  font-size: 1rem;
}

.tourism-landing .tourism-credentials p {
  color: var(--tourism-copy);
  font-size: .88rem;
}

.tourism-landing .tourism-options__head {
  max-width: var(--tourism-opener-width);
}

.tourism-landing .tourism-options__head .lead {
  max-width: 55ch;
  color: var(--tourism-copy);
}

.tourism-landing .tourism-options__grid {
  margin-top: clamp(2.6rem, 4.5vw, 4rem);
}

.tourism-landing .tourism-option {
  padding-top: clamp(1.8rem, 2.8vw, 2.5rem);
  padding-bottom: clamp(1.8rem, 2.8vw, 2.5rem);
}

.tourism-landing .tourism-option__icon {
  width: clamp(96px, 9vw, 124px);
}

.tourism-landing .tourism-results.section {
  padding-bottom: clamp(.5rem, 1.4vw, 1.25rem);
}

.tourism-landing .tourism-results__intro .btn {
  margin-top: .2rem;
}

.tourism-landing .tourism-results__intro h2 {
  max-width: 22ch;
}

.tourism-landing .tourism-results__grid {
  grid-template-columns: 1.22fr 1fr 1fr;
  gap: clamp(.7rem, 1vw, .95rem);
  margin-top: clamp(2.8rem, 4.8vw, 4.4rem);
}

.tourism-landing .tourism-result picture {
  border-color: rgba(214, 165, 58, .12);
}

.tourism-landing .tourism-result > span {
  padding-top: .68rem;
}

.tourism-landing .tourism-result small {
  color: rgba(247, 241, 231, .58);
}

.tourism-landing .tourism-route {
  background:
    linear-gradient(180deg, rgba(214, 165, 58, .04), transparent 28%),
    var(--bg);
}

.tourism-landing .tourism-route__intro .eyebrow {
  grid-column: auto;
  margin-bottom: .8rem;
}

.tourism-landing .tourism-route__timeline {
  margin-top: clamp(2.8rem, 5vw, 4.7rem);
}

.tourism-landing .tourism-route__timeline::before {
  top: 1.3rem;
}

.tourism-landing .tourism-route__timeline li {
  padding-top: 3.5rem;
}

.tourism-landing .tourism-route__timeline li::before,
.tourism-landing .tourism-route__timeline li + li::before {
  top: .9rem;
}

.tourism-landing .tourism-route__number {
  color: rgba(243, 200, 90, .9);
  font-family: var(--font-head);
  font-size: 1.05rem;
  letter-spacing: .08em;
}

.tourism-landing .tourism-route__timeline h3 {
  font-size: clamp(1.24rem, 1.55vw, 1.5rem);
}













.tourism-landing .tourism-bogota__copy {
  margin-top: 1.3rem;
}

.tourism-landing .tourism-bogota__locations {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  max-width: 62rem;
  margin: 1.6rem auto 0;
  padding-top: 1.25rem;
}

.tourism-landing .tourism-bogota__locations div {
  display: block;
  padding-inline: 1.5rem;
}

.tourism-landing .tourism-bogota__locations div + div {
  border-left: 1px solid rgba(255, 255, 255, .09);
}

.tourism-landing .tourism-bogota__locations dt {
  margin-bottom: .4rem;
}

.tourism-landing .tourism-bogota__locations dd {
  color: var(--tourism-copy);
}

.tourism-landing .tourism-bogota__gallery {
  grid-template-columns: minmax(0, 1.9fr) minmax(18rem, .72fr);
  margin-top: clamp(2.5rem, 4.8vw, 4.4rem);
}

.tourism-landing .tourism-bogota__image--hero {
  min-height: clamp(31rem, 54vw, 45rem);
}

.tourism-landing .tourism-stay__intro {
  max-width: var(--tourism-opener-width);
}

.tourism-landing .tourism-stay__types {
  max-width: 74rem;
  margin-inline: auto;
  margin-top: clamp(2.6rem, 4.6vw, 4.15rem);
}

.tourism-landing .tourism-stay__types article {
  text-align: center;
}

.tourism-landing .tourism-stay__type-icon {
  margin-inline: auto;
}

.tourism-landing .tourism-stay__types p {
  margin-inline: auto;
}

.tourism-landing .tourism-hotel {
  margin-top: clamp(3.75rem, 6vw, 5.75rem);
}

.tourism-landing .tourism-hotel__heading {
  display: block;
  max-width: 62rem;
  margin: 0 auto 1.65rem;
  text-align: center;
}

.tourism-landing .tourism-hotel__heading .eyebrow {
  max-width: none;
}

.tourism-landing .tourism-hotel__heading h3 {
  max-width: 17ch;
  margin: 0 auto;
  font-size: clamp(2.25rem, 3.6vw, 3.9rem);
}

.tourism-landing .tourism-hotel__heading > p {
  max-width: 54ch;
  margin: 1rem auto 0;
  color: var(--tourism-copy);
}

.tourism-landing .tourism-hotel__featured {
  aspect-ratio: 16 / 6.8;
}

.tourism-landing .tourism-hotel__track figure {
  flex-basis: min(36rem, 44vw);
}

.tourism-landing .tourism-qualification__paths {
  margin-top: clamp(2.6rem, 4.5vw, 4rem);
}

.tourism-landing .tourism-qualification__paths article {
  background: linear-gradient(135deg, rgba(247, 241, 231, .018), transparent 70%);
}

.tourism-landing .tourism-qualification__paths li {
  color: var(--tourism-copy);
}

.tourism-landing .tourism-mid-cta__inner {
  grid-template-columns: 1fr;
  max-width: 70rem;
  margin-inline: auto;
  text-align: center;
}

.tourism-landing .tourism-mid-cta__inner h2 {
  max-width: 18ch;
  margin-inline: auto;
  font-size: clamp(2.55rem, 4.2vw, 4.25rem);
}

.tourism-landing .tourism-mid-cta__inner p:not(.eyebrow) {
  color: var(--tourism-copy);
}

.tourism-landing .tourism-mid-cta__actions {
  justify-content: center;
}

.tourism-landing .tourism-faq__layout {
  display: block;
}

.tourism-landing .tourism-faq__intro {
  position: static;
}

.tourism-landing .tourism-faq__intro h2 {
  max-width: 16ch;
}

.tourism-landing .tourism-faq__list {
  max-width: 880px;
  margin: clamp(2.5rem, 4.5vw, 4rem) auto 0;
}

.tourism-landing .tourism-faq__list summary {
  font-size: clamp(1.12rem, 1.5vw, 1.36rem);
}

.tourism-landing .tourism-closing-section.section {
  padding-top: clamp(4.5rem, 6.5vw, 6.5rem);
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-option:hover {
    background: rgba(214, 165, 58, .025);
  }
}

@media (min-width: 1101px) {
  .tourism-landing .tourism-split--virtual {
    grid-template-columns: minmax(0, 1fr) minmax(520px, .92fr);
    gap: clamp(3.25rem, 4.5vw, 5.5rem);
  }
}

@media (min-width: 768px) and (max-width: 1100px) {
  .tourism-landing {
    --tourism-section-gap: clamp(4.5rem, 6.5vw, 5.75rem);
  }

  .tourism-landing .tourism-hero {
    min-height: auto;
  }

  .tourism-landing .tourism-hero__grid {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    min-height: 600px;
  }

  .tourism-landing .tourism-hero__content {
    grid-column: 1 / 9;
  }

  .tourism-landing .tourism-hero h1 {
    font-size: clamp(4rem, 7.8vw, 5.6rem);
  }

  .tourism-landing .tourism-hero__portrait {
    grid-column: 8 / -1;
    min-width: 310px;
  }

  .tourism-landing .tourism-split__content h2 {
    font-size: clamp(2.6rem, 5vw, 3.8rem);
  }

  
  .tourism-landing .tourism-faq__layout {
    display: block;
  }

  

  .tourism-landing .tourism-bogota__intro {
    display: block;
  }
}

@media (max-width: 767px) {
  .tourism-landing {
    --tourism-section-gap: clamp(4rem, 14vw, 5rem);
  }

  .tourism-landing .tourism-hero {
    min-height: auto;
    padding-top: calc(var(--header-h) + 1.2rem);
    padding-bottom: 1.5rem;
  }

  .tourism-landing .tourism-hero__grid {
    grid-template-columns: 1fr;
    gap: 1.05rem;
    min-height: 0;
  }

  .tourism-landing .tourism-hero__content,
  .tourism-landing .tourism-hero__portrait {
    grid-column: 1;
  }

  .tourism-landing .tourism-hero__content {
    grid-row: 1;
    padding: .25rem 0 0;
  }

  .tourism-landing .tourism-hero__content .eyebrow {
    margin-bottom: .62rem;
    font-size: .63rem;
  }

  .tourism-landing .tourism-hero h1 {
    max-width: 100%;
    font-size: clamp(2.75rem, 11.6vw, 3.35rem);
    line-height: .88;
  }

  .tourism-landing .tourism-hero__support {
    margin-top: .78rem;
    font-size: clamp(1.3rem, 6.4vw, 1.65rem);
  }

  .tourism-landing .tourism-hero .lead {
    max-width: 34ch;
    margin-top: .72rem;
    font-size: .88rem;
    line-height: 1.5;
  }

  .tourism-landing .tourism-hero__actions {
    gap: .55rem;
    margin-top: 1rem;
  }

  .tourism-landing .tourism-hero__actions .btn {
    min-height: 46px;
  }

  .tourism-landing .tourism-hero__portrait {
    grid-row: 2;
    width: 100vw;
    height: clamp(245px, 66vw, 295px);
    margin-right: 0;
    margin-left: calc(50% - 50vw);
    -webkit-mask-image: linear-gradient(180deg, #000 0, #000 82%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0, #000 82%, transparent 100%);
  }

  .tourism-landing .tourism-hero__portrait::after {
    background: linear-gradient(180deg, transparent 50%, rgba(5, 5, 5, .78) 100%);
  }

  .tourism-landing .tourism-hero__portrait figcaption {
    left: 1.25rem;
  }

  .tourism-landing .tourism-trust__list li {
    min-height: 60px;
    justify-content: flex-start;
    padding: .72rem .55rem;
    font-size: .68rem;
  }

  .tourism-landing .tourism-case-first__intro h2,
  .tourism-landing .tourism-results__intro h2,
  .tourism-landing .tourism-options__head h2,
  .tourism-landing .tourism-route__intro h2,
  .tourism-landing .tourism-bogota__intro h2,
  .tourism-landing .tourism-stay__intro h2,
  .tourism-landing .tourism-qualification__intro h2,
  .tourism-landing .tourism-faq__intro h2 {
    max-width: none;
    font-size: clamp(2.2rem, 9.7vw, 2.85rem);
    line-height: .97;
  }

  .tourism-landing .tourism-results__intro h2 {
    max-width: none;
  }

  .tourism-landing .tourism-case-first__statement,
  .tourism-landing .tourism-results__intro > div:last-child,
  .tourism-landing .tourism-route__intro .lead,
  .tourism-landing .tourism-bogota__copy,
  .tourism-landing .tourism-stay__intro .lead,
  .tourism-landing .tourism-faq__intro .lead {
    margin-top: 1rem;
  }

  .tourism-landing .tourism-case-first__statement p,
  .tourism-landing .tourism-results__intro .lead,
  .tourism-landing .tourism-route__intro .lead,
  .tourism-landing .tourism-bogota__copy .lead,
  .tourism-landing .tourism-stay__intro .lead,
  .tourism-landing .tourism-faq__intro .lead {
    font-size: .94rem;
    line-height: 1.58;
  }

  .tourism-landing .tourism-principles {
    margin-top: 2.15rem;
  }

  .tourism-landing .tourism-principles li,
  .tourism-landing .tourism-principles li:first-child,
  .tourism-landing .tourism-principles li:last-child {
    padding-block: 1.15rem;
  }

  .tourism-landing .tourism-split {
    gap: 1.35rem;
  }

  .tourism-landing .tourism-split__content h2 {
    max-width: none;
    font-size: clamp(2.3rem, 9.8vw, 2.95rem);
    line-height: .96;
  }

  .tourism-landing .tourism-virtual__media {
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-authority__media {
    max-height: 520px;
  }

  .tourism-landing .tourism-credentials h3 {
    font-size: .96rem;
  }

  .tourism-landing .tourism-credentials p {
    font-size: .86rem;
  }

  .tourism-landing .tourism-options__grid {
    margin-top: 2.25rem;
  }

  .tourism-landing .tourism-option,
  .tourism-landing .tourism-option:first-child,
  .tourism-landing .tourism-option:last-child {
    grid-template-columns: 92px minmax(0, 1fr);
    column-gap: 1.05rem;
    padding-block: 1.15rem;
  }

  .tourism-landing .tourism-option__icon {
    width: 92px;
  }

  .tourism-landing .tourism-option p {
    color: var(--tourism-copy);
    font-size: .87rem;
  }

  .tourism-landing .tourism-results__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .85rem .65rem;
    margin-top: 2.25rem;
  }

  .tourism-landing .tourism-result:first-child {
    grid-column: 1 / -1;
  }

  .tourism-landing .tourism-result strong {
    font-size: 1.18rem;
  }

  .tourism-landing .tourism-route__timeline {
    margin-top: 2.25rem;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li + li,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2),
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
    padding-bottom: 1.8rem;
  }

  .tourism-landing .tourism-route__timeline p {
    font-size: .94rem;
  }

  

  

  .tourism-landing .tourism-bogota__locations {
    grid-template-columns: 1fr;
    gap: .85rem;
    margin-top: 1.3rem;
  }

  .tourism-landing .tourism-bogota__locations div {
    padding: 0;
  }

  .tourism-landing .tourism-bogota__locations div + div {
    padding-top: .85rem;
    border-top: 1px solid rgba(255, 255, 255, .09);
    border-left: 0;
  }

  .tourism-landing .tourism-bogota__gallery {
    margin-top: 2rem;
  }

  .tourism-landing .tourism-bogota__image--hero {
    width: 100%;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image {
    flex-basis: min(74vw, 19rem);
  }

  .tourism-landing .tourism-stay__types {
    margin-top: 2.15rem;
  }

  .tourism-landing .tourism-stay__types article {
    text-align: left;
  }

  .tourism-landing .tourism-stay__type-icon {
    margin-inline: 0;
  }

  .tourism-landing .tourism-hotel {
    margin-top: 3rem;
  }

  .tourism-landing .tourism-hotel__heading {
    text-align: center;
  }

  .tourism-landing .tourism-hotel__heading h3 {
    max-width: none;
    font-size: clamp(2rem, 9vw, 2.65rem);
  }

  .tourism-landing .tourism-hotel__featured {
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-hotel__track figure {
    flex-basis: min(78vw, 20rem);
  }

  .tourism-landing .tourism-qualification__paths {
    margin-top: 2.15rem;
  }

  .tourism-landing .tourism-qualification__paths article,
  .tourism-landing .tourism-qualification__paths article + article {
    padding-block: 1.5rem;
  }

  .tourism-landing .tourism-qualification__paths li {
    font-size: .94rem;
  }

  .tourism-landing .tourism-mid-cta__inner {
    gap: 1.4rem;
    padding-block: 2rem;
  }

  .tourism-landing .tourism-mid-cta__inner h2 {
    max-width: none;
    font-size: clamp(2.2rem, 9.5vw, 2.8rem);
  }

  .tourism-landing .tourism-faq__list {
    margin-top: 2rem;
  }

  .tourism-landing .tourism-faq__list summary {
    min-height: 4.4rem;
    padding-block: 1.05rem;
    font-size: 1.08rem;
  }

  .tourism-landing .tourism-closing-section.section {
    padding-top: 4rem;
  }
}

@media (max-width: 389px) {
  .tourism-landing .tourism-hero h1 {
    font-size: 2.8rem;
  }

  .tourism-landing .tourism-hero__portrait {
    height: 240px;
  }

  .tourism-landing .tourism-results__grid {
    gap: .75rem .55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-hero__portrait,
  .tourism-landing .tourism-option,
  .tourism-landing .tourism-result,
  .tourism-landing .tourism-bogota__image,
  .tourism-landing .tourism-hotel__track figure {
    animation: none !important;
    transition: none !important;
  }
}

/* =====================================================================
   TURISMO MÉDICO — FASE 2C.1
   Corrección dirigida y encapsulada: Hero → Autoridad del doctor.
   ===================================================================== */

/* Hero: split editorial, fotografía quirúrgica completa y acciones propias. */
.tourism-landing .tourism-hero {
  min-height: auto;
  padding-top: calc(var(--header-h) + clamp(2.4rem, 4vw, 4.5rem));
  padding-bottom: clamp(2.5rem, 4vw, 4rem);
}

.tourism-landing .tourism-hero__grid {
  grid-template-columns: minmax(0, 1fr) minmax(380px, .72fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: clamp(4.5rem, 6vw, 6rem);
  row-gap: clamp(1.45rem, 2.2vw, 2rem);
  min-height: clamp(620px, 71vh, 760px);
}

.tourism-landing .tourism-hero__content {
  grid-column: 1;
  grid-row: 1;
  width: 100%;
  max-width: 760px;
  padding: 0;
  align-self: end;
}

.tourism-landing .tourism-hero h1 {
  max-width: 15ch;
  font-size: clamp(4.1rem, 6.4vw, 6rem);
  line-height: .88;
}

.tourism-landing .tourism-hero__support {
  margin-top: clamp(1rem, 1.7vw, 1.5rem);
  font-size: clamp(1.65rem, 2.35vw, 2.45rem);
}

.tourism-landing .tourism-hero .lead {
  max-width: 50ch;
  margin-top: clamp(.95rem, 1.5vw, 1.35rem);
}

.tourism-landing .tourism-hero__actions {
  grid-column: 1;
  grid-row: 2;
  justify-content: center;
  align-self: start;
  margin-top: 0;
}

.tourism-landing .tourism-hero__portrait {
  grid-column: 2;
  grid-row: 1 / 3;
  width: min(100%, 520px);
  aspect-ratio: 4 / 5;
  margin: 0;
  justify-self: end;
  overflow: hidden;
  border: 1px solid rgba(214, 165, 58, .18);
  -webkit-mask-image: none;
  mask-image: none;
}

.tourism-landing .tourism-hero__portrait img {
  object-fit: cover;
  object-position: 50% 50%;
}

.tourism-landing .tourism-hero__portrait::after {
  background: linear-gradient(180deg, transparent 74%, rgba(5, 5, 5, .12));
}

/* Franja de confianza: base estática, movimiento solo tras inicialización. */
.tourism-landing .tourism-trust {
  overflow: hidden;
  border-block: 1px solid rgba(214, 165, 58, .15);
  background: #070707;
}

.tourism-landing .tourism-trust:focus-visible {
  outline: 1px solid rgba(243, 200, 90, .72);
  outline-offset: -2px;
}

.tourism-landing .tourism-trust__viewport {
  overflow: hidden;
}

.tourism-landing .tourism-trust__track {
  display: block;
}

.tourism-landing .tourism-trust__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: min(100%, 1440px);
  margin: 0 auto;
  padding: 0 clamp(1.25rem, 4vw, 4rem);
  list-style: none;
}

.tourism-landing .tourism-trust__list[aria-hidden="true"] {
  display: none;
}

.tourism-landing .tourism-trust__list li {
  display: flex;
  min-height: 68px;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  padding: .8rem clamp(.8rem, 2vw, 1.5rem);
  color: rgba(247, 241, 231, .86);
  font-size: clamp(.78rem, .9vw, .9rem);
  white-space: nowrap;
}

.tourism-landing .tourism-trust__list li + li {
  border-left: 1px solid rgba(247, 241, 231, .08);
}

.tourism-landing .tourism-trust__list li > span {
  color: var(--gold-light);
  font-family: var(--font-head);
  font-size: 1.15em;
  line-height: 1;
}

.tourism-landing .tourism-trust.is-enhanced .tourism-trust__track {
  display: flex;
  width: max-content;
  animation: tourismTrustMarquee 34s linear infinite;
  will-change: transform;
}

.tourism-landing .tourism-trust.is-enhanced .tourism-trust__list,
.tourism-landing .tourism-trust.is-enhanced .tourism-trust__list[aria-hidden="true"] {
  display: flex;
  width: max-content;
  max-width: none;
  flex: none;
  gap: clamp(2.8rem, 6vw, 6.5rem);
  padding-inline: clamp(2rem, 4vw, 4rem);
}

.tourism-landing .tourism-trust.is-enhanced .tourism-trust__list li {
  flex: none;
  min-height: 64px;
  padding: .8rem 0;
  border: 0;
}

.tourism-landing .tourism-trust.is-enhanced:hover .tourism-trust__track,
.tourism-landing .tourism-trust.is-enhanced:focus-within .tourism-trust__track {
  animation-play-state: paused;
}

@keyframes tourismTrustMarquee {
  to { transform: translate3d(-50%, 0, 0); }
}

/* Fronteras del bloque: cada sección siguiente posee su entrada. */
.tourism-landing .tourism-case-first.section {
  padding-top: clamp(4.5rem, 7vw, 6.75rem);
  padding-bottom: 0;
}

.tourism-landing .tourism-virtual.section,
.tourism-landing .tourism-authority.section {
  padding-top: clamp(4.5rem, 7vw, 6.75rem);
  padding-bottom: 0;
}

.tourism-landing .tourism-case-first__intro h2 {
  max-width: none;
}

.tourism-landing .tourism-principles__intro {
  max-width: 50rem;
  margin: clamp(3.25rem, 5vw, 4.75rem) auto 0;
  text-align: center;
}

.tourism-landing .tourism-principles__intro .eyebrow {
  margin-bottom: .65rem;
}

.tourism-landing .tourism-principles__intro h3 {
  margin: 0;
  color: var(--cream);
  font-family: var(--font-head);
  font-size: clamp(1.85rem, 2.8vw, 2.8rem);
  font-weight: 600;
  line-height: 1;
}

.tourism-landing .tourism-principles {
  --tourism-principles-progress-x: 0px;
  --tourism-principles-progress-y: 0px;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: clamp(2.4rem, 4vw, 3.6rem);
  padding: 0;
  list-style: none;
}

.tourism-landing .tourism-principles::before,
.tourism-landing .tourism-principles::after {
  content: "";
  position: absolute;
  top: 31px;
  left: calc(16.666% + 28px);
  height: 1px;
  pointer-events: none;
}

.tourism-landing .tourism-principles::before {
  right: calc(16.666% + 28px);
  background: rgba(247, 241, 231, .13);
}

.tourism-landing .tourism-principles::after {
  width: var(--tourism-principles-progress-x);
  max-width: calc(66.668% - 56px);
  background: linear-gradient(90deg, var(--gold), var(--gold-light));
  transition: width .28s ease-out;
}

.tourism-landing .tourism-principles li,
.tourism-landing .tourism-principles li:first-child,
.tourism-landing .tourism-principles li:last-child {
  position: relative;
  display: grid;
  grid-template-rows: 64px auto auto auto;
  justify-items: center;
  min-width: 0;
  padding: 0 clamp(1.3rem, 2.8vw, 2.7rem) clamp(1.5rem, 2.5vw, 2.25rem);
  text-align: center;
  transition: opacity .32s ease, transform .32s ease;
}

.tourism-landing .tourism-principles li + li {
  border-left: 0;
}

.tourism-landing .tourism-principles .tourism-principle__icon {
  z-index: 1;
  display: grid;
  grid-row: 1;
  width: 58px;
  height: 58px;
  margin: 0;
  place-items: center;
  color: var(--gold-light);
  border: 1px solid rgba(214, 165, 58, .32);
  border-radius: 50%;
  background: #080808;
  transition: color .32s ease, border-color .32s ease, transform .32s ease, box-shadow .32s ease;
}

.tourism-landing .tourism-principle__icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translateY(var(--tourism-principle-icon-y, 0px));
}

.tourism-landing .tourism-principle__glyph--diagnosis {
  --tourism-principle-icon-y: 2px;
}

.tourism-landing .tourism-principle__glyph--planning {
  --tourism-principle-icon-y: 1.5px;
}

.tourism-landing .tourism-principle__glyph--evolution {
  --tourism-principle-icon-y: 2px;
}

.tourism-landing .tourism-principle__number {
  grid-row: 2;
  margin: .9rem 0 .45rem;
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
}

.tourism-landing .tourism-principles h3 {
  grid-row: 3;
  margin: 0;
  font-size: clamp(1.5rem, 2vw, 2rem);
  line-height: 1.05;
}

.tourism-landing .tourism-principles p {
  grid-row: 4;
  max-width: 33ch;
  margin: .8rem auto 0;
  font-size: clamp(.88rem, 1vw, .98rem);
  line-height: 1.62;
}

.tourism-landing .tourism-principles.is-enhanced li.is-future {
  opacity: .38;
}

.tourism-landing .tourism-principles.is-enhanced li.is-complete {
  opacity: .67;
}

.tourism-landing .tourism-principles.is-enhanced li.is-active {
  opacity: 1;
}

.tourism-landing .tourism-principles.is-enhanced li.is-active .tourism-principle__icon {
  transform: scale(1.04);
  color: var(--gold-light);
  border-color: rgba(243, 200, 90, .8);
  box-shadow: 0 0 18px rgba(214, 165, 58, .12);
}

/* Valoración: sistema numérico oficial de Home, centrado y sin eyebrow. */
.tourism-landing .tourism-split--virtual {
  align-items: center;
}

.tourism-landing .tourism-virtual .tourism-split__content {
  max-width: 650px;
  text-align: center;
}

.tourism-landing .tourism-virtual .tourism-split__content h2 {
  max-width: 15ch;
  margin-right: auto;
  margin-left: auto;
}

.tourism-landing .tourism-virtual .tourism-split__content .lead {
  max-width: 50ch;
  margin-right: auto;
  margin-left: auto;
}

.tourism-landing .tourism-virtual__facts.metrics-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: clamp(1.6rem, 2.6vw, 2.25rem);
  padding: 0;
  border-block: 1px solid var(--line-2);
}

.tourism-landing .tourism-virtual__facts .metric {
  display: grid;
  grid-template-rows: minmax(3.65rem, auto) auto;
  margin: 0;
  padding: clamp(1.1rem, 2vw, 1.65rem) clamp(.7rem, 2vw, 1.6rem);
  place-items: center;
  text-align: center;
}

.tourism-landing .tourism-virtual__facts .metric + .metric {
  border-left: 1px solid var(--line-2);
}

.tourism-landing .tourism-virtual__facts .metric__num,
.tourism-landing .tourism-virtual__facts .metric__num--price,
.tourism-landing .tourism-virtual__facts .metric__currency,
.tourism-landing .tourism-virtual__facts .metric__suffix,
.tourism-landing .tourism-virtual__facts .metric__label {
  margin: 0;
  color: var(--gold-light);
  font-family: var(--font-body);
  letter-spacing: 0;
}

.tourism-landing .tourism-virtual__facts .metric__num {
  grid-row: 1;
  min-height: 0;
  align-self: end;
  color: var(--gold);
  font-size: clamp(1.85rem, 3.15vw, 3.1rem);
  font-weight: 600;
  line-height: 1.08;
  font-variant-numeric: tabular-nums;
}

.tourism-landing .tourism-virtual__facts .metric__num--price {
  font-size: clamp(1.45rem, 2.4vw, 2.25rem);
  white-space: nowrap;
}

.tourism-landing .tourism-virtual__facts .metric__currency {
  margin-right: .08em;
  font-size: .58em;
}

.tourism-landing .tourism-virtual__facts .metric__suffix {
  margin-left: .3em;
  color: var(--stone);
  font-size: .38em;
  font-weight: 600;
}

.tourism-landing .tourism-virtual__facts .metric__label {
  grid-row: 2;
  max-width: 22ch;
  padding-top: .65rem;
  color: var(--muted);
  font-size: clamp(.75rem, 1.15vw, .9rem);
  line-height: 1.4;
}

.tourism-landing .tourism-virtual .tourism-inline-actions {
  align-items: center;
  justify-content: center;
}

/* Autoridad: retrato humano, copy centrado y badges clínicos provisionales. */
.tourism-landing .tourism-authority__content {
  max-width: 730px;
}

.tourism-landing .tourism-authority__content > .eyebrow {
  text-align: left;
}

.tourism-landing .tourism-authority__content h2,
.tourism-landing .tourism-authority__content > .lead {
  max-width: none;
  margin-right: auto;
  margin-left: auto;
  text-align: center;
}

.tourism-landing .tourism-authority__content h2 {
  font-size: clamp(3.15rem, 3.6vw, 4rem);
}

.tourism-landing .tourism-authority__content > .lead {
  max-width: 58ch;
}

.tourism-landing .tourism-authority__badges {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
  margin-top: clamp(1.6rem, 2.5vw, 2.1rem);
}

.tourism-landing .tourism-authority__badge {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  min-height: 84px;
  align-items: center;
  gap: .75rem;
  padding: 1rem;
  color: rgba(247, 241, 231, .86);
  border: 1px solid rgba(214, 165, 58, .2);
  background: rgba(247, 241, 231, .015);
  font-size: clamp(.78rem, .9vw, .9rem);
  font-weight: 600;
  line-height: 1.45;
  text-align: center;
}

.tourism-landing .tourism-authority__badge svg {
  width: 24px;
  height: 24px;
  fill: none;
  stroke: var(--gold-light);
  stroke-width: 1.25;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tourism-landing .tourism-authority__badge-image {
  display: block;
  width: 34px;
  height: 38px;
  max-width: none;
  object-fit: contain;
  justify-self: center;
}

.tourism-landing .tourism-authority__content > .btn {
  display: flex;
  width: max-content;
  margin: clamp(1.7rem, 2.8vw, 2.35rem) auto 0;
}

.tourism-landing .tourism-authority__media {
  aspect-ratio: 4 / 5;
}

.tourism-landing .tourism-authority__media img {
  object-fit: cover;
  object-position: 50% 42%;
}

@media (min-width: 1025px) {
  .tourism-landing .tourism-case-first__intro h2 {
    font-size: clamp(3rem, 4.35vw, 4.7rem);
  }

}

@media (min-width: 768px) and (max-width: 1100px) {
  .tourism-landing .tourism-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .68fr);
    column-gap: clamp(2.4rem, 4.8vw, 4rem);
    min-height: 600px;
  }

  .tourism-landing .tourism-hero h1 {
    font-size: clamp(3.55rem, 7vw, 5rem);
  }

  .tourism-landing .tourism-hero__portrait {
    min-width: 0;
  }

  .tourism-landing .tourism-authority__badges {
    grid-template-columns: 1fr;
  }

  .tourism-landing .tourism-authority__badge {
    min-height: 66px;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-principle__glyph--diagnosis {
    --tourism-principle-icon-y: 2.5px;
  }

  .tourism-landing .tourism-principle__glyph--planning {
    --tourism-principle-icon-y: 2px;
  }

  .tourism-landing .tourism-principle__glyph--evolution {
    --tourism-principle-icon-y: 2.5px;
  }

  .tourism-landing .tourism-hero {
    padding-top: calc(var(--header-h) + 1.35rem);
    padding-bottom: 1.4rem;
  }

  .tourism-landing .tourism-hero__grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    gap: .95rem;
    min-height: 0;
  }

  .tourism-landing .tourism-hero__content {
    grid-column: 1;
    grid-row: 1;
    align-self: auto;
  }

  .tourism-landing .tourism-hero h1 {
    max-width: 100%;
    font-size: clamp(2.7rem, 11.5vw, 3.25rem);
    line-height: .9;
  }

  .tourism-landing .tourism-hero__support {
    margin-top: .72rem;
    font-size: clamp(1.25rem, 6vw, 1.58rem);
  }

  .tourism-landing .tourism-hero .lead {
    max-width: 36ch;
    margin-top: .68rem;
    font-size: clamp(.84rem, 3.7vw, .94rem);
    line-height: 1.5;
  }

  .tourism-landing .tourism-hero__portrait {
    grid-column: 1;
    grid-row: 2;
    width: min(100%, 290px);
    height: auto;
    aspect-ratio: 4 / 5;
    margin: .15rem auto 0;
    justify-self: center;
    -webkit-mask-image: none;
    mask-image: none;
  }

  .tourism-landing .tourism-hero__portrait img {
    object-fit: contain;
    object-position: 50% 50%;
  }

  .tourism-landing .tourism-hero__portrait::after {
    display: none;
  }

  .tourism-landing .tourism-hero__actions {
    grid-column: 1;
    grid-row: 3;
    display: grid;
    grid-template-columns: 1fr;
    gap: .55rem;
    width: 100%;
    margin: .15rem 0 0;
  }

  .tourism-landing .tourism-hero__actions .btn {
    width: 100%;
    min-height: 48px;
  }

  .tourism-landing .tourism-trust__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    padding: 0 1rem;
  }

  .tourism-landing .tourism-trust__list li {
    min-height: 54px;
    justify-content: flex-start;
    padding: .65rem .7rem;
    font-size: .72rem;
    white-space: normal;
  }

  .tourism-landing .tourism-trust__list li:nth-child(odd) {
    border-left: 0;
  }

  .tourism-landing .tourism-trust__list li:nth-child(n + 3) {
    border-top: 1px solid rgba(247, 241, 231, .08);
  }

  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__list,
  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__list[aria-hidden="true"] {
    gap: 2.8rem;
    padding-inline: 1.4rem;
  }

  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__list li {
    min-height: 56px;
    padding: .7rem 0;
    font-size: .76rem;
    white-space: nowrap;
  }

  .tourism-landing .tourism-case-first.section,
  .tourism-landing .tourism-virtual.section,
  .tourism-landing .tourism-authority.section {
    padding-top: clamp(4rem, 14vw, 5rem);
  }

  .tourism-landing .tourism-case-first__intro h2 {
    max-width: 12ch;
    font-size: clamp(2.35rem, 10.8vw, 3rem);
  }

  .tourism-landing .tourism-principles__intro {
    margin-top: 3rem;
  }

  .tourism-landing .tourism-principles__intro h3 {
    font-size: clamp(1.75rem, 8vw, 2.2rem);
  }

  .tourism-landing .tourism-principles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    margin-top: 2rem;
    padding-left: 0;
  }

  .tourism-landing .tourism-principles::before,
  .tourism-landing .tourism-principles::after {
    top: 31px;
    left: 28px;
    width: 1px;
    height: auto;
  }

  .tourism-landing .tourism-principles::before {
    right: auto;
    bottom: 31px;
  }

  .tourism-landing .tourism-principles::after {
    max-width: none;
    max-height: calc(100% - 62px);
    height: var(--tourism-principles-progress-y);
    background: linear-gradient(180deg, var(--gold), var(--gold-light));
    transition: height .28s ease-out;
  }

  .tourism-landing .tourism-principles li,
  .tourism-landing .tourism-principles li:first-child,
  .tourism-landing .tourism-principles li:last-child {
    grid-template-columns: 58px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    justify-items: start;
    min-height: 176px;
    padding: 0 0 1.65rem;
    text-align: left;
  }

  .tourism-landing .tourism-principle__icon {
    grid-column: 1;
    grid-row: 1 / 4;
    align-self: start;
  }

  .tourism-landing .tourism-principle__number {
    grid-column: 2;
    grid-row: 1;
    margin: .15rem 0 .48rem .95rem;
  }

  .tourism-landing .tourism-principles h3 {
    grid-column: 2;
    grid-row: 2;
    margin-left: .95rem;
    font-size: clamp(1.65rem, 7.5vw, 2.05rem);
  }

  .tourism-landing .tourism-principles p {
    grid-column: 2;
    grid-row: 3;
    max-width: none;
    margin: .62rem 0 0 .95rem;
    font-size: .9rem;
    line-height: 1.58;
  }

  .tourism-landing .tourism-split--virtual {
    gap: 1.6rem;
  }

  .tourism-landing .tourism-virtual__media {
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-virtual .tourism-split__content h2 {
    max-width: 100%;
    margin-inline: auto;
    font-size: clamp(2.05rem, 9vw, 2.65rem);
  }

  .tourism-landing .tourism-virtual .tourism-split__content .lead {
    margin-inline: auto;
    font-size: .92rem;
  }

  .tourism-landing .tourism-virtual__facts.metrics-grid {
    margin-top: 1.5rem;
  }

  .tourism-landing .tourism-virtual__facts .metric {
    grid-template-rows: minmax(3rem, auto) auto;
    padding: 1rem .45rem;
  }

  .tourism-landing .tourism-virtual__facts .metric__num {
    font-size: clamp(1.25rem, 7vw, 1.85rem);
  }

  .tourism-landing .tourism-virtual__facts .metric__num--price {
    font-size: clamp(1.05rem, 5.7vw, 1.55rem);
  }

  .tourism-landing .tourism-virtual__facts .metric__suffix {
    margin-left: .18em;
    font-size: .38em;
  }

  .tourism-landing .tourism-virtual__facts .metric__label {
    max-width: 16ch;
    padding-top: .45rem;
    font-size: clamp(.65rem, 3vw, .78rem);
  }

  .tourism-landing .tourism-virtual .tourism-inline-actions {
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    gap: .65rem;
  }

  .tourism-landing .tourism-virtual .tourism-inline-actions .btn {
    width: 100%;
  }

  .tourism-landing .tourism-authority__content > .eyebrow {
    text-align: left;
  }

  .tourism-landing .tourism-authority__content h2 {
    max-width: 12ch;
    margin-inline: auto;
    font-size: clamp(2.35rem, 10.5vw, 3rem);
  }

  .tourism-landing .tourism-authority__content > .lead {
    margin-inline: auto;
    font-size: .92rem;
  }

  .tourism-landing .tourism-authority__badges {
    grid-template-columns: 1fr;
    gap: .6rem;
  }

  .tourism-landing .tourism-authority__badge {
    min-height: 68px;
    grid-template-columns: 26px minmax(0, 1fr);
    padding: .85rem;
    font-size: .82rem;
    text-align: left;
  }

  .tourism-landing .tourism-authority__media {
    max-height: none;
    aspect-ratio: 4 / 5;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__track {
    display: block;
    width: auto;
    transform: none !important;
    animation: none !important;
    will-change: auto;
  }

  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__list {
    display: grid;
    width: min(100%, 1440px);
    max-width: 1440px;
  }

  .tourism-landing .tourism-trust.is-enhanced .tourism-trust__list[aria-hidden="true"] {
    display: none;
  }

  .tourism-landing .tourism-principles,
  .tourism-landing .tourism-principles::after,
  .tourism-landing .tourism-principles li,
  .tourism-landing .tourism-principle__icon {
    transition: none !important;
  }

  .tourism-landing .tourism-principles.is-enhanced li,
  .tourism-landing .tourism-principles.is-static li {
    opacity: 1 !important;
    transform: none !important;
  }

  .tourism-landing .tourism-principles.is-static::after {
    display: none;
  }
}

/* =====================================================================
   TURISMO MÉDICO — FASE 2C.3A
   Procedimientos + Resultados. Ajuste estático, editorial y encapsulado.
   ===================================================================== */

.tourism-landing .tourism-options__head {
  width: min(100%, 72rem);
  max-width: 72rem;
  margin-bottom: 0;
}

.tourism-landing .tourism-options__head h2 {
  max-width: 100%;
  margin: 0 auto;
}

.tourism-landing .tourism-options__head .lead {
  max-width: 55ch;
  margin: clamp(1.5rem, 2vw, 2rem) auto 0;
}

.tourism-landing .tourism-results.section {
  padding-bottom: 0;
}

.tourism-landing .tourism-results__intro {
  width: min(100%, 72rem);
  max-width: 72rem;
}

.tourism-landing .tourism-results__intro > div:last-child {
  margin: clamp(1.5rem, 2vw, 2rem) auto 0;
}

.tourism-landing .tourism-result__media {
  --tourism-result-label-inset: clamp(.45rem, .7vw, .65rem);
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 1;
  border: 1px solid rgba(214, 165, 58, .12);
  border-radius: 2px;
  background: #050505;
}

.tourism-landing .tourism-result__media picture {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border: 0;
  border-radius: 0;
  background: #050505;
}

.tourism-landing .tourism-result__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tourism-landing .tourism-result__label {
  position: absolute;
  top: var(--tourism-result-label-inset);
  left: var(--tourism-result-label-inset);
  z-index: 2;
  padding: .3rem .46rem .28rem;
  border: 1px solid rgba(243, 200, 90, .28);
  border-radius: 2px;
  background: rgba(5, 5, 5, .82);
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: clamp(.56rem, .62vw, .64rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  pointer-events: none;
}

.tourism-landing .tourism-result__media--horizontal .tourism-result__label--after {
  left: calc(50% + var(--tourism-result-label-inset));
}

.tourism-landing .tourism-result__media--vertical .tourism-result__label--after {
  top: calc(50% + var(--tourism-result-label-inset));
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-result:hover img {
    transform: none;
    filter: brightness(1.025);
  }
}

@media (min-width: 768px) {
  .tourism-landing .tourism-option,
  .tourism-landing .tourism-option:first-child,
  .tourism-landing .tourism-option:last-child {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    justify-items: center;
    align-content: stretch;
    min-height: 100%;
    padding: clamp(1.8rem, 2.8vw, 2.5rem) clamp(1.25rem, 2.5vw, 2.25rem);
    text-align: center;
  }

  .tourism-landing .tourism-option__icon {
    margin: 0 auto clamp(1.15rem, 1.8vw, 1.55rem);
  }

  .tourism-landing .tourism-option h3 {
    margin: 0 0 .7rem;
  }

  .tourism-landing .tourism-option p {
    margin: 0 auto 1.25rem;
    text-align: center;
  }

  .tourism-landing .tourism-option__action {
    align-self: end;
    justify-self: center;
  }

  .tourism-landing .tourism-results__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(.7rem, 1vw, .95rem);
    align-items: start;
  }

  .tourism-landing .tourism-result {
    display: grid;
    grid-template-rows: auto 1fr;
    min-width: 0;
  }
}

@media (min-width: 1280px) {
  .tourism-landing .tourism-options__head h2 {
    max-width: none;
    font-size: clamp(3.6rem, 4.35vw, 4.7rem);
    line-height: .94;
  }

  .tourism-landing .tourism-results__intro h2 {
    max-width: none;
    font-size: clamp(3.35rem, 4vw, 4rem);
    line-height: .94;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-options__head .lead,
  .tourism-landing .tourism-results__intro > div:last-child {
    margin-top: clamp(1.25rem, 5vw, 1.625rem);
  }

  .tourism-landing .tourism-option,
  .tourism-landing .tourism-option:first-child,
  .tourism-landing .tourism-option:last-child {
    display: grid;
    grid-template-columns: clamp(76px, 22vw, 92px) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    column-gap: clamp(.9rem, 4vw, 1.1rem);
    row-gap: 0;
    align-items: start;
    justify-items: start;
    padding: 1.25rem 0;
    text-align: left;
  }

  .tourism-landing .tourism-option__icon {
    grid-column: 1;
    grid-row: 1 / span 3;
    width: clamp(76px, 22vw, 92px);
    margin: 0;
  }

  .tourism-landing .tourism-option h3,
  .tourism-landing .tourism-option p,
  .tourism-landing .tourism-option__action {
    grid-column: 2;
    justify-self: start;
    text-align: left;
  }

  .tourism-landing .tourism-option h3 {
    margin: .05rem 0 .42rem;
    font-size: clamp(1.5rem, 7vw, 1.7rem);
  }

  .tourism-landing .tourism-option p {
    margin: 0 0 .78rem;
    font-size: .87rem;
    line-height: 1.62;
  }

  .tourism-landing .tourism-option__action {
    line-height: 1.45;
  }

  .tourism-landing .tourism-result__media {
    --tourism-result-label-inset: clamp(.34rem, 1.8vw, .48rem);
  }

  .tourism-landing .tourism-result__label {
    padding: .25rem .34rem .23rem;
    font-size: clamp(.5rem, 2.05vw, .57rem);
    letter-spacing: .09em;
  }
}

/* =====================================================================
   TURISMO MÉDICO — FASE 2C.3B
   Proceso + Antes de viajar. Motion progresivo, reversible y encapsulado.
   ===================================================================== */

.tourism-landing .tourism-route {
  --tourism-route-progress: 0;
}

.tourism-landing .tourism-route__intro {
  display: block;
  width: min(100%, 74rem);
  max-width: 74rem;
  margin-inline: auto;
  text-align: center;
}

.tourism-landing .tourism-route__intro h2 {
  max-width: 100%;
  margin: 0 auto;
}

.tourism-landing .tourism-route__intro .lead {
  max-width: 70rem;
  margin: clamp(1.35rem, 2vw, 1.8rem) auto 0;
}



.tourism-landing .tourism-route__timeline {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0;
  margin: clamp(3.4rem, 5.2vw, 4.8rem) 0 0;
  padding: 0;
  list-style: none;
}

.tourism-landing .tourism-route__timeline::before,
.tourism-landing .tourism-route__timeline::after {
  content: "";
  position: absolute;
  top: 1rem;
  right: 10%;
  left: 10%;
  height: 1px;
}

.tourism-landing .tourism-route__timeline::before {
  background: rgba(247, 241, 231, .13);
}

.tourism-landing .tourism-route__timeline::after {
  z-index: 1;
  background: linear-gradient(90deg, rgba(214, 165, 58, .7), var(--gold-light));
  transform: scaleX(var(--tourism-route-progress));
  transform-origin: left center;
  will-change: transform;
}

.tourism-landing .tourism-route__timeline li,
.tourism-landing .tourism-route__timeline li + li,
.tourism-landing .tourism-route__timeline li:nth-child(3n+2),
.tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
  position: relative;
  min-width: 0;
  min-height: 12.5rem;
  padding: 3.75rem clamp(1rem, 1.7vw, 1.55rem) 0;
  border-left: 0;
}

.tourism-landing .tourism-route__timeline li + li {
  border-left: 0;
}

.tourism-landing .tourism-route__timeline li::before,
.tourism-landing .tourism-route__timeline li + li::before,
.tourism-landing .tourism-route__timeline li:nth-child(3n+2)::before,
.tourism-landing .tourism-route__timeline li:nth-child(3n+3)::before {
  content: "";
  position: absolute;
  top: .57rem;
  left: 50%;
  z-index: 2;
  width: .86rem;
  height: .86rem;
  border: 1px solid rgba(243, 200, 90, .7);
  border-radius: 50%;
  background: var(--bg);
  box-shadow: 0 0 0 5px var(--bg);
  transform: translateX(-50%);
}

.tourism-landing .tourism-route__timeline h3 {
  min-height: 2.35em;
  margin: 0 0 .7rem;
  color: rgba(247, 241, 231, .9);
  font-size: clamp(1.16rem, 1.42vw, 1.38rem);
  line-height: 1.16;
  transform: none;
  opacity: 1;
}

.tourism-landing .tourism-route__timeline p {
  margin: 0;
  color: var(--tourism-copy);
  font-size: clamp(.86rem, .92vw, .94rem);
  line-height: 1.62;
  opacity: 1;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-future::before {
  border-color: rgba(247, 241, 231, .44);
  background: #080808;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-future h3 {
  color: var(--white);
  transform: translateY(.7rem);
  opacity: .52;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-future p {
  opacity: .47;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-complete::before {
  border-color: rgba(243, 200, 90, .62);
  background: rgba(214, 165, 58, .35);
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-complete h3 {
  opacity: .72;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-complete p {
  opacity: .68;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-active::before {
  border-color: var(--gold-light);
  background: var(--gold);
  box-shadow:
    0 0 0 5px var(--bg),
    0 0 0 8px rgba(214, 165, 58, .09);
  transform: translateX(-50%) scale(1.04);
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-active h3 {
  color: var(--white);
  transform: translateY(0);
  opacity: 1;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-active p {
  opacity: .9;
}

.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-active,
.tourism-landing .tourism-route.is-enhanced .tourism-route__timeline li.is-active + li {
  border-left-color: rgba(214, 165, 58, .2);
}



































@media (prefers-reduced-motion: no-preference) {
  .tourism-landing .tourism-route__timeline::after {
    transition: transform .18s linear;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline h3,
  .tourism-landing .tourism-route__timeline p {
    transition:
      color .32s ease,
      opacity .32s ease,
      transform .38s cubic-bezier(.2, .75, .25, 1),
      border-color .32s ease,
      background-color .32s ease,
      box-shadow .32s ease,
      stroke-dashoffset .48s cubic-bezier(.2, .75, .25, 1);
  }
}

@media (min-width: 1280px) {
  .tourism-landing .tourism-route__intro h2 {
    max-width: none;
    font-size: clamp(3.45rem, 4vw, 4.15rem);
    line-height: .94;
  }

  .tourism-landing .tourism-route__intro .lead {
    max-width: none;
  }
}

@media (max-width: 1024px) {
  .tourism-landing .tourism-route__timeline {
    display: block;
    margin-top: clamp(2.7rem, 7vw, 4rem);
    padding-left: 4rem;
  }

  .tourism-landing .tourism-route__timeline::before,
  .tourism-landing .tourism-route__timeline::after {
    top: .75rem;
    right: auto;
    bottom: .75rem;
    left: 1rem;
    width: 1px;
    height: auto;
  }

  .tourism-landing .tourism-route__timeline::after {
    transform: scaleY(var(--tourism-route-progress));
    transform-origin: center top;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li + li,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2),
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
    min-height: 0;
    padding: 0 0 clamp(2.4rem, 6vw, 3.2rem);
    border-left: 0;
  }

  .tourism-landing .tourism-route__timeline li:last-child {
    padding-bottom: 0;
  }

  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline li + li::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2)::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3)::before {
    top: .25rem;
    left: -3rem;
  }

  .tourism-landing .tourism-route__timeline h3 {
    min-height: 0;
    margin-bottom: .55rem;
    font-size: clamp(1.35rem, 3.5vw, 1.65rem);
  }

  .tourism-landing .tourism-route__timeline p {
    max-width: 42rem;
    font-size: clamp(.92rem, 2.1vw, 1rem);
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-route__intro .lead {
    margin-top: clamp(1.2rem, 5vw, 1.5rem);
  }

  .tourism-landing .tourism-route__timeline {
    margin-top: 2.45rem;
    padding-left: 3.5rem;
  }

  .tourism-landing .tourism-route__timeline::before,
  .tourism-landing .tourism-route__timeline::after {
    left: .8rem;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li + li,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2),
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3) {
    padding-bottom: 2.35rem;
  }

  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline li + li::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+2)::before,
  .tourism-landing .tourism-route__timeline li:nth-child(3n+3)::before {
    left: -2.7rem;
  }

  .tourism-landing .tourism-route__timeline h3 {
    font-size: clamp(1.34rem, 6.7vw, 1.58rem);
  }

  .tourism-landing .tourism-route__timeline p {
    font-size: .94rem;
    line-height: 1.58;
  }

  

  

  

  
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-route {
    --tourism-route-progress: 1;
  }

  .tourism-landing .tourism-route__timeline::before {
    background: rgba(214, 165, 58, .55);
  }

  .tourism-landing .tourism-route__timeline::after {
    display: none;
  }

  .tourism-landing .tourism-route__timeline li,
  .tourism-landing .tourism-route__timeline li::before,
  .tourism-landing .tourism-route__timeline h3,
  .tourism-landing .tourism-route__timeline p {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }

  

  
}

@media (max-width: 1024px) and (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-route__timeline li::before {
    left: calc(-3rem - .43rem);
  }
}

@media (max-width: 767px) and (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-route__timeline li::before {
    left: calc(-2.7rem - .43rem);
  }
}

@media (min-width: 1025px) and (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-route__timeline li::before {
    left: calc(50% - .43rem);
  }
}

/* =====================================================================
   TURISMO MÉDICO — FASE 2C.4A
   Bogotá + Estadía. Ajuste estático, editorial y encapsulado.
   ===================================================================== */

.tourism-landing .tourism-bogota__intro {
  width: min(100%, 72rem);
  max-width: 72rem;
  margin-inline: auto;
  text-align: center;
}

.tourism-landing .tourism-bogota__intro h2 {
  max-width: 100%;
  margin: 0 auto;
}

.tourism-landing .tourism-bogota__copy {
  width: 100%;
  max-width: 64rem;
  margin: clamp(1.35rem, 2vw, 1.75rem) auto 0;
}

.tourism-landing .tourism-bogota__locations {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  width: 100%;
  max-width: 64rem;
  margin: clamp(1.45rem, 2.25vw, 2rem) auto 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(214, 165, 58, .18);
  border-radius: 4px;
  background: rgba(255, 255, 255, .018);
}

.tourism-landing .tourism-bogota__locations div {
  display: flex;
  min-width: 0;
  min-height: 6.7rem;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.15rem clamp(1.25rem, 2.5vw, 2.25rem);
  text-align: center;
}

.tourism-landing .tourism-bogota__locations div + div {
  border-top: 0;
  border-left: 1px solid rgba(214, 165, 58, .14);
}

.tourism-landing .tourism-bogota__locations dt {
  margin: 0 0 .48rem;
  color: var(--gold-light);
  font-family: var(--font-body);
  font-size: .69rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.tourism-landing .tourism-bogota__locations dd {
  max-width: 31rem;
  margin: 0;
  color: rgba(247, 241, 231, .76);
  font-size: clamp(.88rem, 1vw, .98rem);
  line-height: 1.5;
}

.tourism-landing .tourism-bogota__gallery {
  margin-top: clamp(2.35rem, 3.8vw, 3.75rem);
}

.tourism-landing .tourism-stay__intro {
  width: min(100%, 78rem);
  max-width: 78rem;
}

.tourism-landing .tourism-stay__intro h2 {
  max-width: 100%;
}

.tourism-landing .tourism-stay__intro .lead {
  max-width: 76ch;
}

.tourism-landing .tourism-stay__types {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(.7rem, 1.2vw, 1rem);
  max-width: 78rem;
  margin: clamp(2.65rem, 4.5vw, 4rem) auto 0;
  border: 0;
}

.tourism-landing .tourism-stay__types article,
.tourism-landing .tourism-stay__types article + article {
  display: grid;
  grid-template-rows: 3.5rem minmax(3.15rem, auto) 1fr;
  min-width: 0;
  min-height: 17.25rem;
  padding: clamp(1.6rem, 2.4vw, 2.15rem);
  border: 1px solid rgba(214, 165, 58, .18);
  border-radius: 4px;
  background: rgba(255, 255, 255, .018);
  text-align: left;
}

.tourism-landing .tourism-stay__type-icon {
  display: grid;
  width: 3.35rem;
  height: 3.35rem;
  margin: 0;
  border: 1px solid rgba(214, 165, 58, .2);
  border-radius: 3px;
  background: rgba(214, 165, 58, .025);
  color: var(--gold-light);
  place-items: center;
}

.tourism-landing .tourism-stay__type-icon svg {
  width: 2.15rem;
  height: 2.15rem;
}

.tourism-landing .tourism-stay__types h3 {
  align-self: start;
  margin: .8rem 0 .7rem;
  font-size: clamp(1.4rem, 1.9vw, 1.7rem);
  line-height: 1.12;
}

.tourism-landing .tourism-stay__types p {
  max-width: none;
  margin: 0;
  color: var(--tourism-copy);
  font-size: clamp(.9rem, 1vw, .98rem);
  line-height: 1.62;
}

@media (min-width: 1025px) {
  .tourism-landing .tourism-bogota__gallery {
    display: grid;
    grid-template-columns: minmax(0, 1.72fr) minmax(22rem, .88fr);
    gap: clamp(.6rem, .9vw, .8rem);
    height: clamp(360px, 31vw, 440px);
  }

  .tourism-landing .tourism-bogota__image--hero {
    width: 100%;
    height: 100%;
    min-height: 0;
  }

  .tourism-landing .tourism-bogota__track {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: minmax(0, 1.08fr) minmax(0, .92fr);
    gap: clamp(.6rem, .9vw, .8rem);
    width: 100%;
    height: 100%;
    min-width: 0;
    min-height: 0;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image {
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image:first-child {
    grid-column: 1 / -1;
  }

  .tourism-landing .tourism-bogota__image--hero img {
    object-position: 50% 50%;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image:nth-child(1) img {
    object-position: 50% 42%;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image:nth-child(2) img,
  .tourism-landing .tourism-bogota__track .tourism-bogota__image:nth-child(3) img {
    object-position: 50% 50%;
  }
}

@media (min-width: 1280px) {
  .tourism-landing .tourism-stay__intro h2 {
    max-width: 100%;
    font-size: clamp(3.2rem, 4vw, 4.2rem);
    line-height: .94;
  }

  .tourism-landing .tourism-stay__types article,
  .tourism-landing .tourism-stay__types article + article {
    grid-template-rows: 3.5rem 2.8rem 1fr;
  }

  .tourism-landing .tourism-stay__types h3 {
    font-size: clamp(1.38rem, 1.55vw, 1.7rem);
    white-space: normal;
  }
}

@media (max-width: 1024px) {
  .tourism-landing .tourism-bogota__locations {
    grid-template-columns: 1fr;
    max-width: 46rem;
  }

  .tourism-landing .tourism-bogota__locations div {
    min-height: 0;
    padding: 1rem clamp(1.1rem, 4vw, 1.75rem);
  }

  .tourism-landing .tourism-bogota__locations div + div {
    border-top: 1px solid rgba(214, 165, 58, .14);
    border-left: 0;
  }

  .tourism-landing .tourism-bogota__gallery {
    display: block;
    height: auto;
    margin-top: clamp(2rem, 5vw, 2.75rem);
  }

  .tourism-landing .tourism-bogota__image--hero {
    width: 100%;
    height: auto;
    max-height: 440px;
    min-height: 0;
    aspect-ratio: 3 / 2;
  }

  .tourism-landing .tourism-bogota__track {
    display: flex;
    gap: .75rem;
    height: auto;
    margin-top: .75rem;
    padding-bottom: .55rem;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    scroll-padding-inline: 0;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
  }

  .tourism-landing .tourism-bogota__track::-webkit-scrollbar {
    display: none;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image {
    flex: 0 0 min(62vw, 22rem);
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 3;
    scroll-snap-align: start;
  }

  .tourism-landing .tourism-stay__types {
    display: block;
    max-width: 50rem;
    margin-top: clamp(2.35rem, 5vw, 3rem);
    border-top: 1px solid rgba(214, 165, 58, .18);
    border-bottom: 1px solid rgba(214, 165, 58, .12);
  }

  .tourism-landing .tourism-stay__types article,
  .tourism-landing .tourism-stay__types article + article {
    display: grid;
    grid-template-columns: 3.6rem minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: 1.15rem;
    min-height: 0;
    padding: 1.35rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: left;
  }

  .tourism-landing .tourism-stay__types article + article {
    border-top: 1px solid rgba(247, 241, 231, .1);
  }

  .tourism-landing .tourism-stay__type-icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 3.35rem;
    height: 3.35rem;
    margin: 0;
  }

  .tourism-landing .tourism-stay__type-icon svg {
    width: 2.05rem;
    height: 2.05rem;
  }

  .tourism-landing .tourism-stay__types h3 {
    grid-column: 2;
    margin: .05rem 0 .35rem;
    font-size: clamp(1.35rem, 3.2vw, 1.55rem);
  }

  .tourism-landing .tourism-stay__types p {
    grid-column: 2;
    font-size: .92rem;
    line-height: 1.58;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-bogota__copy {
    margin-top: clamp(1.2rem, 5vw, 1.5rem);
  }

  .tourism-landing .tourism-bogota__locations {
    margin-top: clamp(1.25rem, 5vw, 1.55rem);
  }

  .tourism-landing .tourism-bogota__locations div {
    padding-block: .95rem;
  }

  .tourism-landing .tourism-bogota__image--hero {
    max-height: none;
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-bogota__track .tourism-bogota__image {
    flex-basis: min(76vw, 19rem);
  }

  .tourism-landing .tourism-stay__intro .lead {
    max-width: 34rem;
  }

  .tourism-landing .tourism-stay__types {
    margin-top: 2.15rem;
  }

  .tourism-landing .tourism-stay__types article,
  .tourism-landing .tourism-stay__types article + article {
    grid-template-columns: 3.25rem minmax(0, 1fr);
    column-gap: .95rem;
    padding: 1.15rem 0;
  }

  .tourism-landing .tourism-stay__type-icon {
    width: 3.05rem;
    height: 3.05rem;
  }

  .tourism-landing .tourism-stay__type-icon svg {
    width: 1.9rem;
    height: 1.9rem;
  }

  .tourism-landing .tourism-stay__types h3 {
    font-size: clamp(1.3rem, 6vw, 1.45rem);
  }

  .tourism-landing .tourism-stay__types p {
    font-size: .9rem;
    line-height: 1.56;
  }
}

/* =====================================================================
   TURISMO MÉDICO ES — FASE 2C.4B
   Hotel W compacto + rail editorial + modo tourism-gallery del visor.
   Todo el alcance de página permanece bajo .tourism-landing.
   ===================================================================== */

.tourism-landing .tourism-gallery__link {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  color: inherit;
  cursor: zoom-in;
}

.tourism-landing .tourism-gallery__link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: -4px;
}

.tourism-landing .tourism-bogota__image figcaption,
.tourism-landing .tourism-hotel__featured figcaption,
.tourism-landing .tourism-hotel__track figcaption {
  z-index: 1;
}

.tourism-landing .tourism-hotel__heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: min(100%, 78rem);
  margin: 0 auto clamp(1.75rem, 3vw, 2.5rem);
  gap: clamp(1rem, 1.8vw, 1.35rem);
  justify-items: center;
  text-align: center;
}

.tourism-landing .tourism-hotel__heading h3 {
  max-width: 100%;
  margin: 0;
  font-size: clamp(2.45rem, 4.15vw, 4.05rem);
  line-height: .96;
  text-wrap: balance;
}

.tourism-landing .tourism-hotel__heading > p {
  max-width: 46rem;
  margin: 0;
  color: var(--tourism-copy);
  font-size: clamp(.92rem, 1.2vw, 1.03rem);
  line-height: 1.58;
  text-align: center;
}

.tourism-landing .tourism-hotel__featured,
.tourism-landing .tourism-hotel__rail-shell {
  width: min(100%, 70rem);
  margin-inline: auto;
}

.tourism-landing .tourism-hotel__featured {
  height: clamp(320px, 28vw, 410px);
  aspect-ratio: auto;
}

.tourism-landing .tourism-hotel__featured figcaption {
  position: absolute;
  right: 1rem;
  bottom: .9rem;
  left: 1rem;
  color: rgba(247, 241, 231, .92);
  font-family: var(--font-body);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .85);
  text-transform: uppercase;
}

.tourism-landing .tourism-hotel__featured img {
  object-position: 50% 57%;
}

.tourism-landing .tourism-hotel__rail-shell {
  margin-top: clamp(.75rem, 1.3vw, 1rem);
}

.tourism-landing .tourism-hotel__rail-controls {
  display: flex;
  min-height: 44px;
  margin-bottom: .7rem;
  gap: .55rem;
  justify-content: flex-end;
}

.tourism-landing .tourism-hotel__rail-button[hidden] {
  display: none !important;
}

.tourism-landing .tourism-hotel__rail-button {
  display: grid;
  width: 44px;
  height: 44px;
  padding: 0;
  place-items: center;
  border: 1px solid rgba(214, 165, 58, .38);
  border-radius: 50%;
  background: rgba(12, 12, 13, .94);
  color: var(--gold-light);
  transition: border-color .2s ease, background .2s ease, opacity .2s ease;
}

.tourism-landing .tourism-hotel__rail-button svg {
  width: 1.3rem;
  height: 1.3rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.65;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tourism-landing .tourism-hotel__rail-button:hover,
.tourism-landing .tourism-hotel__rail-button:focus-visible {
  border-color: rgba(243, 200, 90, .72);
  background: rgba(214, 165, 58, .08);
}

.tourism-landing .tourism-hotel__rail-button:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

.tourism-landing .tourism-hotel__rail-button:disabled {
  border-color: rgba(214, 165, 58, .16);
  opacity: .34;
  cursor: default;
}

.tourism-landing .tourism-hotel__track {
  --tourism-hotel-rail-gap: clamp(.65rem, 1vw, .8rem);
  gap: var(--tourism-hotel-rail-gap);
  margin-top: 0;
  padding-bottom: .4rem;
  scrollbar-width: none;
}

.tourism-landing .tourism-hotel__track::-webkit-scrollbar {
  display: none;
}

.tourism-landing .tourism-hotel__track figure,
.tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
  flex: 0 0 clamp(15rem, calc((100% - (2 * var(--tourism-hotel-rail-gap))) / 3.2), 20rem);
  aspect-ratio: 4 / 3;
}

.tourism-landing .tourism-hotel__track .tourism-hotel__portrait img {
  object-fit: contain;
  background: #090909;
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-gallery__link:hover img {
    filter: brightness(1.035);
  }
}

@media (min-width: 1280px) {
  .tourism-landing .tourism-hotel__heading h3 {
    width: 100%;
    font-size: clamp(3.15rem, 4vw, 3.85rem);
    line-height: .94;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .tourism-landing .tourism-hotel__featured {
    height: auto;
    max-height: 400px;
    aspect-ratio: 16 / 9;
  }

  .tourism-landing .tourism-hotel__track figure,
  .tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
    flex-basis: clamp(18rem, 42vw, 24rem);
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-hotel__heading {
    margin-bottom: 1.65rem;
    gap: 1rem;
  }

  .tourism-landing .tourism-hotel__heading h3 {
    font-size: clamp(2.15rem, 11.5vw, 3rem);
    line-height: .98;
  }

  .tourism-landing .tourism-hotel__heading > p {
    max-width: 34rem;
    font-size: .92rem;
  }

  .tourism-landing .tourism-hotel__featured {
    height: auto;
    aspect-ratio: 4 / 3;
  }

  .tourism-landing .tourism-hotel__rail-shell {
    margin-top: .7rem;
  }

  .tourism-landing .tourism-hotel__rail-controls {
    display: none;
  }

  .tourism-landing .tourism-hotel__track {
    gap: .7rem;
    padding-bottom: .45rem;
  }

  .tourism-landing .tourism-hotel__track figure,
  .tourism-landing .tourism-hotel__track .tourism-hotel__portrait {
    flex-basis: min(78vw, 20rem);
  }
}

/* Modo aislado del visor compartido; legacy y results-archive no cambian. */
.lightbox--tourism-gallery {
  padding:
    max(4.75rem, calc(env(safe-area-inset-top) + 3.75rem))
    max(.9rem, env(safe-area-inset-right))
    max(1rem, env(safe-area-inset-bottom))
    max(.9rem, env(safe-area-inset-left));
  overscroll-behavior: contain;
  background: rgba(2, 2, 3, .975);
}

.lightbox--tourism-gallery [hidden] {
  display: none !important;
}

.lightbox--tourism-gallery .lightbox__content {
  width: min(1240px, calc(100vw - 7.5rem));
  max-height: calc(100dvh - 6.5rem);
}

.lightbox--tourism-gallery .lightbox__picture {
  width: 100%;
  height: 100%;
}

.lightbox--tourism-gallery .lightbox__content .lightbox__img {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 12rem);
  object-fit: contain;
  border-radius: 8px;
  background: #050505;
  box-shadow: 0 30px 90px rgba(0, 0, 0, .5);
}

.lightbox--tourism-gallery .lightbox__media-error {
  display: grid;
  width: min(32rem, calc(100vw - 3rem));
  min-height: 13rem;
  padding: 2rem;
  place-content: center;
  justify-items: center;
  gap: 1rem;
  border: 1px solid rgba(214, 165, 58, .25);
  border-radius: 8px;
  background: rgba(16, 16, 18, .92);
  text-align: center;
}

.lightbox--tourism-gallery .lightbox__media-error p {
  margin: 0;
  color: rgba(247, 241, 231, .86);
  line-height: 1.55;
}

.lightbox--tourism-gallery .lightbox__direct-link {
  display: inline-flex;
  min-height: 44px;
  padding: .7rem 1rem;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(214, 165, 58, .35);
  border-radius: 999px;
  color: var(--gold-light);
  font-size: .82rem;
  font-weight: 650;
}

.lightbox--tourism-gallery .lightbox__direct-link:hover,
.lightbox--tourism-gallery .lightbox__direct-link:focus-visible {
  border-color: rgba(243, 200, 90, .75);
  background: rgba(214, 165, 58, .1);
}

.lightbox--tourism-gallery .lightbox__direct-link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .lightbox--tourism-gallery {
    padding:
      max(4.35rem, calc(env(safe-area-inset-top) + 3.6rem))
      max(.6rem, env(safe-area-inset-right))
      max(.75rem, env(safe-area-inset-bottom))
      max(.6rem, env(safe-area-inset-left));
  }

  .lightbox--tourism-gallery .lightbox__content {
    width: 100%;
    max-height: calc(100dvh - 5.4rem);
    gap: .65rem;
  }

  .lightbox--tourism-gallery .lightbox__content .lightbox__img {
    max-width: calc(100vw - 1.2rem);
    max-height: calc(100dvh - 11.75rem);
    border-radius: 6px;
  }

  .lightbox--tourism-gallery .lightbox__meta {
    padding-inline: 2.9rem;
  }

  .lightbox--tourism-gallery .lightbox__nav {
    top: 50%;
    bottom: auto;
    width: 44px;
    height: 44px;
    transform: translateY(-50%);
  }

  .lightbox--tourism-gallery .lightbox__nav--prev {
    left: .55rem;
  }

  .lightbox--tourism-gallery .lightbox__nav--next {
    right: .55rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-hotel__track {
    scroll-behavior: auto !important;
  }

  .tourism-landing .tourism-gallery__link img,
  .tourism-landing .tourism-hotel__rail-button,
  .lightbox--tourism-gallery,
  .lightbox--tourism-gallery .lightbox__img,
  .lightbox--tourism-gallery .lightbox__close,
  .lightbox--tourism-gallery .lightbox__nav {
    animation: none !important;
    transition: none !important;
  }
}

/* =====================================================================
   TURISMO MÉDICO ES — FASE 2C.6
   Cualificación + pausa de conversión + FAQ nativa mejorada + cierre mobile.
   Todo el alcance permanece encapsulado bajo .tourism-landing.
   ===================================================================== */

.tourism-landing .tourism-qualification.section {
  padding-top: clamp(5rem, 7vw, 6.75rem);
}

.tourism-landing .tourism-qualification__intro {
  width: min(100%, 75rem);
  max-width: 75rem;
}

.tourism-landing .tourism-qualification__intro h2 {
  max-width: 100%;
}

.tourism-landing .tourism-qualification__paths {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(100%, 74rem);
  max-width: 74rem;
  margin: clamp(3rem, 4.3vw, 4rem) auto 0;
  gap: clamp(.9rem, 1.4vw, 1.2rem);
  grid-auto-rows: 1fr;
  border: 0;
}

.tourism-landing .tourism-qualification__paths article,
.tourism-landing .tourism-qualification__paths article + article {
  display: grid;
  grid-template-rows: auto 1fr;
  min-width: 0;
  height: 100%;
  padding: clamp(2.15rem, 3.25vw, 2.9rem) clamp(1.75rem, 3.1vw, 2.75rem);
  border: 1px solid rgba(214, 165, 58, .22);
  border-radius: 24px;
  background:
    linear-gradient(145deg, rgba(247, 241, 231, .026), transparent 62%),
    rgba(16, 16, 18, .86);
  box-shadow: none;
}

.tourism-landing .tourism-qualification__label {
  min-height: 2.5em;
  margin: 0 0 clamp(1.35rem, 2vw, 1.75rem);
  color: var(--cream);
  font: 500 clamp(1.42rem, 1.75vw, 1.68rem)/1.22 var(--font-serif);
  letter-spacing: -.012em;
}

.tourism-landing .tourism-qualification__paths ul {
  align-content: start;
  gap: clamp(.85rem, 1.25vw, 1.05rem);
}

.tourism-landing .tourism-qualification__paths li {
  padding-left: 1.65rem;
  color: var(--tourism-copy);
  font-size: clamp(.92rem, 1.02vw, 1rem);
  line-height: 1.56;
}

.tourism-landing .tourism-qualification__paths li::before,
.tourism-landing .tourism-qualification__paths article:first-child li::before {
  top: .76em;
  left: .05rem;
  width: .8rem;
  height: 1px;
  border: 0;
  border-radius: 0;
  background: rgba(243, 200, 90, .86);
}

.tourism-landing .tourism-qualification__card--consider li::before {
  top: .52em;
  width: .46rem;
  height: .46rem;
  border: 1px solid rgba(243, 200, 90, .8);
  border-radius: 50%;
  background: transparent;
}

.tourism-landing .tourism-mid-cta.section {
  padding-top: clamp(3.75rem, 5vw, 4.75rem);
}

.tourism-landing .tourism-mid-cta__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: clamp(21.875rem, 26vw, 23.75rem);
  max-width: 74rem;
  margin-inline: auto;
  padding: clamp(3.25rem, 5vw, 4.75rem) clamp(1rem, 3vw, 2.5rem);
  place-content: center;
  justify-items: center;
  gap: clamp(1.75rem, 3vw, 2.4rem);
  border: 0;
  background: radial-gradient(circle at 50% 52%, rgba(214, 165, 58, .065), transparent 43%);
  text-align: center;
}

.tourism-landing .tourism-mid-cta__inner h2 {
  max-width: 19ch;
  margin: 0 auto;
  font-size: clamp(2.7rem, 4.15vw, 4.2rem);
  line-height: .97;
  letter-spacing: -.025em;
}

.tourism-landing .tourism-mid-cta__actions {
  display: flex;
  width: 100%;
  justify-content: center;
}

.tourism-landing .tourism-mid-cta__actions .btn {
  width: min(100%, 22rem);
  min-height: 54px;
}

.tourism-landing .tourism-faq.section {
  padding-top: clamp(4rem, 5.8vw, 5.25rem);
}

.tourism-landing .tourism-faq__layout {
  display: block;
}

.tourism-landing .tourism-faq__intro {
  position: static;
  width: min(100%, 75rem);
  max-width: 75rem;
}

.tourism-landing .tourism-faq__intro h2 {
  max-width: 100%;
}

.tourism-landing .tourism-faq__intro .lead {
  max-width: 58ch;
}

.tourism-landing .tourism-faq__list {
  width: min(100%, 880px);
  max-width: 880px;
  margin: clamp(2.75rem, 4.2vw, 3.75rem) auto 0;
  border-top-color: rgba(214, 165, 58, .32);
}

.tourism-landing .tourism-faq__list details {
  border-bottom-color: rgba(247, 241, 231, .11);
}

.tourism-landing .tourism-faq__list summary {
  min-height: 4.75rem;
  padding: 1.3rem 3.5rem 1.3rem .25rem;
  color: rgba(247, 241, 231, .92);
  font-size: clamp(1.12rem, 1.45vw, 1.34rem);
  line-height: 1.34;
  transition: color .22s ease, background-color .22s ease;
}

.tourism-landing .tourism-faq__list summary::before,
.tourism-landing .tourism-faq__list summary::after {
  right: .55rem;
  width: 1.05rem;
  background: var(--gold-light);
  transform-origin: center;
  transition: transform .28s cubic-bezier(.22, 1, .36, 1), opacity .22s ease;
}

.tourism-landing .tourism-faq__list summary::after {
  transform: rotate(90deg);
}

.tourism-landing .tourism-faq__list details[open] summary::after {
  transform: rotate(0deg);
}

.tourism-landing .tourism-faq__list summary:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
  border-radius: 3px;
}

.tourism-landing .tourism-faq__answer {
  overflow: hidden;
}

.tourism-landing .tourism-faq__answer > p {
  max-width: 44rem;
  margin: -.2rem 0 0;
  padding: 0 3.5rem 1.65rem .25rem;
  color: var(--tourism-copy);
  line-height: 1.68;
}

.tourism-landing .tourism-faq__answer > p strong {
  color: var(--gold-light);
  font-weight: 600;
}

@media (hover: hover) and (pointer: fine) {
  .tourism-landing .tourism-faq__list summary:hover {
    color: var(--cream);
    background: rgba(247, 241, 231, .018);
  }
}

@media (min-width: 1280px) {
  .tourism-landing .tourism-qualification__intro h2 {
    width: 100%;
    font-size: clamp(3.55rem, 4.15vw, 4.35rem);
    line-height: .94;
  }

  .tourism-landing .tourism-mid-cta__inner h2 {
    max-width: 100%;
    font-size: clamp(3.3rem, 4.15vw, 4.15rem);
  }

  .tourism-landing .tourism-faq__intro h2 {
    width: 100%;
    font-size: clamp(3.55rem, 4.15vw, 4.35rem);
    line-height: .94;
  }
}

@media (max-width: 1024px) {
  .tourism-landing .tourism-qualification__paths {
    grid-template-columns: minmax(0, 1fr);
    width: min(100%, 48rem);
    gap: 1rem;
  }

  .tourism-landing .tourism-qualification__paths article,
  .tourism-landing .tourism-qualification__paths article + article {
    padding: clamp(1.85rem, 4.5vw, 2.5rem) clamp(1.55rem, 4vw, 2.35rem);
  }

  .tourism-landing .tourism-qualification__label {
    min-height: 0;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-qualification.section {
    padding-top: clamp(4.25rem, 14vw, 5rem);
  }

  .tourism-landing .tourism-qualification__intro h2 {
    max-width: 10.5em;
  }

  .tourism-landing .tourism-qualification__paths {
    margin-top: clamp(2rem, 9vw, 2.5rem);
    gap: .85rem;
  }

  .tourism-landing .tourism-qualification__paths article,
  .tourism-landing .tourism-qualification__paths article + article {
    padding: 1.55rem 1.3rem 1.65rem;
    border-radius: 18px;
  }

  .tourism-landing .tourism-qualification__label {
    margin-bottom: 1.2rem;
    font-size: clamp(1.35rem, 6.1vw, 1.55rem);
  }

  .tourism-landing .tourism-qualification__paths ul {
    gap: .8rem;
  }

  .tourism-landing .tourism-qualification__paths li {
    padding-left: 1.5rem;
    font-size: .92rem;
    line-height: 1.52;
  }

  .tourism-landing .tourism-mid-cta.section {
    padding-top: clamp(3.5rem, 13vw, 4.25rem);
  }

  .tourism-landing .tourism-mid-cta__inner {
    min-height: clamp(17.5rem, 78vw, 20rem);
    padding: 2.75rem 0;
    gap: 1.7rem;
  }

  .tourism-landing .tourism-mid-cta__inner h2 {
    max-width: 10.8em;
    font-size: clamp(2.15rem, 9.5vw, 2.8rem);
    line-height: .98;
  }

  .tourism-landing .tourism-mid-cta__actions .btn {
    width: 100%;
    min-height: 52px;
  }

  .tourism-landing .tourism-faq.section {
    padding-top: clamp(3.75rem, 13vw, 4.5rem);
  }

  .tourism-landing .tourism-faq__intro h2 {
    max-width: 100%;
  }

  .tourism-landing .tourism-faq__list {
    margin-top: 2.15rem;
  }

  .tourism-landing .tourism-faq__list summary {
    min-height: 4.25rem;
    padding: 1rem 3rem 1rem .1rem;
    font-size: 1.05rem;
    line-height: 1.36;
  }

  .tourism-landing .tourism-faq__list summary::before,
  .tourism-landing .tourism-faq__list summary::after {
    right: .4rem;
    width: 1rem;
  }

  .tourism-landing .tourism-faq__answer > p {
    margin-top: 0;
    padding: 0 1.25rem 1.3rem .1rem;
    font-size: .92rem;
    line-height: 1.62;
  }
}

@media (max-width: 430px) {
  .tourism-landing .tourism-closing h2 {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    font-size: clamp(1.95rem, 8.35vw, 2.28rem);
    line-height: .98;
    letter-spacing: -.04em;
  }
}

@media (max-width: 390px) {
  .tourism-landing .tourism-closing__price--featured {
    padding-top: 1rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tourism-landing .tourism-faq__list summary,
  .tourism-landing .tourism-faq__list summary::before,
  .tourism-landing .tourism-faq__list summary::after,
  .tourism-landing .tourism-faq__answer {
    animation: none !important;
    transition: none !important;
  }
}

/* ========================================================================== */
/* FAQ — REDISEÑO DEFINITIVO                                                  */
/* Scope estricto: la página FAQ no altera acordeones ni páginas históricas.  */
/* ========================================================================== */

.faq-page {
  --faq-measure: 55rem;
  --faq-border: rgba(214, 165, 58, .22);
  --faq-border-active: rgba(214, 165, 58, .48);
  --faq-panel: rgba(18, 18, 20, .9);
  --faq-gap-category: clamp(3.75rem, 7vw, 5.75rem);
  background: #050505;
}

.faq-page main {
  overflow: clip;
}

.faq-page .faq-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  min-height: clamp(38rem, 58vw, 49rem);
  place-items: center;
  overflow: hidden;
  background: #050505;
}

.faq-page .faq-hero__media,
.faq-page .faq-hero__media img,
.faq-page .faq-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.faq-page .faq-hero__media {
  z-index: -3;
}

.faq-page .faq-hero__media img {
  display: block;
  object-fit: cover;
  object-position: center;
}

.faq-page .faq-hero__overlay {
  z-index: -2;
  background:
    radial-gradient(ellipse 48% 55% at 50% 48%, rgba(0, 0, 0, .42), rgba(0, 0, 0, .18) 64%, transparent),
    linear-gradient(180deg, rgba(0, 0, 0, .42) 0%, rgba(0, 0, 0, .2) 37%, rgba(0, 0, 0, .55) 100%);
}

.faq-page .faq-hero__inner {
  display: grid;
  min-height: inherit;
  place-items: center;
  padding-top: calc(var(--header-h, 5rem) + clamp(2rem, 5vw, 4rem));
  padding-bottom: clamp(4rem, 8vw, 6.5rem);
}

.faq-page .faq-hero__copy {
  width: min(100%, 64rem);
  margin-inline: auto;
  text-align: center;
}

.faq-page .faq-hero__copy .eyebrow {
  justify-content: center;
  margin-bottom: clamp(1.1rem, 2vw, 1.55rem);
  text-shadow: 0 1px 16px rgba(0, 0, 0, .8);
}

.faq-page .faq-hero__copy h1 {
  max-width: 100%;
  margin: 0;
  color: var(--ivory);
  font-size: clamp(4.15rem, 6.35vw, 7rem);
  line-height: .91;
  letter-spacing: -.035em;
  text-wrap: balance;
  text-shadow: 0 2px 22px rgba(0, 0, 0, .72);
}

.faq-page .faq-hero__copy .lead {
  max-width: 58rem;
  margin: clamp(1.6rem, 3vw, 2.25rem) auto 0;
  color: rgba(236, 230, 221, .82);
  font-size: clamp(1rem, 1.35vw, 1.16rem);
  line-height: 1.72;
  text-shadow: 0 1px 16px rgba(0, 0, 0, .88);
}

.faq-page .faq-topic-nav {
  position: relative;
  z-index: 2;
  border-block: 1px solid rgba(214, 165, 58, .14);
  background: rgba(7, 7, 8, .96);
}

.faq-page .faq-topic-nav__rail {
  display: flex;
  width: 100%;
  max-width: 92rem;
  margin-inline: auto;
  justify-content: center;
  gap: .55rem;
  padding: 1.2rem var(--gutter);
}

.faq-page .faq-topic-nav a {
  display: inline-flex;
  min-height: 44px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: .65rem 1rem;
  border: 1px solid rgba(214, 165, 58, .22);
  border-radius: 999px;
  color: rgba(236, 230, 221, .78);
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  transition: border-color 180ms ease, color 180ms ease, background-color 180ms ease;
}

.faq-page .faq-topic-nav a:hover,
.faq-page .faq-topic-nav a:focus-visible {
  border-color: rgba(214, 165, 58, .6);
  background: rgba(214, 165, 58, .06);
  color: var(--ivory);
}

.faq-page .faq-topic-nav a:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}

.faq-page .faq-hub {
  padding-top: clamp(4.25rem, 8vw, 6.75rem);
}

.faq-page .faq-hub__category {
  width: min(100%, var(--faq-measure));
  margin-inline: auto;
  scroll-margin-top: calc(var(--header-h, 5rem) + 1.5rem);
}

.faq-page .faq-hub__category + .faq-hub__category {
  margin-top: var(--faq-gap-category);
}

.faq-page .faq-hub__category > h2 {
  margin: 0 0 clamp(1.35rem, 2.5vw, 1.85rem);
  color: var(--ivory);
  font-size: clamp(2.5rem, 4.25vw, 3.75rem);
  line-height: .98;
  letter-spacing: -.025em;
  text-align: center;
}

.faq-page .faq-hub__list {
  display: grid;
  gap: .75rem;
}

.faq-page .faq-hub__list details {
  border: 1px solid var(--faq-border);
  border-radius: .72rem;
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .018), transparent 42%),
    var(--faq-panel);
  transition: border-color 180ms ease, background-color 180ms ease;
}

.faq-page .faq-hub__list details[open] {
  border-color: var(--faq-border-active);
}

.faq-page .faq-hub__list summary {
  position: relative;
  display: flex;
  min-height: 4.75rem;
  align-items: center;
  padding: 1.15rem 4.5rem 1.15rem 1.45rem;
  color: rgba(250, 247, 241, .94);
  cursor: pointer;
  font-size: clamp(1rem, 1.25vw, 1.13rem);
  font-weight: 500;
  line-height: 1.42;
  list-style: none;
  transition: color 180ms ease, background-color 180ms ease;
}

.faq-page .faq-hub__list summary::-webkit-details-marker {
  display: none;
}

.faq-page .faq-hub__list summary::before,
.faq-page .faq-hub__list summary::after {
  position: absolute;
  top: 50%;
  right: 1.55rem;
  width: 1.15rem;
  height: 1px;
  background: var(--gold-light);
  content: "";
  transform: translateY(-50%);
  transform-origin: center;
  transition: transform 220ms cubic-bezier(.22, 1, .36, 1), opacity 180ms ease;
}

.faq-page .faq-hub__list summary::after {
  transform: translateY(-50%) rotate(90deg);
}

.faq-page .faq-hub__list details[open] summary::after {
  opacity: 0;
  transform: translateY(-50%) rotate(0deg);
}

.faq-page .faq-hub__list summary:hover {
  color: #fff;
  background: rgba(255, 255, 255, .018);
}

.faq-page .faq-hub__list summary:focus-visible {
  z-index: 1;
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
  border-radius: .58rem;
}

.faq-page .faq-hub__answer {
  overflow: clip;
}

.faq-page .faq-hub__answer > div {
  padding: 0 4.5rem 1.45rem 1.45rem;
}

.faq-page .faq-hub__answer p {
  max-width: 47rem;
  margin: 0;
  color: rgba(201, 193, 183, .9);
  font-size: .96rem;
  line-height: 1.72;
}

.faq-page .faq-hub__answer a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  margin-top: .7rem;
  color: var(--gold-light);
  font-size: .88rem;
  font-weight: 600;
  text-underline-offset: .25em;
}

.faq-page .faq-hub__answer a:hover {
  color: var(--ivory);
}

.faq-page .faq-hub__answer a:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
  border-radius: .15rem;
}

.faq-page .faq-closing-section {
  padding-top: clamp(5.25rem, 9vw, 7.5rem);
}

@media (min-width: 1280px) {
  .faq-page .faq-hero__copy {
    width: min(100%, 76rem);
  }

  .faq-page .faq-hero__copy h1 {
    font-size: clamp(5.4rem, 6vw, 7rem);
  }
}

@media (max-width: 1180px) {
  .faq-page .faq-topic-nav__rail {
    gap: .4rem;
  }

  .faq-page .faq-topic-nav a {
    padding-inline: .75rem;
    font-size: .72rem;
  }
}

@media (max-width: 1024px) {
  .faq-page .faq-topic-nav__rail {
    max-width: none;
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: var(--gutter);
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .faq-page .faq-topic-nav__rail::-webkit-scrollbar {
    display: none;
  }

  .faq-page .faq-topic-nav a {
    min-width: max-content;
    padding-inline: 1rem;
    scroll-snap-align: start;
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .faq-page .faq-hero {
    min-height: clamp(42rem, 84svh, 54rem);
  }

  .faq-page .faq-hero__media img {
    object-position: center;
  }

  .faq-page .faq-hero__copy {
    width: min(100%, 43rem);
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  .faq-page .faq-hero {
    min-height: clamp(34rem, 78svh, 42rem);
  }

  .faq-page .faq-hero__copy {
    width: min(100%, 50rem);
  }
}

@media (max-width: 767px) {
  .faq-page .faq-hero {
    min-height: clamp(41rem, 91svh, 48rem);
  }

  .faq-page .faq-hero__overlay {
    background:
      radial-gradient(ellipse 72% 48% at 50% 40%, rgba(0, 0, 0, .45), rgba(0, 0, 0, .15) 65%, transparent),
      linear-gradient(180deg, rgba(0, 0, 0, .45) 0%, rgba(0, 0, 0, .16) 34%, rgba(0, 0, 0, .65) 100%);
  }

  .faq-page .faq-hero__inner {
    align-items: center;
    padding-top: calc(var(--header-h, 4.5rem) + 2rem);
    padding-bottom: 4rem;
  }

  .faq-page .faq-hero__copy {
    width: min(100%, 31rem);
  }

  .faq-page .faq-hero__copy .eyebrow {
    margin-bottom: 1.1rem;
  }

  .faq-page .faq-hero__copy h1 {
    max-width: 8.8ch;
    margin-inline: auto;
    font-size: clamp(3.35rem, 15.4vw, 4.65rem);
    line-height: .9;
  }

  .faq-page .faq-hero__copy .lead {
    max-width: 33rem;
    margin-top: 1.45rem;
    font-size: clamp(.92rem, 3.95vw, 1.02rem);
    line-height: 1.62;
  }

  .faq-page .faq-topic-nav__rail {
    gap: .55rem;
    padding-block: 1rem;
  }

  .faq-page .faq-topic-nav a {
    min-height: 46px;
    padding-inline: 1.05rem;
    font-size: .77rem;
  }

  .faq-page .faq-hub {
    padding-top: clamp(3.5rem, 12vw, 4.5rem);
  }

  .faq-page .faq-hub__category + .faq-hub__category {
    margin-top: clamp(3.35rem, 12vw, 4.35rem);
  }

  .faq-page .faq-hub__category > h2 {
    margin-bottom: 1.25rem;
    font-size: clamp(2.25rem, 10.5vw, 3rem);
  }

  .faq-page .faq-hub__list {
    gap: .65rem;
  }

  .faq-page .faq-hub__list details {
    border-radius: .62rem;
  }

  .faq-page .faq-hub__list summary {
    min-height: 4.35rem;
    padding: 1rem 3.45rem 1rem 1rem;
    font-size: .98rem;
    line-height: 1.42;
  }

  .faq-page .faq-hub__list summary::before,
  .faq-page .faq-hub__list summary::after {
    right: 1.1rem;
    width: 1.05rem;
  }

  .faq-page .faq-hub__answer > div {
    padding: 0 1rem 1.15rem;
  }

  .faq-page .faq-hub__answer p {
    font-size: .9rem;
    line-height: 1.67;
  }

  .faq-page .faq-closing-section {
    padding-top: clamp(4.5rem, 14vw, 5.5rem);
  }
}

@media (max-width: 390px) {
  .faq-page .faq-hero__copy h1 {
    font-size: clamp(3.15rem, 15vw, 3.65rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .faq-page .faq-topic-nav a,
  .faq-page .faq-hub__list details,
  .faq-page .faq-hub__list summary,
  .faq-page .faq-hub__list summary::before,
  .faq-page .faq-hub__list summary::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (scripting: none) {
  .faq-page .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =====================================================================
   FASE 2A BLOG — Hub editorial médico
   Hero art-directed + navegación temática + biblioteca + CTA transversal.
   Todo queda encapsulado bajo .blog-page para no alterar otras páginas.
   ===================================================================== */

.blog-page {
  --blog-border: rgba(214, 165, 58, .22);
  --blog-border-soft: rgba(214, 165, 58, .13);
  --blog-panel: #111113;
  --blog-panel-deep: #0a0a0b;
  background: var(--ink);
}

.blog-page main {
  overflow: clip;
}

.blog-page .blog-hero {
  position: relative;
  display: grid;
  min-height: clamp(33rem, 70svh, 43rem);
  overflow: hidden;
  border-bottom: 1px solid var(--blog-border-soft);
  isolation: isolate;
}

.blog-page .blog-hero__media,
.blog-page .blog-hero__media img,
.blog-page .blog-hero__overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.blog-page .blog-hero__media {
  z-index: -3;
}

.blog-page .blog-hero__media img {
  object-fit: cover;
  object-position: center;
}

.blog-page .blog-hero__overlay {
  z-index: -2;
  background:
    radial-gradient(ellipse 53% 58% at 50% 48%, rgba(0, 0, 0, .26), rgba(0, 0, 0, .08) 62%, transparent 80%),
    linear-gradient(180deg, rgba(0, 0, 0, .36) 0%, rgba(0, 0, 0, .08) 31%, rgba(0, 0, 0, .22) 70%, rgba(0, 0, 0, .62) 100%);
  pointer-events: none;
}

.blog-page .blog-hero__inner {
  display: grid;
  min-height: inherit;
  place-items: center;
  padding-top: calc(var(--header-h, 5rem) + clamp(1.75rem, 4vw, 3rem));
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.blog-page .blog-hero__copy {
  width: min(100%, 66rem);
  margin-inline: auto;
  text-align: center;
}

.blog-page .blog-hero__copy h1 {
  max-width: 100%;
  margin: 0;
  color: var(--ivory);
  font-size: clamp(4.7rem, 6.25vw, 6.75rem);
  line-height: .9;
  letter-spacing: -.035em;
  text-wrap: balance;
}

.blog-page .blog-hero__copy .lead {
  max-width: 54rem;
  margin: clamp(1.35rem, 2.4vw, 2rem) auto 0;
  color: rgba(232, 225, 216, .82);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  line-height: 1.7;
  text-wrap: balance;
}

.blog-page .blog-topic-nav {
  position: relative;
  z-index: 2;
  border-bottom: 1px solid var(--blog-border-soft);
  background: rgba(7, 7, 8, .96);
}

.blog-page .blog-topic-nav__rail {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  gap: .55rem;
  padding-block: 1rem;
}

.blog-page .blog-topic-nav a {
  display: inline-flex;
  min-height: 44px;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: .7rem 1rem;
  border: 1px solid var(--blog-border);
  border-radius: var(--radius-pill);
  background: rgba(16, 16, 18, .72);
  color: rgba(232, 225, 216, .82);
  font-size: .78rem;
  font-weight: 600;
  line-height: 1;
  transition:
    color var(--t-fast) var(--ease),
    border-color var(--t-fast) var(--ease),
    background var(--t-fast) var(--ease);
}

.blog-page .blog-topic-nav a:hover {
  border-color: rgba(246, 197, 85, .56);
  background: rgba(214, 165, 58, .07);
  color: var(--gold-light);
}

.blog-page .blog-topic-nav a:focus-visible,
.blog-page .blog-featured__media:focus-visible,
.blog-page .blog-card__media:focus-visible,
.blog-page .blog-featured h2 a:focus-visible,
.blog-page .blog-card h3 a:focus-visible,
.blog-page .blog-editorial-link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

.blog-page .blog-featured {
  padding-top: clamp(4.75rem, 8vw, 7.5rem);
}

.blog-page .blog-featured__article {
  display: grid;
  min-width: 0;
  gap: clamp(2rem, 5vw, 5.25rem);
  align-items: center;
}

.blog-page .blog-featured__media,
.blog-page .blog-card__media {
  display: block;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--blog-border-soft);
  background: var(--blog-panel-deep);
}

.blog-page .blog-featured__media {
  border-radius: clamp(1rem, 2vw, 1.6rem);
}

.blog-page .blog-featured__media picture,
.blog-page .blog-card__media picture {
  display: block;
}

.blog-page .blog-featured__media img,
.blog-page .blog-card__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1586 / 992;
  object-fit: cover;
  transition: transform .65s var(--ease-out), opacity .35s var(--ease);
}

.blog-page .blog-featured__media:hover img,
.blog-page .blog-card__media:hover img {
  transform: scale(1.018);
}

.blog-page .blog-featured__copy {
  max-width: 33rem;
}

.blog-page .blog-article-category {
  margin: 0 0 1.05rem;
  color: var(--gold-light);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
  line-height: 1.4;
  text-transform: uppercase;
}

.blog-page .blog-featured__copy h2,
.blog-page .blog-library__head h2,
.blog-page .blog-card h3 {
  color: var(--ivory);
  text-wrap: balance;
}

.blog-page .blog-featured__copy h2 {
  max-width: 16ch;
  margin: 0;
  font-size: clamp(2.8rem, 4.1vw, 4.15rem);
  line-height: .94;
}

.blog-page .blog-featured__copy h2 a,
.blog-page .blog-card h3 a {
  color: inherit;
}

.blog-page .blog-featured__copy > p:not(.blog-article-category) {
  max-width: 48ch;
  margin: clamp(1.35rem, 2.5vw, 1.9rem) 0 0;
  color: rgba(201, 193, 183, .9);
  font-size: clamp(.96rem, 1.18vw, 1.05rem);
  line-height: 1.75;
}

.blog-page .blog-editorial-link {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: .6rem;
  margin-top: 1.35rem;
  color: var(--gold-light);
  font-size: .88rem;
  font-weight: 650;
  line-height: 1.2;
  transition: color var(--t-fast) var(--ease), gap var(--t-fast) var(--ease);
}

.blog-page .blog-editorial-link:hover {
  gap: .78rem;
  color: var(--ivory);
}

.blog-page .blog-library {
  padding-top: clamp(5.5rem, 9vw, 8.5rem);
}

.blog-page .blog-library__head {
  width: min(100%, 49rem);
  margin: 0 auto clamp(2.5rem, 5vw, 4.25rem);
  text-align: center;
}

.blog-page .blog-library__head h2 {
  max-width: 15ch;
  margin: 0 auto;
  font-size: clamp(2.75rem, 5vw, 4.8rem);
  line-height: .95;
}

.blog-page .blog-library__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 25rem), 1fr));
  gap: clamp(1.25rem, 2.5vw, 2rem);
}

.blog-page .blog-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--blog-border-soft);
  border-radius: clamp(.9rem, 1.6vw, 1.25rem);
  background: var(--blog-panel);
  transition: border-color var(--t) var(--ease), background var(--t) var(--ease);
}

.blog-page .blog-card:hover {
  border-color: rgba(214, 165, 58, .28);
  background: #131315;
}

.blog-page .blog-card__media {
  border: 0;
  border-bottom: 1px solid var(--blog-border-soft);
  border-radius: 0;
}

.blog-page .blog-card__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.5rem, 3vw, 2.15rem);
  text-align: left;
}

.blog-page .blog-card h3 {
  max-width: 18ch;
  margin: 0;
  font-size: clamp(2rem, 3vw, 2.75rem);
  line-height: .98;
}

.blog-page .blog-card__body > p:not(.blog-article-category) {
  max-width: 48ch;
  margin: 1.2rem 0 0;
  color: rgba(201, 193, 183, .86);
  font-size: .93rem;
  line-height: 1.7;
}

.blog-page .blog-card .blog-editorial-link {
  margin-top: auto;
  padding-top: 1.3rem;
}

.blog-page .blog-educational-note {
  padding-top: clamp(4rem, 7vw, 6.25rem);
}

.blog-page .blog-educational-note p {
  width: min(100%, 60rem);
  margin: 0 auto;
  padding: clamp(1.15rem, 2.5vw, 1.55rem) clamp(1rem, 3vw, 2rem);
  border-block: 1px solid var(--blog-border-soft);
  color: rgba(201, 193, 183, .88);
  font-size: clamp(.86rem, 1.1vw, .96rem);
  line-height: 1.65;
  text-align: center;
}

.blog-page .blog-closing-section.section {
  padding-top: clamp(4.75rem, 8vw, 7rem);
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

@media (min-width: 1024px) {
  .blog-page .blog-featured__article {
    grid-template-columns: minmax(0, 1.16fr) minmax(20rem, .84fr);
  }
}

@media (min-width: 1280px) {
  .blog-page .blog-hero__copy h1 {
    font-size: clamp(5.3rem, 6.1vw, 6.75rem);
  }
}

@media (max-width: 1024px) {
  .blog-page .blog-topic-nav__rail {
    justify-content: flex-start;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-padding-inline: 0;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
  }

  .blog-page .blog-topic-nav__rail::-webkit-scrollbar {
    display: none;
  }

  .blog-page .blog-topic-nav a {
    scroll-snap-align: start;
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .blog-page .blog-hero {
    min-height: clamp(43rem, 78svh, 52rem);
  }

  .blog-page .blog-hero__copy {
    width: min(100%, 43rem);
  }

  .blog-page .blog-hero__copy h1 {
    font-size: clamp(4.45rem, 10vw, 5.5rem);
  }

  .blog-page .blog-featured__article {
    width: min(100%, 46rem);
    margin-inline: auto;
  }
}

@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  .blog-page .blog-featured__article {
    grid-template-columns: minmax(0, 1.08fr) minmax(18rem, .92fr);
    gap: clamp(2rem, 4vw, 3rem);
  }

  .blog-page .blog-featured__copy h2 {
    font-size: clamp(2.65rem, 4.6vw, 3.35rem);
  }
}

@media (max-width: 767px) {
  .blog-page .blog-hero {
    min-height: clamp(35rem, 78svh, 44rem);
  }

  .blog-page .blog-hero__overlay {
    background:
      radial-gradient(ellipse 76% 46% at 50% 39%, rgba(0, 0, 0, .32), rgba(0, 0, 0, .08) 68%, transparent 86%),
      linear-gradient(180deg, rgba(0, 0, 0, .36) 0%, rgba(0, 0, 0, .08) 35%, rgba(0, 0, 0, .28) 68%, rgba(0, 0, 0, .7) 100%);
  }

  .blog-page .blog-hero__inner {
    align-items: center;
    padding-top: calc(var(--header-h, 4rem) + 1.5rem);
    padding-bottom: 3.25rem;
  }

  .blog-page .blog-hero__copy {
    width: min(100%, 31rem);
  }

  .blog-page .blog-hero__copy h1 {
    max-width: 11.5ch;
    margin-inline: auto;
    font-size: clamp(3.2rem, 14.6vw, 4rem);
    line-height: .91;
  }

  .blog-page .blog-hero__copy .lead {
    max-width: 34rem;
    margin-top: 1.35rem;
    font-size: clamp(.92rem, 3.85vw, 1.02rem);
    line-height: 1.63;
  }

  .blog-page .blog-topic-nav__rail {
    gap: .55rem;
  }

  .blog-page .blog-topic-nav a {
    min-height: 46px;
    padding-inline: 1.05rem;
    font-size: .77rem;
  }

  .blog-page .blog-featured {
    padding-top: clamp(4rem, 14vw, 5.25rem);
  }

  .blog-page .blog-featured__article {
    gap: 1.7rem;
  }

  .blog-page .blog-featured__copy h2 {
    max-width: 16ch;
    font-size: clamp(2.75rem, 12vw, 3.55rem);
  }

  .blog-page .blog-library {
    padding-top: clamp(4.5rem, 16vw, 6rem);
  }

  .blog-page .blog-library__head {
    margin-bottom: 2rem;
  }

  .blog-page .blog-library__head h2 {
    font-size: clamp(2.75rem, 12vw, 3.65rem);
  }

  .blog-page .blog-library__grid {
    gap: 1rem;
  }

  .blog-page .blog-card h3 {
    font-size: clamp(2.15rem, 9.5vw, 2.7rem);
  }

  .blog-page .blog-educational-note {
    padding-top: clamp(3.5rem, 13vw, 4.75rem);
  }

  .blog-page .blog-closing-section.section {
    padding-top: clamp(4rem, 14vw, 5.25rem);
    padding-bottom: 1.5rem;
  }

  .blog-page .closing.home-closing {
    padding-block: 2rem;
  }
}

@media (max-width: 390px) {
  .blog-page .blog-hero__copy h1 {
    font-size: clamp(3.05rem, 14.4vw, 3.5rem);
  }

  .blog-page .blog-card__body {
    padding: 1.35rem;
  }
}

@media (hover: none) {
  .blog-page .blog-featured__media:hover img,
  .blog-page .blog-card__media:hover img {
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .blog-page .blog-topic-nav a,
  .blog-page .blog-featured__media img,
  .blog-page .blog-card__media img,
  .blog-page .blog-card,
  .blog-page .blog-editorial-link {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

@media (scripting: none) {
  .blog-page .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =====================================================================
   FASE 2B BLOG — Plantilla editorial compartida de artículos
   ===================================================================== */

.article-template {
  --article-panel: #111113;
  --article-panel-soft: #0e0e10;
  --article-border: rgba(214, 165, 58, .16);
  --article-border-strong: rgba(214, 165, 58, .3);
  --article-copy: rgba(232, 226, 218, .84);
  --article-muted: rgba(201, 193, 183, .78);
  overflow-x: clip;
  background: var(--ink);
}

.article-template .article-editorial__header {
  padding-top: calc(var(--header-h, 4.75rem) + clamp(2.5rem, 5vw, 5rem));
}

.article-template .article-editorial__intro {
  width: min(100%, 62rem);
  margin-inline: auto;
  text-align: center;
}

.article-template .article-breadcrumb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  min-height: 2.75rem;
  margin-bottom: clamp(1.25rem, 2.2vw, 1.8rem);
  color: var(--article-muted);
  font-size: clamp(.78rem, 1vw, .9rem);
  line-height: 1.35;
}

.article-template .article-breadcrumb a {
  color: var(--gold-light);
  text-decoration: none;
  text-underline-offset: .28em;
}

.article-template .article-breadcrumb a:hover {
  text-decoration: underline;
}

.article-template .article-editorial__intro h1 {
  max-width: 19ch;
  margin: 0 auto;
  font-size: clamp(4rem, 6.1vw, 5.8rem);
  line-height: .94;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.article-template .article-editorial__lead {
  max-width: 50rem;
  margin: clamp(1.45rem, 2.5vw, 2rem) auto 0;
  color: var(--article-muted);
  font-size: clamp(1rem, 1.5vw, 1.22rem);
  line-height: 1.65;
  text-wrap: balance;
}

.article-template .article-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .55rem;
  margin: 1.2rem 0 0;
  color: rgba(234, 182, 69, .9);
  font-size: clamp(.74rem, .9vw, .83rem);
  font-weight: 600;
  letter-spacing: .09em;
  line-height: 1.5;
  text-transform: uppercase;
}

.article-template .article-editorial__cover {
  display: block;
  width: min(100%, 72.5rem);
  margin: clamp(2.6rem, 5vw, 4.5rem) auto 0;
  overflow: hidden;
  border: 1px solid var(--article-border);
  border-radius: clamp(1rem, 2vw, 1.6rem);
  background: var(--article-panel-soft);
}

.article-template .article-editorial__cover img {
  display: block;
  width: 100%;
  height: auto;
}

.article-template .article-summary {
  padding-top: clamp(2.5rem, 5vw, 4.25rem);
}

.article-template .article-summary__panel {
  display: grid;
  width: min(100%, 58rem);
  margin-inline: auto;
  padding: clamp(1.4rem, 3vw, 2.25rem);
  border: 1px solid var(--article-border);
  border-radius: var(--radius-lg);
  background: var(--article-panel);
}

.article-template .article-summary__panel h2 {
  margin: 0;
  font-size: clamp(2rem, 3.5vw, 2.85rem);
  line-height: 1;
}

.article-template .article-summary__panel ul {
  display: grid;
  gap: .8rem;
  margin: 1.1rem 0 0;
  padding: 0;
  list-style: none;
}

.article-template .article-summary__panel li {
  position: relative;
  padding-left: 1.25rem;
  color: var(--article-copy);
  font-size: clamp(.92rem, 1.2vw, 1rem);
  line-height: 1.65;
}

.article-template .article-summary__panel li::before {
  position: absolute;
  top: .76em;
  left: 0;
  width: .55rem;
  height: 1px;
  background: var(--gold);
  content: "";
}

.article-template .article-editorial__layout {
  display: grid;
  justify-content: center;
  padding-top: clamp(3.5rem, 7vw, 6.25rem);
}

.article-template .article-editorial__main {
  width: min(100%, 45rem);
  min-width: 0;
  margin-inline: auto;
}

.article-template .article-toc--desktop {
  display: none;
}

.article-template .article-toc-mobile {
  width: 100%;
  margin: 0 0 clamp(2.8rem, 7vw, 4.25rem);
  border: 1px solid var(--article-border);
  border-radius: var(--radius-md);
  background: var(--article-panel);
}

.article-template .article-toc-mobile summary {
  position: relative;
  display: flex;
  min-height: 3.25rem;
  align-items: center;
  padding: .85rem 3rem .85rem 1rem;
  color: var(--cream);
  font-size: .88rem;
  font-weight: 700;
  letter-spacing: .1em;
  list-style: none;
  text-transform: uppercase;
  cursor: pointer;
}

.article-template .article-toc-mobile summary::-webkit-details-marker {
  display: none;
}

.article-template .article-toc-mobile summary::after {
  position: absolute;
  right: 1rem;
  color: var(--gold-light);
  font-size: 1.25rem;
  font-weight: 400;
  content: "+";
}

.article-template .article-toc-mobile[open] summary::after {
  content: "−";
}

.article-template .article-toc-mobile nav {
  display: grid;
  padding: 0 1rem .75rem;
  border-top: 1px solid var(--article-border);
}

.article-template .article-toc-mobile nav a {
  display: flex;
  min-height: 3rem;
  align-items: center;
  padding-block: .65rem;
  border-bottom: 1px solid rgba(214, 165, 58, .1);
  color: var(--article-muted);
  font-size: .88rem;
  line-height: 1.45;
  text-decoration: none;
}

.article-template .article-toc-mobile nav a:last-child {
  border-bottom: 0;
}

.article-template .article-body {
  color: var(--article-copy);
  font-size: clamp(1.02rem, 1.3vw, 1.1rem);
  line-height: 1.82;
}

.article-template .article-body > section + section {
  margin-top: clamp(3.5rem, 7vw, 5.25rem);
}

.article-template .article-body h2 {
  max-width: 21ch;
  margin: 0 0 1.15rem;
  font-size: clamp(2.35rem, 4.2vw, 3.25rem);
  line-height: 1;
  letter-spacing: -.012em;
  scroll-margin-top: calc(var(--header-h, 4.75rem) + 2rem);
  text-wrap: balance;
}

.article-template .article-body p {
  margin: 0;
}

.article-template .article-body p + p,
.article-template .article-body p + ul,
.article-template .article-body ul + p,
.article-template .article-body .article-callout + p {
  margin-top: 1.1rem;
}

.article-template .article-callout,
.article-template .article-note {
  padding: 1.2rem 1.35rem;
  border-left: 2px solid var(--gold);
  background: rgba(214, 165, 58, .055);
}

.article-template .article-callout {
  margin-top: 1.45rem;
}

.article-template .article-callout strong,
.article-template .article-note strong {
  display: block;
  margin-bottom: .45rem;
  color: var(--gold-light);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .12em;
  line-height: 1.4;
  text-transform: uppercase;
}

.article-template .article-callout p,
.article-template .article-note p {
  color: rgba(232, 226, 218, .78);
  font-size: .93rem;
  line-height: 1.7;
}

.article-template .article-checklist {
  display: grid;
  gap: .75rem;
  margin: 1.35rem 0 0;
  padding: 0;
  list-style: none;
}

.article-template .article-checklist li {
  position: relative;
  padding-left: 1.3rem;
  color: rgba(232, 226, 218, .82);
  line-height: 1.65;
}

.article-template .article-checklist li::before {
  position: absolute;
  top: .73em;
  left: 0;
  width: .45rem;
  height: .45rem;
  border: 1px solid rgba(234, 182, 69, .72);
  border-radius: 50%;
  content: "";
}

.article-template .article-context-link {
  color: var(--article-muted);
  font-size: .95em;
}

.article-template .article-context-link a,
.article-template .article-body a {
  color: var(--gold-light);
  text-decoration-color: rgba(234, 182, 69, .42);
  text-decoration-thickness: 1px;
  text-underline-offset: .24em;
}

.article-template .article-note {
  margin-top: clamp(3.5rem, 7vw, 5.5rem);
}

.article-template .article-related {
  padding-top: clamp(5rem, 9vw, 7.5rem);
}

.article-template .article-related__head {
  width: min(100%, 70rem);
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  text-align: center;
}

.article-template .article-related__head .eyebrow {
  margin-bottom: .9rem;
}

.article-template .article-related__head h2 {
  margin: 0;
  font-size: clamp(2.75rem, 5vw, 4rem);
  line-height: .98;
}

.article-template .article-related__grid {
  display: grid;
  width: min(100%, 70rem);
  margin-inline: auto;
  gap: 1rem;
}

.article-template .article-related-card {
  display: grid;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--article-border);
  border-radius: var(--radius-lg);
  background: var(--article-panel);
  transition: border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease);
}

.article-template .article-related-card__media {
  display: block;
  overflow: hidden;
  border-bottom: 1px solid var(--article-border);
}

.article-template .article-related-card__media img {
  display: block;
  width: 100%;
  height: auto;
  transition: transform .55s var(--ease-out);
}

.article-template .article-related-card__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  padding: clamp(1.25rem, 3vw, 1.8rem);
}

.article-template .article-related-card__meta {
  margin: 0;
  color: var(--gold-light);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.45;
  text-transform: uppercase;
}

.article-template .article-related-card h3 {
  max-width: 19ch;
  margin: .85rem 0 0;
  font-size: clamp(2rem, 3.2vw, 2.65rem);
  line-height: .98;
  text-wrap: balance;
}

.article-template .article-related-card h3 a {
  color: var(--cream);
  text-decoration: none;
}

.article-template .article-text-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: .35rem;
  margin-top: auto;
  padding-top: 1.15rem;
  color: var(--gold-light);
  font-size: .82rem;
  font-weight: 700;
  text-decoration: none;
}

.article-template .article-closing-section.section {
  padding-top: clamp(5rem, 9vw, 7.5rem);
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

.article-template a:focus-visible,
.article-template summary:focus-visible {
  border-radius: .35rem;
  outline: 2px solid var(--gold-light);
  outline-offset: 4px;
}

@media (hover: hover) {
  .article-template .article-related-card:hover {
    border-color: var(--article-border-strong);
    background: #131315;
  }

  .article-template .article-related-card__media:hover img {
    transform: scale(1.015);
  }
}

@media (min-width: 768px) {
  .article-template .article-summary__panel {
    grid-template-columns: minmax(12rem, .72fr) minmax(0, 1.28fr);
    align-items: start;
    gap: clamp(2rem, 5vw, 4rem);
  }

  .article-template .article-summary__panel ul {
    margin-top: 0;
  }

  .article-template .article-related__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1100px) {
  .article-template .article-editorial__layout {
    grid-template-columns: 13.25rem minmax(0, 45rem);
    align-items: start;
    gap: clamp(3.5rem, 6vw, 5.5rem);
  }

  .article-template .article-toc--desktop {
    position: sticky;
    top: calc(var(--header-h, 4.75rem) + 2rem);
    display: block;
    align-self: start;
    max-height: calc(100svh - var(--header-h, 4.75rem) - 4rem);
    overflow-y: auto;
    padding: 1.1rem 0;
    border-block: 1px solid var(--article-border);
  }

  .article-template .article-toc > p {
    margin: 0 0 .55rem;
    color: var(--gold-light);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    line-height: 1.4;
    text-transform: uppercase;
  }

  .article-template .article-toc nav {
    display: grid;
  }

  .article-template .article-toc nav a {
    display: flex;
    min-height: 2.85rem;
    align-items: center;
    padding: .6rem 0;
    border-bottom: 1px solid rgba(214, 165, 58, .1);
    color: var(--article-muted);
    font-size: .82rem;
    line-height: 1.45;
    text-decoration: none;
  }

  .article-template .article-toc nav a:last-child {
    border-bottom: 0;
  }

  .article-template .article-toc nav a:hover {
    color: var(--cream);
  }

  .article-template .article-toc-mobile {
    display: none;
  }
}

@media (min-width: 1280px) {
  .article-template .article-editorial__intro h1 {
    font-size: clamp(4.8rem, 5.4vw, 5.8rem);
  }
}

@media (max-width: 767px) {
  .article-template .article-editorial__header {
    padding-top: calc(var(--header-h, 4rem) + 2rem);
  }

  .article-template .article-breadcrumb {
    gap: .45rem;
    margin-bottom: 1rem;
    font-size: .76rem;
    white-space: nowrap;
  }

  .article-template .article-editorial__intro h1 {
    max-width: 18ch;
    font-size: clamp(2.25rem, 9.5vw, 3.15rem);
    line-height: .96;
  }

  .article-template .article-editorial__lead {
    margin-top: 1.2rem;
    font-size: .95rem;
    line-height: 1.62;
  }

  .article-template .article-meta {
    margin-top: 1rem;
    font-size: .68rem;
  }

  .article-template .article-editorial__cover {
    margin-top: 2rem;
    border-radius: 1rem;
  }

  .article-template .article-summary {
    padding-top: 2rem;
  }

  .article-template .article-summary__panel {
    border-radius: 1rem;
  }

  .article-template .article-summary__panel h2 {
    font-size: 2.15rem;
  }

  .article-template .article-editorial__layout {
    padding-top: 3.25rem;
  }

  .article-template .article-body h2 {
    font-size: clamp(2.15rem, 9.8vw, 2.7rem);
  }

  .article-template .article-related {
    padding-top: 4.5rem;
  }

  .article-template .article-related__head {
    margin-bottom: 1.65rem;
  }

  .article-template .article-related__head h2 {
    font-size: clamp(2.75rem, 12vw, 3.35rem);
  }

  .article-template .article-related-card h3 {
    font-size: clamp(2rem, 9vw, 2.45rem);
  }

  .article-template .article-closing-section.section {
    padding-top: 4.5rem;
    padding-bottom: 1.5rem;
  }

  .article-template .closing.home-closing {
    padding-block: 2rem;
  }
}

@media (max-width: 390px) {
  .article-template .article-editorial__intro h1 {
    font-size: clamp(2.16rem, 9.35vw, 2.4rem);
  }

  .article-template .article-breadcrumb {
    font-size: .72rem;
  }

  .article-template .article-summary__panel,
  .article-template .article-related-card__body {
    padding-inline: 1.2rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .article-template,
  .article-template *,
  .article-template *::before,
  .article-template *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  .article-template .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (scripting: none) {
  .article-template .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* =====================================================================
   AGENDAR DEFINITIVA — página puente de conversión por WhatsApp
   Sistema completamente encapsulado bajo body.appointment-page.
   ===================================================================== */

body.appointment-page {
  background: #050505;
}

body.appointment-page .appointment-main {
  overflow: clip;
}

body.appointment-page .appointment-shell {
  width: min(calc(100% - clamp(2.5rem, 9vw, 8rem)), 1160px);
  max-width: none;
  margin-inline: auto;
}

body.appointment-page .appointment-shell--reading {
  width: min(calc(100% - clamp(2.5rem, 9vw, 8rem)), 860px);
}

body.appointment-page .appointment-hero {
  padding-top: calc(var(--header-h, 5rem) + clamp(3.5rem, 7vw, 6rem));
  padding-bottom: clamp(3rem, 5vw, 4.25rem);
  background: radial-gradient(ellipse 58% 46% at 50% 1%, rgba(214, 165, 58, .035), transparent 72%);
}

body.appointment-page .appointment-hero__head {
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

body.appointment-page .appointment-hero h1 {
  max-width: 20ch;
  margin: 0 auto;
  color: var(--cream);
  font-size: clamp(4.5rem, 7.35vw, 7rem);
  line-height: .9;
  letter-spacing: -.045em;
  text-wrap: normal;
}

body.appointment-page .appointment-hero .lead {
  max-width: 720px;
  margin: clamp(1.45rem, 2.5vw, 2rem) auto 0;
  color: var(--muted);
  font-size: clamp(1rem, 1.45vw, 1.18rem);
  line-height: 1.65;
}

body.appointment-page .appointment-modalities {
  padding-bottom: clamp(4.5rem, 7vw, 6.5rem);
}

body.appointment-page .appointment-options {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 1fr;
  gap: clamp(1rem, 2.5vw, 1.5rem);
}

body.appointment-page .appointment-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 100%;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid rgba(214, 165, 58, .22);
  border-radius: clamp(1rem, 2vw, 1.35rem);
  background: #101011;
  transition: border-color 220ms ease, background-color 220ms ease;
}

body.appointment-page .appointment-card:hover {
  border-color: rgba(214, 165, 58, .42);
  background: #121212;
}

body.appointment-page .appointment-card__label {
  display: block;
  margin-bottom: .9rem;
  color: var(--gold-2);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.25;
  text-transform: uppercase;
}

body.appointment-page .appointment-card h3 {
  margin: 0;
  color: var(--cream);
  font-size: clamp(2rem, 3vw, 2.65rem);
  line-height: 1;
  letter-spacing: -.025em;
}

body.appointment-page .appointment-price {
  display: flex;
  align-items: baseline;
  gap: .42rem;
  margin: clamp(1.3rem, 2.6vw, 1.75rem) 0 1rem;
  color: var(--gold-2);
  white-space: nowrap;
}

body.appointment-page .appointment-price__symbol,
body.appointment-page .appointment-price__currency {
  color: var(--muted);
  font-family: var(--font-sans);
  font-size: clamp(.82rem, 1.25vw, .95rem);
  font-weight: 600;
}

body.appointment-page .appointment-price__amount {
  font-family: var(--font-sans);
  font-size: clamp(3rem, 5vw, 4.1rem);
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .95;
}

body.appointment-page .appointment-card__copy {
  max-width: 46ch;
  margin: 0 0 clamp(1.6rem, 3vw, 2.2rem);
  color: var(--muted);
  font-size: .98rem;
  line-height: 1.7;
}

body.appointment-page .appointment-card__cta {
  align-self: stretch;
  justify-content: center;
  width: 100%;
  min-height: 50px;
  margin-top: auto;
}

body.appointment-page .appointment-process {
  padding-bottom: clamp(4.5rem, 7vw, 6.5rem);
}

body.appointment-page .appointment-section-head {
  max-width: 760px;
  margin: 0 auto clamp(2rem, 4vw, 3rem);
  text-align: center;
}

body.appointment-page .appointment-section-head h2,
body.appointment-page .appointment-help h2 {
  margin: 0;
  color: var(--cream);
  font-size: clamp(2.65rem, 5vw, 4.25rem);
  line-height: .96;
  letter-spacing: -.035em;
  text-wrap: balance;
}

body.appointment-page .appointment-process__list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(214, 165, 58, .18);
  border-bottom: 1px solid rgba(214, 165, 58, .18);
}

body.appointment-page .appointment-process__list li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: 1rem;
  min-width: 0;
  padding: clamp(1.4rem, 3vw, 2rem) 0;
}

body.appointment-page .appointment-process__list li + li {
  border-top: 1px solid var(--line-2);
}

body.appointment-page .appointment-process__number {
  color: var(--gold-2);
  font-family: var(--font-sans);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.6;
}

body.appointment-page .appointment-process h3 {
  margin: 0 0 .65rem;
  color: var(--cream);
  font-size: clamp(1.55rem, 2.5vw, 2rem);
  line-height: 1.05;
}

body.appointment-page .appointment-process p {
  margin: 0;
  color: var(--muted);
  font-size: .94rem;
  line-height: 1.65;
}

body.appointment-page .appointment-important {
  padding-bottom: clamp(4.5rem, 7vw, 6.5rem);
}

body.appointment-page .appointment-details {
  border-top: 1px solid rgba(214, 165, 58, .22);
  border-bottom: 1px solid rgba(214, 165, 58, .22);
}

body.appointment-page .appointment-detail + .appointment-detail {
  border-top: 1px solid var(--line-2);
}

body.appointment-page .appointment-detail summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  min-height: 64px;
  padding: 1rem .15rem;
  color: var(--cream);
  font-family: var(--font-sans);
  font-size: .98rem;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  list-style: none;
}

body.appointment-page .appointment-detail summary::-webkit-details-marker {
  display: none;
}

body.appointment-page .appointment-detail summary::marker {
  content: "";
}

body.appointment-page .appointment-detail__icon {
  position: relative;
  flex: 0 0 1.2rem;
  width: 1.2rem;
  height: 1.2rem;
}

body.appointment-page .appointment-detail__icon::before,
body.appointment-page .appointment-detail__icon::after {
  content: "";
  position: absolute;
  inset: 50% auto auto 50%;
  width: .9rem;
  height: 1px;
  background: var(--gold-2);
  transform: translate(-50%, -50%);
  transition: opacity 180ms ease, transform 180ms ease;
}

body.appointment-page .appointment-detail__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

body.appointment-page .appointment-detail[open] .appointment-detail__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}

body.appointment-page .appointment-detail__content {
  max-width: 68ch;
  padding: 0 3rem 1.35rem 0;
}

body.appointment-page .appointment-detail__content p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.7;
}

body.appointment-page .appointment-help {
  padding-bottom: clamp(3.25rem, 6vw, 5.25rem);
}

body.appointment-page .appointment-help__content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

body.appointment-page .appointment-help h2 {
  max-width: 14ch;
}

body.appointment-page .appointment-help p {
  max-width: 48ch;
  margin: 1.1rem auto 1.7rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.65;
}

body.appointment-page .appointment-help .btn {
  min-height: 50px;
}

body.appointment-page .appointment-main a:focus-visible,
body.appointment-page .appointment-main summary:focus-visible {
  outline: 2px solid var(--gold-2);
  outline-offset: 4px;
}

/* En Agendar los controles flotantes son redundantes y cubren las acciones. */
body.appointment-page .float-stack {
  display: none !important;
}

@media (min-width: 768px) {
  body.appointment-page .appointment-options {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.appointment-page .appointment-card {
    padding: clamp(1.8rem, 3.4vw, 2.45rem);
  }
}

@media (min-width: 960px) {
  body.appointment-page .appointment-process__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.appointment-page .appointment-process__list li {
    grid-template-columns: 1fr;
    align-content: start;
    padding: 2rem clamp(1.5rem, 3vw, 2.5rem);
  }

  body.appointment-page .appointment-process__list li + li {
    border-top: 0;
    border-left: 1px solid var(--line-2);
  }
}

@media (min-width: 1280px) {
  body.appointment-page .appointment-hero h1 {
    font-size: clamp(6rem, 7vw, 7rem);
  }
}

@media (max-width: 767px) {
  body.appointment-page .appointment-shell,
  body.appointment-page .appointment-shell--reading {
    width: calc(100% - 2.5rem);
  }

  body.appointment-page .appointment-hero {
    padding-top: calc(var(--header-h, 4rem) + clamp(2.25rem, 8vw, 3rem));
    padding-bottom: 2.75rem;
    background: radial-gradient(ellipse 76% 42% at 50% 0%, rgba(214, 165, 58, .03), transparent 74%);
  }

  body.appointment-page .appointment-hero h1 {
    max-width: 10ch;
    font-size: clamp(3.1rem, 13.8vw, 3.65rem);
    line-height: .9;
  }

  body.appointment-page .appointment-hero .lead {
    margin-top: 1.35rem;
    font-size: .98rem;
    line-height: 1.62;
  }

  body.appointment-page .appointment-modalities,
  body.appointment-page .appointment-process,
  body.appointment-page .appointment-important {
    padding-bottom: 4.25rem;
  }

  body.appointment-page .appointment-options {
    gap: 1rem;
  }

  body.appointment-page .appointment-card {
    padding: 1.4rem;
    border-radius: 1rem;
  }

  body.appointment-page .appointment-card h3 {
    font-size: clamp(2rem, 9vw, 2.35rem);
  }

  body.appointment-page .appointment-price {
    margin-top: 1.2rem;
  }

  body.appointment-page .appointment-price__amount {
    font-size: clamp(2.9rem, 13vw, 3.35rem);
  }

  body.appointment-page .appointment-card__copy {
    margin-bottom: 1.5rem;
    font-size: .94rem;
  }

  body.appointment-page .appointment-section-head {
    margin-bottom: 1.8rem;
  }

  body.appointment-page .appointment-section-head h2,
  body.appointment-page .appointment-help h2 {
    font-size: clamp(2.55rem, 11.5vw, 3.15rem);
  }

  body.appointment-page .appointment-process__list li {
    grid-template-columns: 2.5rem minmax(0, 1fr);
    gap: .8rem;
    padding: 1.35rem 0;
  }

  body.appointment-page .appointment-process h3 {
    font-size: 1.65rem;
  }

  body.appointment-page .appointment-detail summary {
    min-height: 60px;
    padding-block: .9rem;
  }

  body.appointment-page .appointment-detail__content {
    padding: 0 2.25rem 1.2rem 0;
  }

  body.appointment-page .appointment-help {
    padding-bottom: calc(2.5rem + env(safe-area-inset-bottom));
  }

  body.appointment-page .appointment-help .btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.appointment-page .appointment-main,
  body.appointment-page .appointment-main *,
  body.appointment-page .appointment-main *::before,
  body.appointment-page .appointment-main *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  body.appointment-page .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (scripting: none) {
  body.appointment-page .reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* Foto vertical del Home: encuadre bajo el header, solo en tablet. */
@media (min-width: 768px) and (max-width: 1024px) {
  body.home-page .home-opening .hero__media picture {
    padding-top: var(--header-h);
  }

  body.home-page .home-opening .hero__media img {
    width: auto;
    max-width: 100%;
    aspect-ratio: 4 / 3;
    margin-inline: auto;
    object-position: 50% 0%;
  }
}

/* Turismo: integración local de fotografía, alojamiento y consulta ReTHUS. */
.tourism-landing .tourism-virtual__media img {
  object-position: 50% 10%;
}

.tourism-landing .tourism-results .home-results__grid {
  margin-top: clamp(2.8rem, 4.8vw, 4.4rem);
}

.tourism-landing .tourism-stay__types > article,
.tourism-landing .tourism-stay__types > article + article {
  justify-items: center;
  text-align: center;
}

.tourism-landing .tourism-stay__type-icon {
  margin-inline: auto;
}

.tourism-landing .tourism-stay__types h3,
.tourism-landing .tourism-stay__types p {
  text-align: center;
}

.tourism-landing .tourism-hotel--luxury .tourism-hotel__featured,
.tourism-landing .tourism-hotel--luxury .tourism-hotel__rail-shell {
  width: min(100%, 800px);
}

.tourism-landing .tourism-hotel--luxury .tourism-hotel__featured {
  height: auto;
  max-height: none;
  aspect-ratio: 4 / 3;
}

.tourism-landing .tourism-hotel--luxury .tourism-hotel__featured img {
  object-position: center;
}

.tourism-landing .tourism-hotel--luxury .tourism-hotel__actions {
  margin-top: clamp(1.4rem, 2.6vw, 2rem);
  text-align: center;
}

.tourism-landing .tourism-faq__rethus-content {
  max-width: 44rem;
  padding: 0 3.5rem 1.65rem .25rem;
  color: var(--tourism-copy);
  line-height: 1.68;
}

.tourism-landing .tourism-faq__rethus-content > p {
  margin: 0;
}

.tourism-landing .tourism-faq__rethus-data {
  display: grid;
  gap: .75rem;
  margin: 1.25rem 0;
}

.tourism-landing .tourism-faq__rethus-data dt {
  color: var(--cream);
  font-weight: 600;
}

.tourism-landing .tourism-faq__rethus-data dd {
  margin: 0;
}

@media (max-width: 1024px) {
  .tourism-landing .tourism-stay__types > article,
  .tourism-landing .tourism-stay__types > article + article {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }

  .tourism-landing .tourism-stay__type-icon,
  .tourism-landing .tourism-stay__types h3,
  .tourism-landing .tourism-stay__types p {
    grid-column: auto;
    grid-row: auto;
  }

  .tourism-landing .tourism-stay__types h3 {
    margin-top: .8rem;
  }
}

@media (max-width: 767px) {
  .tourism-landing .tourism-results .home-results__grid {
    margin-top: 2.25rem;
  }

  .tourism-landing .tourism-faq__rethus-content {
    padding: 0 1.25rem 1.3rem .1rem;
    font-size: .92rem;
    line-height: 1.62;
  }
}

/* Testimonios — contenido estático primero; dos galerías independientes. */
.patient-page--testimonials main { overflow: visible; }
.patient-page--testimonials .patient-hero {
  padding-top: calc(var(--header-h) + clamp(32px, 5vw, 64px));
  padding-bottom: 0;
  background: var(--ink);
}
.patient-page--testimonials .testimonials-section { padding-top: 48px; }
.patient-page--testimonials .testimonials-section--images { padding-bottom: 64px; }
.patient-page--testimonials .testimonials-section__head {
  margin-bottom: 28px;
  text-align: center;
}
.patient-page--testimonials .testimonials-section__head h2 {
  margin: 0;
  font-size: clamp(2rem, 3.6vw, 3.25rem);
  line-height: 1.12;
  color: var(--cream);
}
.patient-page--testimonials .testimonials-section__head p {
  max-width: 65ch;
  margin: 14px auto 0;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.65;
}
.patient-page--testimonials .testimonials-videos,
.patient-page--testimonials .testimonials-images {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 20px;
  padding: 0;
  margin: 0;
  list-style: none;
}
.patient-page--testimonials .testimonials-video,
.patient-page--testimonials .testimonials-image { min-width: 0; margin: 0; }
.patient-page--testimonials .testimonials-video__link {
  display: block;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--ink-2);
  color: var(--cream);
  text-decoration: none;
}
.patient-page--testimonials .testimonials-video__poster {
  display: block;
  aspect-ratio: 9 / 16;
}
.patient-page--testimonials .testimonials-video__poster img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  border-radius: 9px 9px 0 0;
}
.patient-page--testimonials .testimonials-video__action {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 68px;
  padding: 12px 16px;
  font-size: .9rem;
  font-weight: 600;
}
.patient-page--testimonials .testimonials-video__play {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border: 1px solid rgba(214,165,58,.48);
  border-radius: 50%;
  color: var(--gold-light);
}
.patient-page--testimonials .testimonials-image__link,
.patient-page--testimonials .testimonials-image__link picture { display: block; }
.patient-page--testimonials .testimonials-image__link { border-radius: 8px; }
.patient-page--testimonials .testimonials-image__link img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
}
.patient-page--testimonials .testimonials-video__link:hover { border-color: var(--gold-light); }
.patient-page--testimonials .testimonials-video__link:focus-visible,
.patient-page--testimonials .testimonials-image__link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 5px;
}
.patient-page--testimonials .testimonials-images.is-masonry { position: relative; display: grid; }
.patient-page--testimonials .testimonials-images.is-masonry > .testimonials-image { position: absolute; }

/* Solo el modo Testimonios del overlay existente utiliza estos límites. */
.lightbox--testimonials {
  padding: max(76px, env(safe-area-inset-top)) 64px max(24px, env(safe-area-inset-bottom));
  overscroll-behavior: contain;
  background: rgba(2,2,3,.975);
}
.lightbox--testimonials [hidden] { display: none !important; }
.lightbox--testimonials .lightbox__content {
  width: min(1240px, 100%);
  max-height: calc(100dvh - 112px);
  gap: 12px;
}
.lightbox--testimonials .lightbox__picture { display: contents; }
.lightbox--testimonials .lightbox__content .lightbox__img,
.lightbox--testimonials .lightbox__video {
  display: block;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: calc(100dvh - 204px);
  min-height: 0;
  object-fit: contain;
  justify-self: center;
  border-radius: 8px;
  background: #050505;
  transform: none;
}
.lightbox--testimonials .lightbox__video { aspect-ratio: 9 / 16; }
.lightbox--testimonials .lightbox__meta { gap: 4px; }
.lightbox--testimonials .lightbox__meta .lightbox__caption {
  margin: 0;
  transform: none;
  color: var(--cream);
}
.lightbox--testimonials .lightbox__counter { color: var(--gold-light); }
.lightbox--testimonials .lightbox__testimonial-full,
.lightbox--testimonials .lightbox__direct-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: center;
  min-height: 44px;
  color: var(--gold-light);
  font-size: .82rem;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.lightbox--testimonials .lightbox__testimonial-full:focus-visible,
.lightbox--testimonials .lightbox__direct-link:focus-visible {
  outline: 2px solid var(--gold-light);
  outline-offset: 3px;
}
.lightbox--testimonials .lightbox__media-error {
  display: grid;
  justify-items: center;
  gap: 16px;
  padding: 24px;
  text-align: center;
}
@media (min-width: 768px) {
  .patient-page--testimonials .testimonials-section { padding-top: 72px; }
  .patient-page--testimonials .testimonials-section--videos { padding-top: 40px; }
  .patient-page--testimonials .testimonials-section--images { padding-bottom: 96px; }
  .patient-page--testimonials .testimonials-videos,
  .patient-page--testimonials .testimonials-images { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
}
@media (min-width: 1280px) {
  .patient-page--testimonials .testimonials-videos { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .patient-page--testimonials .testimonials-images { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .patient-page--testimonials main .container { padding-inline: 20px; }
  .patient-page--testimonials .testimonials-section--videos { padding-top: 32px; }
  .lightbox--testimonials { padding: max(68px, env(safe-area-inset-top)) 16px max(76px, env(safe-area-inset-bottom)); }
  .lightbox--testimonials .lightbox__content { width: 100%; max-height: calc(100dvh - 152px); }
  .lightbox--testimonials .lightbox__content .lightbox__img,
  .lightbox--testimonials .lightbox__video { max-height: calc(100dvh - 252px); }
  .lightbox--testimonials .lightbox__nav { top: auto; bottom: max(16px, env(safe-area-inset-bottom)); transform: none; width: 44px; height: 44px; }
  .lightbox--testimonials .lightbox__nav--prev { left: calc(50% - 56px); }
  .lightbox--testimonials .lightbox__nav--next { right: calc(50% - 56px); }
}
@media (prefers-reduced-motion: reduce) {
  .lightbox--testimonials,
  .lightbox--testimonials .lightbox__img,
  .lightbox--testimonials .lightbox__close,
  .lightbox--testimonials .lightbox__nav { transition: none; }
}
