:root{--pine:#14372e;--pine-2:#0c2822;--cream:#f5f0e6;--paper:#fffaf1;--walnut:#6d4635;--brass:#b99552;--ink:#17201c;--muted:#6b706c;--line:rgba(20,55,46,.18);--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font:16px/1.6 var(--sans)}a{color:inherit}img{display:block;max-width:100%;height:auto}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:.98;letter-spacing:-.03em}h1{font-size:clamp(3.3rem,8vw,8.5rem)}h2{font-size:clamp(2.2rem,4.8vw,4.8rem)}h3{font-size:1.25rem}.skip{position:absolute;left:-9999px;top:1rem;background:#fff;padding:.7rem;z-index:100}.skip:focus{left:1rem}.site-header,.portal-top{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,5vw,5rem);border-bottom:1px solid var(--line);position:relative;z-index:10}.brand{text-decoration:none;font-weight:600;letter-spacing:.02em;display:flex;align-items:center;gap:.65rem}.brand span{display:grid;place-items:center;width:38px;height:38px;border:1px solid currentColor;border-radius:50%;font-family:var(--serif);font-size:1.5rem}.site-header nav,.portal-top nav{display:flex;align-items:center;gap:1.5rem}.site-header nav>a,.portal-top nav>a{text-decoration:none;font-size:.91rem}.site-header nav>a:not(.button):hover,.site-header nav>a[aria-current]{border-bottom:1px solid}.menu-button{display:none;background:none;border:1px solid currentColor;padding:.55rem .8rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.7rem 1.2rem;background:var(--pine);color:#fff;border:1px solid var(--pine);border-radius:0;text-decoration:none;font:600 .92rem var(--sans);cursor:pointer}.button:hover{background:var(--pine-2)}.button.small{min-height:38px;padding:.45rem .85rem}.button.light{background:var(--cream);color:var(--pine);border-color:var(--cream)}.button.full{width:100%}.button.danger{background:#7b2f29;border-color:#7b2f29}.text-link{font-weight:600;text-underline-offset:5px}.hero{min-height:calc(100vh - 88px);display:grid;grid-template-columns:1.03fr .97fr;padding:clamp(3rem,7vw,7rem) clamp(1rem,5vw,5rem);gap:5vw;align-items:center;background:linear-gradient(90deg,var(--cream) 0 72%,#e8dfd0 72%)}.hero h1{max-width:850px;margin-bottom:1.8rem}.hero h1 em{color:var(--walnut);font-weight:400}.hero-copy>p:not(.eyebrow){max-width:550px;font-size:1.15rem}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-weight:600;font-size:.72rem;color:var(--walnut)}.actions{display:flex;gap:1.5rem;align-items:center;margin-top:2.3rem}.hero figure{margin:0;position:relative}.hero figure img{aspect-ratio:3/4;object-fit:cover}.hero figcaption{position:absolute;right:-2rem;bottom:2rem;background:var(--pine);color:#fff;padding:1rem 1.25rem;font-family:var(--serif);font-size:1.15rem}.marquee{display:flex;justify-content:space-around;padding:1rem;background:var(--pine);color:#fff;text-transform:uppercase;letter-spacing:.18em;font-size:.8rem}.marquee span+span:before{content:'✦';color:var(--brass);margin-right:14vw}.split{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.intro{padding:9rem clamp(1rem,8vw,9rem)}.intro h2{margin-bottom:0}.intro>div:last-child{font-size:1.25rem;max-width:520px;padding-top:2rem}.service-preview{padding:6rem clamp(1rem,5vw,5rem);background:var(--paper)}.section-heading{display:flex;justify-content:space-between;align-items:end}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.service-card{background:var(--paper);padding:2.5rem;min-height:330px;display:flex;flex-direction:column}.service-card>span{color:var(--brass);font-family:var(--serif);font-size:2rem}.service-card h3{font-family:var(--serif);font-size:2.2rem;margin:1rem 0}.service-card footer{display:flex;justify-content:space-between;margin-top:auto;border-top:1px solid var(--line);padding-top:1rem}.image-callout{display:grid;grid-template-columns:1.1fr .9fr;background:var(--walnut);color:#fff}.image-callout img{width:100%;height:650px;object-fit:cover}.image-callout>div{padding:6rem;align-self:center}.page-hero{padding:8rem max(1rem,8vw) 5rem;max-width:1300px}.page-hero h1{font-size:clamp(4rem,8vw,8rem);margin-bottom:1.5rem}.page-hero>p:last-child{font-size:1.2rem;max-width:600px}.price-list{max-width:1200px;margin:0 auto 5rem;padding:0 1rem}.price-list article{display:flex;justify-content:space-between;gap:2rem;padding:2.5rem 0;border-top:1px solid var(--line)}.price-list article h2{font-size:2.5rem;margin-bottom:.5rem}.price-list article>p{display:flex;gap:3rem;white-space:nowrap}.center{text-align:center;margin:0 0 8rem}.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;padding:0 max(1rem,5vw) 8rem}.portrait{aspect-ratio:4/5;background:linear-gradient(145deg,var(--pine),#345d50);display:grid;place-items:center;margin-bottom:1.5rem}.portrait span{font:9rem var(--serif);color:rgba(255,255,255,.7)}.team-grid h2{font-size:3rem;margin-bottom:1rem}.story{padding:0 max(1rem,5vw) 8rem;align-items:center}.story picture img{aspect-ratio:4/5;object-fit:cover}.story h2{font-size:3.7rem}.story dl div,.contact-grid dl div{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:.8rem 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:0 max(1rem,8vw) 8rem}.contact-grid article{background:var(--paper);padding:3rem}.contact-grid h2{font-size:3rem}.legal{max-width:780px;padding:8rem 1rem;margin:auto}.legal h1{font-size:5rem}.legal h2{font-size:2rem;margin-top:3rem}.booking-shell{display:grid;grid-template-columns:.8fr 1.2fr;gap:5vw;padding:6rem max(1rem,7vw);background:linear-gradient(90deg,var(--pine) 0 38%,var(--cream) 38%);min-height:800px}.booking-intro{color:#fff;position:sticky;top:2rem;align-self:start}.booking-intro h1{font-size:clamp(4rem,7vw,7rem)}.booking-intro .eyebrow{color:#d7bd89}.steps{list-style:none;padding:0;margin:4rem 0 0;counter-reset:steps}.steps li{padding:1rem 0;border-top:1px solid rgba(255,255,255,.2);color:rgba(255,255,255,.6)}.booking-card{background:var(--paper);padding:clamp(1.2rem,4vw,4rem);box-shadow:0 25px 70px rgba(20,35,30,.12)}fieldset{border:0;padding:0;margin:0 0 3rem}legend{font:2.2rem var(--serif);margin-bottom:1.5rem}label,.label{display:block;font-weight:600;font-size:.88rem;margin-bottom:1rem}input,select,textarea{width:100%;border:1px solid var(--line);background:#fff;padding:.85rem;font:inherit;color:inherit;margin-top:.35rem;border-radius:0}input:focus,select:focus,textarea:focus{outline:3px solid rgba(185,149,82,.35);border-color:var(--brass)}textarea{min-height:90px}.choice-grid{display:grid;gap:.6rem}.choice{position:relative;margin:0}.choice input{position:absolute;opacity:0}.choice span{display:flex;justify-content:space-between;border:1px solid var(--line);padding:1rem;cursor:pointer}.choice small{font-weight:400}.choice input:checked+span{border:2px solid var(--pine);background:#edf2ed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.check{display:flex;gap:.7rem;font-weight:400}.check input{width:auto;margin:.3rem 0 0}.slots{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.slot{border:1px solid var(--pine);background:transparent;color:var(--pine);padding:.65rem .8rem;cursor:pointer}.slot.selected{background:var(--pine);color:white}.fineprint{color:var(--muted);font-size:.8rem}.result{text-align:center;min-height:650px;padding:8rem 1rem}.result h1{font-size:6rem}.result-mark{display:grid;place-items:center;width:80px;height:80px;border-radius:50%;background:var(--pine);color:#fff;font-size:2rem;margin:0 auto 2rem}.code{font-size:1.4rem;letter-spacing:.12em}.site-footer{display:grid;grid-template-columns:2fr 1fr 1fr;gap:4rem;padding:5rem max(1rem,5vw);background:var(--pine-2);color:#fff}.site-footer h2{font:600 .75rem var(--sans);text-transform:uppercase;letter-spacing:.15em;color:#d7bd89}.site-footer>div{display:flex;flex-direction:column;align-items:start;gap:.4rem}.site-footer p{color:rgba(255,255,255,.65)}.flash-wrap{position:fixed;right:1rem;top:100px;z-index:20}.flash{padding:1rem 1.2rem;background:#e8f4e7;border-left:4px solid #3f763c}.flash.error{background:#f9e8e5;border-color:#a74135}.portal-bg{background:var(--pine);min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{background:var(--paper);padding:clamp(1.5rem,5vw,4rem);width:min(520px,100%);box-shadow:0 30px 80px rgba(0,0,0,.25)}.auth-card .brand{margin-bottom:3rem}.auth-card h1{font-size:4rem}.portal{background:#f3f0e9}.portal-top{background:var(--pine);color:#fff}.portal-top form{margin:0}.link-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;color:inherit;cursor:pointer;font:inherit;padding:.2rem}.portal-main{padding:4rem max(1rem,5vw);max-width:1500px;margin:auto}.portal-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:3rem}.portal-heading h1{font-size:4.5rem;margin:0}.toolbar{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:1rem;margin-bottom:2rem}.toolbar form{display:flex;align-items:end;gap:.5rem}.toolbar label{margin:0}.pill{display:inline-block;padding:.5rem .8rem;text-decoration:none}.pill.active{background:var(--pine);color:#fff}.agenda>h2{font:1rem var(--sans);text-transform:uppercase;letter-spacing:.12em;margin-top:2.5rem}.appointment{background:#fff;border-left:4px solid var(--brass);display:grid;grid-template-columns:90px 1fr auto;gap:1.5rem;padding:1.3rem;margin:.6rem 0;align-items:center}.appointment time{font:2rem var(--serif)}.appointment h3{margin:0}.appointment p{margin:0;color:var(--muted)}.appointment form{display:flex;align-items:end;gap:.5rem}.appointment label{margin:0}.empty,.panel{background:#fff;padding:2rem}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.panel h2{font-size:2.2rem}.panel h3{margin-top:2.5rem}.list-row{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid var(--line)}.danger-text{color:#8a2d27}.hours-row{display:grid;grid-template-columns:35px 1fr 1fr auto;gap:.5rem;align-items:center}.check.compact{margin:0}.check.compact span{white-space:nowrap}
@media(max-width:850px){.menu-button{display:block}.site-header nav,.portal-top nav{display:none;position:absolute;left:0;right:0;top:88px;background:var(--paper);color:var(--ink);padding:1.5rem;flex-direction:column;align-items:stretch;border-bottom:1px solid var(--line)}.site-header nav.open,.portal-top nav.open{display:flex}.hero{grid-template-columns:1fr;background:var(--cream);padding-top:4rem}.hero figcaption{right:0}.hero figure img{aspect-ratio:4/3}.split,.image-callout,.contact-grid,.booking-shell{grid-template-columns:1fr}.booking-shell{background:linear-gradient(var(--pine) 0 370px,var(--cream) 370px);padding-top:4rem}.booking-intro{position:static}.steps{display:none}.cards,.team-grid,.admin-grid{grid-template-columns:1fr}.image-callout img{height:420px}.image-callout>div{padding:3rem 1.5rem}.site-footer{grid-template-columns:1fr 1fr}.appointment{grid-template-columns:65px 1fr}.appointment form{grid-column:1/-1}.portal-heading{align-items:start;flex-direction:column}.price-list article{flex-direction:column}.price-list article>p{justify-content:space-between}.marquee span+span:before{margin-right:2vw}}
@media(max-width:560px){.site-header,.portal-top{height:72px}.site-header nav,.portal-top nav{top:72px}.site-header .brand{font-size:.9rem}.hero{min-height:auto}.hero h1{font-size:3.7rem}.actions{align-items:flex-start;flex-direction:column}.intro{padding-top:5rem;padding-bottom:5rem}.service-card{min-height:270px}.form-grid{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr}.booking-card{padding:1.2rem}.appointment{grid-template-columns:1fr}.appointment form{display:grid}.toolbar{align-items:stretch;flex-direction:column;gap:1rem}.toolbar form{display:grid}.hours-row{grid-template-columns:30px 1fr 1fr}.hours-row label{grid-column:2/-1}.page-hero{padding-top:5rem}.result h1{font-size:4rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
