/* Kai Läpple · warm editorial scroll experience */
:root{
 --paper:#fbf8f2;--paper-dark:#f1e8dc;--ink:#51443d;--ink-soft:#6c5b50;--muted:#79685d;
 --coral:#a65f4d;--coral-light:#ead0c1;--sage:#c5cdbd;--line:#ded3c7;--white:#fffdf9;
 --sand:#e4cfbb;--apricot:#e2b49e;--clay:#c98a70;--butter:#ead9aa;--olive:#78816c;
}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{background:var(--paper);color:var(--ink)}
section{scroll-margin-top:5rem}
:focus-visible{outline:3px solid #a65f4d;outline-offset:4px;border-radius:3px}

/* A quiet arched “window” anchors the opening scene. */
.hero{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(112deg,#fbf8f2 0 47%,#f8f1e8 100%)}
.hero::before{content:"";position:absolute;z-index:0;right:5%;top:11%;width:min(39vw,470px);height:min(55vw,550px);min-height:340px;border-radius:48% 48% 7px 7px;background:linear-gradient(155deg,#e9d5c5 0%,#f0dfce 48%,#e7c7b3 100%);box-shadow:inset 0 0 0 15px rgba(255,253,249,.62),inset 0 0 0 17px rgba(166,95,77,.12);transform:translate3d(0,var(--scene-shift,0px),0);will-change:transform}
.hero::after{content:"";position:absolute;z-index:0;right:calc(5% + min(39vw,470px) - 92px);top:min(50vw,460px);width:114px;height:114px;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fbf4e4 0 36%,#e6d2b8 72%);box-shadow:0 12px 28px rgba(81,68,61,.08);transform:translate3d(0,calc(var(--scene-shift,0px)*.55),0)}
.hero-copy,.hero-bottom{position:relative;z-index:1}
.hero-copy{max-width:650px}
.hero h1{max-width:720px}
.hero-intro{max-width:540px}
.hero-bottom{color:var(--ink-soft)}

/* Warm paper fields carry a single colour thread through the sections. */
.welcome{position:relative;background:linear-gradient(180deg,#fbf8f2 0%,#f7f0e7 100%);isolation:isolate}
.welcome::after{content:"";position:absolute;z-index:-1;right:5%;top:16%;width:min(25vw,300px);aspect-ratio:1;border-radius:50% 44% 54% 46%;background:radial-gradient(circle at 36% 34%,rgba(234,217,170,.48),rgba(226,180,158,.3) 70%,transparent 72%);transform:translate3d(0,calc(var(--scene-shift,0px)*.5),0)}
.person-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(118deg,#ead8c9 0%,#f1e6da 55%,#ead9ca 100%)}
.person-section::before{content:"";position:absolute;z-index:-1;right:-3%;top:6%;width:min(42vw,520px);height:92%;border-radius:49% 0 0 49%;background:linear-gradient(160deg,rgba(255,253,249,.47),rgba(226,180,158,.22));transform:translate3d(0,calc(var(--scene-shift,0px)*.45),0)}
.person-layout{position:relative}
.person-visual{position:relative;isolation:isolate}
.person-visual::before{content:"";position:absolute;z-index:-1;inset:7% -6% -5% 9%;border-radius:48% 48% 8px 8px;background:linear-gradient(155deg,#d2b19b,#e7cbb7);transform:rotate(2deg)}
.person-image{border-radius:48% 48% 7px 7px;object-fit:cover;box-shadow:0 22px 48px rgba(81,68,61,.14)}
.person-copy h2{color:var(--ink)}
.membership-note{background:rgba(255,253,249,.56);border-left-color:var(--clay)}
.membership-note .mini-label,.membership-note p{color:#5f5047}
.qualifications{position:relative;background:#fbf8f2}
.timeline{position:relative}
.timeline::before{content:"";position:absolute;left:calc(100% - 38px);top:2%;bottom:2%;width:1px;background:linear-gradient(180deg,transparent,var(--apricot),var(--clay),transparent);opacity:.8}
.timeline-mark{color:var(--clay)}
.additional-qualifications li{background:#f0e5d9;color:#5e5047}

/* The treatment area uses a quiet sage wash, not a dark green panel. */
.offer-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(125deg,#e6ebe1 0%,#edf0e7 44%,#f4e9de 100%);color:var(--ink)}
.offer-section::before{content:"";position:absolute;z-index:-1;right:-6%;top:4%;width:min(44vw,550px);aspect-ratio:1.2;border-radius:56% 44% 0 58%;background:linear-gradient(138deg,rgba(255,253,249,.66),rgba(226,180,158,.25));transform:translate3d(0,calc(var(--scene-shift,0px)*.48),0)}
.offer-layout{position:relative}
.offer-section .section-kicker,.offer-section .section-kicker span,.offer-section .offer-layout>div:first-child>p:not(.eyebrow),.offer-section .offer-layout .muted{color:#5e5047!important}
.offer-section .offer-layout .eyebrow,.offer-section .offer-cards .card-icon{color:#9a5848}
.offer-section .membership-note{background:rgba(255,253,249,.7)}
.offer-wait-note{color:#625248!important}
.offer-cards{position:relative}
.offer-card{background:rgba(255,253,249,.88);border:1px solid rgba(110,88,72,.12);border-radius:3px;box-shadow:0 12px 32px rgba(81,68,61,.055)}
.offer-card h3,.offer-card p{color:#51443d}
.offer-card:hover{box-shadow:0 16px 34px rgba(81,68,61,.1)}

/* A gently traced route gives the three first steps a shared meaning. */
.process-section{position:relative;background:linear-gradient(180deg,#fbf8f2,#f7f1e8)}
.process-steps{position:relative}
.process-steps::before{content:"";position:absolute;left:5%;right:5%;top:23px;height:1px;background:linear-gradient(90deg,#c98a70,#e2b49e,#c5cdbd);opacity:.85}
.process-steps article{position:relative;border-top:0;padding-top:0}
.process-steps article>span{display:grid;place-items:center;width:46px;height:46px;border:1px solid #c98a70;border-radius:50%;background:var(--paper);color:#875648;position:relative;z-index:1}
.process-steps h3{margin-top:22px}
.family-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(112deg,#f3e2d6 0%,#f7eee5 56%,#f0dfd3 100%)}
.family-section::after{content:"";position:absolute;z-index:-1;right:-4%;bottom:-18%;width:min(40vw,460px);aspect-ratio:1;border-radius:47% 53% 45% 55%;background:radial-gradient(circle at 35% 35%,rgba(234,217,170,.52),rgba(201,138,112,.24) 69%,transparent 71%);transform:translate3d(0,calc(var(--scene-shift,0px)*.5),0)}
.family-layout,.family-content{position:relative}
.family-note{background:rgba(255,253,249,.7);color:#51443d;border-left-color:#a65f4d}
.family-note p{color:#51443d}
.button-outline{border-color:#a65f4d;color:#51443d;background:rgba(255,253,249,.32)}
.contact-section{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(125deg,#f2e9de,#f7f1e8 56%,#ecdfd1)}
.contact-section::before{content:"";position:absolute;z-index:-1;left:-8%;top:12%;width:min(36vw,420px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 60% 40%,rgba(226,180,158,.32),rgba(234,217,170,.26) 65%,transparent 68%);transform:translate3d(0,calc(var(--scene-shift,0px)*.42),0)}
.contact-layout{position:relative}
.contact-card{background:rgba(255,253,249,.94);border:1px solid rgba(110,88,72,.1);box-shadow:0 22px 55px rgba(81,68,61,.1);border-radius:4px}
.contact-card-top{color:#65564c}
.contact-card dt,.contact-card dd,.contact-card .practice-note,.contact-card small{color:#5d4e45}
.contact-card a{color:#8f4f40}
.hours-block{border-color:#ded3c7}
.form-download .download-symbol{background:#f0dfd3;color:#8f4f40}

/* Footer contrast is intentionally dark on sand for legibility. */
.site-footer{background:linear-gradient(112deg,#e5cfbb,#eeded0);color:#51443d}
.site-footer .footer-main{border-color:rgba(81,68,61,.2)}
.site-footer .footer-brand .brand-copy small,.site-footer .footer-main>p,.site-footer .footer-bottom,.site-footer .footer-bottom a,.site-footer .footer-top{color:#57483f}
.site-footer .footer-brand .brand-mark{color:#57483f}
.site-footer .footer-main>p{font-style:italic}
.site-footer .footer-bottom a:hover{color:#8f4f40}

/* Reveal masks and restrained depth: one rhythm across the whole page. */
.reveal-ready [data-reveal]{opacity:0;transform:translate3d(0,20px,0);transition:opacity .72s cubic-bezier(.22,.68,0,1),transform .72s cubic-bezier(.22,.68,0,1);transition-delay:var(--reveal-delay,0ms)}
.reveal-ready [data-reveal="image"]{transform:translate3d(0,8px,0) scale(.975);clip-path:inset(5% 5% 5% 5% round 48% 48% 6px 6px);transition:opacity .95s ease,transform .95s cubic-bezier(.2,.7,.2,1),clip-path 1s cubic-bezier(.2,.7,.2,1)}
.reveal-ready [data-reveal].is-visible{opacity:1;transform:translate3d(0,0,0)}
.reveal-ready [data-reveal="image"].is-visible{clip-path:inset(0 0 0 0 round 48% 48% 6px 6px)}
.button,.site-nav a,.offer-card,.contact-card{transition:transform .28s ease,box-shadow .28s ease,color .28s ease,background-color .28s ease}
.button:hover,.offer-card:hover{transform:translateY(-3px)}
.site-nav a:hover{color:#9a5848}
@media(max-width:1000px){.hero::before{right:-3%;width:42vw}.hero::after{right:calc(42vw - 90px)}.timeline::before{display:none}}
@media(max-width:760px){
 .hero{background:linear-gradient(165deg,#fbf8f2 0 56%,#f7eee4 100%)}
 .hero::before{right:-19%;top:12%;width:72vw;height:92vw;min-height:290px;opacity:.58}
 .hero::after{right:46%;top:70%;width:72px;height:72px}
 .hero-copy,.hero-bottom{z-index:1}
 .welcome::after{width:58vw;right:-8%;top:8%;opacity:.7}
 .person-section::before{width:68vw;right:-18%}
 .offer-section::before{width:78vw;right:-29%;top:4%}
 .process-steps::before{left:22px;right:auto;top:18px;bottom:22px;width:1px;height:auto;background:linear-gradient(180deg,#c98a70,#e2b49e,#c5cdbd)}
 .process-steps article{display:grid;grid-template-columns:48px 1fr;column-gap:12px}
 .process-steps article>span{grid-row:span 2}
 .process-steps h3{margin:0 0 6px}
 .contact-section::before{width:68vw;left:-25%}
 .family-section::after{width:75vw;right:-32%}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
 .reveal-ready [data-reveal]{opacity:1;transform:none;clip-path:none}
 .hero::before,.hero::after,.welcome::after,.person-section::before,.offer-section::before,.family-section::after,.contact-section::before{transform:none}
}
