:root{
  color-scheme:light;
  --sten:#EFEDE9; --sten-deep:#E7E1D8;
  --granskog:#241B14; --granskog-deep:#1A120C; --footer:#150F0A; --ft-line:#2E2318;
  --black:#1C1611; --ink:#2A211A; --ink-soft:#635749;
  --plasma:#AF8348; --plasma-text:#7C5A2C; --plasma-bright:#CFA36B; --gold-btn:#C6975A;
  --rose:#B5836F; --rose-text:#8B5F4E; --rose-bright:#DBB2A2;
  --hud:#EBD9C9; --hud-soft:#6A5346; --hud-line:rgba(59,45,32,.2);
  --line:#DBD4C9; --line-dark:#493E33;
  --d-ink:#F3EFE8; --d-soft:#D3C8BC; --d-mute:#A99E90; --card:#F4F1EB; --law-gold:#66491F;
  --display:'Gloock','Times New Roman',Georgia,serif;
  --body:'Schibsted Grotesk',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --max:1200px; --pad:clamp(20px,4vw,48px); --ease:cubic-bezier(.22,.9,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{font-family:var(--body);background:var(--sten);color:var(--ink);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--plasma);color:#fff}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;background:none;border:none;color:inherit;text-align:inherit}
:focus-visible{outline:2px solid var(--plasma-text);outline-offset:3px;border-radius:2px}
section[id]{scroll-margin-top:64px}
@media(min-width:561px){section[id]{scroll-margin-top:96px}}
h1,h2,h3{text-wrap:balance}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--granskog);color:var(--d-ink);padding:10px 18px;z-index:100;font-size:14px}
.skip-link:focus{left:12px;top:12px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--pad)}
.eyebrow{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--plasma-text);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:32px;height:1px;background:var(--plasma)}
.on-dark .eyebrow{color:var(--plasma-bright)}
.on-dark .eyebrow::before{background:var(--plasma-bright)}
.topbar{background:var(--granskog-deep);color:var(--d-soft);font-size:12.5px;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:9px}
.topbar b{color:var(--d-ink);font-weight:500}
.topbar .right{display:none}
@media(min-width:680px){.topbar .right{display:block}}
@media(max-width:560px){.topbar{display:none}}
.site-header{position:sticky;top:0;z-index:50;background:rgba(239,237,233,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s var(--ease),box-shadow .3s var(--ease)}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 1px 24px rgba(26,20,14,.07)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-block:4px;gap:14px}
@media(min-width:561px){.site-header .wrap{padding-block:12px}}
.brand{display:flex;align-items:center;gap:14px}
.brand{min-width:0;min-height:44px}
.brand-mark{height:38px;width:auto;flex-shrink:0}
@media(min-width:561px){.brand-mark{height:46px}}
.brand .word{font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;border-left:1px solid var(--line);padding-left:13px;line-height:1.55}
@media(min-width:641px) and (max-width:760px),(min-width:961px) and (max-width:1040px){.brand .word{font-size:9px;letter-spacing:.15em;padding-left:11px}}
@media(max-width:640px){.brand .word{font-size:10.5px;letter-spacing:.16em;padding-left:11px}}
.nav-links{display:flex;gap:clamp(16px,2.2vw,28px);align-items:center}
.nav-links a{font-size:13.5px;font-weight:500;color:var(--ink);position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
.nav-links a::after{content:"";position:absolute;left:0;bottom:7px;width:0;height:1px;background:var(--plasma);transition:width .25s var(--ease)}
.nav-links a:hover::after{width:100%}
@media(max-width:960px){.nav-links{display:none}}
/* 961-1040px: brand + 4 Swedish nav links + EN + booking button need more room than the row has, so the links wrapped. Tighter gap (and the compact brand text above). */
@media(min-width:961px) and (max-width:1040px){.nav-links{gap:14px}}
.hdr-actions{display:flex;gap:10px;align-items:center;flex-shrink:0}
/* Below ~640px there isn't room for brand + lang toggle + book button + burger
   without overlapping; both the language toggle and booking CTA already exist
   inside the mobile menu drawer, so drop the redundant copies here. */
@media(max-width:640px){.hdr-actions .lang-btn,.hdr-actions .btn-primary{display:none}}
.lang-btn{display:inline-flex;align-items:center;min-height:44px;font-size:12px;font-weight:600;letter-spacing:.12em;padding:0 14px;border:1px solid var(--line);border-radius:2px;color:var(--ink);transition:border-color .2s,color .2s}
.lang-btn:hover{border-color:var(--plasma);color:var(--plasma-text)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.02em;padding:14px 26px;border-radius:2px;border:1px solid transparent;white-space:nowrap;transition:background .22s var(--ease),color .22s var(--ease),border-color .22s var(--ease),transform .22s var(--ease)}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--black);color:var(--d-ink)}
.btn-primary:hover{background:var(--gold-btn);color:#1A1410}
.btn-gold{background:var(--gold-btn);color:#1A1410}
.btn-gold:hover{background:var(--d-ink);color:#1A1410}
.btn-sm{padding:10px 16px;font-size:13px;min-height:44px}
.text-link{font-size:14px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:8px;min-height:44px;text-decoration:underline;text-decoration-color:var(--plasma);text-decoration-thickness:1px;text-underline-offset:6px}
.text-link:hover{color:var(--plasma-text)}
.burger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:48px;height:48px;padding:0}
.burger span{width:22px;height:1.5px;background:var(--black);transition:transform .25s var(--ease),opacity .2s}
@media(max-width:960px){.burger{display:flex}}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:49;background:var(--sten);display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto;padding:var(--pad);padding-top:96px;transform:translateY(-100%);transition:transform .4s var(--ease)}
.mobile-menu > a:first-of-type{margin-top:auto}
.mobile-menu .mm-foot{margin-bottom:auto}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu > a{font-family:var(--display);font-size:clamp(28px,7.4vw,42px);color:var(--black);padding-block:10px;border-bottom:1px solid var(--line)}
.mobile-menu > a:last-of-type{border-bottom:none}
.mobile-menu .mm-foot{margin-top:26px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
/* hero: phone first. Top row: arch photo on the left, eyebrow and rating on the right.
   Then the headline, the text and one full-width button. --hero-w is the photo width
   (use 240px when a sharper photo is in place). */
.hero{position:relative;overflow:hidden}
.hero .wrap{padding-block:10px 28px}
.hero-grid{--hero-w:148px;display:grid;grid-template-columns:var(--hero-w) minmax(0,1fr);column-gap:16px;align-items:start}
.hero-copy{display:contents}
.hero-media{grid-column:1;grid-row:1/3;margin:0}
.hero-arch{width:var(--hero-w);aspect-ratio:640/796;border-radius:999px 999px 0 0;overflow:hidden;background:var(--sten-deep);box-shadow:0 22px 44px -28px rgba(28,22,17,.55),var(--arch-edge,0 0 0 0 transparent)}
.hero-arch img{width:100%;height:100%;object-fit:cover;object-position:center top}
.hero-cap{display:none;margin-top:16px;text-align:center;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-soft)}
.hero-copy .eyebrow{grid-column:2;grid-row:1;align-self:end;font-size:12px;letter-spacing:.12em;line-height:1.5}
.hero-copy .eyebrow::before{display:none}
.hero-copy h1{grid-column:1/-1;grid-row:3;font-family:var(--display);font-weight:400;font-size:clamp(30px,8.9vw,34px);line-height:1.04;letter-spacing:-.01em;color:var(--black);margin-top:14px}
.hero-copy h1 em{font-style:italic;color:var(--plasma-text)}
.hero .lede{grid-column:1/-1;grid-row:4;margin-top:6px;font-size:16px;line-height:1.5;color:var(--ink-soft)}
.lede-more{display:none}
.hero .cta-row{grid-column:1/-1;grid-row:5;display:grid;gap:10px;margin-top:12px}
.hero .cta-row .btn{min-height:52px}
/* phones: "Se behandlingar och priser" is a 48px outline button under the booking button; from 561px it is a text link again */
@media(max-width:560px){.hero .cta-row .text-link{justify-content:center;min-height:48px;padding:0 22px;border:1px solid var(--black);border-radius:2px;text-decoration:none;letter-spacing:.02em}}
@media(max-width:560px) and (hover:hover){.hero .cta-row .text-link:hover{background:var(--black);color:var(--d-ink)}}
.hero-micro{grid-column:1/-1;grid-row:6;margin-top:10px;text-align:center;font-size:13px;letter-spacing:.02em;color:var(--ink-soft);text-wrap:balance}
.hero-rating{grid-column:2;grid-row:2;align-self:start;display:flex;flex-direction:column;justify-content:center;min-height:44px;margin-top:2px;font-size:14px;line-height:1.35}
.hr-stars{color:var(--plasma-text);letter-spacing:2px;font-size:16px;line-height:1.3}
.hr-text{color:var(--ink-soft)}
.hr-nb{white-space:nowrap}
.hr-score{font-weight:600;color:var(--black)}
.hero-rating:hover .hr-text{color:var(--plasma-text)}
@media(min-width:561px){
  .hero .wrap{padding-block:clamp(28px,5vw,72px) clamp(48px,7vw,96px)}
  .hero-grid{--hero-w:min(72vw,300px);grid-template-columns:minmax(0,1fr);row-gap:clamp(28px,5vw,72px);align-items:center}
  .hero-copy{display:block}
  .hero-media{grid-column:auto;grid-row:auto}
  .hero-arch{margin-inline:auto;box-shadow:0 34px 70px -40px rgba(28,22,17,.55),var(--arch-edge,0 0 0 0 transparent)}
  .hero-cap{display:block}
  .hero-copy .eyebrow{font-size:11.5px;letter-spacing:.18em;line-height:inherit}
  .hero-copy .eyebrow::before{display:block}
  .hero-copy h1{font-size:clamp(38px,5vw,64px);max-width:14ch;margin-top:20px}
  .hero .lede{margin-top:20px;max-width:46ch;font-size:clamp(16.5px,1.5vw,18.5px);line-height:1.65}
  .lede-more{display:inline}
  .hero .cta-row{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:30px}
  .hero-micro{margin-top:14px;text-align:left}
  .hero-rating{flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:0 11px;margin-top:12px}
}
@media(min-width:900px){
  .hero-grid{grid-template-columns:1.1fr .9fr}
  .hero-media{order:2}
  .hero-arch{width:100%;max-width:440px}
}
/* trust: licence photo on the left, three facts on the right (phone first) */
.trust{background:var(--granskog);color:var(--d-ink)}
.trust .wrap{display:grid;grid-template-columns:112px minmax(0,1fr);gap:16px;align-items:center;padding-block:20px}
.trust-photo{display:block}
.trust-photo img{width:112px;height:112px;object-fit:cover;object-position:50% 16%;border-radius:4px}
.trust-grid{list-style:none;display:grid}
.trust-grid li{padding:10px 0;border-top:1px solid var(--line-dark);font-size:16px;line-height:1.3;color:var(--d-soft)}
.trust-grid li:first-child{border-top:0;padding-top:0}
.trust-grid li:last-child{padding-bottom:0}
.trust-grid b{display:inline-block;font-family:var(--display);font-weight:400;font-size:20px;line-height:1.2;color:var(--d-ink);hyphens:manual}
@media(max-width:359px){.trust .wrap{grid-template-columns:88px minmax(0,1fr);gap:12px}.trust-photo img{width:88px;height:88px}.trust-grid li{font-size:15px}.trust-grid b{font-size:18px}}
@media(min-width:900px){
  .trust .wrap{grid-template-columns:160px minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1fr);gap:0 clamp(20px,3vw,40px);align-items:stretch;padding-block:clamp(32px,4.5vw,56px)}
  .trust-photo img{width:160px;height:160px}
  .trust-grid{display:contents}
  .trust-grid li,.trust-grid li:first-child,.trust-grid li:last-child{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:0 0 0 16px;border-top:0;border-left:1px solid var(--line-dark);font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--d-mute);line-height:1.3}
  .trust-grid b{font-size:clamp(24px,2.8vw,34px);line-height:1.1;letter-spacing:0;text-transform:none}
}
/* about and reviews: one section. Phones: photo flush at the top, short text, then the reviews. */
.about{background:var(--sten-deep)}
@media(max-width:640px){.section.about{padding-block:0 16px}}
.about-grid{display:grid;gap:14px}
@media(min-width:641px){.about-grid{gap:26px}}
.about-media{margin-inline:calc(var(--pad) * -1)}
.am-main img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:62% 40%}
@media(min-width:900px){.about-grid{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(40px,5vw,88px)}.about-media{margin-inline:0}.am-main img{aspect-ratio:3/2;border-radius:4px}}
.about-copy h2{font-family:var(--display);font-weight:400;font-size:clamp(28px,3.8vw,48px);line-height:1.1;color:var(--black);margin:0 0 2px}
@media(min-width:641px){.about-copy h2{margin:0 0 10px;max-width:16ch}}
.about-copy > p:not(.sig){color:var(--ink-soft);font-size:15.5px;line-height:1.5;max-width:52ch;margin-top:8px}
@media(min-width:641px){.about-copy > p:not(.sig){font-size:16.5px;line-height:1.6;margin-top:14px}}
.sig{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);display:grid;gap:0}
@media(min-width:641px){.sig{margin-top:28px;padding-top:20px}}
.sig b{font-size:16.5px;font-weight:600;color:var(--black)}
.sig span{font-size:13.5px;line-height:1.4;color:var(--ink-soft)}
/* section */
.section{padding-block:44px}
.section-head{max-width:660px;margin-bottom:26px}
@media(min-width:641px){.section{padding-block:clamp(64px,8.5vw,128px)}.section-head{margin-bottom:clamp(34px,5vw,64px)}}
.section-head h2{font-family:var(--display);font-weight:400;font-size:clamp(31px,4.4vw,56px);line-height:1.08;color:var(--black);margin-top:16px}
.section-head p{margin-top:18px;color:var(--ink-soft);font-size:16.5px;max-width:52ch}
.on-dark .section-head h2{color:var(--d-ink)}
.on-dark .section-head p{color:var(--d-soft)}
/* chart */
@media(max-width:640px){#behandlingar{padding-top:36px}#behandlingar .section-head{margin-bottom:8px}}
.chart-grid{display:grid;gap:clamp(30px,5vw,84px)}
@media(min-width:940px){.chart-grid{grid-template-columns:minmax(300px,420px) 1fr;align-items:start}}
.chart-stick{position:sticky;top:112px}
@media(max-width:939.98px){.chart-stick{display:none}}
.chart{width:100%;position:relative}
.chart .face-img{width:100%;height:auto;display:block}
.chart svg{position:absolute;inset:0;width:100%;height:100%}
.js .chart.drawable .face-img{opacity:0;transition:opacity 1.4s var(--ease)}
.js .chart.drawable.drawn .face-img{opacity:1}
.zone .ring{fill:none;stroke:var(--plasma);stroke-width:3.8;opacity:0;transition:all .3s var(--ease);transform-origin:center;transform-box:fill-box}
.zone .dot{fill:var(--plasma);opacity:.34;transition:all .3s var(--ease)}
.zone .hit{fill:transparent}
.zone text{font-family:var(--body);font-size:30px;letter-spacing:.13em;text-transform:uppercase;fill:var(--plasma-text);opacity:0;transition:opacity .3s var(--ease);font-weight:600;stroke:var(--sten);stroke-width:10;paint-order:stroke}
.zone.lit .ring,.chart.lit-all .zone .ring{stroke-dasharray:none;opacity:1;transform:scale(1.22)}
.zone.lit .dot,.chart.lit-all .zone .dot{opacity:1;transform:scale(1.5);transform-origin:center;transform-box:fill-box}
.zone.lit text{opacity:1}
.chart-note{margin-top:18px;text-align:center;font-size:12px;letter-spacing:.1em;color:var(--ink-soft);text-transform:uppercase;font-weight:500}
.tx-cat{font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;color:var(--plasma-text);padding:20px 4px 6px}
@media(min-width:641px){.tx-cat{font-size:11px;padding:26px 12px 10px}}
.tx-list{border-top:1px solid var(--line)}
/* every row is one link to the treatment page: name, price, arrow (about 56px tall on phones). The description shows from 940px. */
.tx-row{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;column-gap:12px;align-items:center;min-height:56px;padding:8px 4px;border-bottom:1px solid var(--line);transition:background .25s var(--ease)}
@media(min-width:641px){.tx-row{column-gap:16px;padding:12px}}
.tx-name{font-family:var(--display);font-weight:400;font-size:19px;line-height:1.2;color:var(--black)}
@media(min-width:641px){.tx-name{font-size:clamp(20px,2.2vw,25px)}}
.tx-price{font-size:14px;font-weight:600;letter-spacing:.04em;color:var(--plasma-text);white-space:nowrap;font-variant-numeric:tabular-nums}
.tx-go{text-align:right;color:var(--plasma-text);font-size:16px;transition:transform .2s var(--ease)}
.tx-desc{display:none}
@media(max-width:359px){.tx-row{column-gap:8px}.tx-name{font-size:17px}}
@media(hover:hover){.tx-row:hover{background:var(--sten-deep)}.tx-row:hover .tx-go{transform:translateX(3px)}}
.tx-row:focus-visible{outline-offset:-3px;background:var(--sten-deep)}
@media(min-width:940px){
  .tx-row{row-gap:4px;padding:18px 12px}
  .tx-desc{display:block;grid-column:1/3;grid-row:2;color:var(--ink-soft);font-size:15px;line-height:1.55;max-width:46ch}
}
.more-tx{margin-top:clamp(36px,7vw,88px)}
.more-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid var(--black);margin-bottom:4px}
.more-head h3{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,32px);color:var(--black)}
.more-head span{font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--ink-soft)}
.more-grid{display:grid}
@media(min-width:860px){.more-grid{grid-template-columns:1fr 1fr;column-gap:clamp(36px,5vw,72px)}}
/* process: on phones the wide photo sits between the heading and the steps; the portrait arch shows from 900px */
.process{background:var(--hud)}
.process .section-head p{color:var(--hud-soft)}
.process-grid{display:grid}
.process-wide{margin:0 0 22px}
.process-wide img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.process-photo{display:none;margin:0}
.process-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 30%;border-radius:999px 999px 4px 4px}
@media(min-width:600px){
  .process-grid{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-areas:"head wide" "steps steps";column-gap:clamp(28px,5vw,48px);row-gap:clamp(20px,3vw,32px);align-items:center}
  .process-grid > .section-head{grid-area:head;margin-bottom:0}
  .process-wide{grid-area:wide;margin:0}
  .steps{grid-area:steps}
}
@media(min-width:900px){
  .process-grid{grid-template-columns:1.25fr .75fr;grid-template-areas:"head wide" "steps photo";column-gap:clamp(36px,5vw,80px);row-gap:clamp(24px,3vw,40px);align-items:start}
  .process-grid > .section-head{align-self:center}
  .process-photo{grid-area:photo;display:block}
}
.steps{max-width:860px;border-top:1px solid var(--hud-line)}
.step{display:grid;grid-template-columns:96px 1fr;gap:clamp(20px,3vw,40px);padding-block:clamp(26px,3.4vw,40px);border-bottom:1px solid var(--hud-line)}
@media(max-width:560px){.step{grid-template-columns:56px 1fr;gap:18px}}
.step-no{font-family:var(--display);font-size:clamp(36px,5vw,60px);line-height:1;color:var(--plasma-text);font-variant-numeric:tabular-nums}
.step h3{font-family:var(--display);font-weight:400;font-size:clamp(22px,2.6vw,28px);color:var(--black)}
.step p{margin-top:9px;color:var(--hud-soft);max-width:54ch;font-size:15.5px}
.step .law-tag{display:inline-flex;align-items:center;gap:10px;margin-top:14px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--law-gold)}
.step .law-tag::before{content:"";width:22px;height:1px;background:var(--law-gold)}
/* packages + cta strip */
.packages{margin-top:clamp(48px,6vw,80px)}
.pk-grid{display:grid}
@media(min-width:860px){.pk-grid{grid-template-columns:1fr 1fr;column-gap:clamp(36px,5vw,72px)}}
.pk{display:grid;grid-template-columns:1fr auto;gap:2px 20px;align-items:baseline;padding:16px 4px;border-bottom:1px solid var(--line)}
.pk b{font-weight:600;font-size:15.5px;color:var(--black)}
.pk p{grid-column:1;font-size:13.5px;color:var(--ink-soft)}
.pk .mr-price{grid-row:1;grid-column:2}
.price-note{margin-top:22px;font-size:14px;color:var(--ink-soft);max-width:70ch;line-height:1.7}
.cta-strip{margin-top:clamp(44px,6vw,72px);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 28px;padding:clamp(22px,3vw,32px);background:var(--card);border:1px solid var(--line);border-radius:4px}
.cta-strip p{font-family:var(--display);font-size:clamp(20px,2.2vw,26px);line-height:1.25;color:var(--black);max-width:30ch}
.anchor{display:block;height:0;visibility:hidden;scroll-margin-top:72px}
@media(min-width:561px){.anchor{scroll-margin-top:88px}}
/* reviews: second part of the Jelena section */
.reviews-part{margin-top:26px}
@media(min-width:641px){.reviews-part{margin-top:clamp(56px,7vw,96px)}}
.rev-top{display:grid;justify-items:start;gap:6px;margin-bottom:12px}
.rev-top h3{font-family:var(--display);font-weight:400;font-size:21px;line-height:1.2;color:var(--black)}
@media(min-width:641px){.rev-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px 24px;margin-bottom:26px}.rev-top h3{font-size:clamp(26px,3vw,32px)}}
.google-rating{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:6px 14px;background:var(--card);border:1px solid var(--line);border-radius:8px;font-size:14px;line-height:1.3;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
@media(hover:hover){.google-rating:hover{transform:translateY(-2px);box-shadow:0 18px 40px -26px rgba(28,22,17,.4)}}
.gr-stars{color:var(--plasma-text);letter-spacing:2px;font-size:14px}
.gr-text{color:var(--ink-soft)}
.gr-nb{white-space:nowrap}
.gr-score{font-weight:600;color:var(--black)}
/* reviews carousel: native scroll-snap so swipe works without JS; arrows/counter are JS-enhanced.
   Phones: the track runs to the screen edges and the cards are 88% wide, so the next card peeks. */
.rev-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rev-track::-webkit-scrollbar{display:none}
.rev-track:focus-visible{outline-offset:-2px}
@media(max-width:639.98px){.rev-track{margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);scroll-padding-inline:var(--pad)}}
.rev-track > .quote-card{flex:0 0 88%;scroll-snap-align:start}
/* the hover lift/shadow would clip inside the scroll container, so highlight the border instead */
@media(hover:hover){.rev-track > .quote-card:hover{transform:none;box-shadow:none;border-color:var(--plasma)}}
@media(min-width:640px){.rev-track > .quote-card{flex-basis:calc((100% - 16px)/2)}}
@media(min-width:980px){.rev-track > .quote-card{flex-basis:calc((100% - 32px)/3)}}
.rev-nav{display:none;align-items:center;justify-content:center;gap:22px;margin-top:10px}
.js .rev-nav{display:flex}
.rc-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--hud-line);color:var(--black);display:inline-flex;align-items:center;justify-content:center;font-size:17px;transition:border-color .25s var(--ease),color .25s var(--ease),opacity .25s var(--ease)}
.rc-btn:hover{border-color:var(--plasma);color:var(--plasma-text)}
.rc-btn[aria-disabled="true"]{opacity:.3;cursor:default}
.rc-count{font-size:13px;font-weight:600;letter-spacing:.08em;color:var(--hud-soft);font-variant-numeric:tabular-nums;min-width:56px;text-align:center}
.rc-count b{color:var(--black);font-weight:600}
.quote-card{background:var(--card);border:1px solid var(--line);padding:16px 18px 14px;border-radius:4px;display:flex;flex-direction:column;gap:8px;transition:border-color .3s var(--ease)}
@media(min-width:641px){.quote-card{padding:24px 24px 20px;gap:12px}}
.quote-card p{font-size:15px;line-height:1.55;color:var(--ink)}
.quote-card p::before{content:"\201C";font-family:var(--display);font-size:30px;line-height:0;vertical-align:-.3em;margin-right:3px;color:var(--plasma)}
.quote-card .who{margin-top:auto;padding-top:4px;font-size:13.5px;font-weight:600;color:var(--black)}
.rev-foot{margin-top:2px;display:flex;gap:0 16px;flex-wrap:wrap;align-items:center}
@media(max-width:640px){.rev-foot .text-link{font-size:13px}}
@media(min-width:641px){.rev-foot{gap:0 22px;margin-top:clamp(20px,3vw,32px)}}
/* faq */
.faq-list{max-width:800px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 6px;cursor:pointer;font-weight:600;font-size:16.5px;color:var(--black);transition:color .2s}
.faq-list summary:hover{color:var(--plasma-text)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:var(--display);font-size:26px;color:var(--plasma-text);transition:transform .3s var(--ease);flex-shrink:0;line-height:1}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list .faq-body{padding:0 6px 26px;color:var(--ink-soft);font-size:15.5px;max-width:62ch;line-height:1.7}
/* clinic: phone first. Entrance photo, then address and hours, then a strip of three photos */
.find{display:grid;gap:22px}
.find-photo{margin:0}
.find-photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%;border-radius:4px}
.find-h{font-family:var(--display);font-weight:400;font-size:clamp(26px,3vw,32px);line-height:1.15;color:var(--black);margin-bottom:16px}
.clinic-dl{display:grid;gap:20px;max-width:420px}
.clinic-dl dt{font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;font-weight:600;color:var(--plasma-text);margin-bottom:6px}
.clinic-dl dd{font-size:15.5px;line-height:1.6;color:var(--ink)}
.map-btn{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:14px;padding:0 22px;border:1px solid var(--black);border-radius:2px;font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--black);transition:background .22s var(--ease),color .22s var(--ease)}
.map-btn:hover{background:var(--black);color:var(--d-ink)}
.hours{display:grid;grid-template-columns:auto auto;justify-content:start;gap:5px 32px;font-size:15px;font-variant-numeric:tabular-nums}
.hours span:nth-child(odd){color:var(--ink-soft)}
.clinic-photos{display:grid;grid-auto-flow:column;grid-auto-columns:60%;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:30px calc(var(--pad) * -1) 0;padding-inline:var(--pad);scroll-padding-inline:var(--pad)}
.clinic-photos::-webkit-scrollbar{display:none}
.clinic-photos picture{scroll-snap-align:start}
.clinic-photos img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:4px}
@media(min-width:600px){.clinic-photos{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;overflow:visible;scroll-snap-type:none;margin-inline:0;padding-inline:0}}
@media(min-width:600px){.find{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,48px);align-items:center}.map-btn{width:fit-content}}
@media(min-width:900px){.find{grid-template-columns:minmax(0,400px) minmax(0,1fr);gap:clamp(40px,6vw,96px)}.map-btn{width:fit-content}.clinic-photos{margin-top:clamp(40px,5vw,64px)}.clinic-photos img{aspect-ratio:4/3}}
/* booking */
.booking{background:var(--granskog);color:var(--d-ink)}
.booking .section-head{margin-bottom:clamp(24px,3vw,36px)}
.booking .section-head h2{color:var(--d-ink)}
.booking .section-head p{color:var(--d-soft);font-size:17px}
/* Cal.com copies the color-scheme of <body> into the calendar. "light dark" gives the same
   result on the page, but Cal.com ignores it, so the calendar stays light in dark mode.
   Without this, dark mode shows a black box inside the white calendar card. */
