@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/marcellus-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;src:url(/assets/fonts/jost-latin-300-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/jost-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jost-latin-500-normal.woff2) format('woff2')}

:root{
  --bg:#FFFDFB; --surface:#F8F0E8; --ink:#3F3C36; --muted:#5E5950;
  --rose:#E3C9BC; --rose-mid:#CBA899; --rose-deep:#77513F; --line:#E6D9CD; --on-rose:#3A322D;
  --display:"Marcellus","Optima","Candara",Georgia,serif;
  --body:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;
  --bar:76px;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(env(safe-area-inset-top,0px) + 112px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-weight:400;font-size:1.0625rem;line-height:1.6;-webkit-font-smoothing:antialiased;
  padding-bottom:calc(var(--bar) + env(safe-area-inset-bottom,0px))}
img{max-width:100%;display:block}
a{color:var(--rose-deep)}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--rose-deep);outline-offset:3px;border-radius:6px}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.15;margin:0;color:var(--ink)}
h2{font-size:1.85rem}
p{margin:0 0 1em;max-width:62ch}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}
.todo{background:color-mix(in srgb,var(--rose) 55%,transparent);border-radius:3px;padding:0 .3em;font-style:normal}

/* Buttons: big tap targets */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:0 1.5rem;border-radius:999px;font-family:var(--body);font-weight:500;font-size:1rem;text-decoration:none;white-space:nowrap;border:1px solid var(--rose-mid);transition:background .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn-solid{background:var(--rose);color:var(--on-rose);border-color:var(--rose)}
.btn-solid:hover{background:var(--rose-mid);border-color:var(--rose-mid)}
.btn-line{color:var(--ink);background:var(--bg)}
.btn-line:hover{background:var(--surface)}

/* Header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.bar-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:1rem;position:relative}
.brand{height:56px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.brand img{height:34px;width:auto}
.brand span{font-family:var(--display);font-size:1.05rem;white-space:nowrap}
.call-ico{display:none;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--rose-deep)}
.call-ico svg{width:20px;height:20px}
header .btn{display:none}

/* Sticky bottom booking bar (mobile) */
.bookbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--bg) 96%,transparent);backdrop-filter:blur(8px);border-top:1px solid var(--line);
  padding:12px 1.25rem calc(12px + env(safe-area-inset-bottom,0px));display:flex;gap:.6rem}
.bookbar .btn-solid{flex:1}
.bookbar .btn-line{width:52px;padding:0}

/* Hero */
.hero{padding:1.75rem 0 1.5rem}
.hero-mark{display:none}
.hero h1{font-size:2.3rem}
.role{font-family:var(--display);font-size:1.05rem;color:var(--rose-deep);letter-spacing:.12em;margin:.4rem 0 1rem}
.lead{color:var(--muted);font-size:1.05rem}
.assure{font-size:.95rem;color:var(--rose-deep);border-left:2px solid var(--rose-mid);padding-left:.8rem;margin-top:-.2rem}
.cv{margin:.4rem 0 0;padding-left:1.1rem}
.cv li{margin:.15rem 0}
.hero .ctas{display:none}
.arch{display:none}

/* Quick treatment chips */
.chips-wrap{border-block:1px solid var(--line);background:var(--surface)}
.chips-title{font-size:.95rem;color:var(--muted);padding:1rem 0 .2rem;margin:0}
.chips{display:flex;gap:.5rem;overflow-x:auto;padding:.6rem 1.25rem 1rem;margin:0 -1.25rem;list-style:none;scroll-snap-type:x proximity;scroll-padding-inline:1.25rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips li{scroll-snap-align:start;flex:none}
.chips a{display:inline-flex;align-items:center;min-height:44px;padding:0 1.1rem;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:.95rem}
.chips a:hover{border-color:var(--rose-mid)}

/* Sections */
section{padding:2.75rem 0}
.alt{background:var(--surface);border-block:1px solid var(--line)}
.head{margin-bottom:1.5rem}
.head p{color:var(--muted);margin-top:.6rem}

/* Treatments as cards with direct booking */
.ts{display:grid;gap:1rem}
.t{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:1.25rem 1.25rem 1.1rem}
.t.first{border-color:var(--rose-mid);background:linear-gradient(160deg,color-mix(in srgb,var(--rose) 35%,var(--bg)),var(--bg))}
.t-top{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;margin-bottom:.4rem}
.t h3{font-size:1.35rem}
.tag{font-size:.82rem;color:var(--muted);white-space:nowrap}
.t p{font-size:.98rem;margin-bottom:.7rem}
.t details{border-top:1px solid var(--line);margin-bottom:-.3rem}
.t summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;min-height:44px;font-size:.95rem;color:var(--rose-deep)}
.t summary::-webkit-details-marker{display:none}
.t summary::after{content:"+";font-family:var(--display);font-size:1.4rem;line-height:1;transition:transform .25s}
.t details[open] summary::after{transform:rotate(45deg)}
.facts{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1rem;margin:.2rem 0 .8rem;font-size:.93rem}
.facts dt{color:var(--muted)}
.facts dd{margin:0}

