/* V5 — coherent max-width editorial layout and photographic hero system, 12 Oct 2026 */
:root{--v5-max:1220px;--v5-gutter:clamp(22px,3.6vw,50px);--v5-warm:#fafaf6;--v5-botanical:#edf1e9}
body{background:var(--v5-warm)}
.container,.header-inner,.footer-inner{width:100%!important;max-width:var(--v5-max)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--v5-gutter)!important;padding-right:var(--v5-gutter)!important}
/* constrain site content; only backgrounds/photos may bleed to viewport edges */
.hero-photo-split,.service-overview-grid,.home-service-layout,.quick-grid,.cta-grid,.review-feature{max-width:100%}
.site-header{background:var(--v5-warm);border-bottom:1px solid rgba(204,213,203,.5);z-index:20;position:relative}
.site-header .header-inner{min-height:92px;padding-top:17px!important;padding-bottom:17px!important}
body.v5-has-hero .site-header{background:transparent;border-bottom:0}
body.v5-has-hero .v5-page-hero, body.v5-home .home-fullbleed{margin-top:-92px;padding-top:92px}
.v5-page-hero{position:relative;isolation:isolate;min-height:clamp(440px,35vw,555px);display:flex;align-items:center;background:#fcfcfa;overflow:hidden}
.v5-page-hero:after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#fafaf9 0%,rgba(250,250,249,.98) 27%,rgba(250,250,249,.88) 46%,rgba(250,250,249,.22) 76%,rgba(250,250,249,.05) 100%);pointer-events:none}
.v5-page-hero .v5-hero-photo{position:absolute;z-index:-2;top:0;right:0;height:100%;width:69%;max-width:none;object-fit:cover;object-position:center;filter:saturate(.82)}
.v5-page-hero.v5-tone-flip .v5-hero-photo{transform:scaleX(-1)}
.v5-page-hero.v5-tone-portrait .v5-hero-photo{width:57%;object-position:center 56%;filter:saturate(.72)}
.v5-page-hero.v5-tone-forest .v5-hero-photo{width:100%;filter:saturate(.68) brightness(1.12)}
.v5-page-hero.v5-tone-forest:after{background:linear-gradient(90deg,rgba(252,252,250,.99) 0%,rgba(252,252,250,.96) 33%,rgba(252,252,250,.66) 61%,rgba(252,252,250,.36) 100%)}
.v5-hero-content{position:relative;padding-top:80px!important;padding-bottom:80px!important}
.v5-hero-content h1{max-width:660px;color:#294c3a;font-weight:400;font-size:clamp(43px,4.7vw,64px);line-height:1.11;letter-spacing:-.035em}
.v5-hero-content .v5-hero-subtitle{max-width:565px;font-size:16px;line-height:1.74;color:#526258;margin-top:23px}
.v5-home .home-fullbleed{min-height:clamp(570px,51vw,710px);background:var(--v5-warm)}
.v5-home .home-fullbleed:before{background-image:url('../assets/v5-hero-home-mirrored.webp');background-position:right center;background-size:cover;transform:none;filter:saturate(.8)}
.v5-home .home-fullbleed:after{background:linear-gradient(90deg,rgba(250,250,247,.98) 0%,rgba(250,250,247,.9) 34%,rgba(250,250,247,.44) 55%,rgba(250,250,247,.01) 84%)}
.v5-home .home-fullbleed .home-message{padding-top:63px;padding-bottom:55px}
.v5-home .home-message h1{color:#294c3a;font-size:clamp(42px,4.3vw,60px)}
.v5-home .home-service-layout{max-width:var(--v5-max)!important;margin:auto;min-height:500px}
.v5-home .home-service-layout .photo-wrap{border-radius:2px;overflow:hidden}
.v5-home .home-service-layout .photo-wrap img{object-fit:cover}
.v5-home .quick-grid,.v5-home .review-feature{max-width:var(--v5-max)!important;margin:auto}
.v5-quick-icon{width:45px;height:45px;border:1px solid #d3ded3;display:grid;place-items:center;color:#7c9b7b;border-radius:50%;margin-bottom:20px}
.v5-quick-icon svg{width:21px;height:21px}
.v5-inline-visual{margin:48px 0 4px;max-height:390px;overflow:hidden;border-radius:2px;background:#f3f4ef}
.v5-inline-visual img{height:390px;width:100%;object-fit:cover;object-position:center 47%}
.v5-acupuncture-visual img{object-position:center 40%}
.v5-herbal-visual img{object-position:center 49%}.v5-service-treatment-photo{margin:24px 0 5px;max-width:760px;overflow:hidden}.v5-service-treatment-photo img{width:100%;height:320px;object-fit:cover;object-position:center}
/* Consistent inset content blocks beneath the photo title */
.about-top{padding-top:60px!important}
.about-hero-grid{max-width:var(--v5-max)!important;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr)!important;gap:clamp(38px,5vw,74px)}
.about-top h1{display:none}.about-hero-grid .credential-line{letter-spacing:.012em;line-height:1.65;font-size:clamp(17px,1.7vw,21px)}
.about-hero-grid .portrait-wrap{max-height:650px;overflow:hidden;border-radius:2px}
.about-hero-grid .portrait-wrap img{height:100%;width:100%;object-fit:cover;object-position:center 34%}
.service-overview{padding:50px 0 35px!important}
.service-overview-grid{max-width:var(--v5-max)!important;margin:auto!important;padding-left:var(--v5-gutter)!important;padding-right:var(--v5-gutter)!important;display:grid;grid-template-columns:1fr .8fr;gap:65px}
.service-overview-grid >div:first-child{padding:32px 0!important}
.service-overview-grid .photo-wrap{min-height:230px!important;max-height:340px;overflow:hidden;align-self:start;border-radius:2px}
.service-overview-grid .photo-wrap img{width:100%;height:100%;object-fit:cover}
.v5-page-hero + .section:not(.group-section):not(.soft){padding-top:62px}
.v5-addon-notice{padding:15px 19px;border-left:2px solid #78a17b;background:#edf4ea;font-size:14px!important;color:#365d3b!important;font-weight:500}
/* Off-white surfaces & botanical shadows */
.section.soft{background:#f4f5ef!important;position:relative;isolation:isolate;overflow:hidden}
.section.soft:before,.wide-cta:before{content:'';position:absolute;z-index:-1;pointer-events:none;right:-3%;top:-65px;width:410px;height:350px;background:url('../assets/v5-hero-herbal.jpg') no-repeat center/cover;filter:blur(11px) saturate(.65);opacity:.095;mask-image:linear-gradient(90deg,transparent,#000)}
.section.soft > .container,.wide-cta > .container{position:relative}
.wide-cta{background:#f1f4eb!important;position:relative;isolation:isolate;overflow:hidden}
.wide-cta:before{right:0;top:-20px;opacity:.14}
.v5-coverage-photo{display:block;width:100%!important;height:265px!important;max-height:none!important;object-fit:cover!important;box-shadow:none!important;border:0;border-radius:2px}
.coverage-graphic{min-height:265px!important;overflow:hidden;border:0!important}
.v5-insurance .split-coverage{max-width:var(--v5-max)}
.v5-insurance .split-coverage:nth-child(1){align-items:center}
.v5-contact .contact-v3{padding-top:58px}
.contact-v3{padding-bottom:66px}
.contact-v3 .map-frame{margin-top:55px}
.v5-simple .contact-v3 .contact-details{margin-bottom:42px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.v5-simple .booking-section{padding-top:48px}
.v5-simple .booking-layout{grid-template-columns:minmax(0,1.75fr) minmax(285px,.85fr);gap:35px;align-items:start}
.v5-simple .booking-help{padding:34px 27px 42px;background:#f3f6f1;border:1px solid #e3e9e1}
.v5-booking-prep .button{padding:10px 15px;font-size:12px;min-height:40px}
.v5-booking-prep h2{font-size:23px!important}
.v5-booking-prep p{font-size:13px}
.v5-addon-options{border:1px solid #dfe9db;background:#f6faf5;border-radius:5px;margin:24px 0 8px;padding:18px 22px}
.v5-addon-options legend{font-size:15px;color:#406341;font-weight:500}
.v5-addon-options label{display:flex;gap:10px;align-items:center;font-size:14px}
.v5-addon-options .small{margin:8px 0 0;font-size:12px;color:#647365}
/* Header and footer share precise page-content horizontal alignment */
.footer-inner{max-width:var(--v5-max)!important;gap:22px!important;padding-top:30px!important;padding-bottom:34px!important}
.site-footer{background:#fbfbf8!important;border-top:1px solid #e1e7db}
.site-footer .brand{margin-right:18px}
.site-footer nav{gap:13px}
/* Embedded nonwebsite PDF link opens in a new tab. */
@media(min-width:1281px){.v5-page-hero .v5-hero-photo{width:min(64%,1150px)}.home-fullbleed{max-width:none}}
@media(max-width:1150px){.site-header .header-inner{min-height:80px}.site-header .brand img.brand-logo{width:170px!important}.site-header nav{gap:10px!important}.site-header nav a:not(.button){font-size:11px!important}.language-switch{font-size:9px}.v5-page-hero{min-height:470px}.v5-hero-content{padding-top:65px!important;padding-bottom:60px!important}}
@media(max-width:900px){.v5-page-hero{min-height:435px}.v5-page-hero .v5-hero-photo{width:80%;filter:saturate(.78)}.v5-hero-content{padding-top:55px!important}.site-header .header-inner{min-height:80px}.v5-simple .booking-layout{grid-template-columns:1fr}.v5-simple .booking-help{padding:30px}.about-hero-grid{grid-template-columns:1fr 1fr!important;gap:28px}}
@media(max-width:640px){:root{--v5-gutter:22px}.container,.header-inner,.footer-inner{padding-left:var(--v5-gutter)!important;padding-right:var(--v5-gutter)!important}
 body.v5-has-hero .v5-page-hero,body.v5-home .home-fullbleed{margin-top:-77px;padding-top:77px}
 .v5-page-hero{min-height:470px;align-items:start}.v5-page-hero .v5-hero-photo{width:100%;height:100%;object-position:65% center;opacity:.72}
 .v5-page-hero:after{background:linear-gradient(180deg,rgba(250,250,249,.96) 0%,rgba(250,250,249,.91) 53%,rgba(250,250,249,.65) 76%,rgba(250,250,249,.12) 100%)}
 .v5-page-hero.v5-tone-forest:after{background:linear-gradient(180deg,rgba(250,250,249,.97),rgba(250,250,249,.9) 58%,rgba(250,250,249,.53))}
 .v5-hero-content{padding-top:70px!important;padding-bottom:40px!important}.v5-hero-content h1{font-size:clamp(36px,9vw,48px);max-width:420px}.v5-hero-content .v5-hero-subtitle{font-size:14px;line-height:1.7;max-width:390px}
 .v5-home .home-fullbleed{min-height:625px}.v5-home .home-fullbleed:before{background-size:auto 72%;background-position:center bottom 0}
 .v5-home .home-fullbleed:after{background:linear-gradient(180deg,rgba(250,250,249,.99) 0%,rgba(250,250,249,.99) 37%,rgba(250,250,249,.85) 63%,rgba(250,250,249,.1))}
 .v5-home .home-fullbleed .home-message{padding-top:60px}.v5-home .home-message h1{font-size:38px}.v5-home .home-message h1 br{display:initial!important}
 .v5-page-hero+.section:not(.group-section){padding-top:43px}.about-hero-grid{display:flex!important;flex-direction:column;gap:17px!important}.about-top{padding-top:36px!important}.about-hero-grid .portrait-wrap{height:400px!important}
 .service-overview-grid{display:flex;flex-direction:column;gap:15px}.service-overview-grid .photo-wrap{height:235px!important;min-height:235px!important}
 .v5-inline-visual img{height:270px}.v5-inline-visual{margin-top:30px}
 .v5-simple .booking-section{padding-top:33px}.v5-simple .booking-help{padding:26px 22px}.contact-v3{padding-top:35px!important;padding-bottom:45px!important}
 .v5-coverage-photo{height:220px!important}.coverage-graphic{min-height:220px!important}
 .footer-inner{padding-top:34px!important;padding-bottom:35px!important;gap:15px!important}
}
