
:root{
  --fsw-primary-forest:#1B4332;
  --fsw-pine:#2D6A4F;
  --fsw-fresh-leaf:#52B788;
  --fsw-warm-ivory:#F7F3EA;
  --fsw-warm-sand:#E8DDC8;
  --fsw-sky:#74C0FC;
  --fsw-smoke:#DEE2E6;
  --fsw-charcoal:#24312A;
  --fsw-safe:#2A9D8F;
  --fsw-watch:#E9C46A;
  --fsw-warning:#F4A261;
  --fsw-danger:#E76F51;
  --fsw-critical:#B42318;
  --fsw-white:#FFFFFF;

  --fsw-font-display:"Aptos Display","Aptos","Segoe UI Variable Display","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;
  --fsw-font-body:"Aptos","Segoe UI Variable Text","Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;

  --fsw-step-0:4px;
  --fsw-step-1:8px;
  --fsw-step-2:12px;
  --fsw-step-3:16px;
  --fsw-step-4:24px;
  --fsw-step-5:32px;
  --fsw-step-6:48px;
  --fsw-step-7:64px;
  --fsw-step-8:96px;

  --fsw-radius-sm:12px;
  --fsw-radius-md:20px;
  --fsw-radius-lg:28px;
  --fsw-shadow-sm:0 8px 24px rgba(27,67,50,.07);
  --fsw-shadow-md:0 18px 48px rgba(27,67,50,.11);
  --fsw-content:1180px;

  /* Compatibility aliases used by Modules 2–5. */
  --fsw-evergreen:var(--fsw-primary-forest);
  --fsw-moss:var(--fsw-pine);
  --fsw-sage:var(--fsw-fresh-leaf);
  --fsw-ivory:var(--fsw-warm-ivory);
  --fsw-amber:var(--fsw-watch);
  --fsw-bark:var(--fsw-charcoal);
  --fsw-teal:var(--fsw-safe);
  --fsw-text:var(--fsw-charcoal);
  --fsw-muted:#5E6D65;
  --fsw-surface:var(--fsw-white);
  --fsw-border:#D5DED8;
}

body.fsw-design-system-active{
  --fsww-forest:var(--fsw-primary-forest);
  --fsww-pine:var(--fsw-pine);
  --fsww-ivory:var(--fsw-warm-ivory);
  --fsww-sand:var(--fsw-warm-sand);
  --fsww-text:var(--fsw-charcoal);
  --fsww-muted:#5E6D65;
  --fsww-border:#D5DED8;
  --fsww-safe:var(--fsw-safe);
  --fsww-watch:var(--fsw-watch);
  --fsww-warning:var(--fsw-warning);
  --fsww-danger:var(--fsw-danger);
  --fsww-critical:var(--fsw-critical);

  --fswf-forest:var(--fsw-primary-forest);
  --fswf-moss:var(--fsw-pine);
  --fswf-sage:var(--fsw-fresh-leaf);
  --fswf-ivory:var(--fsw-warm-ivory);
  --fswf-text:var(--fsw-charcoal);
  --fswf-muted:#5E6D65;
  --fswf-border:#D5DED8;

  margin:0;
  background:var(--fsw-warm-ivory);
  color:var(--fsw-charcoal);
  font-family:var(--fsw-font-body)!important;
  font-size:18px;
  line-height:1.6;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}

body.fsw-design-system-active *,
body.fsw-design-system-active *::before,
body.fsw-design-system-active *::after{box-sizing:border-box}

body.fsw-design-system-active :where(h1,h2,h3,h4,h5,h6){
  color:var(--fsw-primary-forest);
  font-family:var(--fsw-font-display)!important;
  font-weight:700;
  letter-spacing:-.025em;
  text-wrap:balance;
}

body.fsw-design-system-active h1{
  font-size:clamp(2.5rem,5.2vw,3.5rem)!important;
  line-height:1.06!important;
}
body.fsw-design-system-active h2{
  font-size:clamp(1.75rem,3.5vw,2.25rem)!important;
  line-height:1.14!important;
}
body.fsw-design-system-active h3{
  font-size:clamp(1.25rem,2.2vw,1.55rem)!important;
  line-height:1.22!important;
}
body.fsw-design-system-active p,
body.fsw-design-system-active li,
body.fsw-design-system-active label,
body.fsw-design-system-active input,
body.fsw-design-system-active select,
body.fsw-design-system-active textarea,
body.fsw-design-system-active button{
  font-family:var(--fsw-font-body)!important;
}
body.fsw-design-system-active p{max-width:75ch}
body.fsw-design-system-active a{color:var(--fsw-primary-forest)}
body.fsw-design-system-active a:hover{color:var(--fsw-pine)}
body.fsw-design-system-active :focus-visible{
  outline:3px solid var(--fsw-sky)!important;
  outline-offset:3px!important;
}

