/* ============================================================
   SONRISA VIVA — PAGES OVERRIDE (subpáginas globales) + THEMING
   El sistema soporta dos temas controlados por `data-theme` en <html>:
     - "dark"  → paleta editorial premium (gold sobre negro azulado). Default.
     - "light" → paleta clínica (verde médico sobre crema). Para vista diurna.
   theme.js decide cuál aplicar (prefers-color-scheme + localStorage + toggle).
   Las reglas con `!important` que vienen después usan var(--token), así que
   con cambiar los valores de las vars al alternar tema, todo el sitio queda
   re-coloreado sin tocar selectores.
   ============================================================ */

/* ─────────── TOKENS — TEMA OSCURO (default) ─────────── */
:root,
:root[data-theme="dark"]{
  --void:        #07080F;
  --void-2:      #0D0F1B;
  --void-3:      #161A2A;
  --void-4:      #1F2438;
  --gold:        #C9A86C;
  --gold-light:  #E6CC8F;
  --gold-glow:   rgba(201,168,108,0.18);
  --teal:        #1FCFC6;
  --teal-light:  #4DDDD2;
  --line-light:  rgba(255,255,255,0.10);
  --line-light-2:rgba(255,255,255,0.18);
  --line-dark:   rgba(255,255,255,0.08);

  /* Alias semánticos que el resto del CSS consume */
  --off-white:   #07080F;
  --cream:       #0D0F1B;
  --warm-gray:   #161A2A;
  --text:        #F0F1F5;
  --text-muted:  #B8BDD0;
  --text-light:  #8B92A8;
  --border:      rgba(255,255,255,0.10);
  --accent:      #C9A86C;
  --accent-light:#E6CC8F;
  --accent-pale: rgba(201,168,108,0.10);

  /* Tokens semánticos extra (theming claro/oscuro) */
  --surface-page:   var(--void);   /* fondo base de página */
  --surface-elev:   var(--void-2); /* secciones elevadas */
  --surface-card:   var(--void-3); /* tarjetas */
  --hairline:       var(--line-light);
  --hairline-strong:var(--line-light-2);
  --on-accent:      var(--void);   /* color sobre fondos de acento (texto/icono) */
  --shadow-rest:    0 4px 16px rgba(0,0,0,.35);
  --shadow-elev:    0 12px 40px rgba(0,0,0,.45);
  --img-tint:       brightness(.92); /* para imágenes muy claras se atenúan en dark */
  --scheme:         dark;
}

/* NOTA: en versiones previas aquí redefinía --cream-1/2/3 y --pure a valores
   oscuros para "dark" pensando que home.css los usaba solo como aliases del
   light. PERO home.css USA estos tokens INTENCIONALMENTE para crear bloques
   cream/blancos sobre el body dark (contraste editorial). Sobrescribirlos
   degradaba el look del modo oscuro. Mantenemos los valores de home.css
   intactos en dark. Para light theme se redefinen abajo en :root[data-theme="light"]. */

/* ─────────── TOKENS — TEMA CLARO ─────────── */
/* Filosofía: el dark NO se toca. Aquí solo redefinimos tokens cuando el sitio
   está en light. Las redefiniciones que más rinden son las semánticas globales:
   con cambiar `--t-light-1/2/3/4` (que home.css usa como "texto sobre fondo
   oscuro") arreglamos en cascada todos los textos hero, footer-logo, team-card,
   testimonios, etc. sin tocar selectores uno por uno. */
:root[data-theme="light"]{
  /* Tokens cream/pure quedan como home.css los definió (claros). */
  --cream-1:     #FAF7F2;
  --cream-2:     #F2EDE3;
  --cream-3:     #E8E0D0;
  --pure:        #FFFFFF;

  /* Textos que home.css declara como "sobre dark" pasan a oscuros en light.
     En dark, estos tokens conservan sus valores originales (#F0F1F5, #B8BDD0...) */
  --t-light-1:   #0E1220;   /* equivalente a --t-dark-1 */
  --t-light-2:   #44495C;   /* equivalente a --t-dark-2 */
  --t-light-3:   #6E7388;   /* equivalente a --t-dark-3 */
  --t-light-4:   #8B92A8;   /* meta tonal sutil sobre claro */

  --void:        #FAF7F2;   /* "fondo base" sigue siendo el alias */
  --void-2:      #F2EDE3;
  --void-3:      #E8E2D6;
  --void-4:      #DCD4C4;
  --gold:        #B8965A;   /* gold un punto más profundo para contraste sobre claro */
  --gold-light:  #C9A86C;
  --gold-glow:   rgba(184,150,90,0.20);
  --teal:        #0E7C75;
  --teal-light:  #1FCFC6;
  --line-light:  rgba(14,18,32,0.10);
  --line-light-2:rgba(14,18,32,0.18);
  --line-dark:   rgba(14,18,32,0.08);

  --off-white:   #FAF7F2;
  --cream:       #F2EDE3;
  --warm-gray:   #E8E0D0;
  --text:        #0E1220;
  --text-muted:  #44495C;
  --text-light:  #6E7388;
  --border:      #E8E2D6;
  --accent:      #1B4B3A;   /* verde médico — refuerza confianza sanitaria */
  --accent-light:#2A6B52;
  --accent-pale: #EBF2EE;

  --surface-page:   #FAF7F2;
  --surface-elev:   #FFFFFF;
  --surface-card:   #FFFFFF;
  --hairline:       #E8E2D6;
  --hairline-strong:#DDD4C2;
  --on-accent:      #FFFFFF;
  --shadow-rest:    0 4px 14px rgba(14,18,32,.06);
  --shadow-elev:    0 16px 48px rgba(14,18,32,.10);
  --img-tint:       none;
  --scheme:         light;

  color-scheme: light;
}

/* Antes había una regla `:root[data-theme] body, nav, ... { transition: ... }`
   para animar el cambio de tema. Como el toggle ahora hace location.reload(),
   no hay transición que animar, y la regla añadía transiciones inesperadas a
   hover/focus en dark. Eliminada para que el dark quede idéntico al original. */

/* ─────────── BOOKING MODAL — siempre tema CLARO ──────────
   Decisión de diseño: el modal de reserva es el punto crítico de conversión.
   Mantener el tema claro sanitario aquí (verde + blanco) refuerza confianza
   sin importar el tema global. Anclado vía override de tokens dentro del scope. */
#modal-reserva{
  --off-white:   #FAF7F2;
  --cream:       #F2EDE3;
  --warm-gray:   #E8E0D0;
  --text:        #0E1220;
  --text-muted:  #44495C;
  --text-light:  #6E7388;
  --border:      #E8E2D6;
  --accent:      #1B4B3A;
  --accent-light:#2A6B52;
  --accent-pale: #EBF2EE;
  --surface-page:#FAF7F2;
  --surface-elev:#FFFFFF;
  --surface-card:#FFFFFF;
  --hairline:    #E8E2D6;
  --on-accent:   #FFFFFF;
  color-scheme:  light;
}

/* ─────────── CINEMATIC SHOWCASE — siempre tema OSCURO ─────────
   La sección .h-cinema tiene `background: #000` hardcoded + video con
   partículas gold superpuesto + gradients oscuros. Es un "frame
   cinematográfico" del diseño, intencionalmente fuera del flujo crema del
   resto del sitio. Aquí restauramos los tokens "sobre dark" originales
   para que el contenido siga siendo legible en cualquier theme global.
   Mismo patrón que #modal-reserva (anclado claro) pero invertido. */
.h-cinema{
  --t-light-1:   #F0F1F5;
  --t-light-2:   #B8BDD0;
  --t-light-3:   #8B92A8;
  --t-light-4:   #5A6178;
  --text:        #F0F1F5;
  --text-muted:  #B8BDD0;
  --text-light:  #8B92A8;
  color-scheme:  dark;
}

/* En light theme, la regla global `section { background: var(--void) !important }`
   pisa el `background: #000` original de .h-cinema. Re-anclamos. */
:root[data-theme="light"] .h-cinema{
  background: #000 !important;
}

/* ─────────── CTA BAND (.cta-band) FIX para LIGHT ──────────
   La sección `.cta-band` tiene gradient cream en ambos modos.
   - `.btn-fill-white`: bg blanco + `color: var(--void)` → en light queda crema
     sobre blanco (invisible). Forzamos texto oscuro literal.
   - `.btn-outline-white`: en dark tiene border blanco translúcido, en light
     desaparece sobre la cream. Le damos un estilo premium con borde verde
     marca y fill sutil para que case con el resto del sistema clínico. */
