
/* ============================================================
   REAL·C CLÍNICA — Sistema de diseño (design tokens)
   ============================================================ */
:root{
  /* Color */
  --porcelain:#FAF8F5;
  --porcelain-2:#F3EEE7;
  --ink:#14110F;
  --ink-soft:#2A2521;
  --greige:#6B625A;
  --line:#E7E0D6;
  --champagne:#9C805B;
  --champagne-deep:#7E6744;
  --steel:#A0B5B9;
  --white:#FFFFFF;
  --shadow-sm:0 1px 2px rgba(20,17,15,.04),0 4px 12px rgba(20,17,15,.05);
  --shadow-md:0 8px 20px rgba(20,17,15,.06),0 24px 48px rgba(20,17,15,.08);
  --shadow-lg:0 20px 40px rgba(20,17,15,.10),0 40px 80px rgba(20,17,15,.12);
  /* Type — mismo par que la web original: Urbanist (títulos) + Nunito (cuerpo) */
  --serif:'Urbanist',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --sans:'Nunito',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  /* Space */
  --container:1200px;
  --radius:18px;
  --radius-sm:12px;
  --radius-lg:28px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--porcelain);
  line-height:1.6;
  font-size:17px;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.015em;color:var(--ink)}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}
.eyebrow{font-family:var(--sans);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--champagne-deep);font-weight:600}
.lead{font-size:1.15rem;color:var(--greige);max-width:60ch}
section{position:relative}

/* Skip link */
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:200;border-radius:0 0 8px 0}
.skip:focus{left:0}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--sans);font-weight:600;font-size:.98rem;padding:14px 26px;border-radius:100px;transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s,background .25s;cursor:pointer;border:1px solid transparent;white-space:nowrap}
.btn:focus-visible{outline:3px solid var(--champagne);outline-offset:2px}
.btn-primary{background:var(--ink);color:#fff}
.btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);background:var(--ink-soft)}
.btn-gold{background:var(--champagne);color:#fff}
.btn-gold:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(184,151,90,.35);background:var(--champagne-deep)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-ghost:hover{border-color:var(--ink);transform:translateY(-2px)}
.btn-lg{padding:17px 34px;font-size:1.05rem}

/* ============================================================
   NAV
   ============================================================ */
.topbar{background:var(--ink);color:#F3EEE7;font-size:.82rem;letter-spacing:.02em}
.topbar .container{display:flex;justify-content:space-between;align-items:center;height:38px;gap:16px}
.topbar a{color:#F3EEE7;opacity:.85;transition:opacity .2s}
.topbar a:hover{opacity:1}
.topbar .tb-right{display:flex;gap:22px}
@media(max-width:720px){.topbar .tb-left{display:none}.topbar .container{justify-content:center}}

header.nav{position:sticky;top:0;z-index:100;background:rgba(250,248,245,.8);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s,background .3s}
header.nav.scrolled{border-color:var(--line);box-shadow:0 4px 20px rgba(20,17,15,.05)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:74px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.35rem;font-weight:600;letter-spacing:-.02em}
.brand .dot{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 30% 30%,var(--champagne),var(--champagne-deep));box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.brand small{display:block;font-family:var(--sans);font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--greige);font-weight:600;margin-top:1px}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links a{font-size:.96rem;font-weight:500;color:var(--ink-soft);position:relative;padding:4px 0;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1.5px;background:var(--champagne);transition:width .28s cubic-bezier(.2,.8,.2,1)}
.nav-links a:hover{color:var(--ink)}.nav-links a:hover::after{width:100%}
.nav-cta{display:flex;align-items:center;gap:14px}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2px;background:var(--ink);transition:.3s;border-radius:2px}
@media(max-width:940px){
  .nav-links,.nav-cta .btn{display:none}
  .burger{display:flex}
}
/* Mobile menu */
.mobile-menu{position:fixed;inset:0 0 0 auto;width:min(86vw,380px);background:var(--porcelain);z-index:120;transform:translateX(100%);transition:transform .4s cubic-bezier(.2,.8,.2,1);box-shadow:var(--shadow-lg);padding:90px 30px 40px;display:flex;flex-direction:column;gap:6px}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{font-family:var(--serif);font-size:1.5rem;padding:14px 0;border-bottom:1px solid var(--line)}
.mobile-menu .btn{margin-top:20px;justify-content:center}
.mm-close{position:absolute;top:22px;right:24px;background:none;border:0;font-size:2rem;cursor:pointer;color:var(--ink);line-height:1}
.overlay{position:fixed;inset:0;background:rgba(20,17,15,.4);z-index:110;opacity:0;visibility:hidden;transition:.3s}
.overlay.show{opacity:1;visibility:visible}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:78px 0 40px;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(2.6rem,5.5vw,4.5rem);letter-spacing:-.025em;margin:22px 0}
.hero h1 em{font-style:normal;color:var(--champagne-deep)}
.hero .lead{margin-bottom:32px;font-size:1.2rem}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:34px}
.hero-trust{display:flex;align-items:center;gap:24px;flex-wrap:wrap;color:var(--greige);font-size:.82rem}
.hero-trust .assoc{display:flex;gap:18px;flex-wrap:wrap}
.hero-trust b{font-family:var(--serif);color:var(--ink);font-weight:600}
.hero-visual{position:relative}
.hero-photo{aspect-ratio:4/5;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);overflow:hidden;position:relative}
.hero-badge{position:absolute;left:-26px;bottom:38px;background:var(--white);border-radius:var(--radius);padding:18px 22px;box-shadow:var(--shadow-md);display:flex;gap:14px;align-items:center;max-width:250px}
.hero-badge .num{font-family:var(--serif);font-size:2.2rem;color:var(--champagne-deep);line-height:1}
.hero-badge small{font-size:.8rem;color:var(--greige)}
@media(max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:34px}
  .hero-visual{order:2}
  .hero-photo{aspect-ratio:3/3.4}
  .hero-badge{left:12px}
}

