/* Main Street Advisory shared stylesheet. B7 2026-09-26 (run RUN-PRJ01-UIAUDIT-B7-20260926-001).
   Rules common to all 11 served pages, in their original cascade order. Page-specific rules stay in each
   page's own <style> block, which loads after this file. A shared rule is repeated in a page block only
   where that page has an earlier rule it must still override (see BUILD-LOG). Generated; edit with care. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--ff-sans);background:var(--offwhite);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased;}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;}
.eyebrow{font-family:var(--ff-sans);font-size:0.7rem;font-weight:600;letter-spacing:0.16em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:0.65rem;}
.eyebrow::before{content:'';display:block;width:2rem;height:1px;background:var(--gold);flex-shrink:0;}
.display{font-family:var(--ff-serif);font-weight:400;line-height:1.15;letter-spacing:-0.01em;color:var(--navy);}
.display em{font-style:italic;color:var(--slate);}
.body-lead{font-size:1.05rem;font-weight:400;line-height:1.8;color:var(--text-mid);}
.body-copy{font-size:0.9375rem;font-weight:400;line-height:1.85;color:var(--text-mid);}
.btn{display:inline-flex;align-items:center;gap:0.6rem;font-family:var(--ff-sans);font-size:0.72rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;border:none;cursor:pointer;transition:var(--transition);}
.btn-gold{background:var(--gold);color:var(--white);padding:1rem 2.2rem;border-radius:2px;}
.btn-gold:hover{background:var(--gold-lt);transform:translateY(-2px);}
.btn-outline{background:transparent;color:var(--navy);padding:0.95rem 2rem;border-radius:2px;border:1.5px solid var(--navy);}
.btn-outline:hover{background:var(--navy);color:var(--white);}
.btn-ghost{background:transparent;color:var(--navy);border-bottom:1.5px solid currentColor;padding-bottom:2px;border-radius:0;}
.btn-ghost:hover{color:var(--gold);border-color:var(--gold);}
nav.main-nav{position:fixed;top:0;left:0;right:0;z-index:200;background:rgba(244,245,243,0.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 5%;display:flex;align-items:center;justify-content:space-between;height:68px;}
.nav-logo{font-family:var(--ff-serif);font-size:1.1rem;font-weight:700;letter-spacing:0.02em;color:var(--navy);display:flex;flex-direction:column;line-height:1.2;}
.nav-logo span{font-size:0.6rem;font-family:var(--ff-sans);font-weight:500;letter-spacing:0.2em;text-transform:uppercase;color:var(--steel);}
.nav-links{display:flex;align-items:center;gap:2.5rem;}
.nav-links a:hover,.nav-links a.active{color:var(--navy);}
.nav-cta{font-family:var(--ff-sans);font-size:0.72rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;background:var(--navy);color:var(--white)!important;padding:0.6rem 1.4rem;border-radius:2px;transition:background var(--transition)!important;}
.nav-cta:hover{background:var(--slate)!important;}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;border:none;background:none;}
.nav-hamburger span{display:block;width:22px;height:2px;background:var(--navy);border-radius:2px;transition:all 0.3s;}
.nav-hamburger.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}
.section-white{background:var(--white);}
.section-offwhite{background:var(--offwhite);}
.section-navy{background:var(--navy);}
.section-header .eyebrow{margin-bottom:1.25rem;}
.footer-nav{display:flex;gap:2rem;flex-wrap:wrap;}
.footer-nav a{font-size:0.75rem;font-weight:400;letter-spacing:0.06em;text-transform:uppercase;color:rgba(255,255,255,0.4);transition:color var(--transition);}
.footer-nav a:hover{color:rgba(255,255,255,0.8);}
.footer-copy{font-size:0.72rem;color:rgba(255,255,255,0.25);}
.reveal.visible{opacity:1;transform:none;}
.reveal-delay-1{transition-delay:0.1s;}
.reveal-delay-2{transition-delay:0.2s;}
.reveal-delay-3{transition-delay:0.3s;}
.reveal-delay-4{transition-delay:0.4s;}
@media (max-width:900px){
  .section{padding:4rem 6%;}
  nav.main-nav{padding:0 5%;}
  .nav-links{display:none;}
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:68px;left:0;right:0;background:rgba(244,245,243,0.98);backdrop-filter:blur(12px);padding:1.5rem 5% 2rem;gap:1.25rem;border-bottom:1px solid var(--border);z-index:199;}
  .nav-links.open a{font-size:0.9rem;color:var(--navy);}
  .nav-hamburger{display:flex;}
}
/* A11Y-COLOR 2026-09-25 (run RUN-PRJ01-A11Y-COLOR-20260925-001). Brand-kit contrast fix:
   primary buttons navy on light, cream on navy; gold text only on navy; visible keyboard focus.
   To revert, delete this block. */