:root[data-theme="light"] .btn-fill-white{
  color: #0E1220 !important;
}
:root[data-theme="light"] .btn-outline-white{
  background: rgba(27,75,58,.05) !important;
  border-width: 2px !important;
  border-style: solid !important;
  border-color: var(--accent) !important;
  color: var(--accent) !important;
  font-weight: 500 !important;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
:root[data-theme="light"] .btn-outline-white:hover{
  background: var(--accent) !important;
  color: #FFFFFF !important;
  border-color: var(--accent) !important;
}

/* ─────────── BODY GLOBAL ─────────── */
body{
  background: var(--void) !important;
  color: var(--text) !important;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Headings */
h1, h2, h3, h4, h5, h6{color: var(--text)}
p{color: var(--text-muted)}
a:not(.h-btn):not(.nav-cta):not(.nav-tel):not(.fab-option):not(.bk-urgency-tel):not(.btn-primary):not(.btn-fill):not(.btn-fill-white):not(.btn-line):not(.btn-ghost):not(.svc-link):not(.h-svc-link){color: inherit}

/* ─────────── BACKGROUNDS — overrides hardcoded ─────────── */
[style*="background: white"], [style*="background:white"],
[style*="background: #FFF"], [style*="background:#FFF"]{background: var(--void-2) !important}

/* ─────────── CONTAINER PADDING — confortable, no al filo ─────────── */
/* En subpáginas (blogs, tratamientos, contacto, etc.) el .container queda con 24px
   de padding que en algunas resoluciones queda demasiado al filo. Forzamos un padding
   lateral más generoso para que el texto y breadcrumbs respiren. */
.container{
  padding-left: max(1.5rem, env(safe-area-inset-left, 1.5rem)) !important;
  padding-right: max(1.5rem, env(safe-area-inset-right, 1.5rem)) !important
}
@media (min-width: 768px){
  .container{
    padding-left: 2.5rem !important;
    padding-right: 2.5rem !important
  }
}
@media (min-width: 1280px){
  .container{
    padding-left: 3rem !important;
    padding-right: 3rem !important
  }
}

/* Breadcrumb — bug crítico: la regla genérica `nav{position:fixed}` de styles.css
   se aplicaba al <nav class="breadcrumb">, sacándolo del flow y poniéndolo full-width
   sobre toda la página. Lo devolvemos al flow del .container padre. */
nav.breadcrumb,
.breadcrumb{
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: auto !important;
  height: auto !important;
  width: auto !important;
  max-width: 100% !important;
  padding: 1rem 0 !important;
  margin: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-bottom: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important
}

/* ─────────── SECTIONS GLOBALES ─────────── */
section, .section, .section-alt{background: var(--void) !important}
.section-alt, .section-cream{background: var(--void-2) !important}
.section-inner, .container{position:relative}
.hero{background:var(--void) !important}

/* Section labels / títulos */
.section-label, .overline{color: var(--gold) !important}
.section-title, .section-title em{color: var(--text)}
.section-title em{color: var(--gold) !important;font-style:italic}
.section-body, .section-intro, .section-intro p{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   HERO DE TRATAMIENTOS (`.hero-treatment`)
═══════════════════════════════════════════════════════ */
.hero-treatment{
  background: var(--void) !important;
  position:relative;
  padding: 8rem 0 5rem !important;
  overflow:hidden
}
.hero-treatment::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(60% 50% at 75% 30%, var(--gold-glow), transparent 70%),
    radial-gradient(50% 45% at 15% 70%, rgba(31,207,198,.08), transparent 65%);
  pointer-events:none;z-index:0
}
.hero-treatment > *{position:relative;z-index:1}
.hero-treatment h1, .hero-treatment .hero-title{color: var(--text) !important}
.hero-treatment h1 em{color: var(--gold) !important;font-style:italic}
.hero-treatment .hero-sub, .hero-treatment p{color: var(--text-muted) !important}
.hero-badge{
  background: rgba(201,168,108,.10) !important;
  color: var(--gold) !important;
  border:1px solid rgba(201,168,108,.25) !important
}
.hero-img-wrap{
  background: var(--void-2) !important;
  border:1px solid var(--line-light);
  border-radius:24px !important;
  box-shadow:0 32px 64px rgba(0,0,0,.4)
}
.hero-proof{border-top:1px solid var(--line-light) !important}
.proof-num{color: var(--gold) !important}
.proof-label{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   BREADCRUMB
═══════════════════════════════════════════════════════ */
.breadcrumb{
  background: transparent !important;
  color: var(--text-light) !important;
  border-color: var(--line-light) !important
}
.breadcrumb a{color: var(--text-muted) !important;text-decoration:none}
.breadcrumb a:hover{color: var(--gold) !important}
.breadcrumb-separator, .breadcrumb span{color: var(--text-light) !important;opacity:.6}

/* ═══════════════════════════════════════════════════════
   BOTONES
═══════════════════════════════════════════════════════ */
.btn-primary, .btn.btn-primary, button.btn-primary{
  background: var(--gold) !important;
  color: var(--void) !important;
  border:none !important;
  border-radius:100px !important;
  padding:14px 28px !important;
  font-weight:500 !important;
  box-shadow:0 4px 24px var(--gold-glow);
  transition:all .25s ease
}
.btn-primary:hover{
  background: var(--gold-light) !important;
  transform:translateY(-2px);
  box-shadow:0 8px 32px var(--gold-glow)
}
.btn-fill, a.btn-fill, button.btn-fill{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius:100px !important;
  border:none !important;
  font-weight:500 !important;
  box-shadow:0 4px 16px var(--gold-glow);
  transition:all .25s ease
}
.btn-fill:hover{background:var(--gold-light) !important;transform:translateY(-2px)}
.btn-fill-white{
  background: var(--pure, #FFF) !important;
  color: var(--void) !important;
  border-radius:100px !important
}
.btn-line, a.btn-line, button.btn-line{
  background: transparent !important;
  color: var(--text) !important;
  border:1px solid var(--line-light-2) !important;
  border-radius:100px !important;
  padding:14px 28px !important;
  transition:all .2s ease
}
.btn-line:hover{
  background: rgba(255,255,255,.06) !important;
  border-color: var(--gold) !important;
  color: var(--gold) !important
}
.btn-ghost{
  color: var(--gold) !important;
  background: transparent !important
}
.btn-ghost:hover{color: var(--gold-light) !important}

/* ═══════════════════════════════════════════════════════
   CARDS (fit-card, for-whom-card, relacionados-card, etc.)
═══════════════════════════════════════════════════════ */
.fit-card, .for-whom-card, .relacionados-card, .related-card,
.result-card, .step-card, .process-card, .why-card, .feature-card,
.benefit-card, .info-card, .pricing-card, .article-card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border:1px solid var(--line-light) !important;
  color: var(--text) !important;
  border-radius:14px !important;
  transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease
}
.fit-card:hover, .for-whom-card:hover, .relacionados-card:hover, .related-card:hover,
.result-card:hover, .step-card:hover, .process-card:hover, .why-card:hover{
  border-color: var(--gold) !important;
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(0,0,0,.4), 0 0 0 1px var(--gold-glow)
}

/* For-whom yes/no cards (sí/no encajas en este tratamiento) */
.for-whom-card.yes, .fit-card.yes{
  background: linear-gradient(180deg, rgba(31,207,198,.08), rgba(31,207,198,.02)) !important;
  border:1px solid rgba(31,207,198,.30) !important
}
.for-whom-card.no, .fit-card.no{
  background: linear-gradient(180deg, rgba(255,90,90,.06), rgba(255,90,90,.01)) !important;
  border:1px solid rgba(255,140,140,.25) !important
}
.for-whom-card.yes h3, .fit-card.yes h3{color: var(--teal-light) !important}
.for-whom-card.no h3, .fit-card.no h3{color: #F87171 !important}
.for-whom-card ul li, .fit-list li{color: var(--text-muted) !important}
.for-whom-card.yes ul li::before{background: var(--teal) !important}
.for-whom-card.no ul li::before{background: #F87171 !important}

/* Step number en steps */
.step-num{color: var(--gold) !important}
.step-time{
  background: rgba(201,168,108,.12) !important;
  color: var(--gold) !important
}
.step-card h4{color: var(--text) !important}
.step-card p{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   CTA BANDS / FINAL
═══════════════════════════════════════════════════════ */
.cta-band, .cta-final, .cta-inline, .cta-section{
  background: linear-gradient(135deg, var(--void-2) 0%, var(--void-3) 100%) !important;
  border:1px solid var(--line-light) !important;
  border-radius:20px !important;
  position:relative;overflow:hidden;
  padding: 4rem 2.5rem !important;
  margin: 3rem auto !important
}
.cta-band::before, .cta-final::before{
  content:'';position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(70% 60% at 30% 50%, var(--gold-glow), transparent 65%)
}
.cta-band > *, .cta-final > *{position:relative;z-index:1}
.cta-band h2, .cta-final h2{color: var(--text) !important}
.cta-band p, .cta-final p{color: var(--text-muted) !important}
.cta-band .btn-primary, .cta-final .btn-primary{
  background: var(--gold) !important;
  color: var(--void) !important
}
.cta-inline{
  background: linear-gradient(180deg, rgba(201,168,108,.06), transparent) !important;
  border-left:3px solid var(--gold) !important;
  border-top:none !important;border-right:none !important;border-bottom:none !important;
  border-radius:0 12px 12px 0 !important;
  padding: 1.75rem 2rem !important
}

/* ═══════════════════════════════════════════════════════
   PRICE TABLES
═══════════════════════════════════════════════════════ */
.price-table, .pricing-table{
  background: var(--void-2) !important;
  border:1px solid var(--line-light) !important;
  border-radius:12px !important;overflow:hidden
}
.price-table th, .pricing-table th{
  background: var(--void-3) !important;
  color: var(--gold) !important;
  border-bottom:1px solid var(--line-light) !important
}
.price-table td, .pricing-table td{
  background: transparent !important;
  color: var(--text) !important;
  border-bottom:1px solid var(--line-light) !important
}
.price-table tr:hover td, .pricing-table tr:hover td{
  background: rgba(201,168,108,.06) !important
}

/* ═══════════════════════════════════════════════════════
   FAQ — funciona con la lógica JS existente (`.faq-item.open`)
═══════════════════════════════════════════════════════ */
.faq-item{
  background: transparent !important;
  border-bottom:1px solid var(--line-light) !important;
  border-top:none !important;border-left:none !important;border-right:none !important
}
.faq-q, button.faq-q{
  background: transparent !important;
  color: var(--text) !important;
  font-family: 'Fraunces', Georgia, serif !important;
  font-weight:400 !important;
  padding:1.5rem 0 !important
}
.faq-q:hover{color: var(--gold) !important}
.faq-q-text{color: inherit !important}
.faq-icon{
  border:1px solid var(--line-light-2) !important;
  background: transparent !important;
  color: var(--text-muted) !important;
  width:32px;height:32px;border-radius:50%
}
.faq-item.open .faq-icon{
  background: var(--gold) !important;
  border-color: var(--gold) !important;
  color: var(--void) !important
}
.faq-a{color: var(--text-muted) !important;line-height:1.75}
.faq-a p{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   ARTÍCULOS DE BLOG
═══════════════════════════════════════════════════════ */
.article-hero, .blog-hero{
  background: transparent !important;
  border-bottom: none !important
}
.article-hero h1, .blog-hero h1{color: var(--text) !important}
.article-meta, .article-meta span, .blog-meta{color: var(--text-light) !important}
.article-meta a, .blog-meta a{color: var(--gold) !important}
.article-body, .article-body p, .article-body li, .blog-body, .legal-body{
  color: var(--text-muted) !important
}
.article-body h2, .article-body h3, .article-body h4,
.legal-body h2, .legal-body h3{color: var(--text) !important}
.article-body a, .legal-body a{
  color: var(--gold) !important;
  text-decoration:underline;text-decoration-color: rgba(201,168,108,.4)
}
.article-body a:hover{text-decoration-color: var(--gold)}
.article-body blockquote{
  background: linear-gradient(180deg, rgba(201,168,108,.08), transparent) !important;
  border-left:3px solid var(--gold) !important;
  color: var(--text) !important;
  padding:1.5rem 2rem;border-radius:0 12px 12px 0
}
.article-body code{
  background: var(--void-3) !important;
  color: var(--gold) !important;
  border:1px solid var(--line-light);
  padding:2px 6px;border-radius:4px
}
.article-body img{border-radius:14px;border:1px solid var(--line-light)}
.article-body hr{border:none;height:1px;background: var(--line-light) !important;margin:3rem 0}

/* Listas con bullets */
.article-body ul, .legal-body ul{padding-left:1.25rem}
.article-body ul li::marker{color: var(--gold)}

/* Related articles section */
.relacionados, .related{background: transparent !important;padding:4rem 0;border-top:1px solid var(--line-light)}
.relacionados-card, .related-card{padding:1.75rem !important}
.relacionados-card h3, .related-card h3{color: var(--text) !important;font-family:'Fraunces',serif;font-weight:400}
.relacionados-card p, .related-card p{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   ICONOS / DECORATIVOS
═══════════════════════════════════════════════════════ */
.icon-circle, .feature-icon, .step-icon{
  background: rgba(201,168,108,.12) !important;
  color: var(--gold) !important;
  border:1px solid var(--line-light)
}

/* ═══════════════════════════════════════════════════════
   FORM ON CONTACTO PAGE
═══════════════════════════════════════════════════════ */
.form-panel, .form-card{
  background: var(--void-2) !important;
  border:1px solid var(--line-light) !important;
  border-radius:20px !important;
  color: var(--text)
}
.form-panel-title{color: var(--text) !important}
.form-panel-sub{color: var(--text-muted) !important}
.field label{color: var(--text-light) !important}
.field input, .field textarea, .field select{
  background: var(--void-3) !important;
  color: var(--text) !important;
  border:1px solid var(--line-light) !important;
  border-radius:8px !important
}
.field input:focus, .field textarea:focus, .field select:focus{
  border-color: var(--gold) !important;
  box-shadow:0 0 0 3px rgba(201,168,108,.10) !important
}
.field input::placeholder, .field textarea::placeholder{color: var(--text-light) !important}
.form-submit{
  background: var(--gold) !important;
  color: var(--void) !important;
  border:none !important;
  border-radius:100px !important;
  padding:16px !important;
  font-weight:500
}
.form-submit:hover{background: var(--gold-light) !important}
.form-legal{color: var(--text-light) !important}
.form-ok{
  background: linear-gradient(180deg, rgba(31,207,198,.08), transparent) !important;
  border:1px solid rgba(31,207,198,.30) !important;
  color: var(--text) !important;
  border-radius:14px;padding:2.5rem 2rem;text-align:center
}
.form-ok-icon{background: var(--teal) !important;color: var(--void) !important;width:56px;height:56px;border-radius:50%;font-size:1.6rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}
.form-ok h3{color: var(--text) !important;font-family:'Fraunces',serif;font-weight:300}
.form-ok p{color: var(--text-muted) !important}

/* Contact blocks */
.cb{
  background: var(--void-2) !important;
  border:1px solid var(--line-light) !important;
  padding:1.5rem !important;
  border-radius:12px;margin-bottom:.75rem
}
.cb-label{color: var(--gold) !important;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.cb-val{color: var(--text) !important}
.cb-sub{color: var(--text-muted) !important;font-size:.85rem;margin-top:4px}

/* ═══════════════════════════════════════════════════════
   EQUIPO / TEAM PAGES
═══════════════════════════════════════════════════════ */
.team-section, .team-bg{background: var(--void) !important}
.team-list{display:grid;gap:2rem}
.team-member, .team-card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border:1px solid var(--line-light) !important;
  border-radius:14px !important;
  overflow:hidden;
  transition:transform .3s ease,box-shadow .3s ease
}
.team-member:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(0,0,0,.4)}
.team-member-portrait{background: var(--void-3) !important}
.team-member-portrait img{transition:transform .6s ease}
.team-member:hover .team-member-portrait img{transform:scale(1.04)}
.team-member-name{color: var(--text) !important;font-family:'Fraunces',serif;font-weight:400}
.team-member-role{color: var(--gold) !important;letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:500}
.team-member-bio{color: var(--text-muted) !important}
.team-stat-row{border-top:1px solid var(--line-light) !important}
.team-stat-item + .team-stat-item{border-left:1px solid var(--line-light) !important}
.team-stat-n{color: var(--gold) !important}
.team-stat-l{color: var(--text-light) !important}
.team-section-link{color: var(--gold) !important;text-decoration:none}
.team-section-link:hover{color: var(--gold-light) !important}

/* ═══════════════════════════════════════════════════════
   SERVICIOS GRID (.svc en index secundario o tratamientos)
═══════════════════════════════════════════════════════ */
.svc{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border:1px solid var(--line-light) !important;
  color: var(--text) !important;
  border-radius:14px !important;
  transition:all .3s ease
}
.svc:hover{
  border-color: var(--gold) !important;
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(0,0,0,.4)
}
.svc-n{color: var(--gold) !important;font-style:italic;font-family:'Fraunces',serif}
.svc-name{color: var(--text) !important}
.svc-hr{background: var(--line-light) !important}
.svc-desc{color: var(--text-muted) !important}
.svc-price{color: var(--gold) !important;font-family:'Fraunces',serif}
.svc-link{color: var(--text-light) !important;transition:gap .25s ease,color .2s ease}
.svc-link:hover{color: var(--gold) !important}

/* ═══════════════════════════════════════════════════════
   TESTIMONIOS (cards en cualquier página)
═══════════════════════════════════════════════════════ */
.testi-card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border:1px solid var(--line-light) !important;
  color: var(--text) !important;
  border-radius:14px !important
}
.testi-text{color: var(--text) !important;font-family:'Fraunces',serif;font-style:italic;font-weight:300}
.testi-name{color: var(--text) !important}
.testi-meta{color: var(--text-light) !important}
.testi-ini{
  background: linear-gradient(135deg, var(--gold), var(--gold-light)) !important;
  color: var(--void) !important
}
.testi-source-label{color: var(--text-light) !important}
.testi-qmark{color: var(--gold) !important;opacity:.4}
.testi-stars .testi-star, .testi-star{
  background: var(--gold) !important
}

/* ═══════════════════════════════════════════════════════
   WHY / GUARANTEE bands
═══════════════════════════════════════════════════════ */
.why-bg, .why-section{background: var(--void) !important}
.why-list{display:flex;flex-direction:column;gap:1.5rem}
.why-item{
  background: rgba(255,255,255,.02) !important;
  border:1px solid var(--line-light);
  border-radius:14px;padding:1.75rem;display:flex;gap:1.25rem
}
.why-item-num{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius:50%;width:36px;height:36px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-weight:500;flex-shrink:0
}
.why-item-title{color: var(--text) !important}
.why-item-text{color: var(--text-muted) !important}

.guarantee-band{
  background: linear-gradient(135deg, var(--void-2), var(--void-3)) !important;
  border:1px solid var(--line-light);border-radius:24px;
  margin: 4rem auto;padding:4rem 3rem !important;
  position:relative;overflow:hidden
}
.guarantee-band::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(60% 70% at 80% 30%, var(--gold-glow), transparent 65%);
  z-index:0;pointer-events:none
}
.guarantee-band > *{position:relative;z-index:1}
.guarantee-mark{color: var(--gold) !important}
.guarantee-overline{color: var(--gold) !important}
.guarantee-title, .guarantee-title em{color: var(--text) !important}
.guarantee-title em{color: var(--gold) !important;font-style:italic}
.guarantee-text{color: var(--text-muted) !important}
.guarantee-cta{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius:100px !important;
  padding:14px 28px !important;
  font-weight:500;
  display:inline-block;text-decoration:none
}
.guarantee-cta:hover{background: var(--gold-light) !important}

/* ═══════════════════════════════════════════════════════
   EDITORIAL CTA / STATS BAND (si existen en subpáginas)
═══════════════════════════════════════════════════════ */
.editorial-cta-strip{
  background: linear-gradient(90deg, var(--void-2), var(--void-3)) !important;
  border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)
}
.editorial-cta-pill{
  background: var(--gold) !important;
  color: var(--void) !important
}
.editorial-cta-pill:hover{background: var(--gold-light) !important}
.editorial-cta-link{color: var(--text-muted) !important}
.editorial-cta-link:hover{color: var(--gold) !important}
.editorial-cta-div{background: var(--line-light) !important}
.editorial-cta-micro{color: var(--text-light) !important}
.editorial-cta-right{color: var(--text-muted) !important}

.stats-band{
  background: var(--void-2) !important;
  border-top:1px solid var(--line-light) !important;
  border-bottom:1px solid var(--line-light) !important
}
.stat-icon{
  background: rgba(201,168,108,.10) !important;
  border:1px solid var(--line-light) !important;
  color: var(--gold) !important
}
.stat-icon svg{stroke: var(--gold) !important}
.stat-n{color: var(--text) !important;font-family:'Fraunces',serif}
.stat-l{color: var(--text-muted) !important}
.stat-div{background: var(--line-light) !important}

/* CTA editorial final */
.cta-editorial{background: var(--void) !important;border-top:1px solid var(--line-light)}
.cta-editorial-text .overline{color: var(--gold) !important}
.cta-editorial-h, .cta-editorial-h em{color: var(--text) !important}
.cta-editorial-h em{color: var(--gold) !important;font-style:italic}
.cta-editorial-p{color: var(--text-muted) !important}
.cta-editorial-meta{color: var(--text-light) !important}

/* ═══════════════════════════════════════════════════════
   ABOUT HIGHLIGHTS / SOBRE NOSOTROS
═══════════════════════════════════════════════════════ */
.about-hl{
  background: rgba(255,255,255,.02) !important;
  border-left:3px solid var(--gold) !important;
  border-radius:0 8px 8px 0
}
.about-hl-n{color: var(--gold) !important}
.about-hl-l{color: var(--text-muted) !important}
.about-list li{color: var(--text-muted) !important}

/* PRIMERA VISITA TIMELINE en sub-pages */
.primera-visita{background: var(--void-2) !important;border-top:1px solid var(--line-light) !important}
.primera-visita-title, .primera-visita-title em{color: var(--text) !important}
.primera-visita-title em{color: var(--gold) !important;font-style:italic}
.primera-visita-desc{color: var(--text-muted) !important}
.pv-step-num{
  background: var(--void-3) !important;
  color: var(--gold) !important;
  border:1px solid var(--line-light) !important
}
.pv-step-line{background: var(--line-light) !important}
.pv-step-time{color: var(--gold) !important}
.pv-step-name{color: var(--text) !important}
.pv-step-body{color: var(--text-muted) !important}

/* ═══════════════════════════════════════════════════════
   BLOG GRID (blog.html landing)
═══════════════════════════════════════════════════════ */
.blog-grid, .articles-grid{display:grid;gap:1.5rem}
.blog-card, .blog-item, .article-item{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border:1px solid var(--line-light) !important;
  border-radius:14px !important;
  overflow:hidden;
  transition:all .3s ease
}
.blog-card:hover{
  border-color: var(--gold) !important;
  transform:translateY(-4px);
  box-shadow:0 24px 48px rgba(0,0,0,.4)
}
.blog-card-img{background: var(--void-3) !important}
.blog-card-meta, .blog-card-cat{color: var(--gold) !important;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem}
.blog-card-title{color: var(--text) !important;font-family:'Fraunces',serif;font-weight:400}
.blog-card-excerpt, .blog-card p{color: var(--text-muted) !important}
.blog-card-link{color: var(--gold) !important;text-decoration:none}

/* ═══════════════════════════════════════════════════════
   LEGAL PAGES (privacidad, cookies, aviso)
═══════════════════════════════════════════════════════ */
.legal-body, .legal-body p, .legal-body li,
.legal-content, .legal-content p, .legal-content li{
  color: var(--text-muted) !important;line-height:1.8
}
.legal-body h1, .legal-content h1{color: var(--text) !important}
.legal-body h2, .legal-body h3, .legal-content h2, .legal-content h3{color: var(--text) !important}
.legal-body strong, .legal-content strong{color: var(--text) !important}
.legal-body table, .legal-content table{
  background: var(--void-2) !important;
  border:1px solid var(--line-light) !important
}
.legal-body th, .legal-content th{
  background: var(--void-3) !important;
  color: var(--gold) !important;
  border-bottom:1px solid var(--line-light)
}
.legal-body td, .legal-content td{
  color: var(--text) !important;
  border-bottom:1px solid var(--line-light) !important
}

/* ═══════════════════════════════════════════════════════
   IMAGES en general — ligero borde dark
═══════════════════════════════════════════════════════ */
img:not([class*="logo"]):not([class*="icon"]):not(.h-team-portrait img){
  border-radius:14px
}

/* ═══════════════════════════════════════════════════════
   FORZAR FONDOS HARDCODED A DARK
   Algunas páginas tienen `background: white` o tonos
   pastel hardcoded en sus inline styles. Los neutralizamos.
═══════════════════════════════════════════════════════ */
[style*="background: white"],
[style*="background:white"],
[style*="background: #FFF"],
[style*="background:#FFF"],
[style*="background:#fff"],
[style*="background: #fff"]{
  background: var(--void-2) !important
}
[style*="background:#F8F"],[style*="background: #F8F"],
[style*="background:#F1F"],[style*="background: #F1F"],
[style*="background:#FAF"],[style*="background: #FAF"]{
  background: var(--void-2) !important
}

/* ═══════════════════════════════════════════════════════
   IFRAME (Google Maps en contacto)
═══════════════════════════════════════════════════════ */
iframe{
  filter: invert(0.92) hue-rotate(180deg) saturate(0.7) !important;
  border-radius:14px;border:1px solid var(--line-light)
}

/* ═══════════════════════════════════════════════════════
   SELECTION
═══════════════════════════════════════════════════════ */
::selection{background: var(--gold);color: var(--void)}
::-moz-selection{background: var(--gold);color: var(--void)}

/* ═══════════════════════════════════════════════════════
   SCROLLBAR PREMIUM (WebKit)
═══════════════════════════════════════════════════════ */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background: var(--void)}
::-webkit-scrollbar-thumb{background: var(--void-4);border-radius:10px;border:2px solid var(--void)}
::-webkit-scrollbar-thumb:hover{background: var(--gold)}

/* ═══════════════════════════════════════════════════════
   HOMEPAGE SPECIFIC OVERRIDES (en caso de conflictos con styles.css)
═══════════════════════════════════════════════════════ */
.h-svc-link{color: var(--text-light) !important}
.h-svc-link:hover{color: var(--gold) !important}
.h-faq-q{color: var(--text) !important}

/* Reset link color global */
a{color:inherit;text-decoration:none}

/* ═══════════════════════════════════════════════════════
   RESPONSIVE GLOBAL TWEAKS
═══════════════════════════════════════════════════════ */
@media (max-width: 768px){
  .hero-treatment{padding: 6rem 0 3.5rem !important}
  .cta-band, .cta-final{padding:2.5rem 1.5rem !important}
  .guarantee-band{padding:2.5rem 1.5rem !important}
  .pv-steps{grid-template-columns:1fr !important;gap:2.5rem !important}
}

/* ═══════════════════════════════════════════════════════
   TRATAMIENTOS — OVERRIDES ESPECÍFICOS
   Cubre los <style> inline de cada subpágina:
   .fit-section, .pricing-section, .faq-section, .steps-section,
   .results-section, .related-section, .options-section
   .step, .option-card, .hours-card, .ptab, .btn-white
═══════════════════════════════════════════════════════ */

/* Secciones de tratamiento con bg blanco hardcoded */
.fit-section, .pricing-section, .faq-section,
.steps-section, .results-section, .related-section,
.options-section, .process-section, .why-section,
.benefits-section, .gallery-section{
  background: var(--void) !important;
  color: var(--text) !important
}
/* Si la sección es de tipo "alt" — fondo más oscuro */
.steps-section, .results-section, .options-section{
  background: var(--void-2) !important
}

/* Cards individuales en tratamientos */
.step, .option-card, .hours-card, .benefit-card, .why-card,
.process-step, .gallery-item{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01)) !important;
  border: 1px solid var(--line-light) !important;
  color: var(--text) !important;
  border-radius: 14px !important;
  transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease
}
.step:hover, .option-card:hover, .hours-card:hover,
.benefit-card:hover, .why-card:hover{
  border-color: var(--gold) !important;
  transform: translateY(-3px);
  box-shadow: 0 24px 48px rgba(0,0,0,.4), 0 0 0 1px var(--gold-glow)
}
.step h4, .step h3, .option-card h4, .option-card h3,
.hours-card h4, .hours-card h3,
.benefit-card h4, .why-card h3{color: var(--text) !important}
.step p, .option-card p, .hours-card p,
.benefit-card p, .why-card p{color: var(--text-muted) !important}
.step-num, .step .step-num{color: var(--gold) !important}

/* Option pricing y tags */
.option-price{color: var(--gold) !important;font-weight:500}
.option-tag{
  background: rgba(201,168,108,.12) !important;
  color: var(--gold) !important;
  border: 1px solid rgba(201,168,108,.20)
}
.option-tag.best{
  background: rgba(31,207,198,.10) !important;
  color: var(--teal) !important;
  border-color: rgba(31,207,198,.25) !important
}
.option-tag.fast{
  background: rgba(230,204,143,.12) !important;
  color: var(--gold-light) !important;
  border-color: rgba(230,204,143,.30) !important
}

/* Pricing tabs (.ptab en blanqueamiento) */
.ptab{
  background: rgba(255,255,255,.03) !important;
  color: var(--text-muted) !important;
  border: 1px solid var(--line-light) !important;
  transition: all .25s ease
}
.ptab:hover{
  border-color: var(--gold) !important;
  color: var(--text) !important
}
.ptab.active, .ptab[aria-selected="true"]{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-color: var(--gold) !important
}

/* btn-white: botón blanco sobre CTA band oscuro */
.btn-white, a.btn-white, button.btn-white{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important;
  font-weight: 500 !important;
  border: none !important;
  box-shadow: 0 4px 16px var(--gold-glow);
  transition: all .25s ease
}
.btn-white:hover{
  background: var(--gold-light) !important;
  transform: translateY(-2px);
  box-shadow: 0 8px 24px var(--gold-glow)
}

/* Inline anchors dentro de cta-band/cta-final con background:white inline */
.cta-band a[style*="background:white"],
.cta-band a[style*="background: white"],
.cta-final a[style*="background:white"],
.cta-final a[style*="background: white"]{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important;
  font-weight: 500 !important;
  border: none !important;
  box-shadow: 0 4px 16px var(--gold-glow)
}
/* Borde transparente con anchor (segundo botón en cta-final) */
.cta-pair a[style*="background:transparent"]{
  background: transparent !important;
  color: var(--text) !important;
  border: 1.5px solid var(--line-light-2) !important;
  border-radius: 100px !important
}
.cta-pair a[style*="background:transparent"]:hover{
  border-color: var(--gold) !important;
  color: var(--gold) !important
}

/* Digital callout — bg verdoso pastel hardcoded */
.digital-callout{
  background: linear-gradient(180deg, rgba(31,207,198,.08), rgba(31,207,198,.02)) !important;
  border: 1px solid rgba(31,207,198,.25) !important;
  border-radius: 14px !important
}
.digital-callout-icon{color: var(--gold) !important}
.digital-callout-icon svg{color: var(--gold) !important;stroke: var(--gold) !important}
.digital-callout-text h4{color: var(--text) !important}
.digital-callout-text p{color: var(--text-muted) !important}

/* Price tables: notas y highlights */
.price-table tr:nth-child(even) td{background: rgba(255,255,255,.015) !important}
.price-highlight{color: var(--gold) !important;font-weight:500}
.price-note{color: var(--text-light) !important}

/* Mobile CTA bar (intencional bg blanco → dark glass) */
#mobile-cta-bar{
  background: rgba(13,15,27,.92) !important;
  backdrop-filter: blur(20px) saturate(1.4);
  -webkit-backdrop-filter: blur(20px) saturate(1.4);
  border-top: 1px solid var(--line-light) !important
}
#mobile-cta-bar a:first-child{
  background: rgba(255,255,255,.06) !important;
  color: var(--text) !important
}
#mobile-cta-bar a:last-child{
  background: var(--gold) !important;
  color: var(--void) !important
}

