/* Shared editorial design; homepage keeps its approved composition. */
:root { --bg-main:#fcfafc; --bg-alt:#f1eaf4; --text-main:#281a32; --text-muted:#726777; --dark:#1c1027; }
body { background:#fcfafc; }
/* Content must never depend on a scroll observer to become readable. */
body:not(.home-page) .reveal { opacity:1; transform:none; transition:none; }
.error-page { background:#1c1027; }
body:not(.home-page) .page-hero { padding:170px max(40px,calc((100vw - 1200px)/2)) 85px !important; min-height:490px; background:#1c1027; text-align:left; gap:60px; }
body:not(.home-page) .page-hero-inner { max-width:1000px; margin:0 auto; align-items:flex-start; text-align:left; }
body:not(.home-page) .page-hero h1 { font-size:clamp(40px,4.5vw,68px); font-weight:600; letter-spacing:-.05em; line-height:1.08; }
body:not(.home-page) .page-hero p { color:#d8ccdf; font-size:17px; line-height:1.8; max-width:680px; margin-left:0; }
.page-hero .hero-actions { justify-content:flex-start; }
.page-hero .highlight { color:#d8acee; -webkit-text-fill-color:#d8acee; }
.page-hero-bg { opacity:.15; }
.page-hero-grid, .page-hero::after { display:none; }
.page-hero-media { border-radius:16px; box-shadow:none; border:1px solid #ffffff1a; }
.page-hero-media img { object-fit:cover; }
body:not(.home-page) .section-wrap, body:not(.home-page) .section-wrap-alt { padding:90px 40px; }
.section-wrap-alt { background:#f1eaf4; }
.container { max-width:1200px; }
.section-title, .cta-content h2, .cta-band h2 { font-weight:600; letter-spacing:-.045em; line-height:1.15; }
.section-title { font-size:clamp(32px,3.6vw,48px); }
.section-label, .hero-eyebrow { font-size:11px; letter-spacing:.14em; }
.section-desc { line-height:1.8; }
.section-header-center { max-width:760px; margin-bottom:44px; }
.cards-grid, .services-grid { gap:24px; align-items:stretch; }
.card, .service-card, .audience-card, .faq-card { border-radius:15px; box-shadow:none; border:1px solid #281a3212; background:#fff; }
.card, .service-card { padding:30px; transform:none !important; }
.card:hover, .service-card:hover, .faq-card:hover { box-shadow:0 8px 24px #281a3208; transform:none; border-color:#64258f33; }
.card-title, .service-title, .feature-text h3 { font-weight:600; letter-spacing:-.025em; }
.card-icon, .service-icon, .feature-icon { border-radius:10px; background:#f3edf7; box-shadow:none; }
.btn { border-radius:9px; box-shadow:none; }
header .btn { border-radius:100px; }
.split-grid { gap:60px; align-items:center; }
.split-visual, .split-visual img { border-radius:16px; }
.split-content > p { line-height:1.85; }
.cta-section, .cta-band { background:#291837; border-radius:0; padding:76px 40px; }
.cta-bg, .cta-band::before { display:none; }
.cta-content, .cta-band-inner { max-width:1100px; margin-inline:auto; }
.cta-content h2, .cta-band h2 { color:#fff; font-size:clamp(32px,3.5vw,48px); }
.cta-content p, .cta-band p { color:#d8ccdf; }
details.faq-card { padding:0; }
details.faq-card summary { padding:25px 28px; cursor:pointer; font-size:17px; font-weight:600; color:#281a32; }
details.faq-card p { padding:0 28px 26px; margin:0; }
details.faq-card[open] { border-color:#64258f44; }
footer { background:#1c1027; }
.location-breadcrumb { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:24px; color:#dbc2e7; font-size:13px; }
.location-breadcrumb a { color:inherit; }
.location-intro { max-width:800px; }
.location-intro p { margin-top:20px; line-height:1.85; }
.location-services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.location-services article { padding:30px; background:#fff; border:1px solid #281a3212; border-radius:15px; scroll-margin-top:110px; }
.location-services h3 { font-size:21px; font-weight:600; margin-bottom:14px; letter-spacing:-.025em; }
.location-services p { line-height:1.8; margin-bottom:20px; }
.location-services a, .location-intro a { color:#64258f; font-weight:600; }
.location-links { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.location-links a { padding:10px 16px; border:1px solid #64258f24; border-radius:8px; }
:focus-visible { outline:3px solid #a66bc6; outline-offset:5px; }
@media(max-width:900px) {
 body:not(.home-page) .page-hero { padding:140px 28px 60px !important; gap:32px; }
 body:not(.home-page) .section-wrap, body:not(.home-page) .section-wrap-alt { padding:64px 28px; }
 .split-grid { gap:32px; }
}
@media(max-width:600px) {
 body:not(.home-page) .page-hero { padding:124px 20px 50px !important; min-height:0; }
 body:not(.home-page) .page-hero h1 { font-size:40px; }
 body:not(.home-page) .section-wrap, body:not(.home-page) .section-wrap-alt { padding:56px 20px; }
 .location-services { grid-template-columns:1fr; }
 .card, .service-card, .location-services article { padding:25px; }
 .cta-section, .cta-band { padding:56px 20px; }
}
