/* ==========================================================================
   DENTSTUDIO CDMX — DESIGN SYSTEM
   Paleta: Azul Marino + Dorado | Tipografía: Playfair Display + Inter
   ========================================================================== */

:root{
  /* --- Color: Marino profundo (base cinematográfica) --- */
  --navy-950:#050a14;
  --navy-900:#0a1628;
  --navy-850:#0d1d36;
  --navy-800:#112238;
  --navy-700:#152a4d;

  /* --- Color: Azul real (marca / tarjetas) — vibrante y llamativo --- */
  --blue-700:#0a3ee6;
  --blue-600:#155bff;
  --blue-500:#3a80ff;
  --blue-400:#6aa2ff;

  /* --- Color: Dorado (acento de lujo) --- */
  --gold-700:#9c7a3d;
  --gold-600:#b9924a;
  --gold-500:#cba25e;
  --gold-400:#ddbd82;
  --gold-100:#f4e9d4;

  /* --- Neutros --- */
  --ivory:#f7f8fb;
  --ivory-deep:#eef1f7;
  --white:#ffffff;
  --ink-900:#0e1420;
  --ink-700:#2c3444;
  --ink-500:#5b6478;
  --ink-300:#a4acbc;
  --line:#e3e7ef;

  /* --- Tipografía --- */
  --font-display:'Playfair Display', 'Georgia', serif;
  --font-body:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

  /* --- Espaciado / radios / sombras --- */
  --radius-sm:8px;
  --radius-md:16px;
  --radius-lg:28px;
  --radius-pill:999px;
  --shadow-soft:0 12px 40px -12px rgba(10,22,40,.18);
  --shadow-deep:0 30px 70px -20px rgba(5,10,20,.45);
  --shadow-gold:0 10px 30px -8px rgba(201,169,97,.45);

  --container:1280px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; }
:root{ --vh:1vh; } /* JS la recalcula real en móvil para evitar cortes por la barra del navegador */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

body{
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--ivory);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; }
input,select{ font:inherit; }
svg{ display:block; }

.container{ max-width:var(--container); margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .container{ padding:0 20px; } }

section{ position:relative; }

/* Focus visibility for accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible{
  outline:2px solid var(--gold-500);
  outline-offset:3px;
  border-radius:4px;
}

/* --------------------------------------------------------------------------
   Tipografía
   -------------------------------------------------------------------------- */
h1,h2,h3,h4{ font-family:var(--font-display); font-weight:700; line-height:1.12; color:var(--navy-900); }

.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--font-body); font-size:12.5px; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase; color:var(--gold-600);
}
.eyebrow::before{ content:''; width:26px; height:1px; background:var(--gold-500); }

.section-head{ text-align:center; max-width:680px; margin:0 auto 56px; }
.section-head h2{ font-size:clamp(28px,4vw,44px); margin-top:14px; }
.section-head p{ color:var(--ink-500); margin-top:16px; font-size:16.5px; }
.section-head .accent{ color:var(--blue-600); font-style:italic; }

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 32px; border-radius:var(--radius-pill);
  font-weight:600; font-size:14.5px; letter-spacing:.03em;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s, color .3s, border-color .3s;
  white-space:nowrap;
}
.btn svg{ width:16px; height:16px; }
.btn:hover{ transform:translateY(-2px); }

.btn-gold{
  background:linear-gradient(135deg,var(--gold-400),var(--gold-600));
  color:var(--navy-950); box-shadow:var(--shadow-gold);
}
.btn-gold:hover{ box-shadow:0 16px 36px -10px rgba(201,169,97,.6); }

.btn-outline-light{
  background:rgba(255,255,255,.06);
  color:var(--white);
  border:1.5px solid rgba(255,255,255,.55);
  backdrop-filter:blur(6px);
}
.btn-outline-light:hover{ background:rgba(255,255,255,.16); border-color:#fff; }

.btn-navy{
  background:var(--navy-900); color:var(--white);
}
.btn-navy:hover{ background:var(--navy-800); }

.btn-block{ width:100%; }
.btn-sm{ padding:11px 20px; font-size:13px; }

.link-arrow{
  display:inline-flex; align-items:center; gap:8px; font-weight:600; font-size:14px;
  color:var(--blue-600);
}
.link-arrow svg{ width:14px; height:14px; transition:transform .3s var(--ease); }
.link-arrow:hover svg{ transform:translateX(4px); }

/* --------------------------------------------------------------------------
   Barra superior de utilidad (opcional, muy fina)
   -------------------------------------------------------------------------- */
.topbar{
  background:var(--navy-950); color:rgba(255,255,255,.75);
  font-size:12.5px; letter-spacing:.02em;
}
.topbar .container{ display:flex; align-items:center; justify-content:space-between; height:38px; }
.topbar a{ color:var(--gold-400); font-weight:600; }
.topbar-links{ display:flex; gap:22px; align-items:center; }
@media (max-width:900px){ .topbar{ display:none; } }

/* --------------------------------------------------------------------------
   Navegación
   -------------------------------------------------------------------------- */
.nav{
  position:fixed; top:38px; left:0; right:0; z-index:200;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), top .3s var(--ease), padding .35s var(--ease);
  padding:22px 0;
}
.nav.is-scrolled{
  top:0; background:rgba(6,13,26,.86); backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 12px 30px -18px rgba(0,0,0,.6); padding:13px 0;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.nav .container{ display:flex; align-items:center; justify-content:space-between; gap:24px; }

.brand{ display:flex; align-items:center; gap:12px; }
.brand-mark{ width:42px; height:42px; flex:none; }
.brand-word{ font-family:var(--font-display); color:var(--white); line-height:1.05; }
.brand-word b{ display:block; font-size:18px; letter-spacing:.04em; font-weight:700; }
.brand-word span{ display:block; font-family:var(--font-body); font-size:10px; letter-spacing:.32em; color:var(--gold-400); font-weight:600; margin-top:2px; }

.brand-logo{ height:40px; width:auto; flex:none; }
.footer-brand .brand-logo{ height:34px; }
@media (max-width:640px){ .brand-logo{ height:34px; } }

.nav-menu{ display:flex; align-items:center; gap:30px; }
.nav-menu a{
  font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.88); position:relative; padding:6px 0;
}
.nav-menu a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--gold-500); transform:scaleX(0); transform-origin:right;
  transition:transform .35s var(--ease);
}
.nav-menu a:hover::after, .nav-menu a.active::after{ transform:scaleX(1); transform-origin:left; }
.nav-menu a:hover{ color:#fff; }

.nav-actions{ display:flex; align-items:center; gap:14px; }
.nav-actions .btn{ padding:13px 26px; font-size:13px; }

.nav-toggle{
  display:none; width:44px; height:44px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); align-items:center; justify-content:center;
  color:#fff; flex:none;
}