/* Exit popup — dark glass card */
#exit-popup > div{
  background: var(--void-2) !important;
  border: 1px solid var(--line-light) !important;
  color: var(--text) !important
}
#exit-popup h3{color: var(--text) !important}
#exit-popup p{color: var(--text-muted) !important}
#exit-popup a{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important
}
#exit-popup button{color: var(--text-light) !important}

/* Header sticky con bg blanco encima del breadcrumb (urgencias) */
[style*="background:white"][style*="border-bottom"]{
  background: var(--void-2) !important;
  border-bottom: 1px solid var(--line-light) !important
}

/* Breadcrumb wrapper */
.breadcrumb a:hover{color: var(--gold) !important}

/* Section-alt: re-asegurar fondo void-2 */
.section.section-alt{background: var(--void-2) !important}

/* Hero proof items en tratamientos */
.proof-num{color: var(--gold) !important;font-family:'Fraunces',serif !important}
.proof-label{color: var(--text-muted) !important}
.hero-badge{
  background: rgba(201,168,108,.10) !important;
  color: var(--gold) !important;
  border: 1px solid rgba(201,168,108,.25) !important
}

/* Result icons */
.result-icon, .result-card .result-icon{color: var(--gold) !important}
.result-icon svg{color: var(--gold) !important;stroke: var(--gold) !important}

