/* Vera Med · Dr. Veronica Incrosnatu
   Tokens del brandbook (octubre 2026). Concepto: "linia zâmbetului": la línea rosa del logo
   que se dibuja bajo los titulares. Blanco clínico, tinta bleumarin y rosa como acento. */

@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/nunito-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/nunito-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Quicksand';font-style:normal;font-weight:600 700;font-display:swap;src:url(../fonts/quicksand-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Quicksand';font-style:normal;font-weight:600 700;font-display:swap;src:url(../fonts/quicksand-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --alb:#FFFFFF;
  --hartie:#FBF8FA;
  --roz-pal:#FDE6EF;
  --bleumarin:#14204F;
  --roz:#F2186A;
  --roz-text:#C80F57;
  --visiniu:#782A29;

  --ink:var(--bleumarin);
  --ink-2:#4A5376;          /* 7,9:1 sobre blanco */
  --line:#E7E1E8;
  --line-2:#D9D1DB;
  --on-navy:#F4F2F8;
  --on-navy-2:#C2C6DA;      /* 8,5:1 sobre bleumarin */

  --f-title:"Quicksand","Nunito Sans",system-ui,sans-serif;
  --f-body:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --r-card:20px;
  --r-img:26px;
  --r-pill:999px;
  --maxw:1120px;
  --gutter:clamp(16px,4vw,32px);
  --header-h:68px;
  --shadow:0 1px 2px rgba(20,32,79,.05),0 8px 24px -12px rgba(20,32,79,.16);
  --ease:cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}
body{margin:0;background:var(--alb);color:var(--ink);font-family:var(--f-body);font-size:clamp(16px,1.05vw + 12px,17.5px);line-height:1.65;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}
p{margin:0}
h1,h2,h3{font-family:var(--f-title);font-weight:700;line-height:1.12;margin:0;letter-spacing:-.01em;text-wrap:balance}
ul,ol{margin:0;padding:0}
[role=list]{list-style:none}
table{border-collapse:collapse}
button{font:inherit;color:inherit;cursor:pointer}
address{font-style:normal}
:focus-visible{outline:3px solid var(--roz-text);outline-offset:3px;border-radius:6px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.ic{width:1.15em;height:1.15em;flex:none;display:inline-block;vertical-align:-.18em}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--bleumarin);color:#fff;padding:10px 16px;border-radius:var(--r-pill);font-weight:700;text-decoration:none;transition:top .2s}
.skip:focus{top:12px}

.wrap{width:100%;max-width:calc(var(--maxw) + var(--gutter)*2);margin:0 auto;padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
.eyebrow{font-family:var(--f-title);font-weight:700;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--roz-text);margin-bottom:12px}
.h2{font-size:clamp(1.85rem,3.2vw + .6rem,2.55rem)}
.lead{font-size:clamp(1.05rem,.5vw + .95rem,1.2rem);color:var(--ink-2);max-width:58ch}
.small{font-size:.875rem;color:var(--ink-2)}
.section{padding:clamp(72px,9vw,120px) 0}
.section-soft{background:var(--hartie)}
.sec-head{margin-bottom:clamp(32px,4vw,48px);max-width:640px}
.sec-head .lead{margin-top:14px}
.sec-head-row{max-width:none;display:grid;gap:16px 48px;align-items:end}
@media (min-width:860px){.sec-head-row{grid-template-columns:1.1fr .9fr}}

/* línea de la sonrisa (motivo del logo) */
.smile-u{display:block;width:100%;height:14px;color:var(--roz);margin-top:6px;overflow:visible}
.smile-u path{stroke-dasharray:1;stroke-dashoffset:0}
.js .reveal .smile-u path,.js .hero .mark .smile-u path{transition:stroke-dashoffset 1.1s var(--ease) .3s}
.js .reveal:not(.is-in) .smile-u path,.js:not(.is-ready) .hero .mark .smile-u path{stroke-dashoffset:1}
.h2 .smile-u{width:min(180px,40%);height:12px;margin-top:10px}