@media (max-width:1080px){
  .nav-menu{ display:none; }
  .nav-toggle{ display:flex; }
}

/* Menú móvil */
.mobile-menu{
  position:fixed; inset:0; z-index:300; background:var(--navy-950);
  display:flex; flex-direction:column; padding:110px 32px 40px;
  transform:translateX(100%); transition:transform .5s var(--ease);
}
.mobile-menu.is-open{ transform:translateX(0); }
.mobile-menu-close{
  position:absolute; top:26px; right:26px; width:46px; height:46px; border-radius:50%;
  border:1px solid rgba(255,255,255,.3); display:flex; align-items:center; justify-content:center; color:#fff;
}
.mobile-menu a{
  font-family:var(--font-display); font-size:28px; color:#fff; padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.mobile-menu .btn{ margin-top:28px; }

/* --------------------------------------------------------------------------
   HERO
   -------------------------------------------------------------------------- */
.hero{
  position:relative; min-height:100vh; min-height:calc(var(--vh, 1vh) * 100); display:flex; align-items:center;
  padding-top:120px; overflow:hidden; isolation:isolate;
  background:var(--navy-950);
}
.hero-bg{
  position:absolute; inset:0; z-index:-4;
  background-image:url('https://images.pexels.com/photos/29811340/pexels-photo-29811340.jpeg?auto=compress&cs=tinysrgb&w=1920');
  background-size:cover; background-position:center 22%; filter:blur(2px) brightness(.9);
}
.hero-scrim{
  position:absolute; inset:0; z-index:-2;
  background:
    linear-gradient(100deg, rgba(5,10,20,.97) 12%, rgba(6,13,26,.9) 42%, rgba(10,20,42,.75) 68%, rgba(14,32,66,.82) 100%),
    linear-gradient(0deg, rgba(5,10,20,.9), transparent 40%);
}
.hero-grid{
  position:absolute; inset:0; z-index:-1; opacity:.35; mix-blend-mode:screen;
  background-image:
    linear-gradient(rgba(74,134,240,.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(74,134,240,.14) 1px, transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(circle at 78% 45%, black, transparent 60%);
  mask-image:radial-gradient(circle at 78% 45%, black, transparent 60%);
}
.hero-glow{
  position:absolute; z-index:-1; width:640px; height:640px; right:-160px; top:8%;
  background:radial-gradient(circle, rgba(37,104,224,.35), transparent 68%);
  filter:blur(10px);
}

.hero .container{ display:grid; grid-template-columns:1.05fr .55fr; gap:40px; align-items:center; padding-bottom:70px; }

.hero-content{ color:#fff; max-width:640px; }
.hero-content > *{ animation:heroFadeUp .9s var(--ease) both; }
.hero-logo{ animation-delay:.05s; }
.hero-title{ animation-delay:.22s; }
.hero-sub{ animation-delay:.38s; }
.hero-cta{ animation-delay:.54s; }
@keyframes heroFadeUp{ from{ opacity:0; transform:translateY(22px); } to{ opacity:1; transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){ .hero-content > *{ animation:none; } }

.hero-logo{ height:76px; width:auto; margin-bottom:30px; filter:drop-shadow(0 10px 24px rgba(0,0,0,.4)); }
.hero-eyebrow{
  font-size:13px; font-weight:700; letter-spacing:.32em; text-transform:uppercase;
  color:rgba(255,255,255,.72); display:flex; align-items:center; gap:12px; margin-bottom:20px;
}
.hero-eyebrow::before{ content:''; width:34px; height:1px; background:var(--gold-500); }

.hero-title{
  font-size:clamp(42px,6.4vw,80px); color:#fff; letter-spacing:.01em; font-weight:700;
}
.hero-title .line2{
  display:block; background:linear-gradient(120deg,var(--gold-400),var(--gold-600) 60%);
  -webkit-background-clip:text; background-clip:text; color:transparent; font-style:italic;
}
.hero-sub{
  margin-top:22px; font-size:13.5px; letter-spacing:.24em; text-transform:uppercase;
  color:rgba(255,255,255,.66); font-weight:600;
}
.hero-cta{ display:flex; gap:16px; margin-top:38px; flex-wrap:wrap; }

.hero-side-rail{
  position:absolute; right:34px; top:50%; transform:translateY(-50%); z-index:5;
  display:flex; flex-direction:column; gap:18px; align-items:center;
}
.rail-btn{
  width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); color:#fff;
  backdrop-filter:blur(8px); transition:background .3s,border-color .3s,transform .3s;
  flex-direction:column; gap:2px;
}
.rail-btn svg{ width:19px; height:19px; }
.rail-btn small{ font-size:8.5px; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }
.rail-btn:hover{ background:var(--gold-500); border-color:var(--gold-500); color:var(--navy-950); transform:translateY(-3px); }

.hero-scroll{
  position:absolute; left:50%; bottom:28px; transform:translateX(-50%); z-index:5;
  width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.3);
  display:flex; align-items:center; justify-content:center; color:#fff;
  animation:bob 2.4s ease-in-out infinite;
}
@keyframes bob{ 0%,100%{ transform:translate(-50%,0);} 50%{ transform:translate(-50%,8px);} }

/* Panel de video "tour" — pequeño, vertical, renderiza nítido en cualquier pantalla */
.hero-tour{
  justify-self:end; height:min(85vh, 760px); width:auto; aspect-ratio:9/16; position:relative;
  border-radius:24px; overflow:hidden; padding:5px;
  background:linear-gradient(155deg, rgba(255,255,255,.35), rgba(201,169,97,.4) 55%, rgba(255,255,255,.08));
  box-shadow:var(--shadow-deep);
  animation:heroFadeUp 1s var(--ease) .5s both;
}
.hero-tour-inner{ position:relative; width:100%; height:100%; border-radius:20px; overflow:hidden; background:var(--navy-950); }
.hero-tour-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  opacity:0; transition:opacity 1.6s ease;
}
.hero-tour-video.active{ opacity:1; }
.hero-tour-inner::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, rgba(6,12,24,.05) 55%, rgba(6,12,24,.88));
}
.hero-tour-tag{
  position:absolute; left:12px; bottom:12px; z-index:3; display:flex; align-items:center; gap:7px;
  color:#fff; font-size:10.5px; font-weight:700; letter-spacing:.02em;
}
.hero-tour-dot{ width:7px; height:7px; border-radius:50%; background:#ff5b5b; animation:tourPulse 1.8s ease-in-out infinite; flex:none; }
@keyframes tourPulse{ 0%,100%{ opacity:1; transform:scale(1);} 50%{ opacity:.4; transform:scale(.7);} }
@media (prefers-reduced-motion: reduce){ .hero-tour-dot{ animation:none; } }

@media (max-width:1080px){
  .hero .container{ grid-template-columns:1fr; padding-bottom:56px; justify-items:center; text-align:center; }
  .hero-content{ text-align:center; }
  .hero-eyebrow{ justify-content:center; }
  .hero-cta{ justify-content:center; }
  .hero-tour{ justify-self:center; margin-top:10px; height:min(85vh, 560px); }
  .hero-side-rail{ right:16px; gap:12px; }
  .rail-btn{ width:48px; height:48px; }
}
@media (max-width:560px){
  .hero{ padding-top:100px; min-height:96vh; min-height:calc(var(--vh, 1vh) * 96); }
  .hero-logo{ height:56px; margin-bottom:22px; }
  .hero-side-rail{ display:none; }
  .hero-cta{ flex-direction:column; width:100%; }
  .hero-cta .btn{ width:100%; }
  .hero-tour{ height:min(85vh, 460px); border-radius:18px; padding:4px; }
  .hero-tour-inner{ border-radius:14px; }
}

/* --------------------------------------------------------------------------
   TRATAMIENTOS
   -------------------------------------------------------------------------- */
.treatments{ padding:120px 0 100px; background:var(--ivory); }
.treatments-grid{
  display:grid; grid-template-columns:repeat(5,1fr); gap:18px;
}
.t-card{
  position:relative; border-radius:var(--radius-md); padding:30px 20px 26px;
  background:var(--white); border:1px solid var(--line);
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), background .4s, border-color .4s;
  min-height:230px; justify-content:center;
}
.t-card:hover{ transform:translateY(-8px); box-shadow:var(--shadow-soft); border-color:transparent; }
.t-icon{
  width:76px; height:76px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:var(--ivory-deep); color:var(--blue-600); transition:background .4s,color .4s;
}
.t-icon svg{ width:34px; height:34px; }
.t-card span{ font-weight:700; font-size:14.5px; color:var(--navy-900); letter-spacing:.01em; }
.t-card small{ font-size:12px; color:var(--ink-500); }