/* Related arrow */
.related-arrow{color: var(--gold) !important}

/* CTA-band y CTA-final — re-confirmar texto/títulos blancos */
.cta-band h2, .cta-band h2 em,
.cta-final h2, .cta-final h2 em{color: var(--text) !important}
.cta-band h2 em, .cta-final h2 em{
  color: var(--gold) !important;
  font-style: italic;
  background: none !important;
  -webkit-text-fill-color: var(--gold) !important
}
.cta-band p, .cta-final p{color: var(--text-muted) !important}

/* Hero img wrap — sin fondo cream, solo void-2 */
.hero-img-wrap{
  background: var(--void-2) !important;
  border: 1px solid var(--line-light) !important;
  border-radius: 24px !important;
  box-shadow: 0 32px 64px rgba(0,0,0,.4)
}
.hero-img-wrap img{border-radius: 24px}

/* Step-time chip */
.step-time{
  background: rgba(201,168,108,.12) !important;
  color: var(--gold) !important;
  border: 1px solid rgba(201,168,108,.20)
}

/* Image fallback dentro de option-card */
.option-card img{border-radius: 10px}

/* ═══════════════════════════════════════════════════════
   BLOG POSTS — overrides para cajas pasteles y hero padding
═══════════════════════════════════════════════════════ */

/* Hero del blog: padding-top suficiente para no quedar bajo el nav (ticker 34px + nav ~70px) */
.article-hero, .blog-hero{
  padding: 8rem 0 3rem !important;
  max-width: 800px;
  margin: 0 auto
}
.article-hero h1, .blog-hero h1{
  font-family: 'Fraunces', serif !important;
  font-size: clamp(2rem, 4vw, 3rem) !important;
  font-weight: 400 !important;
  line-height: 1.15 !important;
  color: var(--text) !important;
  margin-bottom: 1rem;
  letter-spacing: -.02em
}
.article-hero h1 em, .blog-hero h1 em{
  font-style: italic;
  color: var(--gold) !important
}

/* Hero img — todas con misma dimensión y aspect ratio uniformes */
.article-hero-img, .blog-hero-img{
  width: 100% !important;
  height: 460px !important;
  aspect-ratio: 16 / 9;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 16px !important;
  margin-top: 2.5rem !important;
  border: 1px solid var(--line-light);
  box-shadow: 0 24px 56px rgba(0,0,0,.5)
}
@media (max-width: 768px){
  .article-hero, .blog-hero{padding: 7rem 0 2.5rem !important}
  .article-hero-img, .blog-hero-img{height: 280px !important}
}

/* Caja "urgencia / no esperes" — glass dark con tinte coral/rojo */
.urgencia-box, .no-funciona-box, .alerta-box{
  background: linear-gradient(180deg, rgba(248,113,113,.08), rgba(248,113,113,.02)) !important;
  border: 1px solid rgba(248,113,113,.30) !important;
  border-radius: 14px !important;
  padding: 1.75rem 2rem !important;
  margin: 2rem 0 !important;
  color: var(--text) !important
}
.urgencia-box ul, .no-funciona-box ul, .esperar-box ul{
  padding-left: 1.25rem;
  margin: 0
}
.urgencia-box li, .no-funciona-box li, .alerta-box li{
  color: var(--text) !important;
  margin-bottom: .65rem;
  line-height: 1.65
}
.urgencia-box li::marker, .no-funciona-box li::marker{color: #F87171}
.urgencia-box li strong, .no-funciona-box li strong, .alerta-box li strong{
  color: #FCA5A5 !important;
  font-weight: 500
}
.urgencia-title, .no-funciona-title{
  font-family: 'Geist', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: #F87171 !important;
  margin-bottom: 1rem !important;
  display: flex;
  align-items: center;
  gap: .5rem
}
.urgencia-title::before, .no-funciona-title::before{
  content: '';
  display: inline-block;
  width: 8px;height: 8px;border-radius: 50%;
  background: #F87171;
  box-shadow: 0 0 12px rgba(248,113,113,.6);
  animation: svPulseDot 2s ease-in-out infinite
}
@keyframes svPulseDot{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:.5;transform:scale(.85)}
}

/* Caja "puede esperar" — glass dark con tinte teal */
.esperar-box{
  background: linear-gradient(180deg, rgba(31,207,198,.08), rgba(31,207,198,.02)) !important;
  border: 1px solid rgba(31,207,198,.30) !important;
  border-radius: 14px !important;
  padding: 1.75rem 2rem !important;
  margin: 2rem 0 !important;
  color: var(--text) !important
}
.esperar-box li{
  color: var(--text) !important;
  margin-bottom: .65rem;
  line-height: 1.65
}
.esperar-box li::marker{color: var(--teal)}
.esperar-box li strong{color: var(--teal-light) !important;font-weight:500}
.esperar-title{
  font-family: 'Geist', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  color: var(--teal) !important;
  margin-bottom: 1rem !important;
  display: flex;align-items: center;gap: .5rem
}
.esperar-title::before{
  content: '';
  display: inline-block;
  width: 8px;height: 8px;border-radius: 50%;
  background: var(--teal);
  box-shadow: 0 0 12px rgba(31,207,198,.6)
}

