/* CD global footer CSS — verbatim from CD's footer_govfed_forCC1 install-bound block.
   Tokens are SCOPED to footer.site (not :root) so they never override a migrated page's
   own :root. Self-contained so the footer also styles correctly on the 404/fallbacks. */
footer.site{
  --navy:#0B1E3A; --cream:#FAF1E2; --orange:#E07A3B; --orange-shadow:#C0612A; --gold:#E8B86A;
  --serif:'Fraunces',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  background:var(--navy); color:var(--cream); padding:80px 0 56px; font-family:var(--sans);
}
footer.site .container{ max-width:1280px; margin:0 auto; padding:0 80px; width:100%; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:56px; }
footer.site a{ color:inherit; }
footer.site .wordmark{ display:inline-flex; align-items:center; gap:12px; font-family:var(--serif); font-weight:600; font-size:19px; letter-spacing:.1px; text-decoration:none; }
footer.site .colophon .wordmark{ color:var(--cream); }
footer.site .wordmark .mark{ width:30px; height:30px; border-radius:7px; background:var(--cream); color:var(--navy); display:grid; place-items:center; font-family:var(--serif); font-weight:700; font-size:18px; line-height:1; margin-top:-1px; }
footer.site .wordmark .tm{ font-size:11px; vertical-align:super; margin-left:2px; opacity:.55; font-weight:400; }
footer.site .wordmark .hq{ font-weight:400; }
footer.site .tag{ margin-top:22px; font-family:var(--serif); font-weight:400; font-size:19px; line-height:1.45; color:rgba(250,241,226,.74); max-width:360px; }
footer.site .col h4{ font-family:var(--mono); font-size:11.5px; letter-spacing:2px; text-transform:uppercase; color:var(--gold); margin:0 0 18px; font-weight:500; }
footer.site .col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
footer.site .col a{ color:rgba(250,241,226,.80); text-decoration:none; font-size:15px; }
footer.site .col a:hover{ color:var(--gold); }
footer.site .col a.gov{ display:inline-flex; align-items:center; gap:9px; }
footer.site .col a.gov .seal{ font-family:var(--mono); font-size:9px; letter-spacing:1.4px; text-transform:uppercase; font-weight:500; color:rgba(250,241,226,.62); border:1px solid rgba(250,241,226,.26); border-radius:4px; padding:2px 5px; line-height:1; white-space:nowrap; transition:color .15s ease,border-color .15s ease; }
footer.site .col a.gov:hover .seal{ color:var(--gold); border-color:rgba(232,184,106,.55); }
footer.site .row{ grid-column:1 / -1; margin-top:48px; padding-top:24px; border-top:1px solid rgba(250,241,226,.16); display:grid; grid-template-columns:1fr auto 1fr; gap:24px; align-items:center; font-family:var(--mono); font-size:12px; letter-spacing:1.2px; color:rgba(250,241,226,.54); }
footer.site .row .copyright{ text-align:left; }
footer.site .row .legal{ display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center; }
footer.site .row .legal a{ color:rgba(250,241,226,.72); text-decoration:none; transition:color .15s ease; }
footer.site .row .legal a:hover{ color:var(--orange); }
footer.site .row .legal .dot{ color:rgba(250,241,226,.30); user-select:none; }
footer.site .row .powered{ text-align:right; color:rgba(250,241,226,.62); }
footer.site .socials{ margin-top:28px; display:flex; align-items:center; gap:16px; }
footer.site .socials a{ display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; color:rgba(250,241,226,.78); transition:color .15s ease,transform .15s ease; }
footer.site .socials a:hover{ color:var(--orange); transform:translateY(-1px); }
footer.site .socials svg{ width:20px; height:20px; display:block; }
@media (max-width:1100px){ footer.site .container{ grid-template-columns:1fr 1fr; padding:0 48px; } }
@media (max-width:720px){ footer.site .container{ grid-template-columns:1fr; gap:36px; padding:0 24px; } footer.site .row{ grid-template-columns:1fr; gap:12px; text-align:left; font-size:11px; } footer.site .row .legal{ justify-content:flex-start; } footer.site .row .powered{ text-align:left; } }

/* ── Scroll-to-Top — b5 house restyle (CC#1, Boss ruling 2026-07-04) ─────────────
   Astra's raw widget shipped here without Astra's CSS: default-plugin look and a
   chevron whose path draws DOWNWARD (Astra normally rotates it in its own styles,
   which these template pages don't load). Fix: rotate the arrow so it points UP,
   and dress the button in the house system (navy / cream / warm-orange hover). */
#ast-scroll-top {
	position: fixed;
	right: 24px;
	bottom: 108px; /* clear visible gap above Harper - pill top sits ~72px */
	z-index: 99998; /* under Harper (999999), above page chrome */
	display: flex !important;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #0B1E3A;
	border: 1.5px solid rgba(250, 241, 226, 0.35);
	border-radius: 14px;
	box-shadow: 0 10px 24px rgba(11, 30, 58, 0.28);
	cursor: pointer;
	transition: background-color .15s ease, transform .15s ease, box-shadow .15s ease;
}
#ast-scroll-top .ast-icon.icon-arrow {
	display: flex;
	align-items: center;
	justify-content: center;
}
#ast-scroll-top .ast-arrow-svg {
	transform: rotate(180deg); /* the shipped path draws a DOWN chevron — this makes it point UP */
	width: 20px;
	height: 13px;
	fill: #FAF1E2;
	display: block;
}
#ast-scroll-top:hover {
	background: #E07A3B;
	transform: translateY(-2px);
	box-shadow: 0 14px 28px rgba(11, 30, 58, 0.32);
}
#ast-scroll-top:hover .ast-arrow-svg { fill: #0B1E3A; }
#ast-scroll-top:focus-visible {
	outline: none;
	box-shadow: 0 0 0 3px #E07A3B, 0 10px 24px rgba(11, 30, 58, 0.28);
}
@media (prefers-reduced-motion: reduce) {
	#ast-scroll-top, #ast-scroll-top:hover { transition: none; transform: none; }
}

/* G1+G2 (Boss live-pixel findings 7/4): the sr-only label was rendering visibly (no Astra CSS on
   template pages) and spilling past the viewport; clip it properly (stays readable to screen readers).
   And lift the button for a clear visible gap above Harper's expanded pill. */
#ast-scroll-top { overflow: hidden; }
#ast-scroll-top .screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}