.t-card.featured{
  background:linear-gradient(155deg,var(--blue-700),var(--navy-900));
  color:#fff; border-color:transparent;
}
.t-card.featured .t-icon{ background:rgba(255,255,255,.14); color:var(--gold-400); }
.t-card.featured span{ color:#fff; }
.t-card.featured small{ color:rgba(255,255,255,.65); }

.t-card.cta-card{
  background:var(--navy-900); color:#fff; cursor:pointer;
}
.t-card.cta-card .t-icon{ background:var(--gold-500); color:var(--navy-950); }
.t-card.cta-card span{ color:#fff; }
.t-card.cta-card:hover{ background:var(--navy-800); }

@media (max-width:1080px){ .treatments-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px){ .treatments-grid{ grid-template-columns:repeat(2,1fr); } .treatments{ padding:88px 0 70px; } }

/* Paquetes */
.packages{ margin-top:80px; }
.packages-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:34px; flex-wrap:wrap; }
.packages-head h3{ font-size:clamp(22px,3vw,30px); }
.packages-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pkg-card{
  border-radius:var(--radius-md); padding:34px 28px; background:var(--white);
  border:1px solid var(--line); position:relative; overflow:hidden;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.pkg-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-soft); }
.pkg-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  background:linear-gradient(90deg,var(--gold-400),var(--gold-600));
}
.pkg-tag{
  display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-700); background:var(--gold-100); padding:6px 12px; border-radius:var(--radius-pill); margin-bottom:18px;
}
.pkg-card h4{ font-size:22px; margin-bottom:10px; }
.pkg-card p{ color:var(--ink-500); font-size:14.5px; margin-bottom:22px; }
.pkg-list{ margin-bottom:24px; }
.pkg-list li{ display:flex; gap:10px; align-items:flex-start; font-size:14px; color:var(--ink-700); padding:6px 0; }
.pkg-list svg{ width:16px; height:16px; color:var(--blue-600); flex:none; margin-top:3px; }

