/* Tao Helhetsterapi, demo. Fonter selvhostet fra ~/.claude/assets/fonts. */
@font-face{font-family:'Gambetta';src:url('../assets/fonts/gambetta-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Gambetta';src:url('../assets/fonts/gambetta-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'Switzer';src:url('../assets/fonts/switzer-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Boska';src:url('../assets/fonts/boska-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Boska';src:url('../assets/fonts/boska-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'Satoshi';src:url('../assets/fonts/satoshi-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('../assets/fonts/fraunces-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('../assets/fonts/fraunces-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'General Sans';src:url('../assets/fonts/general-sans-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}

/* <design_system> forrang over alt generelt:
   display Gambetta 300, lh 1.0, tracking -2.5 % (wthn.com: Saol 81px/1.0/-2.5 % @1440)
   brødtekst 18px, spalte maks 600px (wthn: 18px, 608px = 42 %)
   aksent dekker hele bånd (wthn: terrakotta 11 % areal, rcm.clinic: oliven 32 %)
   pilleknapper (wthn 9999px), trekkspill på mørk flate (rcm.clinic «What We Treat»)
   aksent: aubergine fra kundens eget gavekort */
:root{
  --c-papir:#F4EEE6; --c-flate:#EAE0D6; --c-blekk:#2B2230; --c-dempet:#5E5262; --c-linje:#D6CABF;
  --c-aksent:#4B2D55; --c-aksent-lys:#E6DAE4; --c-paa-aksent:#F4EEE6; --c-fokus:#4B2D55;
  --f-display:'Gambetta',Georgia,serif; --f-tekst:'Switzer',system-ui,sans-serif;
  --w-display:300; --spor-display:-.025em; --lh-display:1;
  --t-hero:clamp(2.75rem,5.6vw,5rem); --t-hero-stor:clamp(3.5rem,10.5vw,10rem);
  --t-h2:clamp(2.25rem,4vw,3.5rem); --t-ingress:1.125rem; --t-liten:.9375rem;
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2rem; --s-5:3rem; --s-6:4.5rem; --s-7:7.5rem;
  --ramme:76rem; --tekstspalte:37.5rem; --radius:1rem; --pille:9999px;
  --z-dekor:1; --z-sticky:100; --z-dokk:200; --z-overlay:300; --z-panel:400; --z-varsel:500;
  --ease-ut:cubic-bezier(.22,1,.36,1);
}
html[data-palette="2"]{--c-papir:#F2F0E8;--c-flate:#E3E5D8;--c-blekk:#22271C;--c-dempet:#555C4C;--c-linje:#CDD1C1;--c-aksent:#3F4E30;--c-aksent-lys:#DCE3D0;--c-paa-aksent:#F2F0E8;--c-fokus:#3F4E30}
html[data-palette="3"]{--c-papir:#F6EEE5;--c-flate:#EEDFD2;--c-blekk:#2E2420;--c-dempet:#64554D;--c-linje:#DCC9BA;--c-aksent:#8A452F;--c-aksent-lys:#F1DED0;--c-paa-aksent:#FBF5EF;--c-fokus:#8A452F}
html[data-font="2"]{--f-display:'Boska',Georgia,serif;--f-tekst:'Satoshi',system-ui,sans-serif;--spor-display:-.02em}
html[data-font="3"]{--f-display:'Fraunces',Georgia,serif;--f-tekst:'General Sans',system-ui,sans-serif;--spor-display:-.03em;--lh-display:1.04}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;background:var(--c-papir);color:var(--c-blekk);font:400 1.0625rem/1.55 var(--f-tekst);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:2px solid var(--c-fokus);outline-offset:3px;border-radius:2px}
.hopp{position:absolute;left:var(--s-2);top:-4rem;z-index:var(--z-varsel);background:var(--c-blekk);color:var(--c-papir);padding:var(--s-1) var(--s-2)}
.hopp:focus{top:var(--s-2)}
.ramme{max-width:var(--ramme);margin-inline:auto;padding-inline:clamp(1rem,4vw,3rem)}
.h2{font:var(--w-display) var(--t-h2)/1.04 var(--f-display);letter-spacing:var(--spor-display);margin:0 0 var(--s-3)}
.ingress{font-size:var(--t-ingress);max-width:var(--tekstspalte);margin:0 0 var(--s-4);color:var(--c-dempet)}
em{font-style:italic}

/* Knapper */
.knapp{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.75rem 1.6rem;border-radius:var(--pille);background:var(--c-aksent);color:var(--c-paa-aksent);text-decoration:none;font-weight:500;font-size:1rem;border:1px solid var(--c-aksent);transition:transform .2s var(--ease-ut),background-color .2s var(--ease-ut)}
.knapp:active{transform:scale(.97)}
.knapp--strek{background:transparent;color:var(--c-blekk);border-color:currentColor}
.knapp--liten{min-height:44px;padding:.5rem 1.2rem;font-size:.9375rem}
.pil-lenke{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-weight:500;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
.pil-lenke::after{content:'→';transition:transform .2s var(--ease-ut)}

/* Topp */
.topp{position:sticky;top:0;z-index:var(--z-sticky);background:color-mix(in srgb,var(--c-papir) 92%,transparent);backdrop-filter:blur(8px);border-bottom:1px solid var(--c-linje)}
.topp__indre{max-width:var(--ramme);margin-inline:auto;padding:.6rem clamp(1rem,4vw,3rem);display:flex;align-items:center;gap:var(--s-4)}
.topp__logo img{width:auto;height:34px}
.topp__nav{display:flex;gap:var(--s-4);margin-left:auto;font-size:var(--t-liten)}
.topp__nav a{text-decoration:none;padding:.6rem 0}

/* Hero, felles */
.hero{position:relative}
.hero[hidden]{display:none}
.hero__tittel{font:var(--w-display) var(--t-hero)/var(--lh-display) var(--f-display);letter-spacing:var(--spor-display);margin:0 0 var(--s-3)}
.maske .linje{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.maske .linje>span{display:block}
.hero__ingress{font-size:1.1875rem;max-width:32rem;margin:0 0 var(--s-4)}
.hero__knapper{display:flex;flex-wrap:wrap;gap:var(--s-2)}

/* 🖼️1 foto */
/* Kildebildet er 1500×630: høyden følger bildets format så det ikke skaleres opp og beskjæres hardt */
.hero--foto{min-height:clamp(32rem,44vw,40rem);display:flex;align-items:flex-end;color:#F7F2EC;overflow:hidden}
.hero__bilde,.hero__slor{position:absolute;inset:0}
.hero__bilde img{width:100%;height:100%;object-fit:cover;object-position:50% 45%}
.hero__slor{background:linear-gradient(90deg,rgba(24,18,27,.82) 0%,rgba(24,18,27,.6) 38%,rgba(24,18,27,0) 70%),linear-gradient(0deg,rgba(24,18,27,.55),rgba(24,18,27,0) 45%)}
.hero--foto .hero__innhold{position:relative;z-index:var(--z-dekor);width:100%;max-width:var(--ramme);margin-inline:auto;padding:var(--s-5) clamp(1rem,4vw,3rem) var(--s-5)}
.hero--foto .knapp{background:#F7F2EC;color:#22191F;border-color:#F7F2EC}
.hero--foto .knapp--strek{background:transparent;color:#F7F2EC;border-color:#F7F2EC}

/* 🖼️2 typografi */
.hero--typo{border-bottom:1px solid var(--c-linje)}
.hero--typo .hero__innhold{max-width:var(--ramme);margin-inline:auto;padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem) var(--s-5)}
.hero__tittel--stor{font-size:var(--t-hero-stor);line-height:.96;margin-bottom:var(--s-5)}
.hero__tittel--stor em{color:var(--c-aksent)}
.hero2__fot{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5);align-items:end;border-top:1px solid var(--c-linje);padding-top:var(--s-4)}
.hero2__fag{font:var(--w-display) 1.5rem/1.3 var(--f-display);margin:0;max-width:28rem}
.hero--typo .hero__ingress{color:var(--c-dempet)}
.hero2__fot .hero__knapper{grid-column:2}

/* Behandlinger */
.behandlinger{padding:var(--s-7) 0 var(--s-6)}
.behandlinger__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.behandlinger__bilder{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);margin-top:var(--s-4)}
.bilde-ramme{margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:var(--radius)}
.bilde-ramme img{width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.bilde-ramme--forskjovet{margin-top:var(--s-6)}
.beh-liste{list-style:none;margin:0;padding:0;border-top:1px solid var(--c-linje)}
.beh{border-bottom:1px solid var(--c-linje)}
.beh__lenke{display:grid;grid-template-columns:2.5rem 1fr auto;column-gap:var(--s-3);align-items:center;padding:var(--s-3) 0;text-decoration:none}
.beh__lenke::after{content:'→';grid-column:3;grid-row:1/3;transition:transform .2s var(--ease-ut)}
.beh__ikon{grid-row:1/3;width:2.5rem;height:2.5rem;fill:none;stroke:var(--c-aksent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.beh__navn{font:var(--w-display) 1.75rem/1.15 var(--f-display);letter-spacing:-.01em}
.beh__tekst{color:var(--c-dempet);font-size:var(--t-liten)}
.behandlinger__ut{margin-top:var(--s-4)}

/* Plager, aksentbånd */
.plager{background:var(--c-aksent);color:var(--c-paa-aksent);padding:var(--s-7) 0;--c-linje:color-mix(in srgb,var(--c-paa-aksent) 28%,transparent);--c-fokus:var(--c-paa-aksent)}
.plager .ingress{color:color-mix(in srgb,var(--c-paa-aksent) 82%,transparent)}
.plager__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem)}
.trekkspill{border-top:1px solid var(--c-linje)}
.trekk{border-bottom:1px solid var(--c-linje)}
.trekk summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-3) 0;font:var(--w-display) 1.5rem/1.2 var(--f-display)}
.trekk summary::-webkit-details-marker{display:none}
.trekk summary::after{content:'+';font:300 1.75rem/1 var(--f-tekst);transition:transform .25s var(--ease-ut)}
.trekk[open] summary::after{transform:rotate(45deg)}
.trekk p{margin:0 0 var(--s-3);max-width:34rem;color:color-mix(in srgb,var(--c-paa-aksent) 85%,transparent)}

/* Om */
.om{padding:var(--s-7) 0}
.om__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.om__bilde{margin:0;background:var(--c-aksent-lys);padding:clamp(1.5rem,4vw,3rem);border-radius:var(--radius)}
.om__bilde img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:62% 50%;border-radius:calc(var(--radius) / 2)}
.fakta{list-style:none;margin:0 0 var(--s-4);padding:0;border-top:1px solid var(--c-linje)}
.fakta li{padding:var(--s-2) 0 var(--s-2) 1.75rem;border-bottom:1px solid var(--c-linje);position:relative}
.fakta li::before{content:'';position:absolute;left:.25rem;top:1.45rem;width:.6rem;height:.6rem;border-radius:50%;background:var(--c-aksent)}

/* Tai chi */
.taichi{background:var(--c-flate);padding:var(--s-6) 0}
.taichi__grid{display:grid;grid-template-columns:7fr 4fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.taichi__bilde{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:3/4}
.taichi__bilde img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}

/* Kontakt */
.kontakt{padding:var(--s-7) 0 var(--s-6)}
.kontakt__tittel{font:var(--w-display) var(--t-hero-stor)/.96 var(--f-display);letter-spacing:var(--spor-display);margin:0 0 var(--s-4)}
.kontakt__info{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-4);margin:var(--s-6) 0 0;border-top:1px solid var(--c-linje);padding-top:var(--s-4)}
.kontakt__info dt{font-size:var(--t-liten);color:var(--c-dempet);margin-bottom:var(--s-1)}
.kontakt__info dd{margin:0}
.kontakt__info a{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}

/* Bunn */
.bunn{border-top:1px solid var(--c-linje);padding:var(--s-5) 0 var(--s-6)}
.bunn__indre{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4);font-size:var(--t-liten)}
.bunn__logo{height:28px;width:auto}
.bunn__sosial{display:flex;gap:var(--s-3)}
.bunn__sosial a{display:inline-flex;align-items:center;min-height:44px}
.footer__credit{margin:0 0 0 auto;color:var(--c-dempet)}
.footer__credit a{display:inline-flex;align-items:center;min-height:44px}

/* Dokk, bare mobil */
.dokk{display:none}

/* Design Lab */
.lab{position:fixed;left:1rem;bottom:1rem;z-index:var(--z-panel);font:500 .8125rem/1 var(--f-tekst);color:#1d1820;background:rgba(250,247,243,.72);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(255,255,255,.6);box-shadow:0 8px 30px rgba(30,20,35,.18);border-radius:14px;padding:.5rem}
.lab__veksle{all:unset;cursor:pointer;display:block;padding:.4rem .5rem;font-weight:600;min-height:44px;box-sizing:border-box;display:flex;align-items:center}
.lab__veksle:focus-visible{outline:2px solid #1d1820}
.lab[data-lukket] .lab__innhold{display:none}
.lab__rad{display:flex;align-items:center;gap:.3rem;padding:.2rem .3rem}
.lab__rad span{width:1.6rem}
.lab__rad button{all:unset;cursor:pointer;width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid rgba(29,24,32,.18)}
.lab__rad button[aria-pressed="true"]{background:#1d1820;color:#faf7f3}
.lab__rad button:focus-visible{outline:2px solid #1d1820;outline-offset:2px}
.lab__sign{margin:.4rem .4rem .2rem;font-size:.6875rem;opacity:.7}

/* Hover bare for mus, ikke klebrig på berøring */
@media (hover:hover) and (pointer:fine){
  .knapp:hover{background:var(--c-blekk);border-color:var(--c-blekk)}
  .knapp--strek:hover{background:var(--c-blekk);color:var(--c-papir);border-color:var(--c-blekk)}
  .pil-lenke:hover::after{transform:translateX(4px)}
  .topp__nav a:hover{text-decoration:underline;text-underline-offset:.3em}
  .hero--foto .knapp:hover{background:transparent;color:#F7F2EC}
  .hero--foto .knapp--strek:hover{background:#F7F2EC;color:#22191F}
  .beh__lenke:hover::after{transform:translateX(4px)}
}

/* Skjul-tilstand: bare når inline-skriptet har satt klassene */
.anim-hero .maske .linje>span{transform:translateY(105%)}
.anim-hero .hero-inn{opacity:0;transform:translateY(16px)}
.anim-reveal .reveal{opacity:0;transform:translateY(24px)}
.anim-reveal .reveal.er-inne{opacity:1;transform:none;transition:opacity .7s var(--ease-ut),transform .7s var(--ease-ut)}
/* Grupper kommer inn med 50 ms forskyvning */
.anim-reveal .beh:nth-child(2),.anim-reveal .trekk:nth-child(2){transition-delay:50ms}
.anim-reveal .beh:nth-child(3),.anim-reveal .trekk:nth-child(3){transition-delay:100ms}
.anim-reveal .beh:nth-child(4),.anim-reveal .trekk:nth-child(4){transition-delay:150ms}
.anim-reveal .beh:nth-child(5),.anim-reveal .trekk:nth-child(5){transition-delay:200ms}
.anim-reveal .beh:nth-child(6){transition-delay:250ms}

/* Mobil: ruter, ramser ikke opp */
@media (max-width:820px){
  .topp__nav{display:none}
  .topp__indre{justify-content:space-between}
  .topp__logo img{height:28px}
  .hero--foto{min-height:76svh}
  .hero__bilde img{object-position:78% 40%}
  .hero__slor{background:linear-gradient(0deg,rgba(24,18,27,.88) 0%,rgba(24,18,27,.6) 45%,rgba(24,18,27,.05) 80%)}
  .hero--foto .hero__innhold{padding:var(--s-5) 1rem var(--s-4)}
  .hero__ingress{font-size:1.0625rem;margin-bottom:var(--s-3)}
  .hero--typo .hero__innhold{padding:var(--s-5) 1rem var(--s-4)}
  .hero__tittel--stor{margin-bottom:var(--s-4)}
  .hero2__fot{grid-template-columns:1fr;gap:var(--s-2)}
  .hero2__fag{font-size:1.125rem}
  .hero2__fot .hero__knapper{grid-column:auto}
  .behandlinger,.om,.kontakt{padding:var(--s-5) 0}
  .plager{padding:var(--s-5) 0}
  .taichi{padding:var(--s-4) 0}
  .behandlinger__grid,.plager__grid{grid-template-columns:1fr;gap:var(--s-3)}
  .behandlinger__bilder{display:none}
  .ingress{margin-bottom:var(--s-3);font-size:1.0625rem}
  .beh-liste{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-1);border:0}
  .beh{border:0}
  .beh__lenke{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;height:100%;padding:var(--s-2);background:var(--c-flate);border-radius:var(--radius)}
  .beh__lenke::after{display:none}
  .beh__ikon{width:2rem;height:2rem}
  .beh__navn{font-size:1.1875rem}
  .beh__tekst{font-size:.8125rem;line-height:1.35}
  .behandlinger__ut{margin-top:var(--s-2)}
  .trekk summary{font-size:1.25rem;padding:var(--s-2) 0}
  .om__grid{grid-template-columns:7.5rem 1fr;gap:var(--s-2) var(--s-3);align-items:start}
  .om__bilde{padding:.5rem;grid-row:1}
  .om__bilde img{aspect-ratio:3/4}
  .om__tekst{display:contents}
  .om__tekst .h2{grid-column:2;grid-row:1;align-self:end;font-size:2rem}
  .om__tekst .ingress,.om__tekst .fakta,.om__tekst .pil-lenke{grid-column:1/-1}
  .fakta{margin-bottom:var(--s-1)}
  .fakta li{padding-block:.6rem;font-size:.9375rem}
  .fakta li::before{top:1.05rem}
  .taichi__grid{grid-template-columns:1fr 6.5rem;gap:var(--s-3);align-items:start}
  .taichi__tekst .h2{font-size:1.75rem}
  .taichi__tekst .ingress{font-size:.9375rem}
  .kontakt__tittel{margin-bottom:var(--s-2)}
  .kontakt__info>div:nth-child(3){grid-column:1/-1;grid-row:3}
  .kontakt__info{grid-template-columns:1fr 1fr;gap:var(--s-2) var(--s-3);margin-top:var(--s-4);font-size:.9375rem}
  .bunn{padding:var(--s-4) 0 calc(var(--s-6) + 1.5rem)}
  .bunn__indre{gap:var(--s-2)}
  .footer__credit{margin:0;width:100%}
  .dokk{display:grid;grid-template-columns:auto auto 1fr;gap:var(--s-1);position:fixed;left:0;right:0;bottom:0;z-index:var(--z-dokk);padding:.5rem .75rem calc(.5rem + env(safe-area-inset-bottom));background:var(--c-papir);border-top:1px solid var(--c-linje)}
  .dokk a{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:48px;padding:0 1rem;border-radius:var(--pille);border:1px solid var(--c-linje);text-decoration:none;font-weight:500;font-size:.9375rem}
  .dokk svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
  .dokk__hoved{background:var(--c-aksent);color:var(--c-paa-aksent);border-color:var(--c-aksent)!important}
  .lab{bottom:calc(4.5rem + env(safe-area-inset-bottom));left:.5rem}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
}
