
/* September 2026: civic editorial direction, shared by every public page. */
:root {
  --color-primary: #185747;
  --color-forest: #185747;
  --color-forest-dark: #103e33;
  --color-light: #f4f7f6;
  --color-light-gray: #dde5e1;
  --color-gray: #52605a;
  --radius-lg: 12px;
  --shadow-md: 0 6px 24px rgba(19, 49, 39, .07);
  --shadow-lg: 0 14px 36px rgba(19, 49, 39, .1);
}
body { color: #243c33; }
[hidden] { display: none !important; }
a { text-underline-offset: .2em; }
:focus-visible { outline: 3px solid #b77916; outline-offset: 4px; }
.header__logo { letter-spacing: -.035em; }
.header.scrolled, .header.header--solid, .header.header--menu-open { box-shadow: 0 1px 0 #dce4df; }
.btn { border-radius: 6px; font-weight: 650; box-shadow: none; }
.section__title { letter-spacing: -.025em; line-height: 1.15; }
.section__subtitle { max-width: 740px; margin-inline: auto; }
.section__header { margin-bottom: clamp(2rem, 4vw, 3.5rem); }
.hero {
  min-height: min(820px, 95svh);
  justify-content: flex-start;
  text-align: left;
  padding-bottom: 4rem;
}
.hero__background img { object-position: center 55%; }
.hero__overlay { background: linear-gradient(90deg, rgba(9, 31, 25, .96), rgba(9, 31, 25, .77) 53%, rgba(9, 31, 25, .24)); }
.hero__content { width: 100%; max-width: 1264px; margin-inline: auto; padding: 4rem 2rem 1rem; }
.hero__eyebrow, .editorial-eyebrow { font: 650 .875rem/1.5 var(--font-primary); letter-spacing: .1em; text-transform: uppercase; }
.hero__eyebrow { color: #c7decd; margin-bottom: 1.5rem; }
.hero__title { max-width: 900px; font-size: clamp(2.8rem, 5.7vw, 5.3rem); letter-spacing: -.04em; line-height: 1.06; text-shadow: none; animation: none; font-weight: 400; }
.hero__title em { color: #d5e6aa; font-style: normal; }
.hero__subtitle { max-width: 640px; margin: 1.5rem 0 2rem; font-size: clamp(1.06rem, 1.6vw, 1.25rem); text-shadow: none; animation: none; color: #f0f5f1; }
.hero__actions { flex-direction: row; flex-wrap: wrap; justify-content: flex-start; align-items: stretch; animation: none; }
.hero__actions .btn { min-height: 50px; padding-inline: 1.5rem; }
.hero__actions .btn--primary { background: #d5e6aa; border-color: #d5e6aa; color: #16362b; }
.hero__actions .btn--secondary { border: 1px solid #b5c8bd; background: transparent; color: white; }
.hero__context { max-width: 700px; margin: 2.5rem 0 0; padding-top: 1.25rem; border-top: 1px solid #ffffff38; font-size: .9375rem; color: #d5e1d9; }
.hero__context a { color: #fff; }
.hero__scroll { display: none; }
.press-feature { background: #103e33; color: #fff; padding: 2.4rem 0; }
.press-feature__inner { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; align-items: center; gap: 2rem; }
.press-feature__source { border-right: 1px solid #ffffff35; padding-right: 2rem; }
.press-feature__source strong { display: block; font-size: 1.8rem; letter-spacing: -.03em; color: #fff; }
.press-feature__source span { display: block; font-size: .875rem; color: #c6d9ce; margin-top: .4rem; }
.press-feature h2 { font-family: var(--font-heading); font-size: 1.75rem; font-weight: 400; color: #fff; margin-bottom: .5rem; }
.press-feature p { color: #dbe7df; max-width: 650px; font-size: 1rem; }
.press-feature__link { color: #fff; border-bottom: 1px solid #acc7ad; padding: .75rem 0; white-space: nowrap; font-weight: 600; }
.start-here { padding-block: 2rem; border-bottom: 1px solid var(--color-light-gray); background: #fff; }
.start-here__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
.start-here a { color: var(--color-forest-dark); padding: .5rem 0; text-decoration: none; }
.start-here strong { display: block; font: 600 1.15rem var(--font-primary); margin-bottom: .5rem; }
.start-here span { color: var(--color-gray); font-size: 1rem; line-height: 1.6; }
.start-here a:hover strong { text-decoration: underline; }
.shop-promo__inner { background: #edf2ef; border: 1px solid #dde5df; box-shadow: none; }
.shop-promo__media { background: #dfe7e2; }
.shop-promo__title { letter-spacing: -.035em; }
.impact-card, .docs-category, .contact-card { box-shadow: none; border: 1px solid #dde5e1; }
.impact-card__icon { font-size: 1.6rem; }
.hero__alert { animation: none; }
.shop-intro { max-width: 760px; margin-inline: auto; }
.shop-intro__title { letter-spacing: -.04em; font-weight: 400; font-size: clamp(2.6rem, 5vw, 4.3rem); }
.shop-intro__meta { color: #344e43; font-size: 1rem; line-height: 1.65; }
.shop-service { display: flex; justify-content: center; flex-wrap: wrap; gap: .65rem 1.75rem; margin: 1.4rem 0 2.5rem; color: #185747; font-size: .9375rem; font-weight: 600; }
.shop-card { box-shadow: none; border: 1px solid #d8e2dc; }
.shop-card__body { padding: clamp(1.25rem, 3vw, 2rem); }
.shop-card__image { object-fit: contain; }
.shop-card__media { aspect-ratio: 1.15; }
.shop-badge--available { color: #185747; background: #e6f1e9; font-size: .875rem; text-transform: none; letter-spacing: 0; }
.shop-card__title { font-weight: 400; font-size: 1.85rem; letter-spacing: -.025em; }
.shop-card__desc { font-size: 1rem; }
.shop-size { min-width: 48px; min-height: 48px; font-size: 1rem; }
.shop-checkout { box-shadow: var(--shadow-md); }
.shop-steps { max-width: 780px; margin: 3rem auto 0; padding: 2rem; background: #fff; border: 1px solid #dde5e1; border-radius: 12px; }
.shop-steps h2 { font-size: 1.65rem; margin-bottom: 1rem; }
.shop-steps ol { padding-left: 1.25rem; }
.shop-steps li { margin-bottom: .85rem; padding-left: .5rem; line-height: 1.65; }
.shop-status { padding: 1rem; border-radius: 6px; background: #edf2ef; margin-block: 1rem; }
@media (max-width: 800px) {
  .press-feature__inner { grid-template-columns: 1fr; gap: 1.25rem; }
  .press-feature__source { border-right: 0; padding-right: 0; }
  .press-feature__link { justify-self: start; }
  .start-here__grid { grid-template-columns: 1fr; gap: 1rem; }
  .start-here a + a { border-top: 1px solid #dce5df; padding-top: 1.25rem; }
  .hero { min-height: auto; padding-bottom: 2.5rem; }
  .hero__content { padding: 3rem 1.25rem 0; }
  .hero__overlay { background: rgba(9, 31, 25, .83); }
  .hero__context { margin-top: 2rem; }
}
@media (max-width: 420px) {
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; }
  .hero__title { font-size: 2.6rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