/* Steps */
.steps{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:2.4rem 1fr;gap:.2rem .8rem}
.steps li::before{content:counter(s);grid-row:span 2;font-family:var(--display);font-size:1.6rem;color:var(--rose-deep);width:2.4rem;height:2.4rem;border-radius:50%;background:var(--rose);display:grid;place-items:center;line-height:1}
.steps h3{font-size:1.2rem;align-self:end}
.steps p{font-size:.97rem;color:var(--muted);margin:0}

/* Doctor */
.portrait{display:block;width:100%;height:auto;object-fit:cover;object-position:50% 20%;aspect-ratio:1/1;border-radius:16px;border:1px solid var(--line);margin-bottom:1.5rem}
.creds{margin:1.5rem 0 0;border-top:1px solid var(--line)}
.creds div{display:grid;grid-template-columns:1fr;gap:.1rem;padding:.75rem 0;border-bottom:1px solid var(--line);font-size:.97rem}
.creds dt{color:var(--muted);font-size:.88rem}
.creds dd{margin:0}

/* Practical */
.info{display:grid;gap:2rem}
.info h3{font-size:1.25rem;margin-bottom:.6rem}
.info table{border-collapse:collapse;width:100%;font-size:.97rem}
.info td{padding:.45rem 0;border-bottom:1px solid var(--line)}
.info td:last-child{text-align:right;color:var(--muted)}
.info .btn{width:100%;margin-top:.4rem}

/* FAQ */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:56px;padding:.6rem 0;font-size:1.02rem;font-weight:400}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--display);font-size:1.4rem;color:var(--rose-deep);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq p{font-size:.97rem;color:var(--muted)}

footer{padding:2.5rem 0;font-size:.88rem;color:var(--muted);border-top:1px solid var(--line)}
footer .wrap{display:grid;gap:1.2rem}
footer p{margin:0 0 .4rem}
footer a{color:var(--muted);display:inline-block;padding:.3rem 0}

/* ---------- Tablet / desktop ---------- */
@media (min-width:700px){
  h2{font-size:2.3rem}
  .ts{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .info{grid-template-columns:repeat(3,1fr)}
  .info .btn{width:auto}
  .creds div{grid-template-columns:minmax(150px,.5fr) 1fr;gap:1rem}
  footer .wrap{grid-template-columns:1fr auto}
}
@media (min-width:960px){
  body{padding-bottom:0}
  .bookbar,.call-ico{display:none}
  .bar-top{flex-wrap:nowrap;height:72px}
  header .btn{display:inline-flex;min-height:46px}
  html{scroll-padding-top:90px}
  section{padding:5rem 0}
  .hero{padding:4.5rem 0 4rem}
  .hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:4rem;align-items:center}
  .hero-mark{display:block;width:110px;margin-bottom:1.6rem}
  .hero h1{font-size:4rem}
  .role{font-size:1.3rem;margin:.6rem 0 1.4rem}
  .lead{font-size:1.15rem;max-width:44ch}
  .hero .ctas{display:flex;gap:.8rem;margin-top:2rem}
  .arch{display:block;margin:0;aspect-ratio:4/5;border-radius:999px 999px 18px 18px;position:relative;border:1px solid var(--line);
    background:radial-gradient(120% 80% at 30% 20%,color-mix(in srgb,var(--rose) 45%,var(--bg)) 0%,transparent 60%),linear-gradient(170deg,var(--bg),color-mix(in srgb,var(--rose) 30%,var(--bg)))}
  .arch figcaption{position:absolute;inset:auto 0 0 0;padding:1.2rem;text-align:center;font-size:.85rem;color:var(--muted)}
  .chips{flex-wrap:wrap;overflow:visible;margin:0;padding:.6rem 0 1.2rem}
  .ts{grid-template-columns:repeat(3,1fr)}
  .steps{grid-template-columns:repeat(4,1fr)}
  .doc{display:grid;grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:start}
  .portrait{aspect-ratio:4/5;margin:0}
}

