/* Shared finishing details; individual layouts and palette tokens remain in each demo. */
html { scroll-padding-top: 130px; }
body { text-rendering: optimizeLegibility; }
:is(.logo,.nav-brand) { display:inline-flex; align-items:center; gap:11px; flex-shrink:0; }
.brand-mark { width:38px; height:38px; flex:none; overflow:visible; }
:is(.logo,.nav-brand) > .brand-wordmark { font:inherit; letter-spacing:inherit; color:inherit; display:block; }
.brand-wordmark { white-space:nowrap; }
.template-banner { height:32px; font:500 12px/1.2 system-ui,sans-serif; letter-spacing:.015em; }
:is(.site-header,.site-nav) { box-shadow:0 4px 24px #00000005; }
:is(.site-header nav,.nav-links) { gap:clamp(14px,1.65vw,28px); }
:is(.site-header nav,.nav-links) a { font-size:14px; }
:is(.hero h1,.hero-title) { text-wrap:balance; letter-spacing:-.045em; }
:is(.hero-desc,.hero-subtitle,.section-desc,.section-subtitle) { font-size:1rem; line-height:1.8; }
:is(.service-text p,.service-card p,.condition-card p,.step-card p,.about-content > p,.team-role) { font-size:1rem; line-height:1.7; }
:is(.hero-actions,.header-right) { flex-wrap:wrap; }
:is(.btn-primary,.btn-hero,.btn-header,.btn-book,.btn-appt,.nav-cta) { min-height:44px; display:inline-flex; align-items:center; justify-content:center; }
:is(.service-card,.team-card,.condition-card,.step-card) { transition:transform .25s,box-shadow .25s,border-color .25s; }
:is(.service-card,.team-card,.condition-card,.step-card):hover { box-shadow:0 12px 32px #0000000b; }
:is(input,select,textarea) { font-size:16px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible { outline:3px solid currentColor; outline-offset:5px; }
.demo-menu { display:none; }
.demo-menu summary { list-style:none; cursor:pointer; font:600 14px/1 system-ui,sans-serif; padding:14px 12px; border:1px solid currentColor; border-radius:6px; }
.demo-menu summary::-webkit-details-marker { display:none; }
.demo-menu[open] summary { opacity:.7; }
.demo-menu-links { position:absolute; top:calc(100% + 8px); left:16px; right:16px; display:grid; padding:14px; gap:3px; color:#16282c; background:#fff; border:1px solid #dbe2e3; box-shadow:0 16px 40px #0002; border-radius:12px; max-height:70vh; overflow:auto; }
.demo-menu-links a { padding:13px; color:inherit!important; font:500 15px/1.3 system-ui,sans-serif; text-decoration:none; border-radius:6px; }
.demo-menu-links a:hover { background:#eef3f4; }
/* Each established practice retains an individual art direction. */
[data-practice="grove"] .hero { grid-template-columns:32px 1.06fr 1fr; min-height:760px; }
[data-practice="grove"] .hero-images { position:relative; padding:3rem 3rem 4rem 0; }
[data-practice="grove"] .hero-img-top { aspect-ratio:4/5; max-height:590px; border-radius:160px 160px 12px 12px; }
[data-practice="grove"] .hero-img-bottom { position:absolute; bottom:35px; left:-40px; width:39%; aspect-ratio:1; border:8px solid var(--white); box-shadow:0 15px 35px #23342625; }
[data-practice="meridian"] .hero-images { gap:16px; transform:rotate(-2deg); }
[data-practice="meridian"] .hero-img { border-radius:24px; box-shadow:0 16px 28px #0f2a3f12; }
[data-practice="meridian"] .hero-content { padding-right:3rem; }
[data-practice="solace"] .hero-img-main { border-radius:180px 180px 0 0; }
[data-practice="solace"] .hero { border-bottom:1px solid var(--border); }
[data-practice="atlas"] .hero-img { border-radius:6px 80px 6px 6px; box-shadow:16px 16px 0 var(--steel); }
[data-practice="atlas"] .hero h1 { text-transform:uppercase; font-weight:600; }
[data-practice="crest"] .hero-img-main { border-radius:160px 160px 24px 24px; }
[data-practice="crest"] .service-card { border-radius:20px; }
[data-practice="haven"] .hero-img-main { border-radius:48% 48% 12px 12px; }
[data-practice="haven"] .hero h1 { font-weight:500; }
[data-practice="beacon"] .hero-img { border-radius:100px 8px 8px 8px; }
[data-practice="beacon"] .hero { background-image:radial-gradient(ellipse at 75% 20%,#e8a84c12,transparent 60%); }
[data-practice="clarity"] .hero-img-main { border-radius:140px 140px 12px 12px; }
[data-practice="clarity"] .hero h1 { font-weight:500; }
[data-practice="summit"] .hero-img { border-radius:12px 90px 12px 12px; box-shadow:14px 14px 0 var(--teal-pale); }
[data-practice="stillwater"] .hero-img { border-radius:48% 48% 12px 12px; }
[data-practice="stillwater"] .condition-card { border-radius:16px; }
[data-practice="ember"] .hero-portrait { border-radius:180px 180px 8px 8px; }
[data-practice="prism"] .hero-img { border-radius:140px 12px 12px 12px; box-shadow:14px 14px 0 var(--blue-pale); }
[data-practice="sanctuary"] .hero-image { border-radius:120px 12px 12px 12px; }
[data-practice="sanctuary"] .nav-brand { font-size:1.05rem; }
[data-practice="vesper"] .glass-card { backdrop-filter:blur(24px); border-radius:20px; box-shadow:0 24px 60px #0003; }
[data-practice="nova"] .hero-visual { border-radius:180px 180px 8px 8px; }
[data-practice="nova"] { cursor:auto; }
[data-practice="nova"] .cursor-dot,[data-practice="nova"] .cursor-ring { display:none; }
[data-practice="lumen"] .hero h1 { font-weight:400; }
[data-practice="helix"] .hero-portrait { border-radius:130px 130px 4px 4px; }
@media(min-width:1101px) { .site-header { padding-left:clamp(24px,3vw,48px); padding-right:clamp(24px,3vw,48px); } .header-left { gap:clamp(20px,2.5vw,40px); } }
@media(max-width:1200px) { .header-phone { display:none; } .site-header .header-left { gap:20px; } }
@media(max-width:1100px) {
 .demo-menu { display:block; margin-left:auto; flex-shrink:0; }
 .site-header nav,.site-nav .nav-links,.nav-pill .nav-links { display:none!important; }
 .site-header .header-right,.site-nav .nav-cta,.nav-pill>.nav-cta { display:none; }
 .site-header,.nav-inner,.nav-pill { gap:16px; }
 [data-practice="grove"] .hero { grid-template-columns:24px 1fr 1fr; min-height:620px; }
 [data-practice="grove"] .hero-content { padding:3rem 2rem; }
 .hero h1 { overflow-wrap:normal; }
}
@media(max-width:700px) {
 .site-header { padding:0 18px; }
 .brand-mark { width:30px; height:30px; }
 :is(.logo,.nav-brand) { font-size:1.25rem; gap:8px; }
 [data-practice="sanctuary"] .nav-brand { font-size:.86rem; }
 .template-banner { padding:0 14px; font-size:11px; }
 .template-banner a { font-size:11px; }
 :is(.hero h1,.hero-title) { font-size:clamp(2.7rem,11vw,4rem); line-height:1.08; }
 .hero-actions { gap:16px; }
 [data-practice="grove"] .hero { display:block; }
 [data-practice="grove"] .hero-accent { display:none; }
 [data-practice="grove"] .hero-content { padding:3rem 1.5rem 2rem; }
 [data-practice="grove"] .hero-images { padding:0 1.5rem 3rem; }
 [data-practice="grove"] .hero-img-top { max-height:420px; }
 [data-practice="grove"] .hero-img-bottom { left:10px; bottom:15px; width:36%; }
 [data-practice="meridian"] .hero-images { transform:none; }
 .brand-wordmark { white-space:normal; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
 .reveal,.reveal-img,.hero-title .word>span { opacity:1!important; transform:none!important; clip-path:none!important; }
}

.site-header .demo-menu nav.demo-menu-links { display:grid!important; }

.journal-brand { display:flex; align-items:center; justify-content:center; gap:10px; width:max-content; margin:0 auto 25px; font:500 25px Georgia,serif; text-decoration:none; }
@media(max-width:600px) { .site-header { top:32px; } }
/* Keep all initially animated content available with motion disabled. */
@media(prefers-reduced-motion:reduce) {
 :is(.hero-eyebrow,.hero-meta,.hero-desc,.hero-actions,.hero-visual,.hero-portrait,.ecg-svg-wrap,.ecg-copy) { opacity:1!important; transform:none!important; clip-path:none!important; }
 .ecg-line { stroke-dashoffset:0!important; }
}
[data-practice="helix"] .hero-grid { align-items:center; }
[data-practice="helix"] .brand-wordmark em { margin-left:5px; }
[data-practice="nova"] .nav-pill { width:max-content; max-width:calc(100% - 32px); gap:24px; }
[data-practice="nova"] .nav-cta { white-space:nowrap; }
[data-practice="ember"] .hero { grid-template-columns:1fr 1.08fr; min-height:760px; }
[data-practice="ember"] .hero-left { padding:32px; }
[data-practice="ember"] .hero-left .side-image { width:100%; height:100%; min-height:610px; border-radius:180px 180px 8px 8px; }
[data-practice="ember"] .hero-right { padding:48px; }
[data-practice="ember"] .hero-portrait { width:115px; height:135px; margin-bottom:25px; }
[data-practice="ember"] .hero h1 { font-size:3.8rem; max-width:550px; }
[data-practice="ember"] .hero-text { font-size:16px; color:#fff; }
[data-practice="ember"] .hero-cta { width:max-content; border-radius:6px; }
:is([data-practice="atlas"],[data-practice="beacon"],[data-practice="vesper"]) :is(.hero-desc,.hero-subtitle,.glass-stat-text span,.glass-stat-text p) { color:#bdc4cc; }
:is([data-practice="grove"],[data-practice="haven"],[data-practice="stillwater"],[data-practice="solace"]) :is(.hero-desc,.hero-subtitle) { color:color-mix(in srgb,currentColor 85%,#181818); }
@media(max-width:1100px) { [data-practice="nova"] .nav-pill { width:calc(100% - 32px); } }
@media(max-width:700px) {
 [data-practice="ember"] .hero { display:flex; flex-direction:column; }
 [data-practice="ember"] .hero-right { order:0; padding:36px 24px; }
 [data-practice="ember"] .hero-left { order:1; padding:24px; }
 [data-practice="ember"] .hero-left .side-image { height:380px; min-height:0; }
 [data-practice="ember"] .hero h1 { font-size:clamp(2.7rem,11vw,3.8rem); }
}
