/* ==== Visual lift + large-screen scaling (Nov 2026) ==== */
:root{--l-paper:#F6F2EC;--l-sand:#EFE8DC;--l-sage:#E9EDE6;--l-fir:#2F4A3F;--l-fir-d:#23382F;--l-ink:#1D2422;--l-gold:#CD9933;--z:1}

/* ---------- Buttons: fir green primary, calm pill ---------- */
html:root body .btn-solid:not(.mbar .btn),
html:root body header.hdr.hdr.hdr.hdr .hdr-book .btn,
html:root body header.hdr.hdr.hdr.hdr.hx-hdr .hdr-book .btn,
html:root body .hx .hx-book{background-color:var(--l-fir)!important;border-color:var(--l-fir)!important;color:#fff!important;border-radius:999px!important}
html:root body .btn-solid:not(.mbar .btn):hover,
html:root body header.hdr.hdr.hdr.hdr .hdr-book .btn:hover,
html:root body .hx .hx-book:hover{background-color:var(--l-fir-d)!important;background-image:none!important;color:#fff!important;transform:translateY(-1px);box-shadow:0 12px 26px -14px rgba(29,36,34,.55)}
html:root body .hx .hx-loc,html:root body .btn-line{border-radius:999px!important}
html:root body .hx .hx-loc{background-color:rgba(255,255,255,.7)!important;border-color:rgba(29,36,34,.35)!important;color:var(--l-ink)!important;backdrop-filter:blur(6px)}
html:root body .hx .hx-loc:hover{background-color:#fff!important;border-color:var(--l-fir)!important;color:var(--l-fir)!important}

/* ---------- Hero: soft warm gradient + fine grain ---------- */
html body .hx .hx-shade::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:multiply;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
html body .hx .hx-shade::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 90% at 0% 100%,rgba(205,153,51,.10),rgba(205,153,51,0) 55%)}
html body .hx-facts li{letter-spacing:.16em}

/* ---------- Section rhythm on the homepage ---------- */
html body .home-svc{background:var(--l-paper)!important}
html body .home-book{background:#fff!important}
html body .home-pv{background:var(--l-sage)!important}
html body .home-pv .pv-grid,html body .home-pv .pv-more{position:relative}

/* deep fir band: Patient Portal */
html:root body .home-portal{background:var(--l-fir)!important;color:#EEF1EC!important;border-top:0!important;position:relative;overflow:hidden}
html:root body .home-portal::after{content:"";position:absolute;right:-120px;top:-120px;width:420px;height:420px;border-radius:50%;border:1px solid rgba(205,153,51,.35);pointer-events:none}
html:root body .home-portal::before{content:"";position:absolute;right:-40px;top:-40px;width:260px;height:260px;border-radius:50%;border:1px solid rgba(255,255,255,.12);pointer-events:none}
html:root body .home-portal h2{color:#fff!important}
html:root body .home-portal .label{color:#E2C487!important}
html:root body .home-portal .home-lede,html:root body .home-portal p{color:rgba(238,241,236,.86)!important}
html:root body .home-portal a,html:root body .home-portal .link-arrow{color:#fff!important;border-color:rgba(255,255,255,.5)!important}
html:root body .home-portal a:hover{color:#E2C487!important}
html:root body .home-portal .m-rule{background:var(--l-gold)}

/* ---------- Service cards: refined, line icon, hover lift ---------- */
html:root body .home-svc-grid>li{border-radius:18px!important;border-color:#E6DFD2!important;box-shadow:0 1px 0 rgba(29,36,34,.03),0 18px 40px -32px rgba(29,36,34,.35);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease,border-color .45s ease!important}
html:root body .home-svc-grid>li::after{content:"";position:absolute;top:22px;right:22px;width:44px;height:44px;border-radius:50%;background:var(--l-paper) center/22px 22px no-repeat;border:1px solid #E6DFD2}
html:root body .home-svc-grid>li:nth-child(1)::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F4A3F' stroke-width='1.5' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5 21 21'/%3E%3Ccircle cx='10.5' cy='10.5' r='2'/%3E%3C/svg%3E")}
html:root body .home-svc-grid>li:nth-child(2)::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F4A3F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 5-13 14-14-1 9-6 14-14 14Z'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E")}
html:root body .home-svc-grid>li:nth-child(3)::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232F4A3F' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c3.5 4.2 6 7.6 6 10.6A6 6 0 0 1 6 13.6C6 10.6 8.5 7.2 12 3Z'/%3E%3Cpath d='M9.5 14.5a2.6 2.6 0 0 0 2.5 2'/%3E%3C/svg%3E")}
html:root body .home-also a{transition:border-color .3s ease,color .3s ease,background-color .3s ease}
html:root body .home-also a:hover{border-color:var(--l-fir)!important;color:var(--l-fir)!important}
html:root body .svc-grid>.svc{border-radius:18px!important;transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease!important}
@media (hover:hover) and (pointer:fine){
 html:root body .home-svc-grid>li:hover,html:root body .svc-grid>.svc:hover{transform:translateY(-6px)!important;border-color:#D6CBB8!important;box-shadow:0 30px 50px -34px rgba(29,36,34,.45)!important}
}

/* ---------- Photography: rounded, soft depth (no extra cropping) ---------- */
html:root body .pv-grid>.pv{border-radius:16px!important;overflow:hidden;box-shadow:0 22px 44px -36px rgba(29,36,34,.45)}
html:root body .pv-grid .pv-ph{border-radius:0}
html body .bio-fig,html body .bio-fig .ph{border-radius:20px;overflow:hidden}
html body .loc-fig .ph,html body .loc-hmedia .ph{border-radius:20px;overflow:hidden}
html body .phero-fig{border-radius:0 0 0 28px}
html body .home-offices>li{transition:background-color .3s ease}

/* ---------- Inner page headers: warm gradient wash ---------- */
html body .phero-img.no-fig,html body .bio-hero,html body .loc-hero{background:linear-gradient(180deg,var(--l-paper) 0%,#FBF9F5 70%,#fff 100%)}

/* ---------- Closing band: deep fir with light text ---------- */
html:root body .close-band{background:var(--l-fir)!important;color:#EEF1EC}
html:root body .close-band h2,html:root body .close-band .h2,html:root body .close-band h3{color:#fff!important}
html:root body .close-band p,html:root body .close-band em{color:rgba(238,241,236,.86)!important}
html:root body .close-band .link-arrow,html:root body .close-band a:not(.btn){color:#fff!important;border-color:rgba(255,255,255,.5)!important}
html:root body .close-band .btn-solid:not(.mbar .btn){background-color:var(--l-paper)!important;border-color:var(--l-paper)!important;color:var(--l-ink)!important}
html:root body .close-band .btn-solid:not(.mbar .btn):hover{background-color:#fff!important;color:var(--l-fir)!important}
html:root body .close-band svg{color:#E2C487}

/* ---------- Footer: warm sand, gold hairline ---------- */
html:root body .foot{background:var(--l-sand)!important;border-top:1px solid #DED3C1!important}

/* ---------- Large screens (27" and up): scale the whole layout ---------- */
@media (min-width:1700px){:root{--z:1.12}html{zoom:1.12}}
@media (min-width:2200px){:root{--z:1.3}html{zoom:1.3}}
@media (min-width:2900px){:root{--z:1.45}html{zoom:1.45}
 html:root body .hx .hx-media img{object-position:60% 18%!important}}
@media (min-width:1600px){
 html:root body .hdr .hdr-in{padding:0 max(40px,calc((100% - 1440px)/2))!important}
 html:root body .hdr .wm-logo{flex:none!important}
 html:root body .hdr .wm-logo img{max-width:none!important;width:auto!important}
 html:root body .hdr .nav{flex:none}
}
@media (min-width:1700px){
 html:root body .hx{min-height:calc(100svh / var(--z))!important;height:auto!important;max-height:calc(1100px)!important}
 html:root body .phero-img:not(.no-fig){min-height:min(calc(78svh / var(--z)),760px)!important}
}
@media (min-width:1700px){
 html:root body .home-pv .pv-grid,html:root body .home-pv .pv-more{box-sizing:border-box;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;padding-left:72px!important;padding-right:72px!important;width:auto!important}
}

/* ---------- Booking chooser dialog ---------- */
html body dialog.bk{border:0;padding:0;border-radius:20px;width:min(480px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;background:#fff;color:var(--l-ink);box-shadow:0 40px 80px -30px rgba(29,36,34,.45)}
html body dialog.bk::backdrop{background:rgba(29,36,34,.45);backdrop-filter:blur(3px)}
html body .bk-in{position:relative;padding:28px 26px 22px}
html body .bk-x{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;border:1px solid #E6DFD2;background:var(--l-paper);font-size:24px;line-height:1;color:var(--l-ink);cursor:pointer}
html body .bk .label{margin:0 0 8px!important}
html body .bk-t{font-family:var(--serif);font-size:1.6rem!important;line-height:1.15!important;margin:0 48px 8px 0!important;font-weight:600}
html body .bk-sub{margin:0 0 16px;color:#55524B;font-size:.98rem}
html body .bk-list{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
html body .bk-call{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 16px;border:1px solid #E6DFD2;border-radius:14px;text-decoration:none;color:var(--l-ink);background:var(--l-paper);transition:border-color .25s ease,background-color .25s ease}
html body .bk-call:hover,html body .bk-call:focus-visible{border-color:var(--l-fir);background:#fff}
html body .bk-city{font-weight:600;min-width:76px}
html body .bk-num{flex:1;color:#3A3631;white-space:nowrap}
html body .bk-go{font-size:.85rem;font-weight:600;color:#fff;background:var(--l-fir);border-radius:999px;padding:6px 14px}
html body .bk-pt{border-top:1px solid #E6DFD2;padding-top:16px}
html body .bk-pt p{margin:0 0 12px;font-size:.98rem}
html body .bk-pt .btn{width:100%}
html body .bk-note{margin:14px 0 0;font-size:.92rem;text-align:center}
html body .bk-note a{color:var(--l-fir)}
html.bk-open{overflow:hidden}

/* ---------- Reviews strip (reserved; hidden until real reviews are added) ---------- */
html body .reviews-strip{background:var(--l-paper);padding:64px 0}
html body .reviews-strip[hidden]{display:none!important}
html body .reviews-strip .rv-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
html body .reviews-strip .rv-item{margin:0;background:#fff;border:1px solid #E6DFD2;border-radius:18px;padding:22px}
html body .reviews-strip blockquote{margin:0 0 12px;font-family:var(--serif);font-size:1.2rem;line-height:1.4}
html body .reviews-strip figcaption{font-size:.9rem;color:#55524B}

/* ---------- Real office photos in articles ---------- */
html body .lp-fig{margin:8px 0 40px}
html body .lp-fig picture,html body .lp-fig img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:18px}
html body .lp-fig img{box-shadow:0 24px 48px -36px rgba(29,36,34,.5)}
html body .lp-fig figcaption{font-size:.88rem;color:#55524B;margin-top:10px}

/* ---------- Reviews strip (live) ---------- */
html body .reviews-strip{background:#fff;padding:72px 0;border-top:1px solid #EEE7DB}
html body .reviews-strip h2{margin-bottom:28px}
html body .reviews-strip .rv-list{grid-template-columns:repeat(4,minmax(0,1fr))}
html body .reviews-strip .rv-item{display:flex;flex-direction:column;justify-content:space-between;background:var(--l-paper)}
html body .reviews-strip blockquote{margin:0 0 16px;font-size:1.12rem;line-height:1.45}
html body .reviews-strip blockquote p{margin:0}
html body .reviews-strip blockquote::before{content:"";display:block;width:28px;height:1px;background:var(--l-gold);margin-bottom:14px}
html body .reviews-strip .rv-more{margin:24px 0 0;font-size:.92rem;color:#55524B}
html body .reviews-strip .rv-more a{color:var(--l-fir)}
@media (max-width:1099px){html body .reviews-strip .rv-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){
 html body .reviews-strip{padding:48px 0}
 html body .reviews-strip .home-wrap{padding-left:20px!important;padding-right:0!important}
 html body .reviews-strip .rv-list{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding:0 20px 8px 0;-webkit-overflow-scrolling:touch}
 html body .reviews-strip .rv-item{flex:0 0 82%;scroll-snap-align:start}
 html body .reviews-strip .rv-more{padding-right:20px}
}

/* hero wide image wrapper (keeps the phone hero from downloading the desktop image) */
html body .hx-media picture.hx-wide{display:block;width:100%;height:100%}
@media (max-width:767px){html body .hx>.hx-media picture.hx-wide{display:none!important}}

/* Klara gate: message controls only where Klara is enabled (see klara-msg.js) */
html:not(.kl-on) .mbar-msg,html:not(.kl-on) .js-msg,html:not(.kl-on) .kl-launch,html:not(.kl-on) .kl-on-txt{display:none!important}
html.kl-on .kl-off-note{display:none!important}
html body .kl-off-note{font-size:.95rem;color:#55524B;max-width:52ch}