.mainnav{flex-basis:calc(100% + 2.5rem);order:3;display:flex;margin:0 -1.25rem;border-top:1px solid var(--line)}
.mainnav>a,.mainnav>button{flex:1;display:flex;align-items:center;justify-content:center;gap:.35rem;min-height:46px;background:none;border:0;font:inherit;font-size:.98rem;color:var(--ink);text-decoration:none;cursor:pointer;box-shadow:inset 0 -2px 0 transparent}
.mainnav>a.on,.mainnav>button.on{color:var(--rose-deep);box-shadow:inset 0 -2px 0 var(--rose-mid)}
.mainnav svg{width:12px;height:12px;transition:transform .2s}
.mainnav button[aria-expanded="true"] svg{transform:rotate(180deg)}
.tmenu{position:absolute;left:-1.25rem;right:-1.25rem;top:100%;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 18px 30px -18px rgba(74,65,59,.35);max-height:calc(100vh - 190px);overflow-y:auto;z-index:25}
.tmenu[hidden]{display:none}
.tmenu ul{list-style:none;margin:0;padding:.3rem 0}
.tmenu a{display:flex;align-items:center;min-height:52px;padding:0 1.5rem;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-family:var(--display);font-size:1.12rem}
.tmenu li:last-child a{border-bottom:0}
.tmenu a:hover,.tmenu a[aria-current="page"]{color:var(--rose-deep);background:var(--surface)}
.navwrap{position:static}
.foot-links a{margin-right:1rem}
.prose .steps{grid-template-columns:1fr!important;gap:1rem;margin:0 0 1rem}
.prose .steps h3{font-size:1.1rem}
.docard{display:block;max-width:720px;margin-inline:auto;text-decoration:none;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:1.4rem 1.25rem}
.docard:hover{border-color:var(--rose-mid)}
.docard .doc-id{margin-bottom:1rem}
.docard .doc-id h2{font-size:1.5rem}
.docard p{font-size:.98rem;color:var(--muted)}
.d-score{margin:0 0 .6rem}
.d-score b{font-family:var(--display);font-weight:400;font-size:1.4rem;color:var(--ink)}
.d-score span{font-size:.88rem}
.docard .more{color:var(--rose-deep);font-size:.95rem}
.docpage{padding-top:1.2rem}
.docpage .doc-id h1{font-size:2rem}
@media (min-width:700px){.docpage .doc-id h1{font-size:2.6rem}}
@media (max-width:420px){.mainnav>a,.mainnav>button{font-size:.92rem}}
.consult{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1rem;text-decoration:none;color:var(--ink);border:1px solid var(--rose-mid);border-radius:16px;padding:1rem 1.25rem;margin-bottom:1rem;background:linear-gradient(160deg,color-mix(in srgb,var(--rose) 35%,var(--bg)),var(--bg))}
.consult .c-eyebrow{flex-basis:100%;font-size:.85rem;color:var(--rose-deep)}
.consult .c-main{display:flex;flex-direction:column}
.consult strong{font-family:var(--display);font-weight:400;font-size:1.35rem}
.consult .c-main span{font-size:.92rem;color:var(--muted)}
.consult .more{color:var(--rose-deep);font-size:.95rem}
.groups{display:grid;gap:1rem}
.g{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:1.25rem 1.25rem 1.1rem}
.g h3{font-size:1.4rem;margin-bottom:.35rem}
.g p{font-size:.97rem;color:var(--muted);margin-bottom:.9rem}
.gtags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.gtags a{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:.95rem}
.gtags a:hover{border-color:var(--rose-mid);color:var(--rose-deep)}
@media (min-width:960px){.groups{grid-template-columns:repeat(3,1fr)}.consult{flex-wrap:nowrap;justify-content:flex-start;gap:1.5rem}.consult .c-eyebrow{flex-basis:auto}.consult .more{margin-left:auto}}
body.menu-open .bookbar{display:none}
@media (max-width:959px){body.menu-open .tmenu{max-height:calc(100vh - 110px)}}
.tmenu li.mh{padding:.9rem 1.5rem .3rem;font-size:.8rem;color:var(--muted);letter-spacing:.02em}
.tmenu li.mh+li a{border-top:0}
.tarifs tr.grp td{font-family:var(--display);font-size:1.45rem;color:var(--rose-deep);padding:2.2rem 0 .2rem;border-bottom:0;text-align:left}
.tarifs tr.grp:first-child td{padding-top:.5rem}
footer .wrap.foot{display:block;text-align:left}
footer .foot p{margin:0 0 .7rem}
.f-name{color:var(--ink)}
.f-name span{display:block;font-size:.85rem;color:var(--muted)}
.f-contact{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1.2rem}
.f-contact a{color:var(--ink);text-decoration:none;padding:.35rem 0}
.f-contact a:hover{color:var(--rose-deep)}
.f-note{font-size:.82rem}
.f-legal{display:flex;gap:1.2rem;font-size:.82rem}
.f-legal a{padding:.35rem 0}
@media (min-width:960px){.hero .wrap{display:block;text-align:center;max-width:780px}.hero-mark{margin-inline:auto}.hero .lead{margin-inline:auto;max-width:56ch}.hero .assure{display:inline-block;text-align:left}.hero .ctas{justify-content:center}}
.reviews{margin-top:2.2rem}
.rv-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.3rem 1rem;margin-bottom:.9rem}
.rv-head h3{font-size:1.3rem}
.score{margin:0;font-size:.95rem;color:var(--muted)}
.score b{font-family:var(--display);font-weight:400;font-size:1.6rem;color:var(--ink)}
.score span{font-size:.88rem}
.rv-track{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -1.25rem;padding:.2rem 1.25rem .6rem;scroll-padding-inline:1.25rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rv-track::-webkit-scrollbar{display:none}
.rv{flex:0 0 84%;max-width:340px;margin:0;scroll-snap-align:start;background:var(--bg);border:1px solid var(--line);border-radius:14px;padding:1rem 1.1rem;display:flex;flex-direction:column;justify-content:space-between;gap:.8rem}
.rv blockquote{margin:0;font-size:.95rem;line-height:1.55;color:var(--ink)}
.rv figcaption{font-size:.84rem;color:var(--muted)}
.rv-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.6rem;font-size:.93rem}
.rv-nav{display:none;gap:.4rem}
.rv-nav button{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--rose-deep);font-size:1.3rem;line-height:1;cursor:pointer}
.rv-nav button:hover{border-color:var(--rose-mid)}
@media (min-width:700px){.rv-track{margin:0;padding-inline:0;scroll-padding-inline:0}.rv{flex-basis:300px}.rv-nav{display:inline-flex}}
.docx{max-width:720px;margin-inline:auto}
.doc-id{display:flex;align-items:center;gap:1.1rem;margin-bottom:1.3rem}
.doc-id img{width:88px;height:88px;border-radius:50%;object-fit:cover;flex:none;border:3px solid var(--bg);box-shadow:0 0 0 1px var(--rose-mid)}
.doc-id h2{font-size:1.6rem}
.doc-id .who{margin:.35rem 0 0;font-size:1rem;color:var(--ink)}
.doc-id .who span{font-size:.88rem;color:var(--muted)}
@media (min-width:700px){.doc-id img{width:112px;height:112px}.doc-id h2{font-size:2.1rem}}
@media (min-width:960px){
  .mainnav{flex-basis:auto;order:0;margin:0;border:0;gap:.4rem;position:relative}
  .mainnav>a,.mainnav>button{flex:none;padding:0 .9rem;min-height:72px;font-size:.98rem}
  .tmenu{left:auto;right:auto;top:calc(100% - 6px);width:320px;border:1px solid var(--line);border-radius:14px;max-height:none}
  .tmenu-anchor{position:relative}
}
a.t{display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .2s}
a.t>p{flex:1 1 auto;margin-bottom:1rem}
a.t .price{margin-top:auto}
a.t:hover{border-color:var(--rose-mid)}
.t .price{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:.75rem;margin-top:.2rem;font-size:.95rem}
.t .price strong{font-weight:500;color:var(--ink)}
.t .more{color:var(--rose-deep)}
.tarifs{max-width:760px}
.tarifs table{width:100%;border-collapse:collapse;font-size:.98rem}
.tarifs th{text-align:left;font-family:var(--display);font-weight:400;font-size:1.15rem;padding:1.3rem 0 .4rem;border-bottom:1px solid var(--rose-mid)}
.tarifs th a{color:var(--ink);text-decoration:none;display:inline-block;padding:.35rem 0}
.tarifs td{padding:.55rem 0;border-bottom:1px solid var(--line);vertical-align:top}
.tarifs td:last-child{text-align:right;padding-left:1rem;min-width:7rem;font-weight:400}
.note{font-size:.92rem;color:var(--muted);margin-top:1rem}
.crumbs{font-size:.88rem;color:var(--muted);padding-top:1.2rem}
.crumbs a{color:var(--muted)}
.t-hero{padding:1rem 0 2rem}
.t-hero h1{font-size:2.1rem;margin:.4rem 0 1rem}
.t-hero .lead{max-width:62ch}
.strip{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;margin-top:1.4rem;max-width:680px}
.strip div{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.75rem .9rem}
.strip dt{font-size:.8rem;color:var(--muted)}
.strip dd{margin:.1rem 0 0;font-size:1rem}
.strip .wide{grid-column:1/-1}
.prose{max-width:680px}
.prose h2{font-size:1.5rem;margin:2.2rem 0 .7rem}
.prose ul{padding-left:1.2rem;margin:0 0 1em}
.prose li{margin:.25rem 0}
.pricebox{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.1rem 1.25rem;margin-top:.4rem}
.pricebox table{width:100%;border-collapse:collapse}
.pricebox td{padding:.5rem 0;border-bottom:1px solid var(--line)}
.pricebox tr:last-child td{border-bottom:0}
.pricebox td:last-child{text-align:right;padding-left:1rem;min-width:6.5rem}
.byline{display:flex;gap:.9rem;align-items:center;margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.92rem;color:var(--muted)}
.byline img{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none}
.byline strong{color:var(--ink);font-weight:400}
.others{margin-top:2.5rem}
.others .chips{flex-wrap:wrap;overflow:visible;margin:0;padding:.6rem 0 0}
@media (min-width:700px){.strip{grid-template-columns:repeat(3,1fr)}.strip .wide{grid-column:auto}.t-hero h1{font-size:2.8rem}}
@media (min-width:960px){.t-hero{padding:1.5rem 0 2.5rem}}

