:root{--ivory:#f7f1e7;--cream:#fffaf1;--green:#173f35;--green-2:#285849;--gold:#b58a42;--clay:#a75e46;--charcoal:#302923;--muted:#6c6258;--line:rgba(48,41,35,.18);--serif:Georgia,"Times New Roman",serif;--sans:Arial,"Helvetica Neue",sans-serif;--shell:min(1160px,calc(100% - 40px));--shadow:0 18px 60px rgba(35,42,32,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;background:var(--ivory);color:var(--charcoal);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button,input{font:inherit}button,a,input,summary{touch-action:manipulation}.shell{width:var(--shell);margin-inline:auto}.skip-link{position:fixed;z-index:100;left:12px;top:12px;transform:translateY(-160%);background:var(--green);color:#fff;padding:10px 16px}.skip-link:focus{transform:none}*:focus-visible{outline:3px solid var(--clay);outline-offset:4px}.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}
.site-header{height:82px;position:relative;z-index:20;background:rgba(247,241,231,.94);border-bottom:1px solid var(--line)}.nav-wrap{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{width:auto;height:48px;display:flex;align-items:center}.brand img,.footer-brand img{width:auto;height:100%;object-fit:contain}.nav-toggle{width:48px;height:48px;border:0;background:transparent;display:grid;place-content:center;gap:7px}.nav-toggle span:not(.sr-only){display:block;width:25px;height:1px;background:var(--green);transition:.2s}.nav-toggle[aria-expanded=true] span:nth-last-child(2){transform:translateY(4px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-nav{position:absolute;display:none;top:82px;left:0;right:0;padding:20px;background:var(--ivory);border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.site-nav.open{display:grid}.site-nav a{min-height:48px;display:flex;align-items:center;text-decoration:none;font-size:.92rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 24px;background:var(--green);border:1px solid var(--green);color:#fff;text-decoration:none;font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;font-weight:600;cursor:pointer;transition:background .2s,color .2s,transform .2s}.button:hover{background:var(--green-2);transform:translateY(-2px)}.button-small{min-height:44px;padding:9px 18px!important;color:#fff!important}.text-link{display:inline-flex;min-height:44px;align-items:center;gap:12px;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em}.text-link span{color:var(--clay);font-size:1.2rem}
.hero{position:relative;min-height:calc(100svh - 82px);padding:75px 0 0;background:linear-gradient(115deg,var(--ivory),#f4eadb);overflow:hidden}.hero-orb{position:absolute;width:440px;height:440px;border-radius:50%;background:rgba(181,138,66,.09);right:-230px;top:10px}.hero-grid{display:grid;gap:60px;position:relative}.eyebrow{margin:0 0 18px;color:var(--clay);font-size:.7rem;line-height:1.4;text-transform:uppercase;letter-spacing:.22em;font-weight:600}.hero h1,.section h2,.booking-cta h2,.legal h1,.not-found h1{font-family:var(--serif);font-weight:500;line-height:1.02;letter-spacing:-.025em;margin:0}.hero h1{font-size:clamp(3rem,12vw,6.3rem);color:var(--green)}em{font-weight:500;color:var(--clay)}.hero-lede{font-size:1.08rem;max-width:590px;margin:28px 0;color:#4c443d}.button-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}.hero-art{justify-self:center;width:min(370px,88%)}.arch{height:420px;border-radius:190px 190px 0 0;background:var(--green);position:relative;overflow:hidden}.arch .sun{position:absolute;width:180px;height:180px;border-radius:50%;background:var(--gold);opacity:.85;right:-32px;top:55px}.arch svg{position:absolute;inset:0;width:100%;height:100%;fill:rgba(247,241,231,.04);stroke:#ddc69c;stroke-width:2}.hero-art>p{text-align:right;font-family:var(--serif);font-style:italic;color:var(--green);line-height:1.4}.hero-foot{margin-top:60px;border-top:1px solid var(--line);min-height:75px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 28px;color:var(--green);font-size:.68rem;text-transform:uppercase;letter-spacing:.13em}.hero-foot span:not(:last-child):after{content:"·";margin-left:28px;color:var(--gold)}
.section{padding:90px 0}.section h2,.booking-cta h2{font-size:clamp(2.3rem,8vw,4.7rem);color:var(--green)}.split-heading{display:grid;gap:20px}.split-heading>div{max-width:790px}.split-heading>div>p,.section-intro>p:last-child{max-width:650px;color:var(--muted);font-size:1.05rem}.outcome-grid{display:grid;margin-top:52px;border-top:1px solid var(--line)}.outcome{padding:32px 0;border-bottom:1px solid var(--line)}.outcome>span,.service-no{font-family:var(--serif);font-style:italic;color:var(--gold)}.outcome h3,.service h3{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--green);margin:18px 0 8px}.outcome p,.service p{margin:0;color:var(--muted)}
.services{background:var(--cream)}.section-intro{max-width:760px}.service-list{margin-top:48px;border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:40px 1fr;gap:16px;padding:28px 0;border-bottom:1px solid var(--line)}.service h3{margin:0 0 8px}.service-no{padding-top:5px}
.approach{background:var(--green);color:#f8f0e4}.approach h2{color:#fff}.approach-grid{display:grid;gap:55px}.approach-mark{min-height:360px;background:linear-gradient(145deg,#315f4e,#0f3028);display:grid;place-items:center;position:relative;overflow:hidden}.approach-mark:after{content:"";position:absolute;width:320px;height:420px;border:1px solid rgba(229,200,145,.5);border-radius:50% 50% 0 0;transform:rotate(18deg);bottom:-170px}.approach-mark span{font-family:var(--serif);font-size:10rem;font-style:italic;color:rgba(229,200,145,.75)}.large-copy{font-family:var(--serif);font-size:1.35rem;line-height:1.5}.approach-copy>p:not(.eyebrow){color:#ddd7cc}.process{list-style:none;margin:38px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.2)}.process li{display:grid;grid-template-columns:44px 1fr;gap:15px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.2)}.process li>span{color:#d6b370;font-family:var(--serif)}.process strong{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem}.process p{margin:3px 0 0;color:#c8c4bb;font-size:.9rem}
.rates-head{display:grid;gap:20px}.rates-head>p{max-width:440px;color:var(--muted)}.rate-grid{margin:48px 0;display:grid;border-top:1px solid var(--line)}.rate{min-height:150px;padding:28px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.rate p{margin:0;text-transform:uppercase;letter-spacing:.1em;font-size:.7rem}.rate p strong{font-family:var(--serif);font-size:2.4rem;font-weight:500;display:block;line-height:1;color:var(--green)}.rate>span{font-family:var(--serif);font-size:2rem;color:var(--clay)}.rate small{display:block;margin-top:8px;color:var(--clay)}.center{text-align:center}
.about{background:#eee3d5}.about-grid{display:grid;gap:55px}.portrait{min-height:440px;background:var(--clay);position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:24px}.portrait:before{content:"";position:absolute;width:270px;height:390px;left:50%;bottom:-45px;transform:translateX(-50%);border-radius:50% 50% 12px 12px;background:#c89072}.portrait:after{content:"";position:absolute;width:160px;height:160px;border-radius:50%;left:50%;top:50px;transform:translateX(-50%);background:#ead4bd;box-shadow:0 145px 0 85px #173f35}.portrait-line{position:absolute;inset:25px;border:1px solid rgba(255,255,255,.45)}.portrait span{position:relative;z-index:2;color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem}.about-copy p:not(.eyebrow){color:#554b43}.about-copy .license{border-top:1px solid rgba(48,41,35,.2);padding-top:20px;margin-top:30px;text-transform:uppercase;letter-spacing:.12em;font-size:.7rem}
.location-grid{display:grid;gap:50px}.location address{font-style:normal;margin:28px 0 15px;color:var(--muted)}.areas{background:var(--green);color:#fff;padding:34px}.areas>p{color:#d4b573;font-family:var(--serif);font-size:1.4rem;margin-top:0}.areas ul{list-style:none;margin:0;padding:0;columns:1}.areas li{border-bottom:1px solid rgba(255,255,255,.18);padding:10px 0;font-size:.9rem}
.faq{background:var(--cream)}.faq-grid{display:grid;gap:35px}.accordion{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{min-height:70px;padding:18px 44px 18px 0;display:flex;align-items:center;position:relative;cursor:pointer;font-family:var(--serif);font-size:1.15rem;color:var(--green);list-style:none}summary::-webkit-details-marker{display:none}summary span:before,summary span:after{content:"";position:absolute;right:8px;top:50%;width:17px;height:1px;background:var(--clay)}summary span:after{transform:rotate(90deg);transition:.2s}details[open] summary span:after{transform:rotate(0)}details p{margin:0;padding:0 40px 24px 0;color:var(--muted)}
.booking-cta{text-align:center;padding:100px 0;background:var(--clay);color:#fff;position:relative;overflow:hidden}.booking-cta:before,.booking-cta:after{content:"";position:absolute;width:300px;height:300px;border:1px solid rgba(255,255,255,.18);border-radius:50%}.booking-cta:before{left:-180px;top:-140px}.booking-cta:after{right:-160px;bottom:-180px}.booking-cta .shell{position:relative;z-index:1}.booking-cta h2{color:#fff}.booking-cta em{color:#f4d8a6}.booking-cta p:not(.eyebrow){margin:25px auto;max-width:480px}.booking-cta .eyebrow{color:#f4d8a6}.button-light{background:var(--cream);border-color:var(--cream);color:var(--green)}.button-light:hover{background:#fff}
.contact-grid{display:grid;gap:50px}.direct-contact{margin-top:35px}.direct-contact a{font-family:var(--serif);font-size:1.4rem;color:var(--green)}.sms-form{background:var(--cream);padding:25px;border:1px solid var(--line)}.field-row{display:grid;gap:20px}.field label{display:block;margin-bottom:6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600}.field input{width:100%;min-height:50px;border:1px solid #887d70;background:#fffdf8;color:var(--charcoal);padding:10px 12px;border-radius:0}.hint{display:block;color:var(--muted);font-size:.72rem;margin-top:3px}.consent-wrap{display:grid;grid-template-columns:24px 1fr;gap:12px;margin:24px 0}.consent-wrap input{appearance:none;width:24px;height:24px;margin:2px 0 0;border:2px solid var(--green);background:#fff;cursor:pointer}.consent-wrap input:checked{background:var(--green);box-shadow:inset 0 0 0 5px #fff}.consent-wrap label{font-size:.72rem;line-height:1.55;color:#524941}.consent-wrap a{font-weight:600}.form-note{font-size:.72rem;color:var(--muted);margin-bottom:0}.form-message{font-size:.85rem;padding:10px;border-left:3px solid var(--clay)}.error{color:#7f2d1c;background:#faeae4}.sms-fallback{margin-top:20px;padding:18px;background:#e8eee8;color:var(--green);font-size:.85rem}
.site-footer{padding:70px 0 25px;background:#102e27;color:#e7e0d5}.footer-grid{display:grid;gap:40px}.footer-brand{display:block;width:130px;aspect-ratio:1600/1350;filter:brightness(0) invert(1);opacity:.9}.footer-grid p,.footer-grid address{font-style:normal;font-size:.8rem;color:#bcb7ad}.footer-grid h2{font-family:var(--sans);font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:#d6b370;margin:0 0 12px}.footer-grid>div>a:not(.footer-brand){display:block;min-height:35px;font-size:.82rem}.footer-bottom{margin-top:45px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 20px;color:#9eaaa4;font-size:.68rem}
.legal,.not-found{padding:90px 0}.legal .shell{max-width:800px}.legal h1,.not-found h1{font-size:clamp(3rem,10vw,5.3rem);color:var(--green)}.legal .effective{color:var(--clay);font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;margin:24px 0 45px}.legal h2{font-family:var(--serif);font-weight:500;color:var(--green);font-size:1.65rem;margin:38px 0 10px}.legal h3{font-size:1rem;color:var(--green);margin-top:25px}.legal p,.legal li{color:#554e47}.legal a{font-weight:600}.legal-nav{padding-top:20px}.not-found{min-height:70vh;display:grid;place-items:center;text-align:center}.not-found .code{font-family:var(--serif);font-size:1.3rem;color:var(--clay);font-style:italic}.not-found p{max-width:480px;margin:22px auto 30px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal.visible{opacity:1;transform:none}
@media(min-width:760px){:root{--shell:min(1160px,calc(100% - 80px))}.section{padding:125px 0}.hero-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);align-items:center}.hero-art{justify-self:end}.hero{padding-top:95px}.split-heading{grid-template-columns:180px 1fr}.outcome-grid{grid-template-columns:repeat(3,1fr)}.outcome{padding:35px 28px;border-right:1px solid var(--line)}.outcome:first-child{padding-left:0}.outcome:last-child{border-right:0}.service{grid-template-columns:80px 1fr;padding:32px 0}.service>div{display:grid;grid-template-columns:minmax(220px,.8fr) 1fr;gap:45px}.approach-grid,.about-grid,.location-grid,.contact-grid{grid-template-columns:repeat(2,1fr);align-items:center}.approach-mark{min-height:660px}.rates-head{grid-template-columns:1fr 1fr;align-items:end}.rate-grid{grid-template-columns:repeat(4,1fr)}.rate{display:block;border-right:1px solid var(--line);padding:30px 22px}.rate>span{display:block;margin-top:35px}.rate.featured{background:#efe2ce}.areas{padding:50px}.areas ul{columns:2;column-gap:35px}.faq-grid{grid-template-columns:.7fr 1.3fr}.field-row{grid-template-columns:1fr 1fr}.sms-form{padding:40px}.footer-grid{grid-template-columns:1.7fr 1fr .8fr 1fr}}
@media(min-width:960px){.site-header{position:sticky;top:0;backdrop-filter:blur(12px)}.nav-toggle{display:none}.site-nav{display:flex;align-items:center;gap:28px;position:static;padding:0;background:none;border:0;box-shadow:none}.site-nav a{font-size:.78rem}.brand{height:48px}.hero-foot{margin-top:95px}.about-grid{gap:100px}.location-grid{gap:100px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.button,.nav-toggle span{transition:none}}