/* Alert-box (amarillo) — glass dark con tinte oro */
.alert-box{
  background: linear-gradient(180deg, rgba(201,168,108,.10), rgba(201,168,108,.02)) !important;
  border: 1px solid rgba(201,168,108,.30) !important;
  border-radius: 12px !important;
  padding: 1.5rem 1.75rem !important;
  margin: 2rem 0 !important;
  color: var(--text-muted) !important;
  font-size: .95rem;
  line-height: 1.7
}
.alert-box strong{color: var(--gold-light) !important}

/* Choose-card composite/porcelana (carillas-vs-composite blog) */
.choose-card{
  border-radius: 14px !important;
  padding: 1.75rem 2rem !important
}
.choose-card.composite{
  background: linear-gradient(180deg, rgba(31,207,198,.08), rgba(31,207,198,.02)) !important;
  border: 1px solid rgba(31,207,198,.30) !important
}
.choose-card.porcelana{
  background: linear-gradient(180deg, rgba(201,168,108,.10), rgba(201,168,108,.02)) !important;
  border: 1px solid rgba(201,168,108,.30) !important
}
.choose-card h3, .choose-card h4{color: var(--text) !important}
.choose-card.composite h3, .choose-card.composite h4{color: var(--teal-light) !important}
.choose-card.porcelana h3, .choose-card.porcelana h4{color: var(--gold-light) !important}
.choose-card ul{padding-left: 1.25rem;margin:0}
.choose-card li{
  color: var(--text) !important;
  margin-bottom: .55rem;
  line-height: 1.65
}
.choose-card.composite li::marker{color: var(--teal)}
.choose-card.porcelana li::marker{color: var(--gold)}
.choose-card-title{
  display:block;
  font-family: 'Geist', sans-serif !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  margin-bottom: 1rem !important
}
.choose-card.composite .choose-card-title{color: var(--teal) !important}
.choose-card.porcelana .choose-card-title{color: var(--gold) !important}

/* Diferenciador / mito-box / tip-box / price-box / doctor-note */
.diferenciador, .mito-box, .tip-box, .price-box, .doctor-note,
.comparison-card{
  background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.005)) !important;
  border: 1px solid var(--line-light) !important;
  border-radius: 14px !important;
  padding: 1.5rem 1.75rem !important;
  color: var(--text-muted) !important
}
.doctor-note{
  border-left: 3px solid var(--gold) !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  background: linear-gradient(90deg, rgba(201,168,108,.06), transparent) !important;
  border-radius: 0 12px 12px 0 !important;
  font-style: italic
}
.comparison-card h4, .mito-box h4, .tip-box h4{color: var(--text) !important}
.tip-box h4{color: var(--gold-light) !important}

/* CTA-band del blog (más pequeño que el de tratamientos) */
.article-body .cta-band, .blog-body .cta-band{
  padding: 2rem 2.5rem !important;
  margin: 3rem 0 !important
}
.article-body .cta-band .btn, .blog-body .cta-band .btn{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important;
  padding: 12px 24px !important;
  font-weight: 500 !important;
  display: inline-block;
  text-decoration: none
}
.article-body .cta-final, .blog-body .cta-final{
  padding: 2.5rem !important;
  margin: 3rem 0 !important
}
.article-body .cta-final .btn, .blog-body .cta-final .btn{
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important;
  padding: 12px 24px !important;
  font-weight: 500
}

/* Wrappers inline con bg off-white/cream — transparentes para que el body fluya
   sin crear "cajas" rectangulares oscuras visibles.
   NOTA: matcheamos con `background:` (shorthand) explícito. JS que necesite poner
   bg literal del tema claro (booking modal) debe usar `background-color:` para
   no caer en esta regla. */
[style*="background:var(--off-white)"],
[style*="background: var(--off-white)"],
[style*="background:var(--cream)"],
[style*="background: var(--cream)"]{
  background: transparent !important;
  border-bottom: none !important
}
/* Solo el wrapper top del blog landing que tenía padding-top:68px (hero blog landing)
   sí mantiene el border bottom como divider sutil */
.bl-hero-wrap, .blog-hero-wrap{border-bottom:1px solid var(--line-light) !important}

/* hero-img-blend (blog landing): el gradiente original era blanco/cream → desactivamos
   el ::after y dejamos la imagen limpia con borde dark */
.hero-img-blend{
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  border: 1px solid var(--line-light);
  box-shadow: 0 24px 56px rgba(0,0,0,.5)
}
.hero-img-blend img{
  filter: none !important;
  border-radius: 16px;
  display: block
}
.hero-img-blend::after{
  display: none !important
}

/* Hero del blog landing — fondo bg hardcoded var(--off-white) en el wrapper.
   Restringimos el selector a wrappers de hero (clases conocidas) para no
   afectar a botones u otros elementos del booking modal que también llevan
   border-bottom y bg var(--off-white) inline. */
.bl-hero-wrap[style*="background:var(--off-white)"],
.bl-hero-wrap[style*="background: var(--off-white)"],
.blog-hero-wrap[style*="background:var(--off-white)"],
.blog-hero-wrap[style*="background: var(--off-white)"]{
  background: var(--void) !important;
  border-bottom: 1px solid var(--line-light) !important;
  position: relative;
  overflow: hidden
}

/* Hero img de blog landing: dark frame uniforme */
.bl-hero-img-wrap, .blog-hero-wrap{
  background: var(--void-2) !important;
  border: 1px solid var(--line-light) !important;
  border-radius: 16px !important;
  overflow: hidden
}

/* ═══════════════════════════════════════════════════════
   .sv-trust — Acreditaciones Premium (estilo collider/giga/portal)
   Glass cards · gradient borders · monoline icons · live dot
═══════════════════════════════════════════════════════ */
.sv-trust{
  background: var(--void);
  padding: 100px 0;
  border-top: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
  position: relative;
  overflow: hidden
}
.sv-trust::before{
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(40% 60% at 25% 50%, rgba(201,168,108,.06), transparent 65%),
    radial-gradient(40% 60% at 75% 50%, rgba(31,207,198,.04), transparent 65%);
  z-index: 0
}
.sv-trust-inner{
  max-width: 1280px;margin: 0 auto;
  padding: 0 2.5rem;
  position: relative;z-index: 1
}
.sv-trust-header{
  text-align: center;
  max-width: 640px;
  margin: 0 auto 4rem
}
.sv-trust-pill{
  display: inline-flex;align-items: center;gap: 8px;
  padding: 6px 14px;border-radius: 100px;
  background: rgba(31,207,198,.08);
  border: 1px solid rgba(31,207,198,.20);
  font-family: 'Geist', sans-serif;
  font-size: .68rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #4DDDD2;
  font-weight: 500;
  margin-bottom: 1.5rem
}
.sv-trust-dot{
  width: 7px;height: 7px;border-radius: 50%;
  background: #1FCFC6;
  box-shadow: 0 0 12px #1FCFC6;
  animation: svTrustPulse 2.4s ease-in-out infinite;
  flex-shrink: 0
}
@keyframes svTrustPulse{
  0%,100%{opacity: 1;transform: scale(1)}
  50%{opacity: .55;transform: scale(.85)}
}
.sv-trust-title{
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 300;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.1;
  letter-spacing: -.02em;
  color: var(--t-light-1);  /* dark: #F0F1F5 · light: #0E1220 */
  margin: 0 0 .75rem
}
.sv-trust-sub{
  font-family: 'Geist', sans-serif;
  font-size: .94rem;
  color: var(--t-light-2);  /* dark: #B8BDD0 · light: #44495C */
  font-weight: 300;
  line-height: 1.65;
  margin: 0
}

/* Grid */
.sv-trust-grid{
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1rem
}
@media (max-width: 1100px){
  .sv-trust-grid{grid-template-columns: repeat(3, 1fr)}
}
@media (max-width: 720px){
  .sv-trust-grid{grid-template-columns: repeat(2, 1fr);gap: .85rem}
  .sv-trust{padding: 70px 0}
  .sv-trust-inner{padding: 0 1.25rem}
}

/* Card */
.sv-trust-card{
  position: relative;
  background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.005));
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 18px;
  padding: 2rem 1.5rem 1.75rem;
  text-align: center;
  overflow: hidden;
  isolation: isolate;
  transition: transform .35s cubic-bezier(.23,1,.32,1),
              border-color .3s ease,
              box-shadow .35s ease
}
.sv-trust-card:hover{
  transform: translateY(-4px);
  border-color: rgba(201,168,108,.40);
  box-shadow:
    0 24px 48px rgba(0,0,0,.4),
    0 0 0 1px rgba(201,168,108,.15)
}
.sv-trust-card-glow{
  position: absolute;inset: 0;z-index: -1;
  background: radial-gradient(120% 100% at 50% 0%, rgba(201,168,108,.18), transparent 55%);
  opacity: 0;
  transition: opacity .45s ease
}
.sv-trust-card:hover .sv-trust-card-glow{opacity: 1}
.sv-trust-card::before{
  content: '';
  position: absolute;top: 0;left: 50%;
  width: 36px;height: 1px;
  background: linear-gradient(90deg, transparent, var(--gold), transparent);
  transform: translateX(-50%);
  opacity: 0;
  transition: opacity .35s ease, width .5s cubic-bezier(.23,1,.32,1)
}
.sv-trust-card:hover::before{opacity: 1;width: 80px}

/* Icon container */
.sv-trust-icon{
  width: 64px;height: 64px;
  margin: 0 auto 1.5rem;
  display: flex;align-items: center;justify-content: center;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(201,168,108,.10), rgba(201,168,108,.02));
  border: 1px solid rgba(201,168,108,.18);
  position: relative;
  transition: transform .4s cubic-bezier(.23,1,.32,1),
              border-color .3s ease;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05)
}
.sv-trust-icon::after{
  content: '';
  position: absolute;inset: -1px;
  border-radius: 14px;
  padding: 1px;
  background: linear-gradient(135deg, rgba(201,168,108,.4), transparent 50%, rgba(31,207,198,.2));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity .35s ease;
  pointer-events: none
}
.sv-trust-card:hover .sv-trust-icon{
  transform: scale(1.06) translateY(-2px);
  border-color: rgba(201,168,108,.45)
}
.sv-trust-card:hover .sv-trust-icon::after{opacity: 1}
.sv-trust-icon svg{
  width: 36px;height: 36px;
  position: relative;z-index: 1
}
/* Stroke draw on hover */
.sv-trust-icon svg path,
.sv-trust-icon svg circle,
.sv-trust-icon svg rect,
.sv-trust-icon svg ellipse{
  transition: stroke .3s ease, fill .3s ease
}

/* Meta info */
.sv-trust-meta{position: relative;z-index: 1}
.sv-trust-id{
  display: block;
  font-family: 'Fraunces', Georgia, serif;
  font-style: italic;
  font-weight: 300;
  font-size: .72rem;
  letter-spacing: .04em;
  color: var(--gold);
  margin-bottom: .5rem;
  opacity: .85
}
.sv-trust-name{
  font-family: 'Fraunces', Georgia, serif;
  font-weight: 400;
  font-size: 1rem;
  letter-spacing: -.005em;
  line-height: 1.25;
  color: var(--t-light-1);  /* dark: #F0F1F5 · light: #0E1220 */
  margin: 0 0 .35rem
}
.sv-trust-desc{
  font-family: 'Geist', sans-serif;
  font-size: .76rem;
  color: var(--t-light-3);  /* dark: #8B92A8 · light: #6E7388 */
  line-height: 1.55;
  font-weight: 400;
  margin: 0;
  letter-spacing: .005em
}