/* Doctor page: arch portrait */
.doc-hero{display:grid;gap:1.6rem;margin-bottom:2rem}
.arch-photo{position:relative;margin:.6rem auto 0;width:min(78%,300px)}
.arch-photo::before{content:"";position:absolute;inset:-10px;border:1px solid var(--rose-mid);border-radius:999px 999px 24px 24px;pointer-events:none}
.arch-photo>img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:999px 999px 16px 16px;background:var(--surface)}
.doc-t h1{font-size:2.1rem}
.doc-t .who{margin:.4rem 0 1.1rem;color:var(--muted);font-size:.95rem}
.doc-t .bio{margin:0}
@media (min-width:760px){
  .doc-hero{grid-template-columns:1fr 320px;align-items:center;gap:3rem}
  .arch-photo{order:2;width:100%;margin:10px 10px 10px 0}
  .doc-t h1{font-size:2.8rem}
}
/* Subtle reveal on scroll */
.rv-ready .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.rv-ready .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv-ready .reveal{opacity:1;transform:none;transition:none}}
.consult .c-eyebrow,.consult .more{white-space:nowrap}
@media (min-width:960px){.consult .c-main{flex:1;min-width:0}}
.tarifs{margin-top:-.5rem}

/* Homepage hero photo: elegant rectangle with offset frame */
.hero .wrap{display:flex;flex-direction:column}
.hero-photo{order:-1;position:relative;margin:.6rem auto 2.2rem;width:min(80%,320px);isolation:isolate}
.hero-photo::before{content:"";position:absolute;z-index:-1;inset:0;transform:translate(14px,14px);border:1px solid var(--rose-mid);border-radius:16px;pointer-events:none}
.hero-photo img{display:block;width:100%;height:auto;aspect-ratio:6/7;object-fit:cover;object-position:50% 50%;border-radius:14px;box-shadow:0 18px 40px -24px rgba(74,65,59,.45)}
@media (min-width:960px){
  .hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:4.5rem;align-items:center;text-align:left;max-width:1120px}
  .hero-mark{margin-inline:0}
  .hero .lead{margin-inline:0;max-width:46ch}
  .hero .ctas{justify-content:flex-start}
  .hero-photo{order:0;margin:0 18px 18px 0;width:100%;max-width:390px;justify-self:end}
  .hero-photo::before{transform:translate(18px,18px)}
}
.hero{overflow:hidden}
/* Hero: "Médecin esthétique" at the same size as the treatment headings */
.hero h1{font-size:2.2rem}
.hero .role{font-size:1.4rem;letter-spacing:.06em;margin:.45rem 0 1.1rem}
@media (min-width:960px){.hero h1{font-size:3.6rem}.hero .role{font-size:1.4rem;margin:.6rem 0 1.4rem}}
/* Doctor page: role at the same size */
.doc-t .who .who-role{font-family:var(--display);font-size:1.4rem;letter-spacing:.06em;color:var(--rose-deep);line-height:1.5}
/* Header: name + role */
.brand .b-name{display:flex;flex-direction:column;line-height:1.15}
.brand .b-sep{display:none}
.brand .b-sub{font-family:var(--body);font-size:.78rem;color:var(--rose-deep);letter-spacing:.04em;margin-top:.15rem}
@media (min-width:960px){
  .brand .b-name{font-size:1.15rem}
  .brand .b-sub{font-size:.82rem;margin-top:.2rem}
}
/* Footer: distributed left / right on larger screens */
@media (min-width:760px){
  footer .wrap.foot{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name contact" "note legal";column-gap:3rem;row-gap:.4rem;align-items:start}
  footer .foot .f-name{grid-area:name}
  footer .foot .f-contact{grid-area:contact;justify-content:flex-end;text-align:right}
  footer .foot .f-note{grid-area:note;max-width:52ch;margin:0}
  footer .foot .f-legal{grid-area:legal;justify-content:flex-end;align-self:end;margin:0}
}

/* Contrast theme B: slightly more defined borders */
.g,.t,.docard,.consult{border-color:#E2D3C6}
.gtags a{border-color:#E2D3C6}

/* Header: slightly larger name and title */
.brand img{height:38px}
.brand .b-name{font-size:1.15rem}
.brand .b-sub{font-size:.85rem}
@media (min-width:960px){.brand .b-name{font-size:1.25rem}.brand .b-sub{font-size:.9rem}}
/* Header Instagram icon */
.ig-top{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--rose-deep);margin-left:auto}
.ig-top svg{width:20px;height:20px;margin:0!important}
.ig-top:hover{border-color:var(--rose-mid)}
@media (min-width:960px){.ig-top{margin-left:0}}
/* Instagram line under the intro */
.ig-line{margin:1.2rem 0 0}
.ig-line a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;color:var(--rose-deep);text-decoration:none;font-size:.97rem}
.ig-line a svg{width:20px;height:20px;margin:0!important}
.ig-line a:hover span{text-decoration:underline}
/* Homepage reviews: score box */
#avis .reviews{margin-top:0}
.rv-score{display:flex;align-items:center;gap:1rem;background:var(--bg);border:1px solid #E2D3C6;border-radius:16px;padding:1rem 1.25rem;margin-bottom:1.1rem;max-width:420px}
.rs-num{margin:0;font-family:var(--display);color:var(--ink);line-height:1}
.rs-num b{font-weight:400;font-size:2.9rem}
.rs-num span{font-size:1.1rem;color:var(--muted);margin-left:.15rem}
.rs-side{display:flex;flex-direction:column;gap:.35rem}
.rs-stars{display:inline-flex;gap:3px;color:var(--ink)}
.rs-stars svg{width:18px;height:18px;fill:currentColor}
.rs-src{font-size:.88rem;color:var(--muted)}
.rv-head{display:none}

/* Before/after page */
.ba-note{font-size:.95rem;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem;max-width:62ch}
.ba-grid{display:grid;gap:1.4rem;margin-top:1.2rem}
.ba{margin:0;background:var(--bg);border:1px solid #E2D3C6;border-radius:16px;padding:.8rem}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.ba-ph,.ba-pair img{aspect-ratio:4/5;border-radius:10px;width:100%;height:auto;object-fit:cover;display:block}
.ba-ph{background:linear-gradient(160deg,var(--surface),color-mix(in srgb,var(--rose) 45%,var(--bg)));display:grid;place-items:end start}
.ba-ph span,.ba-pair .lbl{margin:.5rem;font-size:.78rem;letter-spacing:.04em;background:rgba(255,253,251,.85);color:var(--ink);padding:.15rem .55rem;border-radius:999px}
.ba figcaption{display:flex;flex-direction:column;gap:.15rem;padding:.8rem .3rem .2rem;font-size:.93rem;color:var(--muted)}
.ba figcaption strong{font-family:var(--display);font-weight:400;font-size:1.15rem;color:var(--ink)}
@media (min-width:760px){.ba-grid{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1100px){.ba-grid{grid-template-columns:repeat(3,1fr)}}
.rs-num span{font-family:var(--body)}
/* Phone: smaller homepage photo */
@media (max-width:959px){.hero-photo{width:min(62%,250px);margin:.4rem auto 1.8rem}.hero-photo::before{transform:translate(11px,11px)}}
/* Phone: slightly smaller text overall */
@media (max-width:600px){html{font-size:90%}}
/* Instagram line: framed */
.ig-line a{border:1px solid var(--rose-mid);border-radius:999px;padding:0 1.2rem;background:var(--surface);color:var(--rose-deep);font-weight:500}
.ig-line a:hover{background:var(--bg)}
.ig-line a:hover span{text-decoration:none}

/* ===== Harmonized type scale (phone ≤959px / laptop ≥960px) ===== */
:root{--fs1:30px;--fs2:24px;--fs3:19px;--fs4:16px;--fs-lead:16px;--fs-body:15px;--fs-small:13px;--fs-fine:12px;--fs-brand:17px;--fs-brand-sub:12px;--fs-score:42px}
@media (min-width:960px){:root{--fs1:48px;--fs2:34px;--fs3:22px;--fs4:18px;--fs-lead:18px;--fs-body:16px;--fs-small:14px;--fs-fine:13px;--fs-brand:20px;--fs-brand-sub:13px;--fs-score:46px}}
body{font-size:var(--fs-body)}
/* 1. Main title */
.hero h1,.t-hero h1,.doc-t h1,.docpage .doc-id h1{font-size:var(--fs1);line-height:1.12}
/* 2. Section title */
h2,.head h2,.tarifs tr.grp td{font-size:var(--fs2)}
/* 3. Card / sub-title */
.hero .role,.consult strong,.g h3,.docard h2,.docard .doc-id h2,.prose h2,.doc-t .who .who-role,.ba figcaption strong,.others h2{font-size:var(--fs3)}
/* 4. Small title */
.tarifs th,.info h3,.prose .steps h3,.steps h3,.tmenu a{font-size:var(--fs4)}
/* 5. Intro text */
.hero .lead,.t-hero .lead{font-size:var(--fs-lead)}
/* 6. Body text */
p,li,.prose p,.prose li,.head p,.g p,.docard p,.doc-t .bio,.consult .c-main span,.rv blockquote,.faq summary,.faq p,.gtags a,.btn,.ig-line a,.tarifs td,.pricebox td,.creds dd,.info p,.info table,.info td,.strip dd,.t p,.call-ico,.ba figcaption{font-size:var(--fs-body)}
/* 7. Small text */
.consult .c-eyebrow,.consult .more,.docard .more,.docard .who span,.rv figcaption,.rs-src,.rv-foot,.f-name,.f-contact a,.mainnav>a,.mainnav>button,.strip dt,.creds dt,.crumbs,.tmenu li.mh,.byline,.ba-note,.tag,.doc-t .who,.docard .doc-id .who span{font-size:var(--fs-small)}
/* 8. Fine print */
.f-note,.f-legal,.f-legal a,.note,.f-name span{font-size:var(--fs-fine)}
/* Exceptions: header brand + score accent */
.brand .b-name{font-size:var(--fs-brand)}
.brand .b-sub{font-size:var(--fs-brand-sub)}
.rs-num b{font-size:var(--fs-score)}
.rs-num span{font-size:var(--fs-small)}
section .docard p,main .docard p{font-size:var(--fs-body)}
.prose p.note,main p.note,.tarifs p.note{font-size:var(--fs-fine)}

/* Doctor page: location card (link to Google Maps, no embedded map = no tracking, no cookies) */
.loc-card{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--ink);border:1px solid #E2D3C6;border-radius:14px;padding:.6rem;background:var(--bg);max-width:360px}
.loc-card:hover{border-color:var(--rose-mid)}
.loc-map{position:relative;flex:none;width:84px;height:84px;border-radius:10px;overflow:hidden;
  background:
   linear-gradient(90deg,transparent 46%,#fff 46%,#fff 54%,transparent 54%),
   linear-gradient(0deg,transparent 30%,#fff 30%,#fff 36%,transparent 36%),
   linear-gradient(35deg,transparent 62%,#fff 62%,#fff 67%,transparent 67%),
   linear-gradient(160deg,#EFE6DC,#E6D8CA)}
.loc-pin{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:30px;height:30px;color:var(--rose-deep)}
.loc-pin svg{width:30px;height:30px;fill:var(--bg)}
.loc-txt{display:flex;flex-direction:column;gap:.1rem}
.loc-txt strong{font-weight:500;font-size:var(--fs-body)}
.loc-txt span{font-size:var(--fs-small);color:var(--muted)}
.loc-txt .loc-cta{color:var(--rose-deep);margin-top:.25rem}

/* Treatments menu: categories clearly marked */
.tmenu li.mh{background:var(--surface);color:var(--rose-deep);text-transform:uppercase;letter-spacing:.09em;font-weight:500;font-size:var(--fs-small);padding:.6rem 1.5rem;border-top:1px solid #E2D3C6;border-bottom:1px solid #E2D3C6;margin-top:.3rem}
.tmenu li.mh+li a{border-top:0}
.tmenu li.mh~li a{padding-left:2.2rem}
.tmenu li:first-child a{padding-left:1.5rem}
@media (min-width:960px){.tmenu li.mh{padding:.55rem 1.4rem}.tmenu li.mh~li a{padding-left:2rem}}

/* Microneedling: device photo */
.device-photo{margin:1.2rem 0 1.4rem}
.device-photo img{display:block;width:100%;height:auto;aspect-ratio:900/667;object-fit:cover;border-radius:14px;box-shadow:0 14px 34px -24px rgba(74,65,59,.5)}
.device-photo figcaption{margin-top:.55rem;font-size:var(--fs-small);color:var(--muted)}
/* Photos a tad smaller (homepage + doctor page) */
@media (max-width:959px){
  .hero-photo{width:min(54%,220px)}
  .arch-photo{width:min(66%,260px)}
}
@media (min-width:960px){
  .hero-photo{max-width:345px}
  .doc-hero{grid-template-columns:1fr 285px}
}

/* Doctor page photo: same design and size as the homepage photo */
.doc-photo{position:relative;margin:.6rem auto 1.4rem;width:min(54%,220px);isolation:isolate}
.doc-photo::before{content:"";position:absolute;z-index:-1;inset:0;transform:translate(11px,11px);border:1px solid var(--rose-mid);border-radius:16px;pointer-events:none}
.doc-photo>img{display:block;width:100%;height:auto;aspect-ratio:6/7;object-fit:cover;object-position:50% 50%;border-radius:14px;box-shadow:0 18px 40px -24px rgba(74,65,59,.45)}
@media (min-width:760px){
  .doc-hero{grid-template-columns:1fr 345px}
  .doc-photo{order:2;width:100%;max-width:345px;margin:0 18px 18px 0;justify-self:end}
  .doc-photo::before{transform:translate(18px,18px)}
}

/* Illustration photos on treatment pages */
.page-photo{margin:1.2rem 0 1.4rem}
.page-photo img{display:block;width:100%;height:auto;border-radius:14px;box-shadow:0 14px 34px -24px rgba(74,65,59,.5)}
.page-photo figcaption{margin-top:.55rem;font-size:var(--fs-small);color:var(--muted)}

/* Treatment page header with a soft photo behind the text */
.t-hero.has-bg{position:relative;isolation:isolate;padding-top:1rem}
.t-bg{position:absolute;z-index:-1;inset:-.5rem -1.25rem 0;overflow:hidden;border-radius:0 0 24px 24px}
.t-bg img{width:100%;height:100%;object-fit:cover;opacity:.32;filter:saturate(.85)}
.t-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,253,251,.55) 0%,rgba(255,253,251,.72) 55%,rgba(255,253,251,.95) 100%)}
.t-hero.has-bg .strip div{background:rgba(248,240,232,.88);backdrop-filter:blur(2px)}
@media (min-width:960px){
  .t-bg{inset:-1rem -2rem 0 auto;width:62%;border-radius:0 0 0 28px}
  .t-bg img{opacity:.55;-webkit-mask-image:linear-gradient(to left,#000 45%,transparent 100%);mask-image:linear-gradient(to left,#000 45%,transparent 100%)}
  .t-bg::after{background:linear-gradient(90deg,rgba(255,253,251,.9) 0%,rgba(255,253,251,.35) 55%,rgba(255,253,251,.15) 100%)}
}
@media (max-width:959px){
  .t-bg img{opacity:.55;object-position:right 30%}
  .t-bg::after{background:linear-gradient(180deg,rgba(255,253,251,.42) 0%,rgba(255,253,251,.62) 45%,rgba(255,253,251,.9) 85%,rgba(255,253,251,1) 100%)}
}
/* Header photo: start below the breadcrumb, a tad more visible */
.t-hero.has-bg{margin-top:.6rem}
.t-bg{top:0}
@media (max-width:959px){
  .t-bg{inset:0 -1.25rem 0}
  .t-bg img{opacity:.68}
  .t-bg::after{background:linear-gradient(180deg,rgba(255,253,251,.34) 0%,rgba(255,253,251,.52) 45%,rgba(255,253,251,.86) 85%,rgba(255,253,251,1) 100%)}
}
@media (min-width:960px){
  .t-bg{inset:0 -2rem 0 auto}
  .t-bg img{opacity:.72}
  .t-bg::after{background:linear-gradient(90deg,rgba(255,253,251,.88) 0%,rgba(255,253,251,.25) 55%,rgba(255,253,251,.05) 100%)}
}

/* Microneedling header: keep the dark device screen away from the text on phones */
.t-bg img.bg-mn{object-position:40% 45%}
@media (max-width:959px){.t-bg img.bg-mn{object-position:82% 35%}}

/* Skin quality pages: shared header photo */
.t-bg img.bg-qp{object-position:70% 35%}
@media (max-width:959px){.t-bg img.bg-qp{object-position:72% 30%}}
/* Treatments dropdown: scrolls on its own on every screen, without moving the page */
.tmenu{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
@media (min-width:960px){
  .tmenu{max-height:calc(100vh - 96px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--rose-mid) transparent}
  .tmenu::-webkit-scrollbar{width:8px}
  .tmenu::-webkit-scrollbar-thumb{background:var(--rose-mid);border-radius:8px}
}
/* Keep header photos inside the screen on every width (no sideways scroll) */
main{overflow-x:clip}
