/* Shared Project Western typography with upright condensed headings. */
:root {
  --bg: #070708;
  --panel: #0c0c0d;
  --text: #f5f5f2;
  --muted: #b4b4b5;
  --muted2: #929294;
  --line: rgba(245, 245, 242, .13);
  --lineStrong: rgba(245, 245, 242, .32);
  --wrap: 1280px;
  --nav-wrap: 1440px;
}

body, body.agency-site {
  font-family: var(--font-body);
  font-weight: 400;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, p { overflow-wrap: break-word; }
body h1, body h2 {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 800;
  text-transform: uppercase;
  text-wrap: balance;
}
body h3 { font-weight: 600; }
body p { text-wrap: pretty; }
button, input, textarea, select { font-family: var(--font-body); }
input, textarea, select { font-size: 1rem; }
::selection { color: #070708; background: #f5f5f2; }
:focus-visible { outline: 2px solid #f5f5f2; outline-offset: 5px; }

/* Small labels stay quiet; display type carries the identity. */
.site-header { background: rgba(7, 7, 8, .94); backdrop-filter: blur(12px); }
.nav-row { gap: 1.5rem; }
.logo-copy strong {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 800;
  font-size: 1.3rem;
  letter-spacing: .025em;
}
.logo-copy span { font-size: .55rem; font-weight: 500; letter-spacing: .13em; }
.site-nav { gap: clamp(.85rem, 1.55vw, 1.5rem); }
.site-nav a { font-size: .65rem; font-weight: 600; letter-spacing: .095em; }
.site-nav a.nav-account { font-size: .64rem; font-weight: 600; }
.kicker, .micro-label, .card-kicker, .agency-section-label, .agency-site-eyebrow,
.home-page .home-eyebrow, .home-page .home-path-meta, .home-page .home-step-num {
  font-family: var(--font-body);
  font-style: normal;
  font-weight: 600;
  font-size: .66rem;
  letter-spacing: .15em;
}
.btn, .action, .agency-site-actions>a, .agency-site-nav .agency-nav-apply {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 800;
  font-size: 1.2rem;
  letter-spacing: .025em;
  line-height: 1.1;
  min-height: 48px;
  padding: .75rem 1.4rem;
  text-transform: uppercase;
}
.btn.primary, .action-primary { background: #080808; color: #fff; border-color: #ffffff70; }
.btn:hover, .action:hover { transform: none; }
.text-link { font-weight: 600; font-size: .69rem; letter-spacing: .09em; }

/* Home: generous type, photographic space and a compact onboarding column. */
.home-page .home-hero { min-height: clamp(660px, 86svh, 860px); }
.home-page .home-hero::after, .home-page .home-section::before { display: none; }
.home-page .home-hero::before {
  background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.5) 48%, rgba(0,0,0,.22)),
    linear-gradient(0deg, #070708 1%, transparent 60%);
}
.home-page .home-hero-inner {
  width: min(1280px, calc(100% - 5rem));
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: clamp(2rem, 6vw, 7rem);
  padding: 5.5rem 0 4rem;
}
.home-page .home-hero h1 {
  font-size: clamp(6rem, 10vw, 10.4rem);
  font-weight: 800;
  line-height: .84;
  letter-spacing: -.015em;
  max-width: none;
  padding-right: .1em;
}
.home-page .home-hero h1 span { color: #f5f5f2; }
.home-page .home-hero-note { margin-top: 1.8rem; font-size: .6rem; font-weight: 500; letter-spacing: .13em; }
.home-page .home-hero-note span::before { width: 3px; height: 3px; }
.home-page .home-hero-buttons { margin-top: 2rem; gap: .6rem; }
.home-page .home-hero-buttons .btn { min-width: 0; }
.home-page .home-start-card {
  background: rgba(8,8,9,.88);
  border: 0;
  border-top: 2px solid #f5f5f2;
  backdrop-filter: none;
  box-shadow: none;
}
.home-page .home-start-head { padding: 1.4rem 1.4rem 1.1rem; }
.home-page .home-start-head small { font-weight: 500; font-size: .6rem; letter-spacing: .12em; color: #aaa; }
.home-page .home-start-head strong { font-size: 1.25rem; font-weight: 600; letter-spacing: -.035em; }
.home-page .home-start-step { padding: 1.1rem 1.4rem; grid-template-columns: 45px 1fr; }
.home-page .home-start-step>span { font-size: .6rem; font-weight: 500; letter-spacing: .06em; color: #929294; }
.home-page .home-start-step strong { font-size: .8rem; font-weight: 600; }
.home-page .home-start-step p { font-size: .75rem; line-height: 1.65; color: #aaa; }
.home-page .home-start-foot { padding: 1rem 1.4rem; }
.home-page .home-start-foot a { font-weight: 600; font-size: .61rem; }
.home-page .home-rail { background: #0b0b0c; }
.home-page .home-rail-item { padding: 1.4rem 1.3rem; }
.home-page .home-rail-item strong { font-size: .66rem; font-weight: 600; letter-spacing: .085em; }
.home-page .home-rail-item span { color: #999; font-size: .73rem; line-height: 1.6; }
.home-page .home-section-head h2, .home-page .home-story-copy h2,
.home-page .home-final-row h2 {
  font-size: clamp(3.1rem, 5.6vw, 5.4rem);
  font-weight: 800;
  line-height: .96;
  letter-spacing: -.015em;
  max-width: 16ch;
}
.home-page .home-section-head p { color: #aaa; font-size: .92rem; max-width: 59ch; }
.home-page .home-path-grid { gap: 1.1rem; }
.home-page .home-path-card { min-height: 480px; border-color: rgba(255,255,255,.1); }
.home-page .home-path-card:hover { transform: none; }
.home-page .home-path-card::before { background: linear-gradient(0deg, rgba(0,0,0,.96), rgba(0,0,0,.38) 62%, rgba(0,0,0,.08)); }
.home-page .home-path-card h3 {
  font-family: var(--font-display); font-style: normal; font-weight: 800;
  font-size: clamp(2rem, 2.65vw, 2.7rem); line-height: 1.03; letter-spacing: 0; text-transform: uppercase;
}
.home-page .home-path-card p { font-size: .8rem; line-height: 1.65; color: #bebebe; }
.home-page .home-path-card b { font-weight: 600; font-size: .6rem; margin-top: 1.25rem; }
.home-page .home-story-grid { border: 0; }
.home-page .home-value span { color: #aaa; }
.home-page .home-step { background: none; min-height: 280px; padding: 1.8rem; }
.home-page .home-step h3 { font-size: 1.28rem; font-weight: 600; margin-top: 3.5rem; }
.home-page .home-step p { color: #aaa; }
.home-page .home-final-cta::before { display: none; }

/* Department and utility pages share one considered type scale. */
.page-hero h1, .simple-hero h1, .hero-title, .agency-site .agency-site-hero h1,
.rules-hero h1, .rp-laws-hero h1 {
  font-family: var(--font-display);
  font-style: normal;
  font-size: clamp(3.5rem, 6.4vw, 6.6rem);
  font-weight: 800;
  line-height: .98;
  letter-spacing: -.012em;
  max-width: 20ch;
  padding-right: .08em;
}
.page-hero-copy { padding-bottom: 3.5rem; }
.page-hero p, .simple-hero p, .agency-site-hero p { max-width: 64ch; font-size: .98rem; line-height: 1.75; }
.section-head h2, .section-heading-simple h2, .split-heading h2,
.framework-copy h2, .cta-row h2, .agency-site-section h2, .rule-section-head h2,
.rule-standard h2, .tracker-toolbar h2 {
  font-family: var(--font-display); font-style: normal; font-weight: 800;
  font-size: clamp(2.5rem, 4.1vw, 4.1rem); line-height: 1.04; letter-spacing: 0;
}
.agency-site .agency-site-brand strong { font-family: var(--font-display); font-style: normal; font-weight: 800; letter-spacing: .015em; }
.agency-site main { overflow-x: hidden; overflow-x: clip; }
.agency-site-nav a { font-weight: 600; letter-spacing: .07em; }
.agency-site-nav .agency-nav-apply { min-height: 0; font-size: 1rem; }
.agency-service-card { background: transparent; }
.agency-service-card h3 { font-size: 1.35rem; font-weight: 600; line-height: 1.2; }
.agency-site-visuals .agency-visual-card { box-shadow: none; }
.agency-visual-card img { position: absolute; inset: 0; }
.agency-info-panel strong { font-weight: 500; line-height: 1.65; }
.agency-site-join { background: #0b0b0c; }
.department-showcase-copy h2 { font-family: var(--font-body); font-style: normal; font-weight: 600; text-transform: none; font-size: 1.3rem; line-height: 1.3; letter-spacing: -.025em; }
.department-showcase-copy p, .department-eligibility strong { font-size: .84rem; line-height: 1.65; }
.application-card { box-shadow: none; }
.application-card-title strong { font-weight: 600; font-size: 1.03rem; line-height: 1.35; letter-spacing: -.025em; }
.application-card-title small, .application-card-eligibility small,
.application-status, .application-action { font-weight: 600; letter-spacing: .07em; }
.application-card-eligibility span { line-height: 1.65; }
.application-how-grid strong { font-size: .83rem; font-weight: 600; }
.application-how-grid small { font-size: .75rem; }
.application-policy-banner strong, .application-policy-notice strong { font-size: .67rem; font-weight: 600; }
.field label { font-size: .7rem; font-weight: 600; letter-spacing: .075em; }
.form-section-title, .form-section legend { font-weight: 600; }
.system-message { line-height: 1.7; }
.rules-sidebar-card, .rule-standard, .ztp-summary { background: #0c0c0d; box-shadow: none; }
.rule-section-head h2 { max-width: 22ch; }
.rules-toc a { font-size: .74rem; }
.ztp-hero h1 { font-family: var(--font-display); font-style: normal; font-weight: 800; letter-spacing: -.015em; line-height: .88; }
.ztp-hero h2 { font-size: clamp(2rem, 3.5vw, 3.1rem); letter-spacing: 0; }
.policy-layout h2, .security-list h2 { font-size: 1.75rem; letter-spacing: 0; }
.policy-layout #cookies { grid-column: 1 / -1; scroll-margin-top: calc(var(--nav) + 1.5rem); }
.policy-layout #cookies p { max-width: 78ch; }
.policy-layout #cookies p+p { margin-top: .9rem; }
.footer-brand strong { font-family: var(--font-display); font-style: normal; font-size: 1.5rem; letter-spacing: .02em; }
.footer-links strong { font-weight: 600; color: #c4c4c2; }
.footer-links a { font-size: .75rem; color: #999; padding: .3rem 0; }

@media (min-width: 1081px) {
  .wrap, .shell { width: min(var(--wrap), calc(100% - 5rem)); }
  .agency-site-shell { width: min(1320px, calc(100% - 5rem)); }
}
@media (max-width: 1080px) {
  .home-page .home-hero-inner { grid-template-columns: minmax(0, 1fr) 300px; gap: 2rem; width: calc(100% - 3rem); }
  .home-page .home-hero h1 { font-size: clamp(5rem, 10.5vw, 7rem); }
  .home-page .home-hero-buttons { max-width: 420px; }
  .home-page .home-start-step { grid-template-columns: 1fr; gap: .35rem; }
}
@media (max-width: 760px) {
  .home-page .home-hero { min-height: 0; }
  .home-page .home-hero-inner { width: calc(100% - 2.5rem); grid-template-columns: 1fr; padding: 4.5rem 0 2.5rem; gap: 2.5rem; }
  .home-page .home-hero h1 { font-size: clamp(5.5rem, 19vw, 8rem); }
  .home-page .home-start-card { max-width: none; margin-top: 0; }
  .home-page .home-start-step { grid-template-columns: 45px 1fr; gap: .7rem; }
  .home-page .home-hero-buttons { display: flex; }
  .home-page .home-hero-buttons .btn { flex: 1 1 auto; }
  .home-page .home-path-card, .home-page .home-path-card:last-child { min-height: 440px; }
  .home-page .home-path-card h3 { font-size: 2.65rem; max-width: 20ch; }
  .home-page .home-section-head h2 { font-size: 3.6rem; }
  .page-hero h1, .simple-hero h1, .agency-site .agency-site-hero h1, .rules-hero h1 { font-size: clamp(3.2rem, 12.2vw, 4.8rem); }
  .section-head h2, .agency-site-section h2, .rule-section-head h2 { font-size: clamp(2.5rem, 9vw, 3.6rem); }
  .site-nav a { padding: 1rem 0; font-size: .72rem; }
  .logo-copy strong { font-size: 1.17rem; }
  .logo-copy span { font-size: .48rem; }
  .agency-site-brand strong { font-size: 1.15rem; }
  .agency-site-hero-content { padding-bottom: 3rem; }
}
@media (max-width: 420px) {
  .home-page .home-hero h1 { font-size: 20vw; }
  .home-page .home-hero-note { gap: .75rem; font-size: .55rem; }
  .home-page .home-hero-buttons .btn { font-size: 1.08rem; padding-inline: 1rem; }
  .home-page .home-rail-item { padding: 1.2rem; }
  .application-card-title strong { font-size: .95rem; }
  .agency-site-brand strong { font-size: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-page .home-path-card img, .agency-visual-card img { transition: none; }
}

/* All action buttons use the requested black and white treatment. */
body button, body input[type="submit"], body input[type="button"],
body .btn, body .action, body .agency-site-actions>a,
body .agency-site-nav .agency-nav-apply, body .site-nav a.nav-account,
body .mobile-quickbar a {
  background: #080808!important;
  color: #fff!important;
  border-color: #ffffff70;
}
body button:hover, body .btn:hover, body .action:hover,
body .agency-site-actions>a:hover, body .agency-site-nav .agency-nav-apply:hover,
body .site-nav a.nav-account:hover { background: #080808!important; color: #fff!important; border-color: #fff; box-shadow: none; }
body .mobile-quickbar a.primary { box-shadow: inset 0 2px #fff; }
body .site-nav a.nav-account[data-connected="true"] { background: transparent!important; }