/* ---------- botones ---------- */
.btn{--bh:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--bh);padding:0 22px;border-radius:var(--r-pill);font-family:var(--f-title);font-weight:700;font-size:1rem;line-height:1.1;text-decoration:none;border:2px solid transparent;transition:background-color .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s;text-align:center;padding-top:6px;padding-bottom:6px}
.btn:active{transform:scale(.97)}
.btn-lg{--bh:56px;padding:0 28px;font-size:1.05rem}
.btn-primary{background:var(--roz-text);color:#fff}
.btn-primary:hover{background:#A90C49;box-shadow:0 10px 24px -12px rgba(200,15,87,.7)}
.btn-ghost{border-color:var(--bleumarin);color:var(--bleumarin);background:transparent}
.btn-ghost:hover{background:var(--bleumarin);color:#fff}
.btn-light{background:#fff;color:var(--bleumarin)}
.btn-light:hover{background:var(--roz-pal)}
.btn-outline-light{border-color:rgba(255,255,255,.7);color:#fff}
.btn-outline-light:hover{background:#fff;color:var(--bleumarin)}
.btn-ghost-light{background:rgba(20,32,79,.82);color:#fff;border-color:transparent}
.btn-ghost-light:hover{background:var(--bleumarin)}
.btn .ic{width:1.2em;height:1.2em}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-family:var(--f-title);font-weight:700;color:var(--bleumarin);text-decoration:none;min-height:44px}
.link-arrow .ic{color:var(--roz);transition:transform .25s var(--ease)}
.link-arrow:hover .ic{transform:translateX(4px)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);border-bottom:1px solid transparent;transition:border-color .25s,box-shadow .25s}
@supports (backdrop-filter:blur(8px)){.site-header{background:rgba(255,255,255,.86);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px)}}
.site-header.is-scrolled{border-color:var(--line);box-shadow:0 6px 20px -16px rgba(20,32,79,.35)}
.header-in{display:flex;align-items:center;gap:16px;min-height:var(--header-h)}
.brand{display:flex;align-items:center;gap:10px;margin-right:auto;border-radius:10px;text-decoration:none}
.brand .brand-vm{width:112px;height:auto}
.brand .brand-vi{width:auto;height:31px}
.brand-by{font-family:var(--f-title);font-weight:600;font-size:.85rem;color:var(--ink-2);line-height:1;padding-top:4px}
.nav ul{list-style:none;display:flex;gap:4px}
.nav a{display:flex;align-items:center;min-height:44px;padding:0 9px;white-space:nowrap;border-radius:var(--r-pill);text-decoration:none;font-weight:600;font-size:.95rem;color:var(--ink-2);transition:color .2s,background-color .2s}
.nav a:hover{color:var(--bleumarin);background:var(--roz-pal)}
.nav a[aria-current="true"]{color:var(--bleumarin);box-shadow:inset 0 -2px 0 var(--roz)}
.nav-extra{display:none}
.btn-call{--bh:44px;padding:0 18px;font-size:.95rem;white-space:nowrap}
.menu-btn{display:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:#fff;align-items:center;justify-content:center}
.menu-btn .ic{width:22px;height:22px}
.menu-btn .ic-close{display:none}
.menu-btn[aria-expanded="true"] .ic-open{display:none}
.menu-btn[aria-expanded="true"] .ic-close{display:block}

@media (max-width:1239px){
  .menu-btn{display:inline-flex}
  .js .nav{position:fixed;inset:var(--header-h) 0 auto 0;background:#fff;border-top:1px solid var(--line);box-shadow:0 24px 40px -24px rgba(20,32,79,.35);padding:12px var(--gutter) 24px;max-height:calc(100dvh - var(--header-h));overflow:auto;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .2s,transform .25s var(--ease),visibility 0s .25s}
  .js .nav.is-open{visibility:visible;opacity:1;transform:none;transition:opacity .2s,transform .25s var(--ease)}
  .js .nav ul{flex-direction:column;gap:2px}
  .js .nav a{font-family:var(--f-title);font-size:1.15rem;font-weight:700;color:var(--bleumarin);min-height:52px;padding:0 12px;border-radius:14px}
  .js .nav-extra{display:grid;gap:8px;margin-top:16px;padding:16px 12px 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:.95rem}
  .js .nav-extra p{display:flex;gap:10px;align-items:center}
  .js .nav-extra .ic{color:var(--roz)}
  .no-js .nav ul{flex-wrap:wrap}
  .no-js .header-in{flex-wrap:wrap;padding-bottom:8px}
  .no-js .menu-btn{display:none}
}
@media (max-width:640px){
  :root{--header-h:62px}
  .brand{gap:6px}
  .brand .brand-vm{width:96px}
  .brand .brand-vi{height:26px}
  .brand-by{font-size:.75rem}
  .header-in .btn-call{display:none}   /* en móvil la llamada está en la barra fija de abajo */
}

/* ---------- hero ---------- */
.hero{padding:clamp(28px,5vw,72px) 0 clamp(64px,8vw,104px);overflow:clip}
.hero-grid{display:grid;gap:40px;align-items:center}
.hero-grid>*,.rev-grid>*,.medic-grid>*,.dif-grid>*,.ct-grid>*,.faq-grid>*{min-width:0}
.hero h1{font-size:clamp(2.35rem,4.6vw + .8rem,4rem);line-height:1.04;letter-spacing:-.02em;max-width:13ch}
.hero .mark{display:inline-block;color:var(--bleumarin)}
.hero .mark .smile-u{height:16px;margin-top:2px}
.hero .lead{margin-top:22px}
.hero .cta-row{margin-top:30px}
.hero-facts{list-style:none;display:grid;gap:10px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.hero-facts li{display:flex;gap:12px;align-items:flex-start;font-size:.95rem;color:var(--ink-2)}
.hero-facts .ic{width:20px;height:20px;color:var(--roz);margin-top:2px}
.hero-facts b{color:var(--bleumarin);font-weight:700;margin-right:6px}
.hero-media{position:relative;margin:0;justify-self:center;width:100%;max-width:460px}
.hero-media img{position:relative;width:100%;border-radius:var(--r-img);aspect-ratio:4/5;object-fit:cover;box-shadow:var(--shadow)}
.hero-blob{position:absolute;inset:8% -7% -6% 10%;background:var(--roz-pal);border-radius:40px 40px 120px 40px}
.hero-card{position:absolute;left:-14px;bottom:28px;background:#fff;border-radius:18px;padding:14px 18px;box-shadow:var(--shadow);display:grid;gap:2px;max-width:calc(100% - 20px)}
.hero-card-k{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--roz-text)}
.hero-card-v{font-family:var(--f-title);font-weight:700;font-size:1.05rem}
@media (min-width:900px){
  .hero-grid{grid-template-columns:1.15fr .85fr;gap:56px}
  .hero-facts{grid-template-columns:repeat(3,auto);gap:12px 24px}
  .hero-facts li{flex-direction:column;gap:6px}
  .hero-facts b{display:block}
}
@media (max-width:899px){
  .hero-media{max-width:520px}
  .hero-media img{aspect-ratio:4/3.4;object-position:50% 18%}
  .hero-card{left:12px;bottom:12px}
}
@media (max-width:480px){
  .hero .cta-row .btn{width:100%}
}

/* ---------- medic ---------- */
.medic-grid{display:grid;gap:40px;align-items:center}
@media (min-width:900px){.medic-grid{grid-template-columns:.8fr 1.2fr;gap:72px}}
@media (max-width:899px){
  .medic-copy{order:-1}
  .medic-photo{max-width:340px}
  .placeholder-portrait{aspect-ratio:5/4}
  .medic-photo img{aspect-ratio:4/4.4}
}
.medic-photo{margin:0;max-width:420px;width:100%}
.medic-photo img,.placeholder-portrait{border-radius:var(--r-img);aspect-ratio:4/5;width:100%;object-fit:cover}
.placeholder-portrait{position:relative;background:linear-gradient(160deg,var(--roz-pal),#fff 70%);border:1px solid var(--line);display:grid;place-items:center;align-content:center;gap:4px;overflow:hidden}
.placeholder-portrait .mono{font-family:var(--f-title);font-weight:700;font-size:clamp(4.5rem,10vw,6.5rem);line-height:1;color:var(--bleumarin);letter-spacing:.02em}
.placeholder-portrait .smile-u{width:46%;height:16px}
.ph-note{position:absolute;bottom:16px;left:16px;font-size:.78rem;font-weight:600;color:var(--ink-2);background:rgba(255,255,255,.85);padding:4px 10px;border-radius:var(--r-pill)}
.medic-photo.has-photo{max-width:340px;position:relative}
.medic-photo.has-photo::before{content:"";position:absolute;inset:-14px 26px 40px -14px;background:var(--roz-pal);border-radius:32px 32px 96px 32px}
.medic-photo img.is-square{position:relative;aspect-ratio:1/1;box-shadow:var(--shadow)}
@media (max-width:899px){.medic-photo.has-photo{max-width:300px;margin-left:14px}}
.medic-photo figcaption{position:relative;margin-top:14px;display:grid}
.medic-photo figcaption b{font-family:var(--f-title);font-size:1.15rem}
.medic-photo figcaption span{color:var(--ink-2);font-size:.95rem}
.medic-copy .lead{margin-top:18px}
.quote{margin:28px 0 30px;padding:4px 0 4px 20px;border-left:3px solid var(--roz)}
.quote p{font-family:var(--f-title);font-weight:600;font-size:clamp(1.1rem,.8vw + .9rem,1.3rem);line-height:1.4}
.quote footer{margin-top:8px;font-size:.875rem;color:var(--ink-2)}

/* ---------- servicii ---------- */
.serv-grid{display:grid;gap:14px}
@media (min-width:640px){.serv-grid{grid-template-columns:repeat(2,1fr);gap:16px}}
@media (min-width:980px){.serv-grid{grid-template-columns:repeat(3,1fr);gap:18px}}
.serv{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:22px 22px 12px;display:flex;flex-direction:column;transition:border-color .25s,box-shadow .25s,transform .3s var(--ease)}
.serv:hover{border-color:var(--line-2);box-shadow:var(--shadow)}
@media (hover:hover){.serv:hover{transform:translateY(-2px)}}
.serv-ic{width:48px;height:48px;border-radius:14px;background:var(--roz-pal);color:var(--roz-text);display:grid;place-items:center;margin-bottom:16px}
.serv-ic svg{width:26px;height:26px}
.serv-top{display:block}
.serv h3{font-size:1.2rem}
@media (max-width:639px){
  .serv{padding:18px 18px 8px}
  .serv-top{display:flex;align-items:center;gap:14px}
  .serv-ic{width:42px;height:42px;margin:0;flex:none}
  .serv h3{font-size:1.12rem}
  .serv-more{margin-top:10px;min-height:44px}
}
.serv>p{margin-top:8px;color:var(--ink-2);font-size:.97rem}
.serv-more{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;background:none;border:0;border-top:1px solid var(--line);margin-top:16px;font-family:var(--f-title);font-weight:700;font-size:.95rem;color:var(--bleumarin);text-align:left;border-radius:0}
.serv-more .ic{color:var(--roz-text);transition:transform .3s var(--ease)}
.serv-more[aria-expanded="true"] .ic{transform:rotate(45deg)}
.serv-more:hover span{text-decoration:underline;text-underline-offset:3px}
.serv-detail,.faq-a{display:grid;grid-template-rows:1fr;transition:grid-template-rows .35s var(--ease)}
.js .serv-detail:not(.is-open),.js .faq-a:not(.is-open){grid-template-rows:0fr}
.serv-detail>div,.faq-a>div{overflow:hidden;min-height:0}
.serv-detail p{padding:2px 0 12px;font-size:.95rem;color:var(--ink-2)}
.js .serv-detail:not(.is-open)>div,.js .faq-a:not(.is-open)>div{visibility:hidden;transition:visibility 0s .35s}
.note{display:flex;gap:12px;align-items:flex-start;margin-top:28px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:16px;font-size:.95rem;color:var(--ink-2);max-width:760px}
.note .ic{color:var(--roz-text);width:22px;height:22px;margin-top:1px}
.note b{color:var(--bleumarin)}

/* ---------- diferenciere ---------- */
.dif-grid{display:grid;gap:40px}
@media (min-width:900px){.dif-grid{grid-template-columns:1fr 1fr;gap:72px;align-items:start}}
.lema{margin-top:28px;font-family:var(--f-title);font-weight:700;font-size:clamp(1.4rem,1.6vw + 1rem,2rem);color:var(--roz-text);line-height:1.2;display:inline-block}
.lema .smile-u{height:14px}
.dif-list{list-style:none;display:grid;gap:14px}
.dif{display:flex;gap:18px;align-items:flex-start;background:var(--roz-pal);border-radius:var(--r-card);padding:22px}
.dif-ic{flex:none;width:52px;height:52px;border-radius:50%;background:#fff;color:var(--roz-text);display:grid;place-items:center}
.dif-ic svg{width:26px;height:26px}
.dif h3{font-size:1.2rem}
.dif p{margin-top:6px;color:#3C4569}

/* ---------- cabinet ---------- */
.gallery{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}
.g{position:relative;margin:0;border-radius:var(--r-img);overflow:hidden;background:var(--roz-pal)}
.g img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
@media (hover:hover){.g:hover img{transform:scale(1.03)}}
.g figcaption{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);display:flex;flex-direction:column;align-items:flex-start;gap:6px;pointer-events:none;font-family:var(--f-title);font-weight:700;font-size:.88rem;line-height:1.2;color:var(--bleumarin)}
.g figcaption{background:#fff;padding:7px 12px;border-radius:14px}
.g figcaption small{font-family:var(--f-body);font-weight:600;font-size:.72rem;color:var(--ink-2)}
@media (max-width:640px){.g figcaption{left:8px;bottom:8px;max-width:calc(100% - 16px);padding:5px 10px;font-size:.8rem}.g figcaption small{font-size:.66rem}}
.g-1{grid-column:1/-1;aspect-ratio:4/3}
.g-2{grid-column:1/-1;aspect-ratio:4/3}
.g-3,.g-4{aspect-ratio:3/4}
@media (min-width:900px){
  .gallery{grid-template-columns:1.35fr .65fr .65fr;grid-template-rows:auto auto}
  .g-1{grid-column:1;grid-row:1/3;aspect-ratio:auto;min-height:100%}
  .g-2{grid-column:2/4;grid-row:1;aspect-ratio:16/10}
  .g-3{grid-column:2;grid-row:2}
  .g-4{grid-column:3;grid-row:2}
}

/* ---------- înainte / după ---------- */
.ba-grid{display:grid;gap:36px;align-items:center}
@media (min-width:900px){.ba-grid{grid-template-columns:.8fr 1.2fr;gap:64px}}
.ba-grid>*{min-width:0}
.ba-copy .lead{margin-top:16px}
.ba-hint{display:flex;gap:10px;align-items:center;margin:20px 0 26px}
.ba-hint .ic{color:var(--roz-text);width:22px;height:22px}
.ba{--pos:50%;position:relative;border-radius:var(--r-img);overflow:hidden;aspect-ratio:16/9;background:var(--roz-pal);box-shadow:var(--shadow);touch-action:pan-y;user-select:none;-webkit-user-select:none}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}
.ba-before-wrap{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba-label{position:absolute;top:14px;padding:4px 12px;border-radius:var(--r-pill);background:#fff;color:var(--bleumarin);font-family:var(--f-title);font-weight:700;font-size:.85rem;pointer-events:none}
.ba-label-l{left:14px}
.ba-label-r{right:14px}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;pointer-events:none;box-shadow:0 0 0 1px rgba(20,32,79,.12)}
.ba-handle i{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#fff;color:var(--roz-text);display:grid;place-items:center;box-shadow:var(--shadow)}
.ba-handle svg{width:24px;height:24px}
.ba-range{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;-webkit-appearance:none;appearance:none}
.ba:has(.ba-range:focus-visible) .ba-handle i{outline:3px solid var(--roz-text);outline-offset:3px}
.ba-note{margin-top:18px}

/* ---------- recenzii ---------- */
.rev-grid{display:grid;gap:16px}
@media (min-width:900px){.rev-grid{grid-template-columns:.8fr 2fr;gap:18px}}
.rev-score{background:var(--roz-pal);border-radius:var(--r-card);padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.score{font-family:var(--f-title);font-weight:700;font-size:4.2rem;line-height:1}
.stars{display:flex;gap:2px;color:#E09A00}
.stars svg{width:20px;height:20px}
.rev-score .btn{margin-top:auto}
.rev-list{list-style:none;display:grid;gap:16px}
@media (min-width:700px){.rev-list{grid-template-columns:repeat(3,1fr)}}
.rev{background:#fff;border:1px solid var(--line);border-radius:var(--r-card);padding:24px;display:flex;flex-direction:column;gap:14px}
.rev blockquote{margin:0}
.rev blockquote p{font-family:var(--f-title);font-weight:600;font-size:1.1rem;line-height:1.45}
.rev-who{margin-top:auto;font-size:.875rem;color:var(--ink-2)}
.rev-note{margin-top:18px}

/* ---------- faq ---------- */
.faq-grid{display:grid;gap:8px 72px}
@media (min-width:980px){.faq-grid{grid-template-columns:.8fr 1.2fr;align-items:start}.faq-grid .sec-head{position:sticky;top:calc(var(--header-h) + 32px)}}
.faq-grid .sec-head .btn{margin-top:24px}
.faq{display:grid;gap:10px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:18px;transition:border-color .2s}
.faq-item:has([aria-expanded="true"]){border-color:var(--line-2)}
.faq-item h3{font-size:1.05rem}
.faq-item button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:14px 20px;background:none;border:0;text-align:left;font-family:var(--f-title);font-weight:700;font-size:1.05rem;color:var(--bleumarin);border-radius:18px}
.faq-item button .ic{color:var(--roz-text);transition:transform .3s var(--ease)}
.faq-item button[aria-expanded="true"] .ic{transform:rotate(45deg)}
.faq-a p{padding:0 20px 18px;color:var(--ink-2)}

/* ---------- contact ---------- */
.contact{background:var(--bleumarin);color:var(--on-navy);padding:clamp(72px,9vw,120px) 0 clamp(56px,7vw,88px);position:relative;overflow:clip}
.contact .eyebrow{color:#FF9DC0}
.contact .h2{color:#fff;max-width:18ch}
.ct-sign{margin-top:12px;color:var(--on-navy-2)}
.ct-grid{display:grid;gap:32px;margin-top:40px}
@media (min-width:960px){.ct-grid{grid-template-columns:.9fr 1.1fr;gap:56px}}
.ct-info{display:grid;gap:22px;align-content:start}
.k{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy-2)}
.ct-phone{display:grid;gap:4px;text-decoration:none;width:max-content;max-width:100%}
.ct-phone .v{font-family:var(--f-title);font-weight:700;font-size:clamp(2rem,4vw,2.8rem);line-height:1.05;color:#fff}
.ct-phone:hover .v{text-decoration:underline;text-decoration-color:var(--roz);text-underline-offset:6px}
.ct-block address{margin-top:6px;font-size:1.1rem;color:#fff}
.ct-block .small{color:var(--on-navy-2);margin-top:6px}
.hours{margin-top:8px;width:100%;max-width:340px;font-size:.98rem}
.hours th,.hours td{padding:6px 0;border-bottom:1px solid rgba(255,255,255,.12);text-align:left;font-weight:400}
.hours td{text-align:right;color:#fff}
.hours th{color:var(--on-navy-2)}
.hours tr.is-today th,.hours tr.is-today td{color:#fff;font-weight:700}
.hours tr.is-today th::after{content:" · azi";color:#FF9DC0;font-weight:600}
.ct-cnas{display:flex;gap:10px;align-items:center;color:#fff;font-weight:600}
.ct-cnas .ic{color:#FF9DC0;width:22px;height:22px}
.map{position:relative;border-radius:var(--r-img);overflow:hidden;background:#E9E3EA;min-height:420px;display:grid}
.map img,.map picture,.map iframe{grid-area:1/1;width:100%;height:100%;object-fit:cover;border:0}
.map iframe{min-height:420px}
.map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--roz-text);pointer-events:none}
.map-pin svg{width:44px;height:44px;fill:#fff;filter:drop-shadow(0 4px 6px rgba(20,32,79,.35))}
.map-pin b{font-family:var(--f-title);background:var(--bleumarin);color:#fff;padding:3px 10px;border-radius:var(--r-pill);font-size:.85rem;order:-1}
.map-actions{position:absolute;left:14px;right:14px;bottom:40px;display:flex;flex-wrap:wrap;gap:10px}
.map-credit{position:absolute;left:0;right:0;bottom:0;padding:6px 14px;font-size:.72rem;background:rgba(255,255,255,.9);color:#3C4569}
.map.is-live .map-pin,.map.is-live .map-actions,.map.is-live .map-credit{display:none}
.insta{display:flex;gap:16px;align-items:center;margin-top:40px;padding:20px 24px;border-radius:var(--r-card);border:1px solid rgba(255,255,255,.18);text-decoration:none;color:var(--on-navy-2);transition:background-color .2s,border-color .2s}
.insta:hover{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.35)}
.insta b{display:block;color:#fff;font-family:var(--f-title);font-size:1.1rem}
.insta .ic{width:26px;height:26px;color:#FF9DC0}
.insta>span{flex:1}

/* ---------- footer ---------- */
.site-footer{background:var(--hartie);padding:64px 0 32px;border-top:1px solid var(--line);font-size:.95rem}
.foot-grid{display:grid;gap:32px}
@media (min-width:760px){.foot-grid{grid-template-columns:1.3fr 1fr 1fr 1fr}}
.foot-lockup{margin:0;gap:12px;flex-wrap:wrap}
.foot-lockup .brand-vm{width:150px}
.foot-lockup .brand-vi{height:40px}
@media (max-width:400px){.foot-lockup .brand-vm{width:120px}.foot-lockup .brand-vi{height:32px}}
.foot-sign{margin-top:10px;font-weight:700}
.foot-lema{margin-top:4px;color:var(--ink-2)}
.foot-h{font-family:var(--f-title);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--roz-text);margin-bottom:12px}
.foot-col ul{list-style:none;display:grid;gap:4px;color:var(--ink-2)}
.foot-col a{display:inline-flex;align-items:center;min-height:32px;text-decoration:none}
.foot-col a:hover{color:var(--bleumarin);text-decoration:underline}
.foot-legal{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:grid;gap:6px;font-size:.85rem;color:var(--ink-2)}
.foot-legal a{display:inline-block;padding:4px 0}

/* ---------- barra de llamada (móvil) ---------- */
.callbar{display:none}
@media (max-width:760px){
  .callbar{display:flex;gap:10px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:10px max(12px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right));background:rgba(255,255,255,.96);border-top:1px solid var(--line);box-shadow:0 -10px 24px -18px rgba(20,32,79,.5);transition:transform .3s var(--ease)}
  .callbar .btn-primary{flex:1;--bh:52px}
  .callbar-map{--bh:52px;padding:0 16px}
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .callbar.is-hidden{transform:translateY(110%)}
}
@media (max-width:360px){.callbar-map span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}}

/* ---------- páginas legales ---------- */
.legal{padding:clamp(48px,7vw,96px) 0}
.legal .wrap{max-width:calc(780px + var(--gutter)*2)}
.legal h1{font-size:clamp(2rem,3vw + 1rem,2.8rem)}
.legal h2{font-size:1.35rem;margin-top:40px}
.legal p,.legal li{margin-top:12px;color:#2E375C}
.legal ul{padding-left:20px}
.legal .pend{background:var(--roz-pal);padding:1px 6px;border-radius:6px;font-weight:700;color:var(--roz-text)}
.legal .upd{color:var(--ink-2);margin-top:10px}
.e404{min-height:60vh;display:grid;place-items:center;text-align:center;padding:80px 0}
.e404 h1{font-size:clamp(2.2rem,4vw + 1rem,3.4rem)}
.e404 p{margin:16px auto 28px;color:var(--ink-2);max-width:44ch}
.e404 .cta-row{justify-content:center}

/* ---------- aparición suave ---------- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.js .reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none;transition:none}
  .js .reveal:not(.is-in) .smile-u path,.js:not(.is-ready) .hero .mark .smile-u path{stroke-dashoffset:0}
  .smile-u path{transition:none!important}
  .serv-detail,.faq-a{transition:none}
  .g img{transition:none}
}
@media print{.site-header,.callbar,.map-actions{display:none}.js .reveal{opacity:1;transform:none}}