/* Connector line entre cards (workflow giga style, solo desktop) */
.sv-trust-line{
  position: absolute;
  top: 50%;right: -.5rem;
  width: 1rem;height: 1px;
  background: linear-gradient(90deg, transparent, rgba(201,168,108,.35), transparent);
  z-index: 0;
  pointer-events: none
}
@media (max-width: 1100px){
  .sv-trust-line{display: none}
}
.sv-trust-card:last-child .sv-trust-line,
.sv-trust-card:nth-child(5n) .sv-trust-line{display: none}

/* Sticky mobile CTA inferior (sm-cta-bar) — ya está dark, reforzar */
.sm-cta-bar{
  background: rgba(13,15,27,.95) !important;
  border-top: 1px solid var(--line-light) !important;
  backdrop-filter: blur(20px)
}
.sm-cta-call{background: rgba(255,255,255,.06) !important;color: var(--text) !important}
.sm-cta-reserve{background: var(--gold) !important;color: var(--void) !important}

/* ═══════════════════════════════════════════════════════
   TRATAMIENTOS — clases extra (.urgency-item, .fit-list,
   .financing-strip, .btn-outline, .btn-tel, .pricing-table)
═══════════════════════════════════════════════════════ */

/* Urgency items (urgencias-24h) */
.urgency-item{
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01)) !important;
  border: 1px solid var(--line-light) !important;
  border-radius: 12px !important;
  color: var(--text) !important
}
.urgency-item svg{color: var(--gold) !important;stroke: var(--gold) !important}
.urgency-item span{color: var(--text) !important}

/* Fit-list — bullets de check/x con tema dark */
.fit-list li{color: var(--text) !important}
.fit-card.yes .fit-list li::before{
  background-color: var(--teal) !important
}
.fit-card.no .fit-list li::before{
  background-color: #F87171 !important
}
.fit-card.yes h3, .fit-card.no h3{
  letter-spacing:.06em;
  text-transform: uppercase
}
.fit-card.yes h3{color: var(--teal-light) !important}
.fit-card.no h3{color: #F87171 !important}

/* Financing strip */
.financing-strip{
  background: linear-gradient(180deg, rgba(201,168,108,.06), rgba(255,255,255,.01)) !important;
  border: 1px solid rgba(201,168,108,.20) !important;
  border-radius: 12px !important
}
.financing-strip strong{color: var(--text) !important}
.financing-strip span{color: var(--text-muted) !important}
.financing-strip svg{color: var(--gold) !important}

/* Outline button */
.btn-outline, a.btn-outline, button.btn-outline{
  background: transparent !important;
  border: 1.5px solid var(--gold) !important;
  color: var(--gold) !important;
  border-radius: 100px !important;
  padding: 13px 24px !important;
  transition: all .25s ease
}
.btn-outline:hover{
  background: var(--gold) !important;
  color: var(--void) !important
}

/* Telefono button (en CTA bands oscuros — ya estaban con borde blanco) */
.btn-tel, a.btn-tel{
  background: transparent !important;
  border: 1.5px solid var(--line-light-2) !important;
  color: var(--text) !important;
  border-radius: 100px !important
}
.btn-tel:hover{
  border-color: var(--gold) !important;
  color: var(--gold) !important
}

/* Pricing-table coherente con tema dark */
.pricing-table{
  background: var(--void-2) !important;
  border-radius: 12px !important;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,.3) !important
}
.pricing-table th{
  background: var(--void-3) !important;
  color: var(--gold) !important;
  border-bottom: 1px solid var(--line-light) !important
}
.pricing-table td{
  background: transparent !important;
  color: var(--text) !important;
  border-bottom: 1px solid var(--line-light) !important
}
.pricing-table tr:nth-child(even) td{
  background: rgba(255,255,255,.015) !important
}
.pricing-table tr:hover td{background: rgba(201,168,108,.06) !important}
.pricing-table td:last-child{color: var(--gold) !important;font-weight:500}
.pricing-note{color: var(--text-light) !important}

/* Trust note */
.trust-note{color: var(--text-light) !important}

/* Section intro genérico (en process-section, fit-section, etc.) */
.section-intro, .section-intro p{color: var(--text-muted) !important}

/* Related card text */
.related-card-text strong{color: var(--text) !important}
.related-card-text span{color: var(--text-muted) !important}
.related-card svg{color: var(--gold) !important}

/* Hours card (urgencias) */
.hours-row{border-bottom: 1px solid var(--line-light) !important}
.hours-day{color: var(--text-muted) !important}
.hours-time{color: var(--gold) !important}
.hours-card h3{color: var(--text-muted) !important}

/* FAQ-q SVG icon */
.faq-q svg{color: var(--gold) !important;stroke: var(--gold) !important}

/* CTA-band — anchors específicos sin clase btn-* */
.cta-band a:not([class*="btn-"]):not([class*="cta-"]){
  background: var(--gold) !important;
  color: var(--void) !important;
  border-radius: 100px !important;
  font-weight: 500 !important;
  padding: 14px 28px !important;
  display: inline-flex;
  align-items: center;
  gap: 8px
}
.cta-band a:not([class*="btn-"]):not([class*="cta-"]):hover{
  background: var(--gold-light) !important;
  transform: translateY(-2px)
}

/* ============================================================
   THEME TOGGLE — botón sol/luna en el nav + ítem en menú móvil
   ============================================================ */
.sv-theme-toggle{
  width:38px;height:38px;
  display:inline-flex;align-items:center;justify-content:center;
  background:transparent;
  border:1px solid var(--hairline-strong, rgba(255,255,255,.18));
  border-radius:50%;
  color:var(--text-muted, #B8BDD0);
  cursor:pointer;
  margin-right:12px;
  flex-shrink:0;
  transition:background .15s,color .15s,border-color .15s,transform .15s;
  padding:0;
}
.sv-theme-toggle:hover{
  background:var(--surface-elev, rgba(255,255,255,.04));
  color:var(--text, #F0F1F5);
  border-color:var(--accent, #C9A86C);
}
.sv-theme-toggle:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
.sv-theme-toggle:active{transform:scale(.94)}

/* Versión menú móvil: ítem de fila completa con icono + texto */
.sv-theme-toggle-menu{
  display:flex;align-items:center;gap:10px;
  width:100%;
  background:none;border:none;
  padding:.85rem 0;
  border-bottom:1px solid var(--border, rgba(255,255,255,.10));
  color:var(--text-muted, #B8BDD0);
  font-size:.9rem;
  font-family:inherit;
  cursor:pointer;
  text-align:left;
  transition:color .15s;
}
.sv-theme-toggle-menu:hover{color:var(--accent, #C9A86C)}
.sv-theme-toggle-menu svg{flex-shrink:0}

/* En móvil el botón icon del nav puede ocupar menos. Mantenemos misma medida
   pero quitamos margen lateral para no apretar la barra. */
@media(max-width:920px){
  .sv-theme-toggle{margin-right:8px;width:34px;height:34px}
  .sv-theme-toggle svg{width:16px;height:16px}
}

/* ============================================================
   AJUSTES PARA TEMA CLARO — componentes globales que dependían
   de colores asumidos "siempre sobre fondo oscuro" y necesitan
   adaptarse cuando el sitio está en light.
   ============================================================ */
:root[data-theme="light"]{
  /* Algunas reglas con !important usan rgba(255,255,255,.03) y
     similares para crear separadores tenues sobre dark. En light
     necesitamos invertir esos tintes. Lo logramos creando alias
     que las reglas posteriores referencien — pero como las reglas
     ya están escritas con literales, las sobrescribimos
     puntualmente abajo. */
}

/* Wrappers con bg `rgba(255,255,255,.0X)` en dark son separadores
   sutiles; en light producen un wash blanco invisible. Los hacemos
   surface-card. */
:root[data-theme="light"] .for-whom-card,
:root[data-theme="light"] .fit-card,
:root[data-theme="light"] .why-item,
:root[data-theme="light"] .testimonial,
:root[data-theme="light"] .team-member-card,
:root[data-theme="light"] .blog-card,
:root[data-theme="light"] .related-card,
:root[data-theme="light"] .relacionados-card,
:root[data-theme="light"] .step-card,
:root[data-theme="light"] .h-svc-card,
:root[data-theme="light"] .svc-card,
:root[data-theme="light"] .h-feature-card,
:root[data-theme="light"] .h-team-card,
:root[data-theme="light"] .benefit-card,
:root[data-theme="light"] .why-card,
:root[data-theme="light"] .about-hl{
  background:var(--surface-elev) !important;
  border:1px solid var(--border) !important;
  box-shadow:var(--shadow-rest);
}

/* En light no queremos el overlay oscuro tan oscuro como en dark */
:root[data-theme="light"] .section,
:root[data-theme="light"] .section-alt{
  background:var(--surface-page) !important;
}
:root[data-theme="light"] .section-alt{
  background:var(--surface-elev) !important;
}

/* Editorial CTA (banda con accent) — en light usamos verde + texto blanco */
:root[data-theme="light"] .cta-band a:not([class*="btn-"]):not([class*="cta-"]),
:root[data-theme="light"] .editorial-cta-pill{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
}
:root[data-theme="light"] .cta-band a:not([class*="btn-"]):not([class*="cta-"]):hover,
:root[data-theme="light"] .editorial-cta-pill:hover{
  background:var(--accent-light) !important;
}

/* Botones genéricos */
:root[data-theme="light"] .btn-fill,
:root[data-theme="light"] .h-btn-gold{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
}
:root[data-theme="light"] .btn-fill:hover,
:root[data-theme="light"] .h-btn-gold:hover{
  background:var(--accent-light) !important;
}

/* Premium effects fondos con gradient .03 / .01 — en light no se ven */
:root[data-theme="light"] [class*="gradient"][style*="rgba(255,255,255"]{
  background:transparent !important;
}

/* Footer dark-only adaptations */
:root[data-theme="light"] footer,
:root[data-theme="light"] .footer{
  background:var(--surface-elev) !important;
  color:var(--text-muted) !important;
  border-top:1px solid var(--border) !important;
}
:root[data-theme="light"] footer a,
:root[data-theme="light"] .footer a{
  color:var(--text) !important;
}
:root[data-theme="light"] footer a:hover,
:root[data-theme="light"] .footer a:hover{
  color:var(--accent) !important;
}

/* Nav adaptations en light */
:root[data-theme="light"] nav,
:root[data-theme="light"] .nav{
  background:rgba(255,255,255,.92) !important;
  border-bottom:1px solid var(--border);
  backdrop-filter:blur(14px) saturate(1.2);
}
:root[data-theme="light"] .nav-mobile-menu{
  background:var(--surface-elev) !important;
  border-bottom:1px solid var(--border) !important;
}

/* ============================================================
   OVERRIDES TEMA CLARO para componentes con estilos inline en HTML
   (mobile CTA bar, exit popup, chat win — donde el inline tenía
   valores hardcoded para dark y necesitan adaptarse).
   ============================================================ */

/* Mobile CTA bar
   En subpáginas (equipo, blog, contacto, tratamientos/*) la barra usa dos
   anchors: uno con `href="tel:..."` (Llamar, secundario) y otro a la home
   con #abrir-reserva (Reservar, primario verde). En homepage (index.html)
   es <a tel> + <button>. Distinguimos por href para que el primario sea
   siempre verde fuerte y el secundario sea sutil. */
:root[data-theme="light"] #mobile-cta-bar{
  background:rgba(255,255,255,.94) !important;
  border-top:1px solid var(--border) !important;
  box-shadow:0 -4px 16px rgba(14,18,32,.10) !important;
}
/* Botón secundario: Llamar (anchor con href tel:) */
:root[data-theme="light"] #mobile-cta-bar a[href^="tel:"]{
  background:rgba(14,18,32,.04) !important;
  color:var(--text) !important;
  border:1px solid var(--border) !important;
}
/* Botón primario: Reservar (anchor sin href tel: o <button>) */
:root[data-theme="light"] #mobile-cta-bar a:not([href^="tel:"]),
:root[data-theme="light"] #mobile-cta-bar > button{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
  box-shadow:0 4px 14px rgba(27,75,58,.22) !important;
  border:none !important;
}

/* Exit popup */
:root[data-theme="light"] #exit-popup{
  background:rgba(14,18,32,.55) !important;
}
:root[data-theme="light"] #exit-popup > div{
  background:linear-gradient(180deg,#FFFFFF,#FAF7F2) !important;
  border:1px solid var(--border) !important;
  box-shadow:0 32px 80px rgba(14,18,32,.18) !important;
}
:root[data-theme="light"] #exit-popup h3{color:var(--text) !important}
:root[data-theme="light"] #exit-popup p{color:var(--text-muted) !important}
:root[data-theme="light"] #exit-popup p strong{color:var(--accent) !important}
:root[data-theme="light"] #exit-popup > div > button:first-of-type{
  background:rgba(14,18,32,.05) !important;
  color:var(--text-muted) !important;
}
/* Botón "Reservar revisión" del exit popup → verde en light */
:root[data-theme="light"] #exit-popup button[onclick*="abrirModalReserva"]{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
  box-shadow:0 8px 24px rgba(27,75,58,.22) !important;
}
/* Icono circular gold del exit-popup */
:root[data-theme="light"] #exit-popup > div > div:first-of-type{
  background:var(--accent-pale) !important;
  border-color:var(--accent) !important;
}
:root[data-theme="light"] #exit-popup svg{stroke:var(--accent) !important}

