@font-face{font-family:'Marcellus';font-style:normal;font-weight:400;font-display:swap;src:url('./assets/fonts/marcellus.ttf') format('truetype');}
@font-face{font-family:'Mulish';font-style:normal;font-weight:400;font-display:swap;src:url('./assets/fonts/mulish-400.ttf') format('truetype');}
@font-face{font-family:'Mulish';font-style:normal;font-weight:500;font-display:swap;src:url('./assets/fonts/mulish-500.ttf') format('truetype');}
@font-face{font-family:'Mulish';font-style:normal;font-weight:600;font-display:swap;src:url('./assets/fonts/mulish-600.ttf') format('truetype');}
@font-face{font-family:'Mulish';font-style:normal;font-weight:700;font-display:swap;src:url('./assets/fonts/mulish-700.ttf') format('truetype');}
:root {
 --ink:#344b43; --muted:#52645c; --sage:#61766a; --deep:#405b4b;
 --cream:#fafaf6; --mist:#eef2ec; --linen:#f3f1e9; --line:#d4dcd1;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:Mulish,Arial,sans-serif; font-size:16px; line-height:1.75; }
h1,h2,h3 { margin:0; font-family:Marcellus,Georgia,serif; font-weight:400; line-height:1.2; letter-spacing:-.015em; text-wrap:balance; }
h1 { font-size:39px; } h2 { font-size:34px; } h3 { font-size:27px; }
p,figure { margin:0; } p { text-wrap:pretty; }
a { color:inherit; text-underline-offset:5px; text-decoration-thickness:1px; }
a,button,summary { touch-action:manipulation; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--sage); outline-offset:4px; }
img { display:block; max-width:100%; height:auto; }
button,input,select,textarea { font:inherit; }
.wrap { width:calc(100% - 40px); max-width:1120px; margin-inline:auto; }
.skip { position:absolute; top:-100px; left:15px; padding:12px; background:var(--deep); color:white; z-index:20; }
.skip:focus { top:15px; }
.header { display:flex; justify-content:space-between; align-items:center; min-height:100px; gap:20px; }
.brand { width:90px; flex-shrink:0; display:block; }
.brand img,.about-brand img { mix-blend-mode:multiply; }
.header nav { display:none; }
.header-call { display:flex; align-items:center; min-height:44px; font-size:14px; font-weight:600; }
.hero { text-align:center; }
.hero-copy { padding-block:24px 30px; }
.location { font-size:12px; letter-spacing:.13em; text-transform:uppercase; margin-bottom:15px; color:var(--muted); }
.hero h1 { max-width:14ch; margin-inline:auto; }
.hero-subtitle { margin-top:14px; font-size:16px; color:var(--muted); }
.button { min-height:48px; display:inline-flex; align-items:center; justify-content:center; padding:13px 22px; border:1px solid var(--deep); border-radius:2px; background:var(--deep); color:#fff; text-decoration:none; font-size:14px; font-weight:600; line-height:1.5; cursor:pointer; transition:background .2s ease; }
.button:hover { background:#2f4739; }
.button:active { background:#253d2e; }
.hero .button { margin-top:23px; }
.hero-photo { position:relative; }
.hero-photo>img { height:285px; width:100%; object-fit:cover; object-position:61% 50%; }
.hero-photo figcaption { font-size:11px; padding:7px 20px 0; color:var(--muted); text-align:right; }
.welcome { text-align:center; padding-block:50px 55px; }
.small-label { font-size:13px; margin-bottom:17px; color:var(--muted); }
.welcome h2 { font-size:36px; line-height:1.3; }
.welcome>p:last-child { max-width:48ch; margin:22px auto 0; color:var(--muted); font-size:15px; }
.desktop-break { display:none; }
.care-section { padding-block:44px; background:var(--mist); }
.section-head { text-align:center; margin-bottom:30px; }
.section-head p { margin-top:13px; font-size:15px; color:var(--muted); }
.service-features { display:grid; gap:34px; }
.service-feature>img { width:100%; height:230px; object-fit:cover; }
.service-feature:nth-child(2)>img { object-position:65% 50%; }
.service-copy { padding-top:20px; }
.service-copy p,.other-services p { color:var(--muted); font-size:15px; margin-top:12px; max-width:40ch; }
.service-copy a,.other-services a,.text-link { display:inline-flex; min-height:44px; align-items:center; margin-top:11px; font-size:14px; }
.other-services { border-top:1px solid var(--line); margin-top:34px; padding-top:27px; display:grid; gap:27px; }
.other-services h3 { font-size:25px; }
.service-note { margin-top:27px; color:var(--muted); font-size:12px; }
.savannah { padding-block:50px; display:grid; gap:25px; }
.about-brand { background:var(--linen); display:flex; align-items:center; justify-content:center; padding:27px; }
.about-brand img { width:230px; }
.savannah-copy>p:not(.small-label) { font-size:15px; color:var(--muted); margin-top:19px; max-width:48ch; }
.first-visit { background:var(--linen); padding-block:44px; }
.visit-grid>div>p { color:var(--muted); margin-top:16px; font-size:15px; }
.questions { margin-top:25px; }
.questions details { border-top:1px solid #cbd1c4; }
.questions details:last-child { border-bottom:1px solid #cbd1c4; }
.questions summary { min-height:56px; padding:17px 0 17px 5px; margin-left:17px; cursor:pointer; font-size:15px; }
.questions details p { font-size:14px; color:var(--muted); margin:0 0 22px 22px; }
.contact { padding-block:50px; display:grid; gap:30px; }
.contact-copy>p:not(.small-label) { font-size:15px; color:var(--muted); margin-top:20px; max-width:40ch; }
.phone { display:flex; align-items:center; min-height:44px; margin-top:20px; font-size:25px; font-family:Marcellus,Georgia,serif; text-decoration:none; }
.email { display:inline-flex; align-items:center; min-height:44px; font-size:15px; overflow-wrap:anywhere; }
.contact-copy .contact-note { font-size:12px; margin-top:10px; }
form { background:var(--mist); padding:25px 20px; }
fieldset { border:0; padding:0; margin:0; min-width:0; }
legend { font-family:Marcellus,Georgia,serif; font-size:25px; line-height:1.3; padding:0; }
.form-intro { margin-top:13px; font-size:14px; color:var(--muted); }
label { display:block; font-size:14px; font-weight:600; margin-top:20px; }
label span { font-weight:400; }
input,select,textarea { display:block; width:100%; background:var(--cream); border:1px solid #8d9b8b; border-radius:2px; min-height:48px; padding:11px 12px; margin-top:7px; color:var(--ink); font-size:16px; }
textarea { resize:vertical; line-height:1.6; }
textarea::placeholder { font-size:14px; color:var(--muted); opacity:1; }
.privacy { margin-block:18px; font-size:12px; color:var(--muted); }
form .button { width:100%; }
#form-status { font-size:14px; margin-top:15px; }
#form-status:empty { margin:0; }
#draft { margin-top:18px; }
#draft p { font-size:12px; margin-top:12px; color:var(--muted); }
.secondary { background:transparent; color:var(--deep); }
.secondary:hover { background:#dfe7dc; }
[hidden] { display:none!important; }
footer { background:#e5ece2; padding-block:30px; }
.footer-main { display:flex; flex-wrap:wrap; align-items:start; gap:15px 25px; }
.footer-main>div { width:100%; }
.footer-main strong { font-family:Marcellus,Georgia,serif; font-weight:400; font-size:24px; }
.footer-main p { font-size:13px; margin-top:4px; }
.footer-main>a { min-height:44px; display:flex; align-items:center; font-size:14px; }
.footer-bottom { margin-top:18px; padding-top:20px; border-top:1px solid #c3cfc0; font-size:12px; color:var(--muted); }
.footer-bottom details { margin-top:10px; }
.footer-bottom summary { min-height:44px; padding-block:10px; cursor:pointer; }
.footer-bottom details p { padding-block:10px; max-width:65ch; }
@media(min-width:600px) {
 .wrap { width:calc(100% - 64px); }
 .header { min-height:120px; }.brand { width:105px; }
 .header nav { display:flex; gap:25px; font-size:14px; }.header nav a { display:flex; align-items:center; min-height:44px; text-decoration:none; }
 .hero h1 { max-width:none; font-size:52px; }.hero-copy { padding-block:30px 38px; }.hero-subtitle { font-size:18px; }
 .hero-photo>img { height:420px; object-position:50% 50%; }
 .welcome { padding-block:65px; }.welcome h2 { font-size:42px; }
 .service-features { grid-template-columns:1fr 1fr; gap:30px; }.service-feature>img { height:260px; }
 .other-services { grid-template-columns:1fr 1fr; gap:35px; }.savannah { grid-template-columns:.8fr 1fr; align-items:center; gap:35px; }
 .about-brand { min-height:320px; }.about-brand img { width:260px; }
 .footer-main>div { width:auto; margin-right:auto; }
}
@media(min-width:950px) {
 h2 { font-size:43px; }
 .header { min-height:125px; }.brand { width:112px; }.header nav { gap:40px; }
 .header-call { border-bottom:1px solid var(--sage); }
 .hero-copy { padding-block:28px 42px; }.location { margin-bottom:17px; }.hero h1 { font-size:70px; }
 .hero-subtitle { margin-top:18px; }.hero .button { margin-top:26px; }
 .hero-photo { margin-inline:40px; }.hero-photo>img { height:530px; object-position:50% 56%; }.hero-photo figcaption { padding-right:0; }
 .welcome { padding-block:80px 85px; }.welcome h2 { font-size:47px; }.welcome>p:last-child { font-size:16px; }.desktop-break { display:block; }
 .care-section { padding-block:70px; }.section-head { margin-bottom:42px; }.service-features { gap:48px; }.service-feature>img { height:340px; }.service-copy { padding-top:24px; }.service-copy h3 { font-size:32px; }.service-copy p { max-width:48ch; font-size:16px; }
 .other-services { margin-top:45px; padding-top:32px; gap:48px; }.other-services h3 { font-size:28px; }.other-services p { font-size:16px; }.service-note { margin-top:30px; }
 .savannah { grid-template-columns:.95fr 1fr; gap:85px; padding-block:85px; }.about-brand { min-height:390px; }.about-brand img { width:320px; }.savannah-copy>p:not(.small-label) { font-size:16px; }
 .first-visit { padding-block:65px; }.visit-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:90px; }.questions { margin:0; }
 .contact { grid-template-columns:1fr 1fr; gap:90px; padding-block:80px; }.contact-copy { padding-top:26px; }.contact h2 { font-size:48px; }.contact-copy>p:not(.small-label) { font-size:16px; }.phone { font-size:29px; }form { padding:35px; }
 .footer-bottom { display:flex; justify-content:space-between; gap:40px; align-items:start; }.footer-bottom>p { padding-top:10px; }.footer-bottom details { margin:0; max-width:330px; }
}
@media(max-width:360px) {
 .wrap { width:calc(100% - 32px); }.header { min-height:95px; }.brand { width:85px; }
 .hero h1 { font-size:35px; }.hero-subtitle { font-size:15px; }.hero-copy { padding-block:22px 28px; }.hero-photo>img { height:250px; object-position:60% 50%; }
 h2 { font-size:31px; }.welcome h2 { font-size:33px; }.phone { font-size:24px; }form { padding:24px 16px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }*,*::before,*::after { animation:none!important; transition:none!important; } }

/* Owner-supplied service menu. Native disclosures preserve a compact phone layout. */
.care-images { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:34px; }
.care-images img { width:100%;height:160px;object-fit:cover; }
.care-images figcaption { font-family:Marcellus,Georgia,serif;font-size:20px;margin-top:10px; }
.treatment-menu { display:grid;gap:32px; }
.treatment-group>h3 { font-size:27px;margin-bottom:18px; }
.treatment { border-top:1px solid #c5cfc2; }
.treatment:last-child { border-bottom:1px solid #c5cfc2; }
.treatment summary { cursor:pointer;min-height:68px;padding:18px 0 18px 6px;margin-left:18px; }
.treatment-title { font-size:16px;font-weight:600;line-height:1.5; }
.treatment-meta { display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:5px; }
.treatment-price { color:var(--ink);font-size:18px;font-weight:700;margin-left:10px; }
.treatment-description { padding:0 6px 20px 24px; }
.treatment-description>p { color:var(--muted);font-size:15px;max-width:65ch; }
.treatment-description .treatment-note { margin-top:13px;font-size:14px; }
.treatment-description .separate-price { font-size:13px;margin-bottom:12px; }
.treatment-description>a { display:inline-flex;align-items:center;min-height:44px;font-size:14px;margin-top:10px; }
.featured-treatment { background:var(--linen);padding-inline:12px; }
@media(min-width:600px){.care-images{gap:30px;margin-bottom:45px}.care-images img{height:240px}.treatment-menu{grid-template-columns:1fr 1fr;gap:36px}.treatment-group{min-width:0}.treatment-title{font-size:17px}}
@media(min-width:950px){.care-images{gap:48px}.care-images img{height:330px}.care-images figcaption{font-size:27px}.treatment-menu{gap:45px 48px}.treatment-group>h3{font-size:30px}.treatment-title{font-size:18px}}
@media(max-width:360px){.care-images{gap:12px}.care-images img{height:135px}.care-images figcaption{font-size:18px}.treatment-title{font-size:15px}.featured-treatment{padding-inline:8px}}

/* Finished client-site details: quiet surfaces, soft edges, and bounded motion. */
:root{--corner:14px;--ease:cubic-bezier(.22,.61,.36,1)}
.header-book{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 20px;border:1px solid #a9b7a4;border-radius:999px;text-decoration:none;font-size:14px;font-weight:600;transition:background .2s ease}
.header-book:hover{background:var(--mist)}
.button{border-radius:999px;transition:background .2s ease,transform .15s ease}
.button:active{transform:translateY(1px)}
.hero-actions{display:flex;align-items:center;justify-content:center;gap:10px 24px;flex-wrap:wrap;margin-top:23px}
.hero .hero-actions .button,.hero .hero-actions .text-link{margin:0}
.booking-note{font-size:12px;color:var(--muted);margin-top:12px}
.hero-photo{margin-inline:16px;overflow:hidden;border-radius:var(--corner)}
.hero-photo>img{border-radius:var(--corner)}
.hero-photo figcaption{padding:8px 3px 0}
.care-images img{border-radius:var(--corner)}
.care-section{border-radius:20px;margin-inline:8px}
.treatment-description>a,.text-link{transition:color .2s ease}
.treatment-description>a:hover,.text-link:hover{color:#233c2d}
.featured-treatment{border-radius:12px;border:1px solid #cbd3bf;padding-block:2px}
form{border-radius:var(--corner)}
input,select,textarea{border-radius:8px;transition:border-color .2s ease,background .2s ease}
input:focus,select:focus,textarea:focus{border-color:var(--deep);background:#fffef9}
#draft:not([hidden]){padding:18px;background:#e1e9dc;border-radius:10px}
.about-photo img{width:100%;height:330px;object-fit:cover;object-position:50% 72%;border-radius:var(--corner)}
.about-photo figcaption{font-size:11px;color:var(--muted);margin-top:7px}
.first-visit{border-radius:20px;margin-inline:8px}
.visit-location{padding-block:50px 10px;display:grid;gap:28px}
address{font-style:normal;margin-top:22px;line-height:1.8;color:var(--muted)}
.booking-panel{background:var(--mist);padding:28px 24px;border-radius:var(--corner)}
.booking-panel>p:not(.booking-note){margin-block:18px 22px;color:var(--muted);font-size:15px}
.booking-panel h3{font-size:29px}
footer{border-radius:20px 20px 0 0}
@keyframes quiet-arrival{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes photo-settle{from{opacity:.7;transform:scale(1.015)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:no-preference){
 .hero-copy{animation:quiet-arrival .75s var(--ease) both}
 .hero-photo>img{animation:photo-settle 1.2s var(--ease) both}
}
@media(min-width:600px){.care-section,.first-visit{margin-inline:16px}.hero-photo{margin-inline:24px}.visit-location{grid-template-columns:1fr 1fr;gap:35px;align-items:center}.about-photo img{height:400px}}
@media(min-width:950px){.hero-photo{margin-inline:40px}.care-section,.first-visit{margin-inline:24px}.visit-location{padding-block:80px 10px;gap:90px}.booking-panel{padding:36px}.about-photo img{height:460px}.hero-actions{margin-top:26px}.hero-copy{padding-bottom:36px}.contact{padding-top:65px}}
@media(max-width:360px){.header-book{padding-inline:15px;font-size:13px}.hero-actions{gap:8px 20px}.about-photo img{height:280px}}

.brand{width:110px}.brand img{mix-blend-mode:normal}
@media(min-width:600px){.brand{width:120px}}
@media(min-width:950px){.brand{width:130px}}
@media(max-width:360px){.brand{width:100px}}

.savannah-copy blockquote{font-family:Marcellus,Georgia,serif;font-size:23px;line-height:1.5;margin:24px 0 0;color:var(--ink)}
.savannah-copy cite{display:block;font-family:Mulish,Arial,sans-serif;font-size:13px;font-style:normal;margin-top:14px;color:var(--muted)}