body.fsw-design-system-active .fsw-container{
  width:min(calc(100% - 40px),var(--fsw-content));
  margin-inline:auto;
}

/* Canonical header and wordmark. */
body.fsw-design-system-active .fsw-site-header{
  background:rgba(255,255,255,.96)!important;
  border-bottom:1px solid #D5DED8!important;
  box-shadow:none!important;
  backdrop-filter:blur(12px);
}
body.fsw-design-system-active .fsw-site-header__inner{min-height:82px}
body.fsw-design-system-active .fsw-brand{
  color:var(--fsw-primary-forest)!important;
  font-family:var(--fsw-font-body)!important;
}
body.fsw-design-system-active .fsw-brand__mark{
  width:54px!important;
  height:36px!important;
  flex:0 0 54px!important;
  display:grid!important;
  place-items:center!important;
  color:var(--fsw-primary-forest)!important;
}
body.fsw-design-system-active .fsw-brand__mark svg,
body.fsw-design-system-active .fsw-brand__mark img{
  width:54px!important;
  height:36px!important;
  max-width:54px!important;
  max-height:36px!important;
  object-fit:contain!important;
  display:block!important;
}
body.fsw-design-system-active .fsw-brand strong{
  font-family:var(--fsw-font-display)!important;
  color:var(--fsw-primary-forest)!important;
  font-size:1.15rem!important;
  font-weight:750!important;
  letter-spacing:-.02em!important;
}
body.fsw-design-system-active .fsw-brand small{
  color:var(--fsw-charcoal)!important;
  font-size:.72rem!important;
  font-weight:650!important;
  letter-spacing:.18em!important;
}
body.fsw-design-system-active .fsw-primary-nav a{
  color:var(--fsw-primary-forest)!important;
  font-family:var(--fsw-font-body)!important;
  font-size:1rem!important;
  font-weight:700!important;
}
body.fsw-design-system-active .fsw-primary-nav a:hover,
body.fsw-design-system-active .fsw-primary-nav a:focus-visible{
  background:var(--fsw-warm-ivory)!important;
  color:var(--fsw-pine)!important;
}