/* Chat window — el contenedor y inputs */
:root[data-theme="light"] .chat-win{
  background:var(--surface-elev) !important;
  border:1px solid var(--border) !important;
  box-shadow:0 24px 64px rgba(14,18,32,.16) !important;
  color:var(--text) !important;
}
:root[data-theme="light"] .chat-header{
  background:var(--surface-elev) !important;
  border-bottom:1px solid var(--border) !important;
  color:var(--text) !important;
}
:root[data-theme="light"] .chat-msgs{background:var(--surface-page) !important}
:root[data-theme="light"] .chat-msgs .msg.bot{
  background:var(--surface-elev) !important;
  border:1px solid var(--border) !important;
  color:var(--text) !important;
}
:root[data-theme="light"] .chat-msgs .msg.user{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
}
:root[data-theme="light"] .chat-msgs .msg-ts{color:var(--text-light) !important;opacity:.7}
:root[data-theme="light"] .chat-input{
  background:var(--surface-page) !important;
  border-top:1px solid var(--border) !important;
}
:root[data-theme="light"] .chat-input input{
  background:var(--surface-elev) !important;
  color:var(--text) !important;
  border:1px solid var(--border) !important;
}
:root[data-theme="light"] .chat-input input::placeholder{color:var(--text-light) !important}
:root[data-theme="light"] .chat-quick .q-btn{
  background:var(--surface-elev) !important;
  border:1px solid var(--border) !important;
  color:var(--text) !important;
}
:root[data-theme="light"] .chat-quick .q-btn:hover{
  background:var(--accent-pale) !important;
  border-color:var(--accent) !important;
  color:var(--accent) !important;
}

/* Tel capture inline (cuando el bot pide el teléfono) */
:root[data-theme="light"] #chat-tel-cap{
  background:white !important;
  color:var(--text) !important;
  border:1px solid var(--border) !important;
}
:root[data-theme="light"] .msg.bot button{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
}

/* FAB botones flotantes (WhatsApp / Llamar / Reservar) */
:root[data-theme="light"] .fab-trigger{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
  box-shadow:0 8px 24px rgba(27,75,58,.30) !important;
}
:root[data-theme="light"] .fab-options{
  background:var(--surface-elev) !important;
  border:1px solid var(--border) !important;
  box-shadow:0 24px 64px rgba(14,18,32,.16) !important;
}
:root[data-theme="light"] .fab-option{
  color:var(--text) !important;
}
:root[data-theme="light"] .fab-option:hover{background:var(--surface-card) !important}

/* Sticky CTA pill (h-sticky-cta) — fondo dark hardcoded; en light se invierte */
:root[data-theme="light"] .h-sticky-cta{
  background:var(--accent) !important;
  color:var(--on-accent) !important;
  border:1px solid var(--accent-light) !important;
}

/* Hero overlay / video tints — en light reducir el oscuro */
:root[data-theme="light"] .hero-overlay,
:root[data-theme="light"] [class*="hero"][class*="overlay"]{
  background:linear-gradient(180deg,transparent,rgba(14,18,32,.04)) !important;
}

/* Press logos en light: solo cambia el tono del texto (color ya va por tokens).
   El sitio no rodea los logos con border/bg en dark; añadirlos en light creaba
   recuadros feos visibles. Dejamos sólo color para legibilidad sutil. */
:root[data-theme="light"] .h-press-logo{
  color:var(--t-light-2) !important;
}
:root[data-theme="light"] .h-press-logo:hover{
  color:var(--accent) !important;
}

/* .sv-trust-card en light: tarjetas con bg blanco y borde tonal sutil.
   En dark mantenemos el gradient blanco-translúcido original. */
:root[data-theme="light"] .sv-trust-card{
  background:linear-gradient(180deg, rgba(14,18,32,.02), rgba(14,18,32,.005)) !important;
  border:1px solid var(--border) !important;
}
:root[data-theme="light"] .sv-trust-card:hover{
  border-color:rgba(184,150,90,.5) !important;
  box-shadow:0 16px 40px rgba(14,18,32,.10),
             0 0 0 1px rgba(184,150,90,.15) !important;
}
/* Icono central de las tarjetas trust: el gradient gold con borde gold sutil
   ya queda elegante sobre crema, no toca. */
:root[data-theme="light"] .sv-trust-icon{
  background:linear-gradient(180deg, rgba(184,150,90,.10), rgba(184,150,90,.02)) !important;
  border:1px solid rgba(184,150,90,.25) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.6) !important;
}
:root[data-theme="light"] .sv-trust-card:hover .sv-trust-icon{
  border-color:rgba(184,150,90,.55) !important;
}
/* Pill "Verificado · Actualizado mensualmente": en dark el teal queda bien.
   En light, ese teal claro sobre crema baja contraste. Adaptamos. */
:root[data-theme="light"] .sv-trust-pill{
  background:rgba(14,124,117,.10) !important;
  border-color:rgba(14,124,117,.30) !important;
  color:#0E7C75 !important;
}
:root[data-theme="light"] .sv-trust-dot{
  background:#0E7C75 !important;
  box-shadow:0 0 12px rgba(14,124,117,.5) !important;
}

/* ============================================================
   MOBILE OPTIMIZATIONS — touch targets, iOS auto-zoom, legibilidad
   Aplicadas a ≤768px (umbral mobile estándar del sitio).
   No tocan desktop. Prioridad en conversión.
   ============================================================ */