body{color-scheme:light dark}
cal-modal-box{color-scheme:light}
.book-choose .btn{width:100%;min-height:52px;font-size:15px}
.cal-inline{display:none;color-scheme:light;background:#fff;border-radius:12px;min-height:640px;overflow:hidden;position:relative}
@media(min-width:900px){.book-choose{display:none}.cal-inline{display:block}}
.cal-inline iframe{border-radius:12px}
.cal-inline.cal-failed{min-height:0}
.cal-inline.cal-failed cal-inline{display:none!important}
.cal-fallback{padding:48px 28px;text-align:center;color:#2A211A;font-size:16px}
.cal-fallback a{font-weight:600;border-bottom:1px solid #7C5A2C}
.book-alt{margin-top:24px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14.5px;color:var(--d-soft)}
.book-alt a{display:inline-flex;align-items:center;min-height:44px;color:var(--d-ink);text-decoration:underline;text-decoration-color:var(--plasma-bright);text-decoration-thickness:1px;text-underline-offset:6px;font-weight:600}
.book-alt a:hover{color:var(--plasma-bright)}
/* footer */
.site-footer{background:var(--footer);color:var(--d-soft);font-size:14px}
.site-footer .top{display:grid;gap:36px;padding-block:clamp(48px,6vw,76px) 44px;border-bottom:1px solid var(--ft-line)}
@media(min-width:860px){.site-footer .top{grid-template-columns:1.4fr 1fr 1fr 1fr}}
.site-footer .mono{font-family:var(--display);font-size:30px;color:var(--d-ink);letter-spacing:.04em}
.site-footer .tag{margin-top:14px;max-width:30ch;line-height:1.65;color:var(--d-soft)}
.site-footer h4{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--d-ink);margin-bottom:17px}
.site-footer ul{list-style:none;display:grid;gap:0}
.site-footer li a{display:flex;align-items:center;min-height:44px}
.site-footer ul a:hover,.site-footer ul button:hover{color:var(--plasma-bright)}
.site-footer ul button{padding:0;font-size:inherit;color:inherit}
.legal{padding-block:30px;display:grid;gap:14px;line-height:1.75;font-size:13px;color:var(--d-mute)}
.legal p b{color:var(--d-ink);font-weight:500}
.legal .row{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:8px}
.legal-links{display:flex;gap:20px}
.legal-links button{padding:0;font-size:inherit;color:inherit}
.legal-links a,.legal-links button{display:inline-flex;align-items:center;min-height:44px}
.legal a:hover,.legal-links button:hover{color:var(--plasma-bright)}
.site-footer ul li{line-height:1.6}
/* mobile sticky cta */
.cta-bar{display:none}
@media(max-width:720px){
  .cta-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:48;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(239,237,233,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);transition:transform .3s var(--ease)}
  .cta-bar a{display:block;text-align:center;padding:14px 10px;font-size:15px;font-weight:600;background:var(--black);color:var(--d-ink);border-radius:2px}
  .cta-bar.hide{transform:translateY(110%);visibility:hidden;transition:transform .3s var(--ease),visibility 0s linear .3s}
  body{padding-bottom:76px}
}
/* reveal */
.js .rv{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .rv{opacity:1;transform:none}}
/* dark theme (warm) */
@media (prefers-color-scheme: dark){
  :root{
    color-scheme:dark;
    --sten:#151009; --sten-deep:#20180F;
    --granskog:#2A2016; --granskog-deep:#0E0A06; --footer:#0C0805; --ft-line:#2A2016;
    --black:#F5F0E8; --ink:#E9E3DA; --ink-soft:#B6A996;
    --plasma-text:#D8AE77; --rose-text:#DBB2A2;
    --hud:#2A1D14; --hud-soft:#CDBDAC; --hud-line:rgba(243,239,232,.15); --law-gold:#D8AE77;
    --line:#352A1E; --line-dark:#4C4033; --card:#1E1710;
    --d-soft:#D3C8BC; --d-mute:#A99E90;
    --arch-edge:inset 0 0 0 1px rgba(219,178,162,.28);
  }
  .site-header{background:rgba(21,16,9,.9)}
  .site-header.scrolled{box-shadow:0 1px 24px rgba(0,0,0,.5)}
  .btn-primary{background:var(--gold-btn);color:#1A1410}
  .btn-primary:hover{background:#F5F0E8;color:#1A1410}
  .burger span{background:var(--black)}
  .face-img{filter:invert(1) sepia(.35)}
  .quote-card{border-color:rgba(243,239,232,.12)}
  ::selection{background:var(--gold-btn);color:#1A1410}
  .cta-bar{background:rgba(21,16,9,.94)}
  .cta-bar a{background:var(--gold-btn);color:#1A1410}
  .map-btn:hover{background:var(--gold-btn);color:#1A1410}
}
@media (prefers-color-scheme: dark) and (max-width:560px) and (hover:hover){.hero .cta-row .text-link:hover{background:var(--gold-btn);color:#1A1410}}
a[href^="tel:"]{white-space:nowrap}
/* phone type sizes (up to 640px) */
@media(max-width:640px){
  .eyebrow,.hero-copy .eyebrow,.tx-cat,.step .law-tag,.clinic-dl dt,.site-footer h4{font-size:12.5px}
}
/* 404 */
.notfound{min-height:70vh;display:flex;align-items:center}
.notfound .wrap{max-width:640px;text-align:center;padding-block:clamp(48px,8vw,96px)}
.notfound .code{font-family:var(--display);font-size:clamp(64px,14vw,140px);line-height:1;color:var(--plasma-text)}
.notfound h1{font-family:var(--display);font-weight:400;font-size:clamp(26px,4vw,38px);color:var(--black);margin-top:8px}
.notfound p{margin-top:16px;color:var(--ink-soft);font-size:16.5px;line-height:1.65}
.notfound .actions{margin-top:32px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
