/* Shared Oakbridge shell. Deliberately scoped away from page content. */
.so-site-header,.so-site-footer,.so-related{--so-green:#052e25;--so-gold:#d8bd80;--so-link:#d4ded8;--so-rule:#315249;font-family:Inter,Arial,Helvetica,sans-serif;line-height:1.5}
.so-site-header *,.so-site-footer *,.so-related *{box-sizing:border-box}
.so-site-header a,.so-site-footer a,.so-related a{text-decoration:none}
.so-site-header a:hover,.so-site-footer a:hover,.so-related a:hover{text-decoration:underline;text-underline-offset:4px}
.so-site-header :is(a,summary):focus-visible,.so-site-footer :is(a,summary):focus-visible,.so-related a:focus-visible{outline:3px solid #b08b3a;outline-offset:3px}
.so-inner{width:100%;max-width:1320px;padding-inline:28px;margin-inline:auto}
.site-header.so-site-header{background:#fff;border-bottom:1px solid #e1e6df;color:#173b31;position:relative;z-index:50;padding:0}
.so-header-row{display:flex;gap:22px;align-items:center;min-height:86px;position:relative}
.so-header-brand{flex-shrink:0}
.so-lockup{width:190px;height:auto;display:block;max-width:100%}
.so-desktop-nav{margin-left:auto;display:flex;align-items:center;gap:20px;font-size:13px;font-weight:600}
.so-site-header summary,.so-site-footer summary{list-style:none;cursor:pointer}
.so-site-header summary::-webkit-details-marker,.so-site-footer summary::-webkit-details-marker{display:none}
.so-nav-group>summary{display:flex;align-items:center;gap:6px;min-height:44px;padding-block:14px;white-space:nowrap}
.so-nav-group>summary::after{content:'⌄';line-height:1}
.so-nav-group[open]>summary::after{transform:rotate(180deg)}
.so-menu-panel{position:absolute;inset:75px 28px auto;z-index:10;background:#fff;border:1px solid #d8e0d9;box-shadow:0 10px 24px #052e2515;padding:24px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 28px;font-size:14px;font-weight:400}
.so-site-header a{color:inherit}
.so-menu-panel a{min-height:44px;padding:10px 8px;display:flex;align-items:center;border-radius:3px}
.so-menu-panel a:hover{background:#f3f5ef}
.so-header-phone{white-space:nowrap;font-size:13px;font-weight:600;min-height:44px;display:flex;align-items:center}
.so-site-header .so-quote{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:10px 16px;background:var(--so-gold);color:#142e25;border-radius:4px;font-size:13px;font-weight:600;white-space:nowrap}
.so-quote-short{display:none}
.so-mobile{display:none;margin-left:auto}
.so-mobile>summary{min-height:44px;display:flex;align-items:center;padding:8px 13px;border:1px solid #b9c6bc;border-radius:4px;font-size:14px}
.so-mobile-panel{position:absolute;left:0;right:0;top:100%;max-height:calc(100dvh - 86px);overflow-y:auto;overscroll-behavior:contain;padding:18px 28px;border:1px solid #d8e0d9;border-top:0;background:#fff;box-shadow:0 10px 24px #052e2515}
.so-mobile-panel .so-nav-group{border-bottom:1px solid #e1e6df}
.so-mobile-panel .so-nav-group>summary{justify-content:space-between;min-height:50px}
.so-mobile-panel .so-menu-panel{position:static;grid-template-columns:1fr;padding:4px 8px 14px;border:0;box-shadow:none;gap:0}
.so-mobile-actions{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:12px;padding-top:20px;font-size:14px}
.so-mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:44px}
.so-related{padding:23px 0;background:#e8ede5;border-top:1px solid #d4decf;color:#173b31}
.so-related-row{display:flex;gap:20px 34px;align-items:center;flex-wrap:wrap}
.so-related h2{font:600 14px/1.5 Inter,Arial,sans-serif;margin:0}
.so-related-links{display:flex;gap:8px 26px;flex-wrap:wrap;font-size:14px}
.so-related a{color:inherit;min-height:44px;display:flex;align-items:center}
.so-related a::after{content:' →';margin-left:6px}
.site-footer.so-site-footer{background:var(--so-green);color:#fff;padding:36px 0 0;margin:0}
.so-footer-grid{display:grid;grid-template-columns:1.55fr 1.12fr 1.15fr .8fr;grid-template-areas:'brand services planning company' 'areas areas areas areas';gap:30px 38px}
.so-footer-brand{grid-area:brand;min-width:0}
.so-brand-line{display:flex;align-items:center;gap:10px;color:#fff}
.so-brand-line span{font-family:Georgia,serif;font-size:20px;font-weight:400}
.so-mark{width:32px;height:40px;object-fit:contain}
.so-footer-brand p{font-size:14px;line-height:1.55;margin:14px 0;max-width:290px;color:var(--so-link)}
.so-footer-brand .so-tagline{color:var(--so-gold);font-size:13px;margin:8px 0 18px}
.so-footer-contact{display:flex;flex-direction:column;gap:2px;font-size:14px;overflow-wrap:anywhere}
.so-footer-contact a{color:var(--so-link);display:flex;align-items:center;min-height:34px}
.so-footer-contact .so-phone{font-size:18px;color:#fff}
.so-footer-brand #company-hours{font-size:12px;margin:14px 0 0;color:#b9cbc2}
.so-services{grid-area:services}.so-planning{grid-area:planning}.so-company{grid-area:company}
.so-areas{grid-area:areas;padding-top:22px;border-top:1px solid var(--so-rule)}
.so-footer-group{min-width:0}
.so-footer-group>summary{color:var(--so-gold);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;margin:0 0 12px;cursor:default}
.so-footer-group ul{padding:0;margin:0;list-style:none}
.so-footer-group li{margin:0}
.so-footer-group a{color:var(--so-link);display:inline-block;padding:6px 0;font-size:14px;line-height:1.35}
.so-areas ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 24px}
.so-footer-bottom{border-top:1px solid var(--so-rule);margin-top:28px;display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;padding:18px 0 22px;font-size:12px;color:#b9cbc2}
@media(max-width:1100px){.so-desktop-nav,.so-header-phone{display:none}.so-mobile{display:block}.so-header-row{gap:16px}.so-header-row>.so-quote{margin-left:auto}.so-mobile{margin-left:0}}
@media(max-width:740px){.so-footer-grid{grid-template-columns:1.4fr 1fr;grid-template-areas:'brand services' 'planning company' 'areas areas';gap:28px 32px}.so-areas ul{grid-template-columns:repeat(3,minmax(0,1fr))}.so-related-row{display:block}.so-related-links{margin-top:12px}}
@media(max-width:520px){
 .so-inner{padding-inline:20px}.so-header-row{min-height:74px;gap:8px}.so-lockup{width:158px}
 .so-header-row>.so-quote{padding:10px 11px}.so-quote-long{display:none}.so-quote-short{display:inline}
 .so-mobile-panel{max-height:calc(100dvh - 74px);padding:12px 20px}.so-mobile-panel .so-menu-panel a{font-size:16px}
 .so-related-links{display:grid;gap:3px}.so-footer-contact{gap:0}.so-footer-contact a{min-height:44px}
 .site-footer.so-site-footer{padding-top:30px}.so-footer-grid{grid-template-columns:1fr;grid-template-areas:'brand' 'services' 'areas' 'planning' 'company';gap:0}
 .so-footer-brand{padding-bottom:26px}.so-footer-brand p{max-width:none}
 .so-footer-group{border-top:1px solid var(--so-rule);padding-top:0}
 .so-footer-group>summary{display:flex;align-items:center;justify-content:space-between;margin:0;min-height:54px;font-size:13px;cursor:pointer}
 .so-footer-group>summary::after{content:'+';font-size:18px}.so-footer-group[open]>summary::after{content:'−'}
 .so-footer-group ul{padding-bottom:16px}.so-footer-group a{min-height:44px;display:flex;align-items:center;font-size:16px}
 .so-areas ul{grid-template-columns:1fr}.so-footer-bottom{margin-top:0;display:block;line-height:1.6}.so-footer-bottom span{display:block}
}
@media(max-width:360px){.so-inner{padding-inline:16px}.so-lockup{width:138px}.so-mobile>summary{padding-inline:10px}}