@media (max-width: 768px){

  /* ── 1. iOS auto-zoom fix: cualquier input con font-size < 16px
        provoca zoom automático en iOS Safari cuando recibe focus.
        Forzamos 16px en todos los inputs/textarea/select. ── */
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  textarea,
  select{
    font-size: 16px !important;
  }

  /* ── 2. Touch target mínimo 44px para inputs principales ── */
  .bk-field input:not([type="checkbox"]),
  .bk-field select,
  .field input:not([type="checkbox"]),
  .field select,
  #cf-body input:not([type="checkbox"]),
  #cf-body select{
    min-height: 48px;
    padding: 13px 14px;
  }

  /* ── 3. Nav hamburger — touch target accesible ── */
  .nav-hamburger{
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 11px !important;
  }
  .nav-hamburger span{ width: 22px !important; }

  /* ── 4. Theme toggle ── */
  .sv-theme-toggle{
    width: 40px !important;
    height: 40px !important;
  }

  /* ── 5. Nav CTA principal del header en mobile — OCULTAR ──
        Es redundante en mobile (ya hay sticky CTA bar abajo + nav-mobile-cta
        en el menú hamburguesa). Ademas mide ~160px y empuja el burger
        fuera del viewport en pantallas 360px (Galaxy S8, etc). */
  .nav-cta{
    display: none !important;
  }

  /* ── 6. "Ver" links de servicios — padding generoso ── */
  .h-svc-link,
  .svc-link{
    min-height: 44px;
    padding: 12px 0;
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
  }

  /* ── 7. Footer links — padding vertical para que el área click sea
        ≥44px sin alterar el visual demasiado ── */
  .footer-col a,
  .footer-links a{
    display: inline-block;
    padding: 11px 0;
    min-height: 44px;
    line-height: 1.4;
  }

  /* ── 8. Calendario booking — celdas más grandes en mobile ── */
  .sv-cal-cell{
    min-height: 42px !important;
  }
  .sv-cal-num{ font-size: 0.95rem !important; }

  /* ── 9. Franjas de hora del booking — más altas (más clicables) ── */
  #franjas-grid button[data-hora],
  #franjas-grid button[data-hora-ocupada]{
    min-height: 44px !important;
    font-size: 0.9rem !important;
    padding: 10px 4px !important;
  }

  /* ── 10. CTAs primarios en mobile — bien grandes, fáciles de leer ── */
  .h-btn-gold, .h-btn-primary, .h-btn-teal, .h-btn-dark,
  .btn-fill, .btn-fill-white, .btn-outline-white,
  .bk-submit, .form-submit,
  button.sv-cc-btn-primary{
    min-height: 50px !important;
    font-size: 1rem !important;             /* 16px — estándar móvil */
    padding: 14px 22px !important;
  }
  /* Hero actions: override de home.css que metía .84rem sin !important */
  .h-hero-actions .h-btn{
    font-size: 1rem !important;
    min-height: 52px !important;
    padding: 15px 22px !important;
  }
  .h-btn-ghost{
    /* En hero secondary CTA — asegurar contraste de borde y texto */
    border-width: 1.5px !important;
  }

  /* ── 11. Overlines/labels mínimo 12px para mejorar legibilidad al sol ── */
  .h-overline, .h-press-label, .overline,
  .h-team-role, .nav-mobile-section,
  .h-compare-us, .lbl, .footer-urgencias,
  .h-stats-label, .h-bento-label{
    font-size: 0.76rem !important;       /* ~12.2px — antes 0.7rem (~11.2px) */
    letter-spacing: 0.12em !important;
  }

  /* ── 12. Tagline del logo nav — pequeño pero legible ── */
  .nav-logo-tagline{
    font-size: 0.72rem !important;        /* ~11.5px en lugar de 10.4px */
  }

  /* ── 13. Labels de formularios — buena legibilidad ── */
  .bk-field label,
  .field label,
  #cf-body label{
    font-size: 0.85rem !important;
    margin-bottom: 6px;
    display: block;
  }

  /* ── 14. Checkboxes RGPD — más grandes y áreas más amables al touch ── */
  #b-rgpd, #c-rgpd, #le-form input[type="checkbox"]{
    width: 18px !important;
    height: 18px !important;
    min-width: 18px;
  }
  /* La etiqueta entera (incluido el link) actúa como touch zone */
  label:has(#b-rgpd), label:has(#c-rgpd){
    padding: 4px 0;
    min-height: 44px;
    align-items: center !important;
  }

  /* ── 15. Mobile CTA bar — botones más altos, tipografía legible ── */
  #mobile-cta-bar > a,
  #mobile-cta-bar > button{
    min-height: 48px !important;
    font-size: 15px !important;
    padding: 13px !important;
  }
  /* Asegurar espacio vertical para el sticky bar */
  @supports (padding: max(0px)) {
    body{ padding-bottom: max(76px, env(safe-area-inset-bottom, 0px)) !important; }
    #mobile-cta-bar{ padding-bottom: max(.75rem, env(safe-area-inset-bottom, 0px)) !important; }
  }

  /* ── 16. Sticky CTA pill — no estorbar y ser pulsable ── */
  .h-sticky-cta{
    bottom: 84px !important;   /* deja espacio para el mobile-cta-bar */
    min-height: 44px;
    padding: 11px 16px !important;
  }

  /* ── 17. Hero h1 — escalar mejor en mobile ── */
  .h-hero h1,
  .hero h1,
  .page-hero h1{
    font-size: clamp(1.85rem, 8vw, 2.6rem) !important;
    line-height: 1.1 !important;
  }

  /* ── 18. Modal booking — más confortable en mobile ── */
  .bk-modal-content{
    padding: 1.25rem !important;
  }
  .bk-left-panel,
  .bk-right-panel{
    padding: 1.4rem 1.1rem !important;
  }

  /* ── 19. Modal close button — fácil de pulsar ── */
  .modal-close{
    width: 44px !important;
    height: 44px !important;
    top: 12px !important;
    right: 12px !important;
  }

  /* ── 20. FAB / sticky CTA superpuesto al mobile-cta-bar ── */
  .fab-options{ bottom: 152px !important; }
  .fab-trigger{ bottom: 92px !important; }

  /* ── 21. Body text base — 16px para confort de lectura ── */
  body{ font-size: 16px; }
  p, .article-body p, .legal-body p{
    font-size: 1rem;
    line-height: 1.7;
  }

  /* ── 22. Tablas: scroll horizontal si exceden viewport ── */
  table{ display: block; overflow-x: auto; max-width: 100%; }

  /* ── 23. Mobile menu — tipografía y áreas táctiles correctas ── */
  .nav-mobile-menu{
    padding-top: 1.1rem !important;
    padding-bottom: 1.5rem !important;
    gap: 2px !important;
  }
  .nav-mobile-menu a{
    font-size: 17px !important;
    font-weight: 500 !important;
    padding: 14px 4px !important;
    min-height: 50px !important;
    display: flex !important;
    align-items: center !important;
    letter-spacing: 0;
  }
  .nav-mobile-menu .nav-mobile-sub{
    font-size: 15.5px !important;
    font-weight: 400 !important;
    padding-left: 14px !important;
    opacity: .92;
  }
  .nav-mobile-menu .nav-mobile-section{
    font-size: 11.5px !important;
    letter-spacing: 0.14em !important;
    margin-top: 1.4rem !important;
    margin-bottom: 0.2rem !important;
    font-weight: 600 !important;
    min-height: auto !important;
    padding: 4px 0 !important;
  }
  .nav-mobile-menu .nav-mobile-cta{
    margin-top: 1.4rem !important;
    padding: 16px 18px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    border-radius: 10px !important;
    text-align: center !important;
    justify-content: center !important;
    min-height: 52px !important;
  }

  /* ── 24. Mobile menu: contraste correcto en DARK theme ──
        Antes el texto era #44495C (gris oscuro) sobre fondo #0D0F1B
        (dark navy) = ratio 2:1 (FALLA WCAG). Forzamos colores claros
        cuando el tema NO es light (cubre dark explícito y sin atributo). */
  :root:not([data-theme="light"]) .nav-mobile-menu a{
    color: #E5E8F0 !important;
  }
  :root:not([data-theme="light"]) .nav-mobile-menu a:hover,
  :root:not([data-theme="light"]) .nav-mobile-menu a.active{
    color: var(--gold, #C9A86C) !important;
  }
  :root:not([data-theme="light"]) .nav-mobile-menu .nav-mobile-section{
    color: #9CA3B5 !important;
  }
  :root:not([data-theme="light"]) .nav-mobile-menu a.nav-mobile-cta{
    background: var(--gold, #C9A86C) !important;
    color: #07080F !important;
  }

  /* ── 25. Mobile menu: refinos LIGHT theme ──
        En light, .nav-mobile-menu a (especificidad 0,0,2,0) gana sobre
        .nav-mobile-cta (0,0,1,0) → el CTA hereda gris en lugar del color
        oscuro destacado. También .nav-mobile-section queda en #8B92A8
        ~3:1 sobre blanco (FALLA AA). Forzamos visibilidad. */
  :root[data-theme="light"] .nav-mobile-menu a.nav-mobile-cta{
    background: #C9A86C !important;
    color: #07080F !important;
  }
  :root[data-theme="light"] .nav-mobile-menu .nav-mobile-section{
    color: #5A6178 !important;        /* ~6.5:1 sobre blanco — AA holgado */
  }
  :root[data-theme="light"] .nav-mobile-menu a:hover,
  :root[data-theme="light"] .nav-mobile-menu a.active{
    color: var(--accent, #1B4B3A) !important;
  }

  /* ────────────────────────────────────────────────────────
     MOBILE FIRST REDESIGN — el CSS desktop-first dejaba
     CTAs truncados, foto del hero perdida, badges cortados.
     Estas reglas son las ÚLTIMAS del media query — máxima
     prioridad de cascada.
     ──────────────────────────────────────────────────────── */

  /* HERO — CTAs verticales full-width (antes flex con nowrap+clip
     recortaba el texto "Reservar revisión gratuita") */
  .h-hero-actions{
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-bottom: 2rem !important;
    width: 100% !important;
  }
  .h-hero-actions .h-btn{
    flex: none !important;
    min-width: 0 !important;
    width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
    padding: 16px 20px !important;
    font-size: 1rem !important;
    min-height: 54px !important;
  }
  /* Theme toggle: en móvil ocupa espacio y no es prioritario
     (el sistema operativo ya da prefers-color-scheme).
     Sigue accesible desde el menú si lo añadimos ahí en el futuro. */
  .sv-theme-toggle{ display: none !important; }

  /* Stats hero: layout vertical con separaciones claras */
  .h-hero-rating{
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 0.6rem !important;
  }
  .h-hero-rating-divider{ display: none !important; }
  .h-hero-rating-text{
    font-size: 0.86rem !important;
    line-height: 1.4 !important;
  }

  /* Hero visual: foto MÁS COMPACTA en mobile + visible */
  .h-hero-visual{
    height: 280px !important;
    border-radius: 16px !important;
    overflow: hidden !important;
  }
  .h-hero-floating{
    font-size: 11px !important;
    padding: 8px 12px !important;
  }
  .h-hero-floating-1{ display: flex !important; top: 12px !important; left: 12px !important; }
  .h-hero-floating-2{ bottom: 12px !important; left: 12px !important; right: auto !important; }
  .h-hero-floating-2 .num{ font-size: 1.1rem !important; }

  /* Hero h1: ajuste fino para que no quede gigante */
  .h-hero h1{
    font-size: clamp(1.85rem, 7.5vw, 2.4rem) !important;
    line-height: 1.15 !important;
    margin-bottom: 1rem !important;
  }
  .h-hero-desc{
    font-size: 0.96rem !important;
    line-height: 1.55 !important;
    margin-bottom: 1.6rem !important;
  }

  /* ───────── MODAL RESERVA — single column en móvil ───────── */
  #modal-reserva .bk-modal-content{
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    margin: 0 !important;
  }
  #modal-reserva .bk-left-panel{
    display: none !important;        /* En móvil, foco TOTAL en el form */
  }
  #modal-reserva .bk-right-panel{
    padding: 24px 18px 80px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  #modal-reserva .modal-close{
    top: 14px !important;
    right: 14px !important;
    width: 44px !important;
    height: 44px !important;
    z-index: 10 !important;
    background: rgba(0,0,0,.06) !important;
  }
  #modal-reserva .bk-step-title{
    font-size: 1.5rem !important;
    margin-bottom: 0.5rem !important;
  }
  /* Inputs full-width + más altos */
  #modal-reserva .bk-row{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  #modal-reserva .bk-field input,
  #modal-reserva .bk-field select,
  #modal-reserva .bk-field textarea{
    width: 100% !important;
    min-height: 50px !important;
    font-size: 16px !important;
    padding: 13px 14px !important;
  }

  /* ═════════════════════════════════════════════════════
     CHAT MÓVIL — Fase A
     - El wrapper EXTERIOR (.chat-wrap) hace de backdrop SOLO cuando el
       chat está abierto: posiciona el panel fullscreen, fondo dim,
       z-index altísimo para que esté por encima de TODO. Cuando el
       chat está cerrado, .chat-wrap vuelve a su tamaño normal (botón
       flotante) — IMPORTANTE para no bloquear clicks en la página.
     - .chat-win.open: 100dvh (no 100vh) → respeta la barra de Safari iOS.
     - .chat-msgs: flex:1 + overflow auto → scroll interno, no bloquea body.
     - .chat-close: 48×48px, z-index 10000, posición absoluta arriba dcha.
     ═════════════════════════════════════════════════════ */
  .chat-wrap{
    /* DEFAULT (chat cerrado): vuelve al estado de botón flotante */
    background: transparent !important;
  }
  .chat-wrap:has(.chat-win.open){
    /* Cuando el chat ESTÁ abierto, el wrap se convierte en backdrop */
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    background: rgba(7, 8, 15, 0.55) !important;
    z-index: 9999 !important;
  }
  .chat-wrap .chat-win.open{
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
    border: 0 !important;
    transform: none !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    z-index: 10000 !important;
  }
  /* Header del chat — fijo arriba, ESPACIO para el close X */
  .chat-wrap .chat-win.open .chat-head{
    flex: 0 0 auto;
    padding: 18px 64px 18px 20px !important;
    min-height: 64px;
    position: relative;
  }
  /* Mensajes — ocupan TODO el espacio restante con scroll interno */
  .chat-wrap .chat-win.open .chat-msgs{
    flex: 1 1 auto !important;
    height: auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 1.1rem !important;
  }
  /* Quick buttons + input row — siempre visibles abajo */
  .chat-wrap .chat-win.open .chat-quick,
  .chat-wrap .chat-win.open .chat-inp-row{
    flex: 0 0 auto;
  }
  .chat-wrap .chat-win.open .chat-inp{
    font-size: 16px !important;       /* evita zoom iOS */
    min-height: 48px !important;
  }
  /* Botón CERRAR — siempre visible, 48×48, z-index ALTÍSIMO */
  .chat-wrap .chat-win.open .chat-close{
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    width: 48px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: rgba(255,255,255,.12) !important;
    border: 0 !important;
    border-radius: 50% !important;
    color: #fff !important;
    font-size: 24px !important;
    line-height: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    z-index: 10001 !important;
  }
  .chat-wrap .chat-win.open .chat-close:hover,
  .chat-wrap .chat-win.open .chat-close:focus{
    background: rgba(255,255,255,.22) !important;
    outline: none;
  }
  /* Botón flotante (chat-toggle / fab) — fuera del header sticky */
  .chat-toggle{
    width: 54px !important;
    height: 54px !important;
    bottom: 88px !important;
    right: 14px !important;
  }
  /* Cuando chat abierto, ocultar la burbuja flotante */
  .chat-wrap:has(.chat-win.open) .chat-toggle,
  .chat-wrap:has(.chat-win.open) .fab-trigger{ display: none !important; }

  /* ───────── FORM CONTACTO en móvil ───────── */
  #cf-body .field,
  .field{
    width: 100% !important;
  }
  #cf-body .row{
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
  .form-submit, button.form-submit{
    width: 100% !important;
    min-height: 54px !important;
    font-size: 16px !important;
  }

  /* ───────── BOOKING modal SUBPAGE links: que abran modal in-page ─────────
     Las subpáginas hacen <a href="../index.html#abrir-reserva"> — en móvil eso
     supone navegar a otra página completa. NO se puede arreglar con CSS solo;
     necesita JS para abrir el modal si existe en la propia página. */
}

/* ============================================================
   MOBILE COMPACT — pantallas muy pequeñas (≤380px)
   iPhone SE, plegables cerrados, etc.
   ============================================================ */
@media (max-width: 380px){
  .h-container, .container{
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  /* Menos padding hero para no perder espacio vertical */
  .h-hero{ padding-top: 96px !important; padding-bottom: 60px !important; }
  /* Stats inline para no romper layout */
  .h-cinema-meta{ gap: 1rem !important; }
}