/* Hero and page surfaces. */
body.fsw-design-system-active :where(.fsw-hero,.fsw-page-hero,.fsww-page-hero,.fswf-hero){
  background:linear-gradient(135deg,#FFFFFF 0%,var(--fsw-warm-ivory) 100%)!important;
}
body.fsw-design-system-active :where(.fsw-hero h1,.fsw-page-hero h1,.fsww-page-hero h1,.fswf-hero h1){
  font-family:var(--fsw-font-display)!important;
  color:var(--fsw-primary-forest)!important;
  max-width:18ch;
}
body.fsw-design-system-active :where(.fsw-lead,.fsww-page-hero p:not(.fsww-kicker),.fswf-hero p:not(.fswf-kicker)){
  color:#5E6D65!important;
  font-size:1.125rem!important;
  line-height:1.65!important;
}
body.fsw-design-system-active :where(.fsw-kicker,.fsww-kicker,.fsww-card-kicker,.fswf-kicker,.fswds-eyebrow){
  color:var(--fsw-pine)!important;
  font-family:var(--fsw-font-body)!important;
  font-size:.76rem!important;
  font-weight:800!important;
  letter-spacing:.12em!important;
}

/* Shared buttons. */
.fswds-button,
body.fsw-design-system-active :where(.fsw-button,.fsww-button,.fswf-button){
  min-height:48px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  padding:11px 18px!important;
  border-radius:999px!important;
  font-family:var(--fsw-font-body)!important;
  font-size:1rem!important;
  font-weight:750!important;
  line-height:1.15!important;
  text-decoration:none!important;
  border:1px solid #C9D5CE!important;
  background:#FFFFFF!important;
  color:var(--fsw-primary-forest)!important;
  box-shadow:none!important;
  transition:transform .16s ease,background .16s ease,border-color .16s ease!important;
}
.fswds-button:hover,
body.fsw-design-system-active :where(.fsw-button,.fsww-button,.fswf-button):hover{
  transform:translateY(-1px);
  background:var(--fsw-warm-ivory)!important;
  border-color:var(--fsw-pine)!important;
}
.fswds-button--primary,
body.fsw-design-system-active :where(.fsw-button--primary,.fsww-button--primary,.fswf-button--primary){
  background:var(--fsw-primary-forest)!important;
  color:#FFFFFF!important;
  border-color:var(--fsw-primary-forest)!important;
}
.fswds-button--primary:hover,
body.fsw-design-system-active :where(.fsw-button--primary,.fsww-button--primary,.fswf-button--primary):hover{
  background:var(--fsw-pine)!important;
  color:#FFFFFF!important;
}
.fswds-button--danger,
body.fsw-design-system-active .fsww-button--alert{
  background:var(--fsw-critical)!important;
  color:#FFFFFF!important;
  border-color:var(--fsw-critical)!important;
}
.fswds-button--quiet{background:transparent!important;border-color:transparent!important}

/* Cards and panels. */
.fswds-card,
body.fsw-design-system-active :where(
  .fsw-path-card,.fsw-feature-card,.fsw-condition-card,.fsww-incident-card,
  .fsww-authority-card,.fsww-trust-card,.fswf-card,.fswf-overview article,
  .fswf-panel,.fsw-placeholder
){
  border:1px solid #D5DED8!important;
  border-radius:var(--fsw-radius-md)!important;
  background:#FFFFFF!important;
  box-shadow:var(--fsw-shadow-sm)!important;
  color:var(--fsw-charcoal)!important;
}
body.fsw-design-system-active :where(.fswf-panel,.fsw-placeholder,.fsww-authority-card){
  background:var(--fsw-warm-ivory)!important;
}
.fswds-card{
  display:flex;
  gap:16px;
  padding:22px;
}
.fswds-card__icon{
  width:64px;height:64px;flex:0 0 64px;
  display:grid;place-items:center;
  border-radius:16px;background:var(--fsw-warm-ivory)
}
.fswds-card__body h3{margin:0 0 6px}
.fswds-card__body p{margin:8px 0;color:#5E6D65}
.fswds-data-value{
  display:block;
  color:var(--fsw-primary-forest);
  font-family:var(--fsw-font-display);
  font-size:1.45rem;
  font-variant-numeric:tabular-nums;
}
.fswds-meta{display:block;margin-top:14px;color:#68776F}
.fswds-text-link{display:inline-block;margin-top:10px;font-weight:750;text-decoration:none}

/* Forms. */
body.fsw-design-system-active :where(input:not([type=checkbox]):not([type=radio]),select,textarea){
  min-height:48px!important;
  border:1px solid #C9D5CE!important;
  border-radius:12px!important;
  background:#FFFFFF!important;
  color:var(--fsw-charcoal)!important;
  font-size:1rem!important;
  padding:10px 12px!important;
  box-shadow:none!important;
}
body.fsw-design-system-active :where(input,select,textarea):focus{
  border-color:var(--fsw-pine)!important;
  box-shadow:0 0 0 3px rgba(116,192,252,.28)!important;
  outline:0!important;
}
body.fsw-design-system-active fieldset{border-color:#D5DED8}
body.fsw-design-system-active label{color:var(--fsw-charcoal);font-size:1rem}

/* Status scale. */
.fswds-status{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 14px;border-radius:14px;
  border:1px solid #D5DED8;background:#FFFFFF;
  color:var(--fsw-charcoal);
}
.fswds-status + .fswds-status{margin-top:8px}
.fswds-status__symbol{
  width:14px;height:14px;border-radius:50%;
  margin-top:4px;background:var(--fsw-smoke);flex:0 0 14px
}
.fswds-status strong,.fswds-status small{display:block}
.fswds-status small{margin-top:2px;color:#5E6D65}
.fswds-status--safe .fswds-status__symbol{background:var(--fsw-safe)}
.fswds-status--watch .fswds-status__symbol{background:linear-gradient(90deg,var(--fsw-primary-forest) 50%,var(--fsw-watch) 50%)}
.fswds-status--warning .fswds-status__symbol{background:var(--fsw-warning);clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0}
.fswds-status--danger .fswds-status__symbol{background:var(--fsw-danger);border-radius:3px}
.fswds-status--critical .fswds-status__symbol{background:var(--fsw-critical);border-radius:3px}

/* Icons, avatars, logo components. */
.fswds-icon,.fswds-avatar{display:inline-flex;align-items:center;justify-content:center}
.fswds-icon img{width:var(--fswds-icon-size,24px);height:var(--fswds-icon-size,24px);display:block}
.fswds-avatar img{width:var(--fswds-avatar-size,96px);height:var(--fswds-avatar-size,96px);display:block}
.fswds-logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none}
.fswds-logo__mark{width:64px;height:42px;color:var(--fsw-primary-forest)}
.fswds-logo__mark svg{width:100%;height:100%;display:block}
.fswds-logo__wordmark strong,.fswds-logo__wordmark small{display:block;line-height:1}
.fswds-logo__wordmark strong{font:750 1.28rem/1 var(--fsw-font-display);color:var(--fsw-primary-forest)}
.fswds-logo__wordmark small{margin-top:5px;font:650 .72rem/1 var(--fsw-font-body);letter-spacing:.19em;text-transform:uppercase;color:var(--fsw-charcoal)}
.fswds-logo--pine .fswds-logo__mark,.fswds-logo--pine .fswds-logo__wordmark strong{color:var(--fsw-pine)}
.fswds-logo--danger .fswds-logo__mark,.fswds-logo--danger .fswds-logo__wordmark strong{color:var(--fsw-danger)}
.fswds-logo--ivory .fswds-logo__mark,.fswds-logo--ivory .fswds-logo__wordmark strong,.fswds-logo--ivory .fswds-logo__wordmark small{color:var(--fsw-warm-ivory)}

/* Empty states. */
.fswds-empty-state{
  text-align:center;
  padding:36px 24px;
  border:1px dashed #AAB9AD;
  border-radius:var(--fsw-radius-md);
  background:#FBFDFB;
}
.fswds-empty-state h3{margin:12px 0 6px}
.fswds-empty-state p{margin:0 auto 20px;color:#5E6D65}

/* Footer consistency. */
body.fsw-design-system-active .fsw-site-footer{
  background:var(--fsw-primary-forest)!important;
  color:#DDE8E1!important;
}
body.fsw-design-system-active .fsw-footer-brand{
  color:#FFFFFF!important;
  font-family:var(--fsw-font-display)!important;
  font-weight:750!important;
}
body.fsw-design-system-active .fsw-site-footer h2{color:#BFE0C9!important}
body.fsw-design-system-active .fsw-site-footer a{color:#FFFFFF!important}

/* Module-specific typography corrections. */
body.fsw-design-system-active :where(
  .fsw-section-heading h2,.fsw-story h2,.fsw-cta h2,.fsw-placeholder h2,
  .fsww-section-heading h2,.fsww-authority-card h2,.fsww-trust-card h2,
  .fswf-panel h2,.fswf-section-heading h2,.fswf-guest h2
){
  font-family:var(--fsw-font-display)!important;
  color:var(--fsw-primary-forest)!important;
}
body.fsw-design-system-active :where(.fswf-overview span,.fsw-condition-card span,.fsww-incident-meta){
  font-family:var(--fsw-font-body)!important;
  color:var(--fsw-primary-forest)!important;
  font-variant-numeric:tabular-nums;
}

/* Keep hero typography readable and stop oversized headings. */
body.fsw-design-system-active .fswf-hero h1{font-size:clamp(2.5rem,5.2vw,3.5rem)!important;max-width:19ch!important}
body.fsw-design-system-active .fsww-page-hero h1{font-size:clamp(2.5rem,5.2vw,3.5rem)!important;max-width:23ch!important}
body.fsw-design-system-active .fsw-hero h1{font-size:clamp(2.75rem,5.2vw,3.5rem)!important;max-width:18ch!important}

/* Status cards retain text and use color only as reinforcement. */
body.fsw-design-system-active .fsw-condition-card{border-bottom-width:4px!important}
body.fsw-design-system-active .fswc-level--good{border-bottom-color:var(--fsw-safe)!important}
body.fsw-design-system-active .fswc-level--moderate,
body.fsw-design-system-active .fswc-level--watch{border-bottom-color:var(--fsw-watch)!important}
body.fsw-design-system-active .fswc-level--unhealthy,
body.fsw-design-system-active .fswc-level--danger{border-bottom-color:var(--fsw-danger)!important}
body.fsw-design-system-active .fswc-level--hazard{border-bottom-color:var(--fsw-critical)!important}

/* Mobile. */
@media(max-width:760px){
  body.fsw-design-system-active{font-size:17px}
  body.fsw-design-system-active .fsw-container{width:min(calc(100% - 28px),var(--fsw-content))}
  body.fsw-design-system-active h1{font-size:clamp(2rem,10vw,2.5rem)!important}
  body.fsw-design-system-active h2{font-size:clamp(1.55rem,7vw,1.9rem)!important}
  body.fsw-design-system-active .fsw-brand__mark{width:48px!important;height:32px!important;flex-basis:48px!important}
  body.fsw-design-system-active .fsw-brand__mark svg,
  body.fsw-design-system-active .fsw-brand__mark img{width:48px!important;height:32px!important}
  .fswds-card{display:block}
  .fswds-card__icon{margin-bottom:14px}
}

@media(prefers-reduced-motion:reduce){
  body.fsw-design-system-active *,
  body.fsw-design-system-active *::before,
  body.fsw-design-system-active *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}