.btn-gold{background:var(--navy);color:var(--white);}
.btn-gold:hover{background:var(--slate);color:var(--white);transform:none;}
.section-navy .btn-gold,.cta-band .btn-gold{background:#faf7f2;color:var(--navy);}
.section-navy .btn-gold:hover,.cta-band .btn-gold:hover{background:var(--white);color:var(--navy);}
.eyebrow{color:var(--slate);}
.btn-ghost:hover{color:var(--slate);border-color:var(--slate);}
.how-step:hover .how-step-num,.step:hover .step-num,.fit-check-yes{color:var(--slate);}
:focus-visible{outline:3px solid var(--steel);outline-offset:3px;}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--steel);outline-offset:1px;}
/* A11Y-T1 2026-09-25 (run RUN-PRJ01-A11Y-TIER1-20260925-001). Audit Tier 1, items A3 to A8.
   Light text token darkened to pass AA; skip link; 44px menu target; visible field borders;
   footer contrast and size; reveal visible without JS, shorter, off under reduced motion; FAQ buttons. */
:root{--text-lt:#5c7080;}
.skip-link{position:absolute;left:1rem;top:-100px;z-index:1000;background:var(--navy);color:var(--white);padding:0.75rem 1rem;font-size:0.9rem;text-decoration:none;border-radius:2px;}
.skip-link:focus{top:1rem;}
main:focus{outline:none;}
.nav-hamburger{min-width:44px;min-height:44px;align-items:center;justify-content:center;}
input[type="text"],input[type="email"],input[type="tel"],select,textarea{border-color:var(--steel);}
.footer-copy{font-size:0.8125rem;color:rgba(255,255,255,0.7);}
.footer-logo span{font-size:0.7rem;color:rgba(255,255,255,0.7);}
.reveal{opacity:1;transform:none;}
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity 0.25s ease,transform 0.25s ease;}
.js .reveal.visible{opacity:1;transform:none;}
.faq-h{margin:0;font-size:inherit;font-weight:inherit;line-height:inherit;}
button.faq-q{width:100%;background:none;border:0;padding:0;text-align:left;line-height:inherit;}
.js .faq-a{visibility:hidden;}
.js .faq-item.open .faq-a{visibility:visible;}
html:not(.js) .faq-a{max-height:none;padding-top:1rem;}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important;}
  .js .reveal{opacity:1;transform:none;}
}
/* UI-SIZE 2026-09-25 (run RUN-PRJ01-UI-BATCH-20260925-002). Buttons, nav links, labels and eyebrows
   at 0.875rem with no all-caps; text is sentence case in the markup. Logo taglines keep their small caps. */
.btn,.nav-cta,.form-submit{font-size:0.875rem;text-transform:none;letter-spacing:0.01em;}
.nav-links a{font-size:0.875rem;text-transform:none;letter-spacing:0;}
.eyebrow,.page-hero-eyebrow,.hero-right-label,.ind-fact-label{font-size:0.875rem;text-transform:none;letter-spacing:0.01em;}
label,.contact-info-label{font-size:0.875rem;text-transform:none;letter-spacing:0;}
.footer-nav a{text-transform:none;letter-spacing:0;}
/* B1-MOBILE 2026-09-26 (run RUN-PRJ01-UIAUDIT-B1-20260926-001). UI audit batch B1: one footer component (G-1),
   footer text contrast (W-1, X-2), 44px menu and footer tap targets (G-3), whole-row FAQ target (F-1),
   Home CTA in the first phone screen (I-1), footer at the bottom of short pages (X-1).
   To revert, delete this block and restore the footer markup (hashes in BUILD-LOG). */
body{min-height:100vh;min-height:100svh;display:flex;flex-direction:column;}
body>main{flex:1 0 auto;}
body>main:has(>section.section-white:only-child){background:var(--white);}
footer.main-footer{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.25rem 2rem;background:#0a1f33;padding:3rem 7%;}
footer.main-footer .footer-nav{justify-self:end;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:0 2rem;}
footer.main-footer .footer-nav a{display:inline-flex;align-items:center;min-height:44px;}
footer.main-footer .footer-meta{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem 2rem;}
footer.main-footer .footer-locality{flex:1 1 420px;max-width:680px;margin:0;line-height:1.7;}
footer.main-footer .footer-legal{display:flex;align-items:center;gap:1rem;margin-left:auto;}
footer.main-footer .footer-legal .footer-copy{margin:0;}
footer.main-footer .footer-social{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:44px;height:44px;border-radius:4px;background:rgba(255,255,255,0.08);transition:background 0.25s;}
footer.main-footer .footer-social:hover{background:rgba(255,255,255,0.18);}
.faq-item{padding:0;}
button.faq-q{padding:1.75rem 0;min-height:44px;}
.faq-item.open button.faq-q,html:not(.js) button.faq-q{padding-bottom:0;}
.faq-item.open .faq-a,html:not(.js) .faq-a{padding-bottom:1.75rem;}
@media (max-width:900px){
  .nav-links.open{gap:0.25rem;}
  .nav-links.open a{display:inline-flex;align-items:center;min-height:44px;}
}
@media (max-width:600px){
  footer.main-footer{grid-template-columns:1fr;}
  footer.main-footer .footer-nav{justify-self:start;justify-content:flex-start;gap:0 1.5rem;}
  footer.main-footer .footer-meta{flex-direction:column;align-items:flex-start;}
  footer.main-footer .footer-locality{flex:none;}
  footer.main-footer .footer-legal{margin-left:0;}
  .hero-left>.hero-headline{order:1;}
  .hero-left>.hero-actions{order:2;margin-bottom:2.25rem;}
  .hero-left>.hero-sub{order:3;}
  .hero-left>.hero-punch{order:4;margin-bottom:0;}
}
