/* Shared forest-green and warm-gold brand accents. Score and urgency colors are intentionally independent. */
:root{--gold:#d6a24a;--gold-dark:#805514;--gold-pale:#fbf2e3;--gold-line:#e7c891}
:where(a,button,input,summary):focus-visible{outline-color:var(--gold-dark)}
.fso-home .eyebrow{background:var(--gold-pale);color:var(--green);border:1px solid var(--gold-line)}
.fso-home .hero{border-bottom:2px solid var(--gold-line)}
.fso-home .visual{border-color:var(--gold-line)}
.fso-home .step{border-top:3px solid var(--gold)}
.fso-home .step-number{background:var(--gold);color:var(--deep)}
.fso-home .switch .active{box-shadow:0 2px 0 var(--gold),0 2px 9px #00000014}
.fso-home .secondary{border-color:var(--gold);background:var(--gold-pale)}
.fso-home .secondary:hover{background:#f5e4c6}
.fso-home .stat strong{color:#edc47f}
.fso-home .primary,.fso-assessment .primary{box-shadow:inset 0 -3px 0 var(--gold)}
.fso-home .drop>button,.fso-repair .drop>button{border-color:var(--gold);background:var(--gold-pale)}
.fso-home .menu button:hover,.fso-repair .menu button:hover{background:var(--gold-pale)}
.fso-home .menu,.fso-repair .menu{border-top:3px solid var(--gold)}
.fso-home .center h2:after{content:"";display:block;width:54px;height:3px;background:var(--gold);margin:19px auto 0;border-radius:2px}
.fso-home footer,.fso-repair footer,.fso-assessment footer,.fso-legal .site-footer{border-top:3px solid var(--gold)}
.fso-home .mobile-call a{background:var(--gold);color:var(--deep)}
.fso-repair .hero{border-bottom:2px solid var(--gold-line)}
.fso-repair .hero figcaption{border-left:4px solid var(--gold)}
.fso-repair .eyebrow{color:var(--gold-dark)}
.fso-repair .service{border-top:3px solid var(--gold)}
.fso-repair .number{color:var(--gold-dark)}
.fso-repair .button.outline{border-color:var(--gold);background:var(--gold-pale)}
.fso-repair .button.outline:hover{background:#f5e4c6}
.fso-repair .button:not(.outline){box-shadow:inset 0 -3px 0 var(--gold)}
.fso-repair .plan.featured{border-color:var(--gold)}
.fso-repair .badge,.fso-repair .badge.light{background:var(--gold);color:#193a2a}
.fso-repair .assessment{border-top:3px solid var(--gold)}
.fso-repair .request .eyebrow{color:#edc47f}
.fso-repair .request .button.outline{color:#193a2a}
.fso-assessment header,.fso-legal .nav{border-bottom:2px solid var(--gold-line)}
.fso-assessment .intro:after{content:"";display:block;width:62px;height:3px;background:var(--gold);margin-top:24px;border-radius:2px}
.fso-assessment aside li.active{background:var(--gold-pale);box-shadow:inset 3px 0 0 var(--gold)}
.fso-assessment aside li.active .stepnum{background:var(--gold);color:#193a2a;border-color:var(--gold-dark)}
.fso-assessment .option:has(input:checked){background:var(--gold-pale);border-color:var(--gold-dark)}
.fso-assessment .role button[aria-pressed="true"]{background:var(--gold-pale);color:var(--green);border-color:var(--gold-dark)}
.fso-assessment .aside-note{border-top:3px solid var(--gold)}
.fso-assessment .advice{border-left:4px solid var(--gold)}
.fso-assessment .secondary{border-color:var(--gold);background:var(--gold-pale)}
.fso-assessment .secondary:hover{background:#f5e4c6}
.fso-legal .hero{border-bottom:2px solid var(--gold-line)}
.fso-legal .eyebrow{color:var(--gold-dark)}
.fso-legal .legal-card{border-top:3px solid var(--gold)}
.fso-legal .legal-card h2{border-top-color:var(--gold-line)}
.fso-legal .contact-box{background:var(--gold-pale);border-color:var(--gold-line)}
/* Preserve the existing accessibility contrast mode. */
.fso-home.contrast .eyebrow,.fso-home.contrast .secondary,.fso-home.contrast .drop>button,.fso-home.contrast .menu button:hover{background:#fff;color:#000;border-color:#000}

img[src$="fso-logo-gold.png"]{aspect-ratio:427/102;object-fit:cover;height:auto}

/* Explicit high-contrast mode overrides decorative colors, including fixed colors. */
body.fso-home.contrast,body.fso-home.contrast *{color:#000!important;border-color:#000!important;box-shadow:none!important;text-shadow:none!important;background-color:#fff!important;background-image:none!important}
body.fso-home.contrast a:not(.primary):not(.secondary):not(.phone){color:#00008b!important;text-decoration:underline!important;text-underline-offset:3px}
body.fso-home.contrast :is(button,summary,.primary,.secondary,.phone){border:2px solid #000!important}
body.fso-home.contrast :is(.primary,.switch .active,button[aria-pressed="true"],button:hover,summary:hover){background-color:#000!important;color:#fff!important}
body.fso-home.contrast :is(.primary,.switch .active,button[aria-pressed="true"],button:hover,summary:hover) *{background-color:transparent!important;color:#fff!important}
body.fso-home.contrast .overlay{background-color:rgba(0,0,0,.8)!important}
body.fso-home.contrast :focus-visible{outline:3px solid #00008b!important;outline-offset:4px!important}
body.fso-home.contrast .center h2:after{background:#000!important}
body.fso-home.contrast .a11y-panel{flex-wrap:wrap;max-width:calc(100vw - 32px);width:max-content}
.fso-assessment .aside-note {
  display: none !important;
}

.fso-assessment .calculating {
  min-height: 390px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 14px;
}

.fso-assessment .calculating .spinner {
  width: 54px;
  height: 54px;
  border: 5px solid #e2ebe5;
  border-top-color: #1b4332;
  border-radius: 50%;
  animation: fso-spin 0.9s linear infinite;
}

.fso-assessment .calculation-track {
  width: min(420px, 88%);
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2ebe5;
}

.fso-assessment .calculation-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #1b4332, #d6a24a);
}

.fso-assessment .calculating #calculationPercent {
  color: #1b4332;
  font-size: 1.1rem;
}

@keyframes fso-spin {
  to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
  .fso-assessment .calculating .spinner { animation: none; }
}
