/* Bay 7 shared foundation. One type scale and one navigation system. */
:root { color-scheme:light; --paper:#fffefa; --white:#fff; --ink:#222d29; --muted:#5d6660; --line:#dcded6; --blue:#9e4726; --blue-dark:#79341c; --blue-soft:#f2e9df; --signal:#e8bd96; --shell:min(1240px,calc(100% - 64px)); --shell-narrow:var(--shell); --dock-lift:0px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-padding-top:100px; -webkit-text-size-adjust:100%; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
.copy-compact { display:none; }
@media(max-width:600px) { .copy-full { display:none; } .copy-compact { display:inline; } }
@media print { .copy-full { display:inline!important; } .copy-compact { display:none!important; } }
body.menu-open { overflow:hidden; }
[hidden] { display:none!important; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; height:auto; }
svg { flex:none; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
button,input,select,textarea { font:inherit; }
button { color:inherit; cursor:pointer; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-weight:700; line-height:1.2; letter-spacing:-.02em; }
h1 { font-size:clamp(2.25rem,4.2vw,4rem); }
h2 { font-size:clamp(1.8rem,3vw,2.7rem); }
h3 { font-size:1.3rem; }
p { color:var(--muted); }
small { font-size:14px; line-height:1.6; }
:focus-visible { outline:3px solid #a34a25; outline-offset:4px; }
.skip-link { position:fixed; top:12px; left:12px; z-index:500; padding:12px 18px; border-radius:4px; background:var(--ink); color:white; transform:translateY(calc(-100% - 24px)); }
.skip-link:focus { transform:none; }
.site-header { position:sticky; top:0; z-index:100; background:white; border-bottom:1px solid var(--line); }
.header-shell { position:relative; width:var(--shell); margin:auto; min-height:84px; display:flex; align-items:center; gap:28px; }
.brand-lockup { display:inline-flex; align-items:center; gap:10px; flex:none; margin-right:auto; }
.brand-lockup>span:last-child { display:flex; flex-direction:column; align-items:flex-start; gap:4px; }
.brand-lockup strong { font-size:24px; line-height:1; letter-spacing:-.02em; }
.brand-lockup small { color:var(--muted); font-size:10px; letter-spacing:.13em; text-transform:uppercase; line-height:1.2; }
.brand-mark { width:31px; height:30px; display:flex; align-items:end; gap:2px; }
.brand-mark i { width:3px; height:calc(11px + (var(--i) * 2px)); border-radius:1px; background:var(--blue); transform:skewY(-18deg); }
.nav-capsule { display:flex; align-items:center; gap:6px; }
.nav-capsule>a,.nav-capsule>div>button { min-height:46px; display:inline-flex; align-items:center; gap:7px; padding:10px 12px; border:0; background:transparent; font-size:15px; font-weight:600; white-space:nowrap; }
.nav-capsule>a:hover,.nav-capsule button:hover,.nav-capsule [aria-expanded=true],.nav-capsule a[aria-current=page] { color:var(--blue); background:var(--blue-soft); }
.nav-capsule svg { width:13px; height:13px; }
.header-cta,.button { display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:50px; padding:12px 22px; border:1px solid var(--blue); border-radius:4px; background:var(--blue); color:white; font-size:15px; font-weight:600; line-height:1.5; }
.header-cta { flex:none; white-space:nowrap; }
.header-cta:hover,.button:hover { background:var(--blue-dark); border-color:var(--blue-dark); }
.button-quiet { color:var(--ink); background:transparent; border-color:#a7afa8; }
.button-quiet:hover { color:var(--ink); background:white; border-color:var(--ink); }
.menu-button { display:none; }
/* Anchor the dropdown to the header shell, not the Services button. */
.service-mega { position:absolute; top:100%; right:0; width:min(100%,1000px); padding:30px; display:grid; grid-template-columns:minmax(0,210px) minmax(0,1fr); gap:30px; border:1px solid var(--line); border-radius:0 0 6px 6px; background:#fffefa; box-shadow:0 20px 36px #15231b1f; white-space:normal; }
.mega-intro { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-right:20px; border-right:1px solid var(--line); }
.mega-intro strong { font-size:21px; line-height:1.3; letter-spacing:-.015em; }
.mega-intro span { font-size:14px; line-height:1.6; color:var(--muted); }
.mega-intro a { display:inline-flex; align-items:center; min-height:44px; color:var(--blue); font-size:14px; font-weight:600; }
.mega-service-list { min-width:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 24px; }
.mega-service-list a { min-width:0; display:flex; align-items:center; min-height:53px; padding:12px 3px; border-bottom:1px solid var(--line); font-size:15px; line-height:1.4; white-space:normal; overflow-wrap:break-word; }
.mega-service-list a:hover { color:var(--blue); background:transparent; }
.mobile-navigation { position:fixed; z-index:150; inset:0; height:100dvh; padding:18px 24px 40px; overflow-y:auto; overscroll-behavior:contain; background:var(--paper); }
.mobile-nav-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; color:var(--muted); font-size:14px; }
.mobile-nav-head button { display:grid; place-items:center; width:48px; height:48px; border:0; border-radius:50%; color:white; background:var(--ink); }
.mobile-primary { display:flex; width:100%; justify-content:space-between; align-items:center; gap:20px; min-height:58px; padding:12px 0; border:0; border-bottom:1px solid var(--line); background:transparent; font-size:20px; font-weight:600; line-height:1.4; text-align:left; }
.mobile-primary svg { color:var(--blue); }
.mobile-services-toggle[aria-expanded=true] svg { transform:rotate(180deg); }
.mobile-services-panel { margin:10px 0; padding:0 18px 12px; background:var(--blue-soft); }
.mobile-service-overview,.mobile-service-links a { display:flex; justify-content:space-between; align-items:center; gap:18px; min-height:52px; padding:12px 0; border-bottom:1px solid #d8c9ba; font-size:16px; line-height:1.45; }
.mobile-service-overview { color:var(--blue-dark); font-weight:600; }
.mobile-service-links a:last-child { border:0; }
.mobile-request { margin-top:24px; min-height:54px; display:flex; justify-content:space-between; align-items:center; gap:20px; padding:14px 20px; background:var(--blue); color:white; border-radius:4px; font-weight:600; }
.faq-tools { width:var(--shell); margin:32px auto; display:grid; gap:22px; }
.faq-tools label { display:grid; gap:10px; font-size:15px; font-weight:600; }
.faq-tools input { width:100%; min-width:0; min-height:54px; padding:12px 16px; border:1px solid #aab1a9; border-radius:4px; background:white; }
.faq-tools>div { display:flex; flex-wrap:wrap; gap:8px; }
.faq-tools button { min-height:44px; padding:9px 17px; border:1px solid var(--line); border-radius:22px; background:transparent; font-size:15px; }
.faq-tools [aria-pressed=true] { background:var(--ink); color:white; border-color:var(--ink); }
.faq-section { display:grid; grid-template-columns:minmax(0,.65fr) minmax(0,1.35fr); gap:60px; }
.faq-section>div>p { margin-top:12px; }
.faq-section details { border-bottom:1px solid var(--line); }
summary { cursor:pointer; list-style:none; }
summary::-webkit-details-marker { display:none; }
.faq-section summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; font-size:17px; font-weight:600; line-height:1.5; }
.faq-section summary span { flex:none; width:20px; height:20px; display:grid; place-items:center; color:var(--blue); }
.faq-section summary span::before { content:'+'; }
.faq-section [open] summary span::before { content:'−'; }
.faq-section details p { padding:0 20px 24px 0; line-height:1.7; }
.planner-layout { width:var(--shell); margin:auto; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); align-items:start; gap:50px; }
.planner-intro h1 { max-width:500px; }
.concern-planner { padding:32px; border:1px solid var(--line); background:#eeeee5; border-radius:4px; }
.planner-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.planner-grid label { min-width:0; display:grid; gap:8px; color:var(--ink); font-size:15px; line-height:1.5; }
.planner-grid .wide { grid-column:1/-1; }
.planner-grid input,.planner-grid select,.planner-grid textarea { width:100%; min-width:0; min-height:52px; padding:12px 14px; border:1px solid #aeb5ad; border-radius:4px; background:white; color:var(--ink); font-size:16px; }
.planner-grid textarea { min-height:116px; resize:vertical; }
.concern-planner>.button { margin-top:26px; }
.planner-output { margin-top:30px; padding:24px; background:white; border-top:3px solid var(--blue); scroll-margin-top:108px; }
.planner-output h2 { font-size:1.6rem; }
.planner-output p { margin-top:18px; overflow-wrap:anywhere; }
.planner-output small { display:block; margin-top:14px; }
.planner-output .button { margin-top:20px; }
.site-footer { color:white; background:#1f352b; }
.footer-lead { display:flex; justify-content:space-between; align-items:center; gap:30px; }
.footer-lead strong { font-size:30px; line-height:1.2; }
.footer-lead span { color:#c1cfc4; font-size:15px; }
.footer-links { display:flex; flex-wrap:wrap; gap:8px 28px; padding:20px 0; border-top:1px solid #ffffff28; border-bottom:1px solid #ffffff28; }
.footer-links a { min-height:44px; display:inline-flex; align-items:center; font-size:15px; }
.footer-links a:hover { color:var(--signal); }
.footer-boundary { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 36px; font-size:12px; line-height:1.6; letter-spacing:.035em; }
.contact-dock { position:fixed; right:16px; bottom:calc(18px + var(--dock-lift)); z-index:90; display:grid; gap:10px; }
.contact-dock>a { display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:white; box-shadow:0 5px 18px #16221a18; }
.contact-dock>a:first-child { color:white; border-color:var(--blue); background:var(--blue); }
body.menu-open .contact-dock { display:none; }
/* Keep floating shortcuts out of narrow reading columns; navigation remains available. */
@media(max-width:1399px) { .contact-dock { display:none; } }
@media(max-width:1119px) {
 :root { --shell:calc(100% - 48px); }
 .header-shell { min-height:76px; }
 .nav-capsule,.header-cta { display:none; }
 .menu-button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:46px; padding:10px 16px; border:1px solid var(--line); border-radius:4px; background:white; font-size:15px; font-weight:600; }
 .planner-layout { grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:30px; }
 .concern-planner { padding:24px; }
}
@media(max-width:799px) { .planner-layout,.faq-section { grid-template-columns:minmax(0,1fr); gap:28px; } }
@media(max-width:599px) {
 :root { --shell:calc(100% - 40px); }
 .header-shell { min-height:72px; }
 .brand-lockup { gap:8px; }
 .brand-lockup strong { font-size:22px; }
 .planner-grid { grid-template-columns:minmax(0,1fr); }
 .concern-planner { padding:20px; }
 .planner-output { padding:20px; }
 .faq-section summary { font-size:16px; }
 .footer-lead { align-items:flex-start; flex-direction:column; gap:12px; }
 .footer-boundary { flex-direction:column; }
}
.page-hero { width:var(--shell); margin:64px auto; }
.page-hero p { max-width:650px; margin:24px 0; }
.page-hero .button { margin:0 12px 12px 0; }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }
@media print { .site-header,.contact-dock,.site-footer,.skip-link { display:none; } body { background:white; } }
