/* Botanical editorial refinement. Existing page content and booking integrations remain intact. */
:root { --ink-faint:#57635b; --green:#28553b; }
body,body.light-page { background:var(--paper); }
::selection { background:#c9dcc9; color:#183627; }
:focus-visible { outline:3px solid #8b592b; outline-offset:5px; }
input,textarea { caret-color:var(--green); }
html { scroll-padding-top:110px; scrollbar-color:#687c6b var(--paper); }
a { text-underline-offset:.22em; }
.skip-link { position:fixed; top:8px; left:8px; transform:translateY(-200%); z-index:1000; padding:1rem; background:white; color:var(--ink); }
.skip-link:focus { transform:none; }
.site-header,.site-header.on-light { position:sticky; min-height:92px; padding:12px clamp(20px,4vw,64px); background:var(--paper); border-bottom:1px solid var(--line); gap:16px; }
.site-logo { height:64px; filter:brightness(0); }
.logo { padding:0; }
.site-nav { position:static; transform:none; margin-left:auto; gap:0; }
.site-header .nav-link,.site-header.on-light .nav-link { color:var(--ink); font-size:13px; padding:12px 10px; }
.site-header .nav-booking,.site-header.on-light .nav-booking { background:var(--green); color:white; margin:0 8px; }
.site-header .nav-booking:hover { background:#193d2a; color:white; }
.site-header .nav-link:not(.nav-booking):hover { color:var(--green); background:#e5ece2; }
.nav-toggle span { background:var(--ink); }
.footer-work { font:inherit; color:inherit; background:none; border:0; cursor:pointer; text-decoration:underline; text-underline-offset:.22em; }
.care-hero { display:grid; grid-template-columns:1.15fr 1fr; background:#173b2a; color:#f5f3e9; min-height:570px; }
.care-hero-copy { align-self:center; padding:64px clamp(24px,5vw,80px); }
.care-hero h1 { font:400 clamp(42px,4.6vw,70px)/1.06 var(--font-serif); letter-spacing:-.035em; max-width:12ch; margin-bottom:28px; text-wrap:balance; }
.care-hero h1 em { color:#cfdfbd; font-weight:300; }
.care-hero-copy>p { max-width:47ch; font-size:17px; line-height:1.75; color:#e6eadd; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; margin:30px 0 24px; }
.care-hero .hero-booking { background:#f6f1df; color:#173b2a; padding:17px 25px; font-weight:500; }
.care-hero .hero-booking:hover { background:#dce6cf; }
.hero-fees { color:#f5f3e9; font-size:14px; }
.care-hero-copy .hero-note { font-size:13px; color:#d3ddcf; line-height:1.6; }
.care-hero-image { position:relative; overflow:hidden; min-height:100%; }
.care-hero-image img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:center; }
.care-hero-image p { position:absolute; bottom:22px; left:24px; right:24px; width:fit-content; color:#193d2a; background:#f6f1df; padding:12px 18px; font:400 17px var(--font-serif); }
.care-facts { display:flex; justify-content:space-between; gap:20px; padding:26px clamp(24px,5vw,80px); background:#e8edde; color:#294432; font-size:14px; border-bottom:1px solid #cad5bf; }
.content-section { opacity:1; transform:none; transition:none; padding:70px 24px; }
.content-inner { max-width:1160px; }
.content-hero-text { margin-top:85px; margin-bottom:40px; gap:24px 64px; }
.content-body { max-width:68ch; line-height:1.85; }
.content-buttons { gap:14px; }
.pricing-section { margin-top:0; padding-top:0; }
.pricing-card h3 { line-height:1.45; }
.pricing-card-tag { display:block; margin-top:8px; font:500 14px/1.5 var(--font-body); color:var(--green); }
.pricing-card--featured .pricing-card-tag { color:inherit; }
.pricing-features { line-height:1.7; }
.pricing-badge { font-size:12px; }
.contact-detail dt { font-size:12px; }
.care-overview { padding:60px 0; margin:60px 0 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.care-overview h2 { font:400 clamp(30px,3vw,44px)/1.2 var(--font-serif); letter-spacing:-.025em; }
.care-overview ol { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; margin:32px 0 24px; padding-left:22px; }
.care-overview li { padding-left:4px; }
.care-overview li::marker { color:var(--green); font-weight:500; }
.care-overview h3 { font:400 23px/1.3 var(--font-serif); margin-bottom:12px; }
.care-overview p { color:var(--ink-soft); font-size:15px; line-height:1.8; }
.text-link { color:var(--green); font-size:14px; font-weight:500; }
.team-callout { margin-bottom:70px; }
.process-step p,.treatment-card p { line-height:1.8; }
.booking-policy { font-size:14px; line-height:1.8; margin:24px 0; padding:20px 24px; background:#e8edde; color:#294432; }
.booking-policy a { color:inherit; }
.book-section,.faq-section,.how-page-section,.treatments-page-section { padding-top:65px; }
.form-status { font-size:14px; line-height:1.6; color:#91351b; }
.form-status:empty { display:none; }
button:disabled { opacity:.65; cursor:wait; }
.modal { max-height:calc(100dvh - 32px); overflow-y:auto; }
.modal[tabindex='-1']:focus { outline:none; }
.footer-tmd { opacity:1; transform:none; }
@media(min-width:901px) and (max-width:1150px) {
 .site-header { padding-inline:20px; gap:8px; }
 .site-header .nav-link { font-size:12px; padding-inline:7px; }
 .site-logo { height:48px; }
}
@media(max-width:900px) {
 .site-header,.site-header.on-light { min-height:80px; padding:12px 20px; }
 .site-logo { height:52px; }
 .nav-toggle { margin-left:auto; }
 .site-nav { position:fixed; top:0; right:0; left:auto; margin:0; transform:translateX(100%); height:100dvh; background:#173b2a; visibility:hidden; }
 .site-nav.is-open { transform:translateX(0); visibility:visible; }
 .site-header .site-nav .nav-link,.site-header.on-light .site-nav .nav-link { color:#f5f3e9; font-size:16px; padding:13px 16px; }
 .site-header .site-nav .nav-booking { background:#f6f1df; color:#173b2a; margin:8px 0; }
 .care-hero { grid-template-columns:1.1fr .9fr; min-height:530px; }
 .care-hero-copy { padding:44px 28px; }
 .care-hero h1 { font-size:48px; }
 .care-facts { display:grid; grid-template-columns:1fr 1fr; padding:22px 28px; gap:16px; font-size:13px; }
 .care-overview ol { gap:24px; }
}
@media(max-width:600px) {
 .care-hero { display:block; min-height:0; }
 .care-hero-copy { padding:42px 24px 36px; }
 .care-hero h1 { font-size:46px; margin-bottom:24px; }
 .care-hero-copy>p { font-size:16px; line-height:1.7; }
 .hero-actions { gap:20px; margin:24px 0; }
 .hero-booking { width:100%; text-align:center; }
 .hero-fees { display:block; }
 .care-hero-image { min-height:210px; height:210px; }
 .care-hero-image img { object-position:center 48%; }
 .care-hero-image p { font-size:15px; bottom:16px; }
 .care-facts { padding:22px 24px; gap:16px 12px; }
 .content-section { padding:48px 24px; }
 .care-overview { margin-top:40px; padding:36px 0; }
 .care-overview ol { grid-template-columns:1fr; gap:28px; }
 .content-hero-text { margin-top:48px; }
 .pricing-card { padding:28px 22px; }
 .pricing-card-tag { font-size:14px; }
 .book-section,.faq-section { padding:40px 24px; }
 .book-heading,.faq-heading { font-size:44px; }
 .booking-policy { padding:20px; }
 .footer-contact-item { overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { animation:none!important; transition:none!important; }
}
/* A closed off-canvas menu must not extend the page's scrollable width. */
@media(max-width:900px) { .site-nav:not(.is-open) { display:none; } }