.pkg-actions{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.pkg-video-btn{
  display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700;
  color:var(--gold-700); background:var(--gold-100); padding:8px 13px; border-radius:var(--radius-pill);
  transition:background .3s, color .3s;
}
.pkg-video-btn svg{ width:11px; height:11px; }
.pkg-video-btn:hover{ background:var(--gold-500); color:var(--navy-950); }

@media (max-width:900px){ .packages-grid{ grid-template-columns:1fr; } }

/* --------------------------------------------------------------------------
   TECNOLOGÍA
   -------------------------------------------------------------------------- */
.tech{ background:var(--navy-950); padding:110px 0; position:relative; overflow:hidden; }
.tech::before{
  content:''; position:absolute; inset:0;
  background-image:radial-gradient(circle at 15% 20%, rgba(37,104,224,.22), transparent 45%), radial-gradient(circle at 90% 80%, rgba(201,169,97,.14), transparent 40%);
}
.tech .container{ position:relative; z-index:1; }
.tech-top{ display:grid; grid-template-columns:.85fr 1.15fr; gap:50px; align-items:end; margin-bottom:50px; }
.tech-top .eyebrow{ color:var(--gold-400); }
.tech-top .eyebrow::before{ background:var(--gold-400); }
.tech-top h2{ color:#fff; font-size:clamp(26px,3.6vw,40px); margin-top:14px; }
.tech-top p{ color:rgba(255,255,255,.62); font-size:15.5px; }

.tech-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
.tech-card{
  position:relative; aspect-ratio:3/4; border-radius:var(--radius-md); overflow:hidden;
  background:var(--navy-800);
}
.tech-card img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; transition:transform .6s var(--ease), opacity .4s; }
.tech-card::after{
  content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,12,24,.15), rgba(5,10,20,.94) 88%);
}
.tech-card-inner{ position:absolute; inset:0; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; padding:16px; }
.tech-card-icon{
  width:42px; height:42px; border-radius:50%; background:rgba(201,169,97,.16); border:1px solid rgba(201,169,97,.5);
  display:flex; align-items:center; justify-content:center; color:var(--gold-400); margin-bottom:12px;
}
.tech-card-icon svg{ width:20px; height:20px; }
.tech-card span{ color:#fff; font-weight:700; font-size:13px; line-height:1.3; }
.tech-card:hover img{ transform:scale(1.08); opacity:.75; }

@media (max-width:1080px){ .tech-top{ grid-template-columns:1fr; } .tech-grid{ grid-template-columns:repeat(3,1fr); } }
@media (max-width:560px){ .tech-grid{ grid-template-columns:repeat(2,1fr); } .tech{ padding:80px 0; } }

/* --------------------------------------------------------------------------
   ANTES / DESPUÉS + ESTADÍSTICAS
   -------------------------------------------------------------------------- */
.results{ padding:0; }
.results-grid{ display:grid; grid-template-columns:1.1fr 1fr; }

.compare{
  position:relative; overflow:hidden; background:var(--navy-900);
  aspect-ratio:4/5;
}
.compare-label{
  position:absolute; top:24px; left:24px; z-index:5; color:#fff; max-width:calc(100% - 48px);
}
.compare-label .eyebrow{ color:var(--gold-400); }
.compare-label .eyebrow::before{ background:var(--gold-400); }
.compare-label h3{ color:#fff; font-size:clamp(19px,2.6vw,24px); margin-top:8px; }

.compare-slider{ position:absolute; inset:0; touch-action:pan-y; }
.compare-base{
  position:absolute; inset:0; background-size:cover; background-position:center 62%;
  background-image:url('https://images.pexels.com/photos/12474261/pexels-photo-12474261.jpeg?auto=compress&cs=tinysrgb&w=1400');
  filter:saturate(1.08) brightness(1.03) contrast(1.03);
}
.compare-teeth-yellow{
  position:absolute; inset:0; background-size:cover; background-position:center 62%;
  background-image:url('https://images.pexels.com/photos/12474261/pexels-photo-12474261.jpeg?auto=compress&cs=tinysrgb&w=1400');
  filter:sepia(.8) saturate(3.4) hue-rotate(-14deg) brightness(.68) contrast(1.18);
  -webkit-mask-image: radial-gradient(ellipse 21% 11% at 49% 59%, #000 45%, transparent 92%);
  mask-image: radial-gradient(ellipse 21% 11% at 49% 59%, #000 45%, transparent 92%);
  clip-path: inset(0 48% 0 0);
}
.compare-after, .compare-before{ display:none; } /* legado, ya no se usa */
.compare-divider{
  position:absolute; top:0; bottom:0; left:52%; width:3px; background:var(--gold-500);
  transform:translateX(-1.5px); cursor:ew-resize; z-index:6;
}
.compare-divider::before{
  content:''; position:absolute; top:0; bottom:0; left:50%; width:56px; transform:translateX(-50%);
}
.compare-handle{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%; background:var(--white);
  display:flex; align-items:center; justify-content:center; gap:2px; box-shadow:var(--shadow-deep); color:var(--navy-900);
}
.compare-handle svg{ width:14px; height:14px; }
.compare-tag{
  position:absolute; bottom:22px; z-index:5; font-size:10.5px; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; color:#fff; background:rgba(10,20,40,.6); padding:7px 13px; border-radius:var(--radius-pill);
  border:1px solid rgba(255,255,255,.25); backdrop-filter:blur(4px);
}
.compare-tag.tag-before{ left:24px; }
.compare-tag.tag-after{ right:24px; }
.compare-cta{ position:absolute; bottom:60px; left:24px; z-index:5; }
.compare-hint{
  position:absolute; top:24px; right:24px; z-index:5; color:rgba(255,255,255,.55); font-size:11px;
  display:flex; align-items:center; gap:6px;
}

@media (min-width:901px){ .compare{ aspect-ratio:auto; height:100%; min-height:560px; } }
@media (max-width:560px){
  .compare{ aspect-ratio:3/4; }
  .compare-cta{ bottom:52px; }
}

.stats-panel{
  background:linear-gradient(150deg,var(--blue-700),var(--blue-500));
  display:grid; grid-template-columns:1fr 1fr; gap:1px; padding:1px;
}
.stat-cell{
  background:var(--blue-700); padding:44px 30px; color:#fff; display:flex; flex-direction:column; gap:10px; justify-content:center;
}
.stat-cell svg{ width:30px; height:30px; color:var(--gold-400); margin-bottom:6px; }
.stat-cell b{ font-family:var(--font-display); font-size:clamp(30px,3.4vw,42px); }
.stat-cell span{ font-size:12.5px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.78); font-weight:600; }

@media (max-width:900px){
  .results-grid{ grid-template-columns:1fr; }
  .stats-panel{ grid-template-columns:1fr 1fr; }
}
@media (max-width:560px){
  .compare{ min-height:400px; }
  .stat-cell{ padding:30px 22px; }
}

/* --------------------------------------------------------------------------
   EXPERIENCIA / VIDEOS
   -------------------------------------------------------------------------- */
.experience{ padding:120px 0 60px; background:var(--ivory); }

.vc-wrap{ position:relative; }
.exp-grid{
  display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:4px 4px 10px; scrollbar-width:none; -ms-overflow-style:none;
}
.exp-grid::-webkit-scrollbar{ display:none; }
.exp-card{
  position:relative; border-radius:var(--radius-md); overflow:hidden; cursor:pointer;
  flex:0 0 auto; width:min(260px, 72vw); aspect-ratio:4/5; scroll-snap-align:start;
}
.exp-card img.exp-poster, .exp-card video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.exp-card img.exp-poster{ z-index:1; }
.exp-card video{ z-index:2; }
.exp-card video.is-hidden{ display:none; }
.exp-card::after{ content:''; position:absolute; inset:0; z-index:3; background:linear-gradient(180deg, rgba(10,20,40,.05), rgba(6,12,24,.85)); }
.exp-card:hover img.exp-poster, .exp-card:hover video{ transform:scale(1.07); }
.exp-card.ken-burns img{ animation:kenburns 14s ease-in-out infinite alternate; }
@keyframes kenburns{ 0%{ transform:scale(1) translate(0,0); } 100%{ transform:scale(1.14) translate(-1%,-2%); } }
.exp-video-tag{
  position:absolute; top:16px; right:16px; z-index:4; font-size:9.5px; font-weight:800; letter-spacing:.12em;
  color:#fff; background:rgba(201,169,97,.85); padding:5px 9px; border-radius:var(--radius-pill); text-transform:uppercase;
}
@media (prefers-reduced-motion: reduce){ .exp-card.ken-burns img{ animation:none; } }
.exp-play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:4;
  width:60px; height:60px; border-radius:50%; background:rgba(255,255,255,.14); border:1.5px solid rgba(255,255,255,.7);
  backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; color:#fff;
  transition:background .3s, transform .3s;
}
.exp-play svg{ width:18px; height:18px; margin-left:2px; }
.exp-card:hover .exp-play{ background:var(--gold-500); border-color:var(--gold-500); color:var(--navy-950); transform:translate(-50%,-50%) scale(1.08); }
.exp-caption{ position:absolute; left:20px; bottom:18px; z-index:4; color:#fff; font-weight:700; font-size:14px; }

.vc-nav{
  position:absolute; top:50%; transform:translateY(-50%); z-index:5; width:44px; height:44px; border-radius:50%;
  background:var(--white); box-shadow:var(--shadow-soft); display:flex; align-items:center; justify-content:center;
  color:var(--navy-900); transition:background .3s, color .3s;
}
.vc-nav:hover{ background:var(--gold-500); color:var(--navy-950); }
.vc-prev{ left:-20px; } .vc-next{ right:-20px; }
.vc-nav svg{ width:16px; height:16px; }
@media (max-width:960px){ .vc-nav{ display:none; } }

.vc-dots{ display:flex; justify-content:center; gap:8px; margin-top:22px; }
.vc-dot{ width:8px; height:8px; border-radius:50%; background:var(--line); transition:background .3s, width .3s; }
.vc-dot.active{ background:var(--gold-500); width:22px; border-radius:4px; }

.experience-tour{ text-align:center; margin-top:50px; }

/* Lightbox de video — tarjeta con póster de respaldo (nunca se ve negro) */
.video-lightbox{
  position:fixed; inset:0; z-index:400; background:rgba(4,8,16,.92); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:24px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.video-lightbox.is-open{ opacity:1; pointer-events:auto; }
.video-lightbox-inner{
  position:relative; width:100%; max-width:360px; max-height:88vh;
  transform:scale(.94); transition:transform .3s var(--ease);
}
.video-lightbox.is-open .video-lightbox-inner{ transform:scale(1); }
.video-lightbox-close{
  position:absolute; top:-46px; right:0; width:38px; height:38px; border-radius:50%;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff;
  display:flex; align-items:center; justify-content:center; z-index:5;
}

.vlc-card{
  background:var(--navy-950); border-radius:20px; overflow:hidden; box-shadow:var(--shadow-deep);
  border:1px solid rgba(255,255,255,.1);
}
.vlc-header{
  display:flex; flex-direction:column; gap:2px; padding:14px 16px;
  background:linear-gradient(135deg,var(--blue-600),var(--navy-900));
}
.vlc-badge{
  display:inline-flex; align-items:center; gap:6px; font-size:10px; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:var(--gold-400);
}
.vlc-badge::before{ content:''; width:6px; height:6px; border-radius:50%; background:#ff5b5b; animation:tourPulse 1.8s ease-in-out infinite; }
.vlc-header h4{ color:#fff; font-size:16px; margin:0; }

.vlc-media{ position:relative; width:100%; aspect-ratio:9/16; max-height:calc(88vh - 74px); background:#000; }
.vlc-poster{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.vlc-media video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:transparent; z-index:2;
}
.vlc-media video.is-hidden{ display:none; }
.vlc-error{
  position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; text-align:center; padding:24px; background:rgba(5,10,20,.7);
}
.vlc-error.is-hidden{ display:none; }
.vlc-error svg{ width:30px; height:30px; color:var(--gold-400); }
.vlc-error p{ font-size:12.5px; line-height:1.6; color:rgba(255,255,255,.9); max-width:230px; }

.vlc-converting{
  position:absolute; inset:0; z-index:3; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:12px; text-align:center; padding:24px; background:rgba(5,10,20,.78);
}
.vlc-converting.is-hidden{ display:none; }
.vlc-converting .chat-spinner{ width:30px; height:30px; border-width:3px; }
.vlc-converting p{ font-size:12.5px; line-height:1.6; color:rgba(255,255,255,.85); max-width:220px; }
.vlc-converting b{ color:var(--gold-400); }

@media (max-width:560px){
  .video-lightbox-close{ top:-42px; width:34px; height:34px; }
  .video-lightbox-inner{ max-width:300px; }
}

/* Modal "Cómo llegar" con mapa de Google embebido */
.map-modal{
  position:fixed; inset:0; z-index:400; background:rgba(4,8,16,.88); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.map-modal.is-open{ opacity:1; pointer-events:auto; }
.map-modal-card{
  width:100%; max-width:480px; max-height:90vh; background:var(--white); border-radius:22px; overflow:hidden;
  box-shadow:var(--shadow-deep); transform:scale(.95); transition:transform .3s var(--ease);
  display:flex; flex-direction:column;
}
.map-modal.is-open .map-modal-card{ transform:scale(1); }
.map-modal-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 22px;
  background:linear-gradient(135deg,var(--blue-600),var(--navy-900)); color:#fff; flex:none;
}
.map-modal-head h4{ color:#fff; font-size:17px; margin:0; }
.map-modal-head p{ color:rgba(255,255,255,.65); font-size:12.5px; margin-top:4px; }
.map-modal-close{
  width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center;
}
.map-modal-frame-wrap{ position:relative; width:100%; aspect-ratio:4/3; background:var(--ivory-deep); flex:none; }
.map-modal-frame-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.map-modal-body{ padding:18px 22px 22px; }
.map-modal-body .loc-phone{ margin-bottom:16px; }
@media (max-width:560px){
  .map-modal-card{ max-height:94vh; }
  .map-modal-frame-wrap{ aspect-ratio:1/1; }
}

/* Modal de documentos legales (aviso de privacidad, términos, eliminación de datos)
   — obliga a desplazarse hasta el final del documento antes de poder cerrarlo. */
.legal-modal{
  position:fixed; inset:0; z-index:450; background:rgba(4,8,16,.88); backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:20px;
  opacity:0; pointer-events:none; transition:opacity .3s ease;
}
.legal-modal.is-open{ opacity:1; pointer-events:auto; }
.legal-modal-card{
  width:100%; max-width:720px; height:88vh; background:var(--white); border-radius:22px; overflow:hidden;
  box-shadow:var(--shadow-deep); transform:scale(.96); transition:transform .3s var(--ease);
  display:flex; flex-direction:column;
}
.legal-modal.is-open .legal-modal-card{ transform:scale(1); }
.legal-modal-head{
  display:flex; align-items:center; justify-content:space-between; gap:12px; padding:20px 24px 16px;
  background:linear-gradient(135deg,var(--navy-800),var(--navy-950)); color:#fff; flex:none;
}
.legal-modal-head h4{ color:#fff; font-size:18px; margin:0; }
.legal-modal-head p{ color:var(--gold-400); font-size:11.5px; margin-top:5px; letter-spacing:.03em; }
.legal-modal-close{
  width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; flex:none;
  display:flex; align-items:center; justify-content:center; cursor:not-allowed; opacity:.4;
  transition:opacity .25s ease, background .25s ease, color .25s ease; border:0;
}
.legal-modal-close:not(:disabled){ cursor:pointer; opacity:1; }
.legal-modal-close:not(:disabled):hover{ background:rgba(255,255,255,.22); }
.legal-modal-close.is-ready{ background:var(--gold-500); color:var(--navy-950); }
.legal-modal-progress{ height:3px; background:rgba(10,22,40,.08); flex:none; }
.legal-modal-progress span{
  display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--gold-500),var(--gold-600));
  transition:width .15s linear;
}
.legal-modal-frame-wrap{ position:relative; flex:1 1 auto; background:var(--white); }
.legal-modal-frame-wrap iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.legal-modal-foot{
  padding:12px 24px; text-align:center; font-size:12.5px; color:var(--ink-500);
  background:var(--ivory-deep); flex:none; font-weight:600; letter-spacing:.01em;
}
.legal-modal-foot.is-ready{ color:var(--gold-700); }
@media (max-width:640px){
  .legal-modal-card{ max-width:100%; height:92vh; border-radius:18px; }
}

@media (max-width:1080px){ .exp-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .experience{ padding:80px 0 40px; } }

/* --------------------------------------------------------------------------
   SEDES + AGENDA
   -------------------------------------------------------------------------- */
.locations{ padding:110px 0 120px; background:var(--white); }
.loc-grid{ display:grid; grid-template-columns:1.6fr 1fr; gap:26px; align-items:start; }
.loc-cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }

.loc-card{
  border-radius:var(--radius-md); overflow:hidden; border:1px solid var(--line);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease);
}
.loc-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-soft); }
.loc-photo{ position:relative; aspect-ratio:16/11; background:linear-gradient(135deg,var(--blue-700),var(--navy-900)); }
.loc-photo img{ width:100%; height:100%; object-fit:cover; }
.loc-photo img.img-failed{ display:none; }
.loc-photo::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, transparent 55%, rgba(6,12,24,.55)); }
.loc-photo-fallback{
  position:absolute; inset:0; display:none; align-items:center; justify-content:center; color:rgba(255,255,255,.35);
}
.loc-photo-fallback.is-visible{ display:flex; }
.loc-photo-fallback svg{ width:36px; height:36px; }
.loc-badge{
  position:absolute; top:14px; right:14px; width:34px; height:34px; border-radius:50%;
  background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; color:var(--blue-600);
}
.loc-badge svg{ width:16px; height:16px; }
.loc-body{ padding:20px; }
.loc-body h4{ font-size:16.5px; margin-bottom:8px; }
.loc-body p{ font-size:13.5px; color:var(--ink-500); margin-bottom:14px; line-height:1.55; }
.loc-phone{ display:flex; align-items:center; gap:8px; font-weight:700; color:var(--navy-900); font-size:14.5px; margin-bottom:16px; }
.loc-phone svg{ width:15px; height:15px; color:var(--gold-600); }

.booking{
  background:linear-gradient(155deg,var(--blue-700),var(--navy-900));
  border-radius:var(--radius-lg); padding:34px; color:#fff; position:relative; overflow:hidden;
}
.booking::before{
  content:''; position:absolute; width:280px; height:280px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.28), transparent 70%); top:-90px; right:-90px;
}
.booking h3{ color:#fff; font-size:22px; margin-bottom:6px; }
.booking > p{ color:rgba(255,255,255,.65); font-size:13.5px; margin-bottom:24px; }
.booking-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-bottom:22px; }
.b-step{
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:var(--radius-sm);
  padding:12px 6px; text-align:center; font-size:10.5px; font-weight:700; letter-spacing:.03em;
  display:flex; flex-direction:column; align-items:center; gap:6px; color:rgba(255,255,255,.85);
}
.b-step.active{ background:var(--gold-500); color:var(--navy-950); border-color:var(--gold-500); }
.b-step svg{ width:18px; height:18px; }