/* Photo placeholders (reemplazar por fotografía real) */
.ph{position:relative;width:100%;height:100%;background:
  radial-gradient(120% 90% at 20% 10%, #efe7db 0%, transparent 55%),
  radial-gradient(120% 120% at 90% 90%, #e6dccb 0%, transparent 60%),
  linear-gradient(140deg,#f0e9df,#e3d7c5);display:flex;align-items:flex-end;justify-content:flex-start}
.ph::after{content:attr(data-label);position:absolute;top:14px;left:14px;font-family:var(--sans);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(20,17,15,.35);font-weight:600}
.ph svg{position:absolute;bottom:0;right:6%;height:88%;opacity:.9}

/* ============================================================
   AUTHORITY BAND
   ============================================================ */
.authority{background:var(--ink);color:#F3EEE7;padding:50px 0}
.auth-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.auth-grid .stat .n{font-family:var(--serif);font-size:2.9rem;color:#fff;line-height:1}
.auth-grid .stat .n span{color:var(--champagne)}
.auth-grid .stat p{color:rgba(243,238,231,.7);font-size:.9rem;margin-top:6px}
.auth-sep{height:1px;background:rgba(243,238,231,.14);margin:38px 0 26px}
.assoc-row{display:flex;justify-content:center;align-items:center;gap:40px;flex-wrap:wrap}
.assoc-row span{font-family:var(--serif);font-size:1.15rem;letter-spacing:.04em;color:rgba(243,238,231,.55);font-weight:600}
@media(max-width:720px){.auth-grid{grid-template-columns:repeat(2,1fr);gap:30px}.assoc-row{gap:26px}.assoc-row span{font-size:1rem}}

/* ============================================================
   SECTION HEADINGS
   ============================================================ */
.sec{padding:110px 0}
.sec-head{max-width:720px;margin-bottom:56px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:clamp(2rem,4vw,3.1rem);margin:16px 0}
.sec-head p{color:var(--greige);font-size:1.1rem}

/* Services grid */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.svc-card{background:var(--white);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;display:flex;flex-direction:column}
.svc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.svc-card .thumb{aspect-ratio:16/11;overflow:hidden}
.svc-card .thumb .ph{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.svc-card:hover .thumb .ph{transform:scale(1.05)}
.svc-body{padding:26px 26px 28px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
.svc-body h3{font-size:1.5rem;margin-bottom:8px}
.svc-body p{color:var(--greige);font-size:.96rem;margin-bottom:18px;flex:1}
.svc-link{font-weight:600;font-size:.92rem;color:var(--champagne-deep);display:inline-flex;align-items:center;gap:6px;transition:gap .25s}
.svc-card:hover .svc-link{gap:12px}
@media(max-width:900px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr 1fr;gap:16px}}
@media(max-width:600px){.svc-body{padding:18px 16px 20px}.svc-body h3{font-size:1.15rem}.svc-body p{font-size:.85rem}}

/* ============================================================
   RESULTS / BEFORE-AFTER
   ============================================================ */
.results{background:linear-gradient(180deg,var(--porcelain),var(--porcelain-2))}
.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.ba{position:relative;aspect-ratio:4/3;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);user-select:none;touch-action:none}
.ba .ba-layer{position:absolute;inset:0}
.ba .after{clip-path:inset(0 0 0 50%);}
.ba .lbl{position:absolute;bottom:16px;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(20,17,15,.7);color:#fff;padding:5px 12px;border-radius:100px;font-weight:600}
.ba .lbl.b{left:16px}.ba .lbl.a{right:16px}
.ba .handle{position:absolute;top:0;bottom:0;left:50%;width:2px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.06);cursor:ew-resize}
.ba .handle .grip{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;color:var(--ink)}
.results .gal{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.results .gal .ph{aspect-ratio:1;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
@media(max-width:860px){.results-grid{grid-template-columns:1fr;gap:34px}}

/* ============================================================
   DOCTOR
   ============================================================ */
.doctor-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:center}
.doctor-photo{aspect-ratio:3/4;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.doctor h2{font-size:clamp(2rem,3.6vw,2.9rem);margin:14px 0 10px}
.doctor .role{color:var(--champagne-deep);font-weight:600;margin-bottom:22px}
.cred-list{display:grid;grid-template-columns:1fr;gap:12px;margin:26px 0 30px}
.cred-list li{list-style:none;display:flex;gap:12px;font-size:.96rem;color:var(--ink-soft)}
.cred-list .ck{color:var(--champagne-deep);flex-shrink:0;margin-top:2px}
@media(max-width:820px){.doctor-grid{grid-template-columns:1fr;gap:30px}.cred-list{grid-template-columns:1fr}}

/* ============================================================
   PROCESS
   ============================================================ */
.process{background:var(--ink);color:#F3EEE7}
.process .sec-head h2,.process .sec-head p{color:#fff}
.process .sec-head p{color:rgba(243,238,231,.7)}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;counter-reset:step}
.step{padding:30px 24px;border:1px solid rgba(243,238,231,.14);border-radius:var(--radius);position:relative;transition:background .3s,border-color .3s}
.step:hover{background:rgba(243,238,231,.04);border-color:rgba(184,151,90,.5)}
.step .n{font-family:var(--serif);font-size:1.1rem;color:var(--champagne);width:44px;height:44px;border:1px solid var(--champagne);border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.step h3{color:#fff;font-size:1.3rem;margin-bottom:8px}
.step p{color:rgba(243,238,231,.68);font-size:.92rem}
@media(max-width:860px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.steps{grid-template-columns:1fr}}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.tst-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tst{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;box-shadow:var(--shadow-sm)}
.tst .stars{color:var(--champagne);letter-spacing:2px;margin-bottom:14px}
.tst p{font-size:1.02rem;color:var(--ink-soft);margin-bottom:20px}
.tst .who{display:flex;align-items:center;gap:12px}
.tst .av{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--champagne),var(--champagne-deep));color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:600}
.tst .who b{display:block;font-size:.95rem}
.tst .who small{color:var(--greige)}
@media(max-width:860px){.tst-grid{grid-template-columns:1fr}.tst:nth-child(n+2){display:none}}

/* ============================================================
   FAQ
   ============================================================ */
.faq-wrap{max-width:800px;margin:0 auto}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;text-align:left;background:none;border:0;padding:24px 0;font-family:var(--serif);font-size:1.25rem;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px}
.faq-q .ic{flex-shrink:0;transition:transform .3s;color:var(--champagne-deep);font-size:1.5rem}
.faq-item.open .faq-q .ic{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-a p{padding:0 0 24px;color:var(--greige)}

/* ============================================================
   CONTACT
   ============================================================ */
.contact{background:linear-gradient(180deg,var(--porcelain-2),var(--porcelain))}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.contact h2{font-size:clamp(2rem,4vw,3rem);margin:14px 0 16px}
.form{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:38px;box-shadow:var(--shadow-md)}
.field{margin-bottom:18px}
.field label{display:block;font-size:.85rem;font-weight:600;margin-bottom:7px;color:var(--ink-soft)}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--sans);font-size:1rem;background:var(--porcelain);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--champagne);box-shadow:0 0 0 3px rgba(184,151,90,.15)}
.form .btn{width:100%;justify-content:center;margin-top:6px}
.form .fine{font-size:.78rem;color:var(--greige);text-align:center;margin-top:14px}
.loc{display:flex;gap:16px;padding:24px 0;border-bottom:1px solid var(--line)}
.loc .pin{width:46px;height:46px;border-radius:12px;background:var(--porcelain-2);display:flex;align-items:center;justify-content:center;color:var(--champagne-deep);flex-shrink:0}
.loc h3{font-size:1.25rem;margin-bottom:4px}
.loc p{color:var(--greige);font-size:.95rem}
.loc a{color:var(--ink);font-weight:500}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;gap:34px}}

/* ============================================================
   FOOTER
   ============================================================ */
footer{background:var(--ink);color:#C9C1B6;padding:70px 0 30px}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px;margin-bottom:50px}
footer .brand{color:#fff}
footer .brand small{color:#8d857a}
footer p.desc{margin-top:16px;font-size:.92rem;max-width:34ch;color:#9a9187}
footer h4{color:#fff;font-family:var(--sans);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:18px}
footer ul{list-style:none}
footer ul li{margin-bottom:11px}
footer ul a{font-size:.94rem;color:#b3aa9f;transition:color .2s}
footer ul a:hover{color:var(--champagne)}
.foot-bottom{border-top:1px solid rgba(243,238,231,.12);padding-top:26px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.84rem;color:#8d857a}
.socials{display:flex;gap:14px}
.socials a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(243,238,231,.18);display:flex;align-items:center;justify-content:center;transition:.25s}
.socials a:hover{background:var(--champagne);border-color:var(--champagne);color:#fff}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* Floating WhatsApp */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:90;width:60px;height:60px;border-radius:50%;background:#25D366;box-shadow:0 8px 24px rgba(37,211,102,.4);display:flex;align-items:center;justify-content:center;color:#fff;transition:transform .3s}
.wa-float:hover{transform:scale(1.08)}

/* Cookie banner */
.cookie{position:fixed;left:22px;bottom:22px;max-width:420px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:22px;z-index:95;display:flex;flex-direction:column;gap:14px;transform:translateY(140%);transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.cookie.show{transform:translateY(0)}
.cookie p{font-size:.88rem;color:var(--greige)}
.cookie .row{display:flex;gap:10px}
.cookie .btn{padding:10px 18px;font-size:.88rem}
@media(max-width:520px){.cookie{left:12px;right:12px;bottom:12px;max-width:none}.wa-float{width:54px;height:54px}}

/* Reveal animation */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* ---- Interior pages ---- */
.breadcrumb{font-size:.82rem;color:var(--greige)}
.breadcrumb .container{padding-top:22px}
.breadcrumb a{color:var(--greige)}.breadcrumb a:hover{color:var(--ink)}
.breadcrumb span{color:var(--champagne-deep)}
.page-hero{padding:34px 0 18px}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:14px 0 18px}
.page-hero .lead{margin-bottom:26px}
.page-hero .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.prose{max-width:70ch}
.prose h3{font-size:1.5rem;margin:34px 0 10px}
.prose p{color:var(--ink-soft);margin-bottom:14px}
.card-soft{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px 30px;box-shadow:var(--shadow-sm)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media(max-width:820px){.two-col{grid-template-columns:1fr;gap:26px}}
.assoc-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.assoc-cards .card-soft{text-align:center}
.assoc-cards b{font-family:var(--serif);font-size:1.35rem;color:var(--ink)}
.assoc-cards small{display:block;color:var(--greige);margin-top:6px;font-size:.82rem}
@media(max-width:700px){.assoc-cards{grid-template-columns:1fr 1fr}}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.gallery-grid .gi{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.gallery-grid{grid-template-columns:repeat(2,1fr)}}
/* ---- Landing / funnel ---- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media(max-width:800px){.why-grid{grid-template-columns:1fr}}
.stat-band{display:flex;gap:40px;flex-wrap:wrap;justify-content:center;text-align:center}
.thanks{min-height:60vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:80px 0}
.thanks .container{max-width:640px}
.thanks h1{font-size:clamp(2.2rem,5vw,3.4rem);margin-bottom:18px}
.thanks .imp{font-family:var(--serif);font-size:1.2rem;color:var(--champagne-deep);margin:22px 0 8px}
.field label{display:block}
.field label input,.field label select,.field label textarea{margin-top:7px}

/* ---- Real images ---- */
.ph-img{width:100%;height:100%;object-fit:cover;display:block}
.thumb .ph-img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.svc-card:hover .thumb .ph-img{transform:scale(1.05)}
.brand-logo{height:38px;width:auto;display:block}
.footer-logo{height:50px}
@media(max-width:520px){.brand-logo{height:32px}}
.results .gal .ph-img{aspect-ratio:1;height:auto;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm)}
.av img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.tst .av{overflow:hidden;padding:0}
.patients{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.patients figure{margin:0;text-align:center}
.patients .pimg{aspect-ratio:1;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);margin-bottom:10px}
.patients figcaption{font-weight:600;font-size:.95rem}
@media(max-width:700px){.patients{grid-template-columns:1fr 1fr}}

/* ---- Modal registro ---- */
.modal-overlay{position:fixed;inset:0;background:rgba(20,17,15,.55);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s}
.modal-overlay.show{opacity:1;visibility:visible}
.modal{background:var(--porcelain);border-radius:var(--radius-lg);max-width:460px;width:100%;padding:34px;box-shadow:var(--shadow-lg);position:relative;max-height:92vh;overflow:auto;transform:translateY(16px);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.modal-overlay.show .modal{transform:none}
.modal-close{position:absolute;top:12px;right:16px;background:none;border:0;font-size:1.9rem;line-height:1;cursor:pointer;color:var(--greige)}
.modal .field{margin-bottom:14px}
/* ---- Testimonios (galería con texto feliz) ---- */
.gcard{margin:0}
.gcard .gi{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-sm)}
.gcard figcaption{margin-top:9px;font-size:.9rem;color:var(--greige);line-height:1.35;font-style:italic}
.gcard .gname{display:block;font-family:var(--serif);font-weight:700;font-style:normal;color:var(--ink);font-size:1.02rem}
.gcard .gproc{display:block;font-style:normal;font-size:.74rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--champagne-deep);margin:1px 0 3px}
/* ---- Botones del hero en móvil: misma línea, más pequeños ---- */
@media(max-width:560px){
  .hero-actions{flex-wrap:nowrap;gap:10px}
  .hero-actions .btn,.hero-actions .btn-lg{flex:1 1 0;min-width:0;justify-content:center;text-align:center;padding:12px 12px;font-size:.82rem;white-space:normal;line-height:1.15}
}

/* ============================================================
   Cursor bisturí + animaciones globales
   ============================================================ */
body{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADCElEQVR4nOyXXUhTYRjHXzs7x7Nzzr48bphZzc35gZpJalhZCSFCRomKkXjRTVd9SFIXYnfmTUiWCFFUUNo0SU0p/G4yU9LpMMbSzU3TTKfJNqTNuZ2tbSBIZG5Dtxt/d4f3eV5+58/zvvDSQIChgQCzJxBwgX1bLYyMKy7LZIpDIBACtS/rUoGdes4mGROT2un5sa+K28CfAsYFg3ZqenaVwWTRcToeTuD4fYVSJQX+Eigru75iWTNrLRYLgBEEsNgcFEGRU0qVRg78IeBCrdbUTKjUho1vFosNYBiOHVdMPAM7CLTVglTSq07POBvNYBCJLCYzyF1Mg2jAYY+KT04dTDl6ZE4ikTjAbgk4oT60tXxOSTuZgNJRLo7jKEyjgbn5+aBgOLgolBembxTXjYBdFHBhan/f3MULj1jTG4z8hUUdEQRBCI5jsMFgOF1YXKxuEtcrwS4KuCWkkr4vYXyRiuRwcrihJF2rnQGRAj5iXbdm5VzMlTc3NWqAjwR5U1z5sDafwLAnyclJpE63BGgwDGAa5Azj17Gi/Hwt8AGvBFxUVD064bwbWmNjY5xzgQFXGjwuqddBjvCrmZlrwEv2eVkPyktvDa6srJ5RKr/NajTTQCiMdP4GxCFWzT+BD3idwAbXSkr2C/iiYVGUKMLhsAMyhANMv00z57MyI73Zx+sENnhaXb0w+n0qaXJSpWWzWe55cB7Xw+2dvePe7ONzApuAK6tqRpyDmUAQBGQ2mymL2Tx0IftchifNPiewCWtZ6Y00mWxMqjcarXQ6HUJQ9HhbR0+LJ807IeBi/d7dkmz5qLxjaXnZhGEYDCPBWa0fu19s1+jJReQplKSns0UUFy/AcUJIkiGEnbKLCgqvcBrevO4GfhBwYZN+6u0SxsSRwSgaw+NxmTabLfpSbt5AU6P4B/CDgAvrQH+flC+IhinKkYjhWCgCIwfF9a/qgJ8E3BJDA/3DFGUfwggGnUEQ6XkFhT3v3jYs/l24E8dwO7Cbd8oPPH5Qof7Xoj8E/svew2RP4A8AAAD//3m4AW8AAAAGSURBVAMA+gQHCBkqK4QAAAAASUVORK5CYII=") 6 6, auto}
a,button,.btn,.faq-q,.svc-card,.gcard,label,summary,.burger,.modal-close,.mm-close,.wa-float,[role="button"]{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADCElEQVR4nOyXXUhTYRjHXzs7x7Nzzr48bphZzc35gZpJalhZCSFCRomKkXjRTVd9SFIXYnfmTUiWCFFUUNo0SU0p/G4yU9LpMMbSzU3TTKfJNqTNuZ2tbSBIZG5Dtxt/d4f3eV5+58/zvvDSQIChgQCzJxBwgX1bLYyMKy7LZIpDIBACtS/rUoGdes4mGROT2un5sa+K28CfAsYFg3ZqenaVwWTRcToeTuD4fYVSJQX+Eigru75iWTNrLRYLgBEEsNgcFEGRU0qVRg78IeBCrdbUTKjUho1vFosNYBiOHVdMPAM7CLTVglTSq07POBvNYBCJLCYzyF1Mg2jAYY+KT04dTDl6ZE4ikTjAbgk4oT60tXxOSTuZgNJRLo7jKEyjgbn5+aBgOLgolBembxTXjYBdFHBhan/f3MULj1jTG4z8hUUdEQRBCI5jsMFgOF1YXKxuEtcrwS4KuCWkkr4vYXyRiuRwcrihJF2rnQGRAj5iXbdm5VzMlTc3NWqAjwR5U1z5sDafwLAnyclJpE63BGgwDGAa5Azj17Gi/Hwt8AGvBFxUVD064bwbWmNjY5xzgQFXGjwuqddBjvCrmZlrwEv2eVkPyktvDa6srJ5RKr/NajTTQCiMdP4GxCFWzT+BD3idwAbXSkr2C/iiYVGUKMLhsAMyhANMv00z57MyI73Zx+sENnhaXb0w+n0qaXJSpWWzWe55cB7Xw+2dvePe7ONzApuAK6tqRpyDmUAQBGQ2mymL2Tx0IftchifNPiewCWtZ6Y00mWxMqjcarXQ6HUJQ9HhbR0+LJ807IeBi/d7dkmz5qLxjaXnZhGEYDCPBWa0fu19s1+jJReQplKSns0UUFy/AcUJIkiGEnbKLCgqvcBrevO4GfhBwYZN+6u0SxsSRwSgaw+NxmTabLfpSbt5AU6P4B/CDgAvrQH+flC+IhinKkYjhWCgCIwfF9a/qgJ8E3BJDA/3DFGUfwggGnUEQ6XkFhT3v3jYs/l24E8dwO7Cbd8oPPH5Qof7Xoj8E/svew2RP4A8AAAD//3m4AW8AAAAGSURBVAMA+gQHCBkqK4QAAAAASUVORK5CYII=") 6 6, pointer}
input,textarea,select{cursor:text}

@keyframes riseIn{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@keyframes shine{0%{transform:translateX(-160%) skewX(-18deg)}100%{transform:translateX(260%) skewX(-18deg)}}
@keyframes waPulse{0%,100%{box-shadow:0 8px 24px rgba(37,211,102,.40)}50%{box-shadow:0 10px 34px rgba(37,211,102,.75)}}
@keyframes floatSlow{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-6px) rotate(1.5deg)}}
@keyframes bgpan{0%{background-position:0% 50%}100%{background-position:100% 50%}}

/* Entrada del hero (al cargar) */
.hero-badge{animation:floaty 5.5s ease-in-out infinite}
.wa-float{animation:waPulse 2.6s ease-in-out infinite}

/* Brillo al pasar sobre botones principales */
.btn-primary,.btn-gold{position:relative;overflow:hidden;isolation:isolate}
.btn-primary::after,.btn-gold::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%);transform:translateX(-160%) skewX(-18deg)}
.btn-primary:hover::after,.btn-gold:hover::after{animation:shine .85s ease}

/* Tarjetas: elevación e imagen con zoom */
.svc-card{transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.svc-card:hover .thumb .ph-img{transform:scale(1.07)}
.gcard{transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.gcard:hover{transform:translateY(-7px)}
.gcard .gi .ph-img{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.gcard:hover .gi .ph-img{transform:scale(1.07)}

/* Ícono del servicio con leve flotación al hover */
.svc-card .thumb .ph-img[src*="/servicios/"]{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.svc-card:hover .thumb .ph-img[src*="/servicios/"]{animation:floatSlow 3.5s ease-in-out infinite}

/* Banda de autoridad con degradado en movimiento sutil */
.authority{background:linear-gradient(120deg,#14110F,#1c2530,#14110F);background-size:200% 200%;animation:bgpan 16s ease-in-out infinite alternate}

/* Números de estadísticas al revelarse */
.stat.reveal.in .n{animation:riseIn .7s .1s both}

/* Enlaces del footer con deslizamiento */
footer ul a{display:inline-block;transition:transform .25s,color .2s}
footer ul a:hover{transform:translateX(4px)}

/* Realce suave del acordeón de FAQ al abrir */
.faq-item.open .faq-q{color:var(--champagne-deep)}

/* ============================================================
   BLOQUES DE VIDEO (vertical 9:16)
   ============================================================ */
.vblock{display:grid;grid-template-columns:340px 1fr;gap:48px;align-items:center}
.vblock.rev{grid-template-columns:1fr 340px}
@media(max-width:860px){.vblock,.vblock.rev{grid-template-columns:1fr;gap:26px}.vblock.rev .vframe{order:-1}}
.vframe{position:relative;border-radius:24px;overflow:hidden;background:#000;aspect-ratio:9/16;box-shadow:var(--shadow-lg);max-width:340px;margin:0 auto;width:100%}
.vframe video{width:100%;height:100%;object-fit:cover;display:block}
.vframe .vcover{position:absolute;inset:0;border:0;padding:0;width:100%;height:100%;background:none;cursor:pointer}
.vframe .vcover img{width:100%;height:100%;object-fit:cover}
.vframe .vcover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,15,.10),rgba(20,17,15,.60))}
.vplay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.94);display:grid;place-items:center;box-shadow:0 14px 34px rgba(0,0,0,.4);transition:transform .25s}
.vframe .vcover:hover .vplay{transform:translate(-50%,-50%) scale(1.07)}
.vplay svg{margin-left:4px;fill:var(--ink)}
.vlabel{position:absolute;left:0;right:0;bottom:16px;z-index:2;text-align:center;color:#fff;font-size:.86rem;font-weight:600;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.vtag{position:absolute;left:12px;top:12px;z-index:3;background:rgba(20,17,15,.55);backdrop-filter:blur(8px);color:#EFE6D8;border-radius:100px;padding:7px 13px;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