.field-label{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:8px; display:block; }
.select-wrap{ position:relative; margin-bottom:20px; }
.select-wrap select{
  width:100%; padding:14px 40px 14px 16px; border-radius:12px; border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.08); color:#fff; appearance:none; font-size:16px;
}
.select-wrap select option{ color:#111; }
.select-wrap svg{ position:absolute; right:14px; top:50%; transform:translateY(-50%); width:16px; height:16px; pointer-events:none; color:rgba(255,255,255,.7); }

.booking-whats{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:16px; font-size:13px; color:rgba(255,255,255,.72); }
.booking-whats b{ color:#25D366; }

@media (max-width:1080px){ .loc-grid{ grid-template-columns:1fr; } }
@media (max-width:900px){ .loc-cards{ grid-template-columns:1fr; } }
@media (max-width:560px){ .locations{ padding:80px 0 90px; } .booking-steps{ grid-template-columns:repeat(2,1fr); } }

/* WhatsApp flotante */
.whatsapp-float{
  position:fixed; right:26px; bottom:26px; z-index:250; width:60px; height:60px; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center; color:#fff;
  box-shadow:0 14px 30px -8px rgba(37,211,102,.55); transition:transform .3s;
}
.whatsapp-float:hover{ transform:scale(1.08); }
.whatsapp-float svg{ width:28px; height:28px; }
.whatsapp-badge{
  position:absolute; top:-4px; right:-4px; background:var(--gold-500); color:var(--navy-950);
  font-size:10px; font-weight:800; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:2px solid var(--ivory);
}
@media (max-width:560px){ .whatsapp-float{ width:52px; height:52px; right:16px; bottom:16px; } }

/* Chat embebido DentStudio (crm.dentstudiomx.com) */
.chat-fab{
  position:fixed; right:26px; bottom:26px; z-index:260; width:62px; height:62px; border-radius:50%;
  background:linear-gradient(135deg,var(--blue-500),var(--navy-900)); color:#fff;
  display:flex; align-items:center; justify-content:center; border:none;
  box-shadow:0 16px 34px -10px rgba(21,91,255,.55); transition:transform .3s, box-shadow .3s;
}
.chat-fab:hover{ transform:scale(1.07); box-shadow:0 20px 40px -10px rgba(21,91,255,.65); }
.chat-fab svg{ width:26px; height:26px; transition:opacity .2s, transform .2s; }
.chat-fab .ic-close{ position:absolute; opacity:0; transform:rotate(-45deg) scale(.6); }
.chat-fab.is-open .ic-chat{ opacity:0; transform:rotate(45deg) scale(.6); }
.chat-fab.is-open .ic-close{ opacity:1; transform:rotate(0) scale(1); }
.chat-fab-badge{
  position:absolute; top:-3px; right:-3px; background:var(--gold-500); color:var(--navy-950);
  font-size:10px; font-weight:800; width:20px; height:20px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:2px solid var(--ivory); animation:chatPing 2.4s ease-in-out infinite;
}
.chat-fab.is-open .chat-fab-badge{ display:none; }
@keyframes chatPing{ 0%,100%{ transform:scale(1);} 50%{ transform:scale(1.18);} }

.chat-panel{
  position:fixed; right:26px; bottom:80px; z-index:255;
  width:380px; height:85vh; height:calc(var(--vh, 1vh) * 85); max-height:820px; max-width:calc(100vw - 32px);
  background:#10143A; border-radius:22px; overflow:hidden; box-shadow:var(--shadow-deep);
  display:flex; flex-direction:column;
  opacity:0; transform:translateY(18px) scale(.97); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.chat-panel.is-open{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.chat-panel-head{
  display:flex; align-items:center; justify-content:space-between; padding:16px 18px;
  background:linear-gradient(135deg,var(--navy-900),#10143A); color:#fff; flex:none;
}
.chat-panel-title{ display:flex; align-items:center; gap:10px; font-weight:700; font-size:14.5px; }
.chat-dot{ width:8px; height:8px; border-radius:50%; background:#3ddc84; box-shadow:0 0 0 3px rgba(61,220,132,.25); }
.chat-panel-close{ width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.75); }
.chat-panel-close:hover{ background:rgba(255,255,255,.12); color:#fff; }
.chat-panel-body{ position:relative; flex:1; background:#10143A; }
.chat-panel-frame{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.chat-panel-loading{
  position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:12px; color:rgba(255,255,255,.5); font-size:12.5px; background:#10143A; transition:opacity .3s;
}
.chat-spinner{ width:26px; height:26px; border-radius:50%; border:2.5px solid rgba(255,255,255,.18); border-top-color:var(--gold-400); animation:chatSpin .8s linear infinite; }
@keyframes chatSpin{ to{ transform:rotate(360deg); } }
.chat-panel-fallback{
  flex:none; text-align:center; padding:10px; font-size:11.5px; color:rgba(255,255,255,.45);
  border-top:1px solid rgba(255,255,255,.08);
}
.chat-panel-fallback a{ color:var(--gold-400); font-weight:600; }

@media (max-width:640px){
  .chat-fab{ width:54px; height:54px; right:16px; bottom:16px; }
  .chat-panel{
    right:10px; left:10px; bottom:74px; width:auto; max-width:none;
    height:85vh; height:calc(var(--vh, 1vh) * 85); max-height:none;
  }
}

/* --------------------------------------------------------------------------
   FOOTER
   -------------------------------------------------------------------------- */
.footer{ background:var(--navy-950); color:rgba(255,255,255,.72); padding-top:90px; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:36px; padding-bottom:60px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-brand .brand{ margin-bottom:18px; }
.footer-brand p{ font-size:13.5px; line-height:1.7; margin-bottom:22px; color:rgba(255,255,255,.55); }
.footer-social{ display:flex; gap:10px; margin-bottom:26px; }
.footer-social a{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; transition:background .3s, border-color .3s;
}
.footer-social svg{ width:16px; height:16px; }
.footer-social a:hover{ background:var(--gold-500); border-color:var(--gold-500); color:var(--navy-950); }

.footer-badge{
  display:inline-flex; align-items:center; gap:10px; padding:10px 16px; border-radius:var(--radius-pill);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); font-size:11.5px; font-weight:600; color:var(--gold-400);
}
.footer-badge svg{ width:16px; height:16px; }

.footer-col h5{
  color:#fff; font-family:var(--font-body); font-size:13px; letter-spacing:.1em; text-transform:uppercase;
  font-weight:700; margin-bottom:20px;
}
.footer-col ul li{ margin-bottom:11px; }
.footer-col ul li a{ font-size:13.5px; color:rgba(255,255,255,.6); transition:color .3s; }
.footer-col ul li a:hover{ color:var(--gold-400); }
.footer-col .sede-block{ margin-bottom:16px; }
.footer-col .sede-block b{ display:block; font-size:13.5px; color:rgba(255,255,255,.85); margin-bottom:3px; }
.footer-col .sede-block span{ display:block; font-size:12.5px; color:rgba(255,255,255,.5); line-height:1.5; }
.footer-col .sede-block a{ font-size:12.5px; color:var(--gold-400); font-weight:600; }

.footer-newsletter form{ display:flex; margin-top:14px; border-radius:var(--radius-pill); overflow:hidden; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.18); }
.footer-newsletter input{ flex:1; background:transparent; border:none; color:#fff; padding:13px 16px; font-size:16px; }
.footer-newsletter input::placeholder{ color:rgba(255,255,255,.4); }
.footer-newsletter button{ width:44px; display:flex; align-items:center; justify-content:center; background:var(--gold-500); color:var(--navy-950); }
.footer-newsletter button svg{ width:16px; height:16px; }
.footer-newsletter small{ display:block; margin-top:10px; font-size:11.5px; color:rgba(255,255,255,.4); }

.footer-pay{ display:flex; gap:8px; margin-top:20px; flex-wrap:wrap; }
.footer-pay span{
  padding:6px 10px; border-radius:6px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14);
  font-size:11px; font-weight:700; letter-spacing:.03em;
}

.footer-bottom{ display:flex; align-items:center; justify-content:space-between; padding:26px 0; font-size:12.5px; color:rgba(255,255,255,.45); flex-wrap:wrap; gap:12px; }
.footer-bottom-links{ display:flex; gap:18px; flex-wrap:wrap; }
.footer-bottom-links a{ color:rgba(255,255,255,.45); }
.footer-bottom-links a:hover{ color:var(--gold-400); }
.to-top{
  width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.to-top svg{ width:15px; height:15px; }

@media (max-width:1080px){ .footer-top{ grid-template-columns:1fr 1fr 1fr; row-gap:44px; } }
@media (max-width:640px){ .footer-top{ grid-template-columns:1fr 1fr; } .footer-bottom{ flex-direction:column; text-align:center; } }

/* --------------------------------------------------------------------------
   PÁGINAS INTERNAS — hero secundario, breadcrumb, detalle de tratamiento, FAQ
   -------------------------------------------------------------------------- */
.page-hero{
  position:relative; min-height:52vh; display:flex; align-items:flex-end;
  padding-top:150px; padding-bottom:60px; overflow:hidden; background:var(--navy-950);
}
.page-hero-bg{ position:absolute; inset:0; z-index:-2; background-size:cover; background-position:center; }
.page-hero-scrim{ position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(5,10,20,.55), rgba(5,10,20,.95) 88%); }
.breadcrumb{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(255,255,255,.55); margin-bottom:18px; }
.breadcrumb a{ color:rgba(255,255,255,.55); }
.breadcrumb a:hover{ color:var(--gold-400); }
.breadcrumb svg{ width:11px; height:11px; }
.page-hero h1{ color:#fff; font-size:clamp(34px,5vw,58px); max-width:760px; }
.page-hero p.lead{ color:rgba(255,255,255,.68); max-width:600px; margin-top:16px; font-size:16px; }

.td-section{ padding:36px 0; border-bottom:1px solid var(--line); }
.td-row{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; padding:64px 0; }
.td-row.reverse{ direction:rtl; }
.td-row.reverse > *{ direction:ltr; }
.td-media{ position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:4/3.1; box-shadow:var(--shadow-soft); }
.td-media img{ width:100%; height:100%; object-fit:cover; }
.td-num{
  position:absolute; top:18px; left:18px; width:46px; height:46px; border-radius:50%;
  background:rgba(10,20,40,.55); backdrop-filter:blur(6px); color:var(--gold-400); font-family:var(--font-display);
  font-size:17px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.25);
}
.td-body .eyebrow{ margin-bottom:14px; }
.td-body h2{ font-size:clamp(24px,3vw,34px); margin-bottom:16px; }
.td-body > p{ color:var(--ink-500); font-size:15.5px; margin-bottom:24px; }
.td-meta{ display:flex; gap:28px; margin-bottom:24px; flex-wrap:wrap; }
.td-meta div{ display:flex; align-items:center; gap:8px; font-size:13.5px; font-weight:600; color:var(--ink-700); }
.td-meta svg{ width:17px; height:17px; color:var(--gold-600); }
.td-includes{ margin-bottom:26px; }
.td-includes li{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; color:var(--ink-700); padding:7px 0; }
.td-includes svg{ width:17px; height:17px; color:var(--blue-600); flex:none; margin-top:2px; }

@media (max-width:900px){
  .td-row, .td-row.reverse{ grid-template-columns:1fr; direction:ltr; padding:44px 0; gap:28px; }
}

.faq-section{ background:var(--ivory); padding:110px 0; }
.faq-list{ max-width:820px; margin:0 auto; }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:24px 4px; text-align:left; font-family:var(--font-display); font-size:18px; color:var(--navy-900); font-weight:700;
}
.faq-q svg{ width:18px; height:18px; flex:none; color:var(--gold-600); transition:transform .35s var(--ease); }
.faq-item.open .faq-q svg{ transform:rotate(180deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .4s var(--ease); }
.faq-item.open .faq-a{ max-height:240px; }
.faq-a p{ padding:0 4px 24px; color:var(--ink-500); font-size:14.5px; line-height:1.7; max-width:700px; }

.cta-banner{
  background:linear-gradient(150deg,var(--blue-700),var(--navy-900)); border-radius:var(--radius-lg);
  padding:64px 40px; text-align:center; color:#fff; margin:100px auto; max-width:var(--container);
  position:relative; overflow:hidden;
}
.cta-banner::before{ content:''; position:absolute; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle, rgba(201,169,97,.28), transparent 70%); top:-120px; right:-80px; }
.cta-banner h2{ color:#fff; font-size:clamp(26px,3.6vw,38px); margin-bottom:14px; position:relative; }
.cta-banner p{ color:rgba(255,255,255,.68); max-width:520px; margin:0 auto 30px; position:relative; }
.cta-banner .btn{ position:relative; }

/* --------------------------------------------------------------------------
   Reveal on scroll (GSAP añade .is-visible)
   -------------------------------------------------------------------------- */
[data-reveal]{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }
