:root {
  --civic-ivory: #f7f1e7;
  --civic-paper: #fffdf8;
  --civic-paper-soft: #fbf6ec;
  --civic-ink: #171b24;
  --civic-muted: #4d5968;
  --civic-navy: #102a43;
  --civic-blue: #1d3557;
  --civic-blue-soft: #2f5378;
  --civic-red: #8d1f2d;
  --civic-red-soft: #b53a48;
  --civic-gold: #b8944d;
  --civic-border: #d8c8aa;
  --civic-border-soft: rgba(120, 90, 45, 0.22);
  --civic-shadow: 0 22px 60px rgba(29, 42, 63, 0.14);
}
html { background: var(--civic-ivory) !important; }
body {
  background: linear-gradient(180deg, var(--civic-ivory), #ffffff 46%, var(--civic-paper-soft)) !important;
  color: var(--civic-ink) !important;
}
p, li, dd, td, th { color: var(--civic-muted) !important; }
h1, h2, h3, h4, h5, h6 { color: var(--civic-navy) !important; }
a { color: var(--civic-blue); }
a:hover, a:focus { color: var(--civic-red); }
.navbar, .site-header, header.navbar {
  background: rgba(255, 253, 247, 0.98) !important;
  border-bottom: 1px solid var(--civic-border-soft) !important;
  box-shadow: 0 8px 24px rgba(16, 42, 67, 0.08) !important;
}
.navbar .navbar-brand, .navbar .navbar-nav > li > a {
  color: var(--civic-navy) !important;
}
.navbar .navbar-nav > li > a:hover,
.navbar .navbar-nav > li > a:focus,
.navbar .navbar-brand:hover,
.navbar .navbar-brand:focus {
  color: var(--civic-red) !important;
  background: transparent !important;
}
.hero, .page-hero, .civic-hero, .initiative-civic-hero {
  background:
    linear-gradient(135deg, rgba(16, 42, 67, 0.97), rgba(29, 53, 87, 0.93)),
    radial-gradient(circle at 18% 18%, rgba(184, 148, 77, 0.18), transparent 38%),
    var(--civic-blue) !important;
  color: #ffffff !important;
  border-bottom: 5px solid var(--civic-red) !important;
}
.hero::before, .page-hero::before, .civic-hero::before, .initiative-civic-hero::before {
  background:
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,0.04) 1px, transparent 1px) !important;
  background-size: 42px 42px !important;
  opacity: 0.25 !important;
}
.hero h1, .page-hero h1, .civic-hero h1, .initiative-civic-hero h1,
.hero h2, .page-hero h2, .civic-hero h2, .initiative-civic-hero h2 {
  color: #ffffff !important;
  text-shadow: none !important;
  max-width: 19ch;
}
.hero p, .page-hero p, .civic-hero p, .initiative-civic-hero p,
.hero .lead, .page-hero .lead, .civic-hero .lead, .initiative-civic-hero .lead {
  color: rgba(255, 255, 255, 0.9) !important;
}
.section, main, .quick-help-strip, .page-jump-strip {
  background: var(--civic-ivory) !important;
}
.section-alt, .home-front-door-strip, .page-identity-band, .lane-companion-strip {
  background: var(--civic-paper) !important;
  border-top: 1px solid var(--civic-border-soft) !important;
  border-bottom: 1px solid var(--civic-border-soft) !important;
}
.card-lite, .callout, .initiative-band, .initiative-card, .download-card, .resource-card,
.faq-card, .link-card, .proof-card, .source-card, .metric-card, .identity-card,
.lane-companion-card, .family-week-card, .civic-band, .civic-declaration-card,
.record-declaration, .civic-statement-card, .justice-public-card, .civic-metric-card,
.fulltext-reader, .fulltext-doc, .fulltext-topbar, .public-packet-card, .footer-nav-card,
.quick-help-inner, .civic-clarity-card {
  background: linear-gradient(180deg, #fffdf8, #fbf5ea) !important;
  border: 1px solid var(--civic-border-soft) !important;
  color: var(--civic-ink) !important;
  box-shadow: var(--civic-shadow) !important;
}
.card-lite p, .card-lite li, .callout p, .callout li, .initiative-band p, .initiative-card p,
.initiative-card li, .download-card p, .resource-card p, .faq-card p, .link-card p,
.proof-card p, .source-card p, .metric-card p, .identity-card p, .lane-companion-card p,
.family-week-card p, .civic-band p, .civic-declaration-card p, .record-declaration p,
.civic-statement-card p, .justice-public-card p, .civic-metric-card p, .fulltext-reader p,
.fulltext-doc p, .fulltext-doc li, .public-packet-card p, .quick-help-inner p,
.civic-clarity-card p {
  color: var(--civic-muted) !important;
}
.card-lite h2, .card-lite h3, .callout h2, .callout h3, .initiative-band h2,
.initiative-card h3, .download-card h3, .resource-card h3, .faq-card h3, .link-card h3,
.proof-card h3, .source-card h3, .metric-card h3, .identity-card h3, .lane-companion-card h3,
.family-week-card h3, .civic-band h2, .civic-declaration-card h2, .record-declaration h2,
.civic-statement-card h2, .justice-public-card h2, .civic-metric-card h3,
.fulltext-reader h2, .fulltext-reader h3, .fulltext-doc h4, .public-packet-card h3,
.quick-help-inner h2, .civic-clarity-card h3 {
  color: var(--civic-navy) !important;
}
.wtp-lockup {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--civic-gold) !important;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-size: 0.88rem;
  font-weight: 800;
  margin: 0 0 8px;
}
.preamble-fragment {
  font-family: Georgia, "Times New Roman", serif;
  color: #ffffff !important;
  font-size: clamp(1.45rem, 3vw, 2.35rem);
  letter-spacing: 0.03em;
  margin: 0 0 18px;
  line-height: 1.18;
}
.civic-declaration-card .preamble-fragment,
.record-declaration .preamble-fragment,
.civic-band .preamble-fragment,
.civic-statement-card .preamble-fragment,
.justice-public-card .preamble-fragment,
.footer-civic-masthead .preamble-fragment {
  color: var(--civic-red) !important;
}
.section-kicker, .kicker, .eyebrow, .meta, .doc-kicker {
  color: var(--civic-red) !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 800;
}
.btn-primary, a.btn-primary {
  background: var(--civic-red) !important;
  border-color: var(--civic-red) !important;
  color: #ffffff !important;
  box-shadow: 0 10px 22px rgba(143, 31, 45, 0.18) !important;
}
.btn-primary:hover, .btn-primary:focus, a.btn-primary:hover, a.btn-primary:focus {
  background: #741725 !important;
  border-color: #741725 !important;
  color: #ffffff !important;
}
.btn-default, .btn-outline-primary, .initiative-pill, .bill-chip, .evidence-pill-row a,
.quick-help-chip, .lane-companion-link, .card-link-list a {
  background: #fffdf7 !important;
  border: 1px solid var(--civic-border) !important;
  color: var(--civic-navy) !important;
  box-shadow: none !important;
}
.btn-default:hover, .btn-default:focus, .btn-outline-primary:hover, .btn-outline-primary:focus,
.initiative-pill:hover, .initiative-pill:focus, .quick-help-chip:hover, .quick-help-chip:focus,
.lane-companion-link:hover, .lane-companion-link:focus, .card-link-list a:hover,
.card-link-list a:focus {
  background: #f5ead8 !important;
  border-color: var(--civic-red) !important;
  color: var(--civic-red) !important;
}
.civic-scope-note, .initiative-note, .record-bottom-line, .footer-boundary-note,
.footer-safety-note, .footer-privacy-note {
  background: #fff8e8 !important;
  border: 1px solid rgba(184, 148, 77, 0.42) !important;
  color: #5c4620 !important;
  border-radius: 18px !important;
  padding: 18px 20px !important;
  margin-top: 22px !important;
}
.civic-scope-note strong, .initiative-note strong, .record-bottom-line strong,
.footer-boundary-note strong, .footer-safety-note strong, .footer-privacy-note strong {
  color: var(--civic-navy) !important;
}
.hero-record-line, .record-bottom-line {
  border-left: 4px solid var(--civic-gold) !important;
  padding-left: 16px !important;
  margin-top: 20px !important;
  font-size: 1.08rem !important;
}
.justice-pullquote {
  font-family: Georgia, "Times New Roman", serif;
  border-left: 5px solid var(--civic-red) !important;
  background: #fff8ed !important;
  color: var(--civic-navy) !important;
  padding: 20px 24px !important;
  margin: 26px 0 0 !important;
  font-size: clamp(1.25rem, 2.4vw, 1.75rem) !important;
  line-height: 1.35 !important;
}
.record-number-grid, .civic-metric-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 26px 0;
}
.record-number-grid div, .civic-metric-card {
  background: #ffffff !important;
  border: 1px solid var(--civic-border-soft) !important;
  border-top: 4px solid var(--civic-red) !important;
  border-radius: 16px !important;
  padding: 18px !important;
}
.record-number-grid strong, .civic-metric-card strong {
  display: block;
  color: var(--civic-navy) !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1;
}
.record-number-grid span, .civic-metric-card span {
  display: block;
  color: var(--civic-muted) !important;
  margin-top: 8px;
  font-weight: 700;
}
.civic-actions, .hero-actions-condensed, .fulltext-toolbar, .initiative-pill-row, .sources-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}
.hero-actions-condensed .btn, .civic-actions .btn, .initiative-pill-row .initiative-pill {
  margin-left: 0 !important;
  margin-top: 0 !important;
}
.civic-statement-card, .civic-declaration-card, .record-declaration, .justice-public-card {
  border-top: 6px solid var(--civic-red) !important;
  border-radius: 24px !important;
  padding: clamp(26px, 5vw, 46px) !important;
}
.civic-nonpartisan .civic-statement-card {
  border-top-color: var(--civic-blue) !important;
}
.footer {
  background: var(--civic-navy) !important;
  border-top: 5px solid var(--civic-red) !important;
  color: rgba(255,255,255,0.88) !important;
}
.footer p, .footer li, .footer a, .footer h3, .footer .meta {
  color: rgba(255,255,255,0.88) !important;
}
.footer .footer-nav-card {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.13) !important;
  box-shadow: none !important;
}
.footer-civic-masthead {
  background: #fffdf8 !important;
  color: var(--civic-ink) !important;
  border: 1px solid rgba(184, 148, 77, 0.45) !important;
  border-top: 5px solid var(--civic-red) !important;
  border-radius: 22px !important;
  padding: 24px 26px !important;
  margin-bottom: 28px !important;
  box-shadow: 0 18px 40px rgba(0,0,0,0.18) !important;
}
.footer-civic-masthead p, .footer-civic-masthead .small-note {
  color: var(--civic-muted) !important;
}
.footer-civic-masthead strong { color: var(--civic-navy) !important; }
.footer-civic-masthead .wtp-lockup { color: var(--civic-gold) !important; }
.footer-civic-masthead .preamble-fragment { margin-bottom: 10px; }
.table, .initiative-table, table {
  background: #fffdf8 !important;
  color: var(--civic-ink) !important;
}
.table th, .initiative-table th, table th {
  background: #f4ead9 !important;
  color: var(--civic-navy) !important;
}
.table td, .initiative-table td, table td {
  border-color: var(--civic-border-soft) !important;
}
.fulltext-doc, .initiative-copybox, pre.preformatted {
  background: #fffdf8 !important;
  color: var(--civic-ink) !important;
  border-color: var(--civic-border-soft) !important;
}
pre.preformatted, code { color: var(--civic-navy) !important; }
@media (max-width: 767px) {
  .record-number-grid, .civic-metric-grid { grid-template-columns: 1fr; }
  .wtp-lockup { letter-spacing: 0.16em; }
  .civic-actions, .hero-actions-condensed { flex-direction: column; align-items: stretch; }
  .civic-actions .btn, .hero-actions-condensed .btn { width: 100%; }
}

:root {
  --civic-cream: #fbf5e8;
  --civic-navy-deep: #0f2942;
  --civic-navy-ink: #0b1f35;
  --civic-red-deep: #8d1f2d;
  --civic-red-bright: #a72b38;
  --civic-gold-soft: #c7a45b;
  --civic-rule: rgba(141, 31, 45, 0.18);
}

body,
.page-shell,
main,
.main-content,
.content-wrapper,
.site-content {
  background: linear-gradient(180deg, #fffdf8 0%, var(--civic-ivory) 46%, #ffffff 100%) !important;
  color: var(--civic-ink) !important;
}

body::selection {
  background: rgba(141, 31, 45, 0.18);
  color: var(--civic-navy);
}

/* Constitution mark beside WE THE PEOPLE */
.wtp-lockup {
  display: inline-flex !important;
  align-items: center !important;
  gap: 12px !important;
  min-height: 54px;
}
.wtp-lockup::before {
  content: "";
  display: inline-block;
  width: 46px;
  height: 54px;
  flex: 0 0 46px;
  background-image: url('../assets/constitution-we-the-people.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  filter: drop-shadow(0 8px 12px rgba(16,42,67,0.18));
}
.hero .wtp-lockup::before,
.page-hero .wtp-lockup::before,
.civic-hero .wtp-lockup::before,
.initiative-civic-hero .wtp-lockup::before {
  filter: drop-shadow(0 10px 16px rgba(0,0,0,0.28));
}

/* Top utility/search strip */
.site-top-search-strip,
.site-search-launch-strip,
.route-finder-launcher,
.search-strip,
.top-strip {
  background: linear-gradient(90deg, #fffdf8, #f7efdf) !important;
  border-bottom: 1px solid var(--civic-border-soft) !important;
  color: var(--civic-navy) !important;
  box-shadow: 0 8px 24px rgba(16,42,67,0.06) !important;
}
.site-top-search-form,
.site-search-launch-form,
.site-top-search-copy,
.site-search-launch-meta,
.route-finder-launcher-copy {
  color: var(--civic-muted) !important;
}
.site-top-search-title,
.route-finder-launcher-title,
.site-search-launch-title {
  color: var(--civic-navy) !important;
  font-weight: 800 !important;
}
.route-finder-launcher-kicker,
.site-top-search-kicker,
.site-search-launch-kicker {
  color: var(--civic-red) !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  font-weight: 900 !important;
}
.site-search-launch-input,
.site-top-search-form input,
.route-finder-launcher input,
input[type="search"],
input[type="text"],
input[type="email"],
textarea,
select {
  background: #ffffff !important;
  border: 1px solid var(--civic-border) !important;
  color: var(--civic-ink) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.7) !important;
}
.site-search-launch-input::placeholder,
input::placeholder,
textarea::placeholder {
  color: #7b8797 !important;
}
.site-search-launch-submit,
.site-top-search-form button,
.route-finder-launcher button,
button[type="submit"] {
  background: var(--civic-red) !important;
  border-color: var(--civic-red) !important;
  color: #ffffff !important;
}
.site-search-launch-submit:hover,
.site-search-launch-submit:focus,
button[type="submit"]:hover,
button[type="submit"]:focus {
  background: #741725 !important;
  border-color: #741725 !important;
  color: #ffffff !important;
}

/* Navigation included in the formal palette */
.navbar,
.navbar-default,
.navbar-fixed-top,
.site-header,
.header,
.main-header,
.nav-wrap,
.navbar-collapse,
.navbar-default .navbar-collapse {
  background: rgba(255, 253, 247, 0.985) !important;
  color: var(--civic-navy) !important;
  border-color: var(--civic-border-soft) !important;
}
.navbar {
  border-top: 4px solid var(--civic-red) !important;
}
.navbar .navbar-brand,
.navbar-default .navbar-brand,
.navbar .navbar-nav > li > a,
.navbar-default .navbar-nav > li > a,
.navbar a,
.navbar-nav a {
  color: var(--civic-navy) !important;
  text-shadow: none !important;
}
.navbar .navbar-brand::before {
  content: "WE THE PEOPLE";
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 9px;
  letter-spacing: .18em;
  color: var(--civic-red);
  line-height: 1;
  margin-bottom: 2px;
}
.navbar .navbar-nav > li > a.nav-current,
.navbar .navbar-nav > li > a[aria-current="page"],
.navbar .navbar-nav > li.nav-priority > a,
.navbar .navbar-nav > li > a.nav-priority-link {
  color: var(--civic-red) !important;
  background: rgba(141, 31, 45, 0.08) !important;
  border-radius: 999px !important;
}
.navbar-toggle,
.navbar-default .navbar-toggle {
  background: #fff8ea !important;
  border-color: var(--civic-border) !important;
}
.navbar-toggle .icon-bar,
.navbar-default .navbar-toggle .icon-bar {
  background: var(--civic-navy) !important;
}
.dropdown-menu,
.navbar .dropdown-menu {
  background: #fffdf8 !important;
  border: 1px solid var(--civic-border-soft) !important;
  box-shadow: 0 18px 40px rgba(16,42,67,0.14) !important;
}
.dropdown-menu > li > a {
  color: var(--civic-navy) !important;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  background: #f5ead8 !important;
  color: var(--civic-red) !important;
}

/* Safety ribbon remains urgent but within the same palette */
.safety-ribbon,
.safety-ribbon-universal {
  background: linear-gradient(90deg, #701724, var(--civic-red), #102a43) !important;
  border-bottom: 1px solid rgba(255,255,255,0.22) !important;
  color: #ffffff !important;
}
.safety-ribbon strong,
.safety-ribbon span,
.safety-ribbon p,
.safety-ribbon a {
  color: #ffffff !important;
}
.safety-ribbon-kicker {
  color: #ffe2a9 !important;
}
.safety-ribbon .btn,
.safety-ribbon .btn-sm {
  background: #fffdf8 !important;
  color: var(--civic-red) !important;
  border-color: rgba(255,255,255,0.72) !important;
}
.safety-ribbon .btn-danger,
.safety-ribbon .btn-primary {
  background: #ffffff !important;
  color: var(--civic-red) !important;
}

/* All major page sections and legacy dark panels */
.section,
.section-alt,
.page-section,
.content-section,
.record-bridge,
.platform-preview,
.proof-section,
.home-front-door-strip,
.page-identity-band,
.quick-help-strip,
.continue-strip,
.platform-rail,
.lane-companion-strip,
.family-week-strip,
.public-packet-strip,
.route-results-section,
.dashboard-section {
  background: var(--civic-ivory) !important;
  color: var(--civic-ink) !important;
}
.section-alt,
.record-bridge,
.home-front-door-strip,
.page-identity-band,
.lane-companion-strip,
.public-packet-strip,
.continue-strip {
  background: var(--civic-paper) !important;
}

/* Broad component palette sweep */
.authority-card,
.link-panel,
.chart-card,
.pillar-card,
.stat-card,
.tool-card,
.change-card,
.materials-card,
.reader-card,
.reader-top,
.reader-body,
.meta-card,
.notice-strip,
.bill-prose,
.source-chip,
.source-card,
.source-panel,
.source-box,
.proof-card,
.platform-card,
.route-card,
.route-result-card,
.family-card,
.help-card,
.packet-card,
.packet-panel,
.download-panel,
.download-row,
.data-card,
.dashboard-card,
.table-card,
.warning-card,
.safe-card,
.info-card,
aside,
[class*="-card"],
[class*="-panel"] {
  background: linear-gradient(180deg, #fffdf8, #fbf5ea) !important;
  border-color: var(--civic-border-soft) !important;
  color: var(--civic-ink) !important;
  box-shadow: 0 18px 48px rgba(16,42,67,0.12) !important;
}
[class*="-card"] h1,
[class*="-card"] h2,
[class*="-card"] h3,
[class*="-card"] h4,
[class*="-panel"] h1,
[class*="-panel"] h2,
[class*="-panel"] h3,
[class*="-panel"] h4,
.reader-card h1,
.reader-card h2,
.reader-card h3,
.reader-card h4,
.bill-prose h1,
.bill-prose h2,
.bill-prose h3,
.bill-prose h4 {
  color: var(--civic-navy) !important;
}
[class*="-card"] p,
[class*="-card"] li,
[class*="-panel"] p,
[class*="-panel"] li,
.reader-card p,
.reader-card li,
.bill-prose,
.bill-prose p,
.bill-prose li,
.proof-intro,
.section-intro,
.read-order-note {
  color: var(--civic-muted) !important;
}

/* Chips, pills, source buttons */
.source-chip,
.tag,
.badge,
.pill,
.status-pill,
.bill-chip,
.route-chip,
.filter-chip,
.nav-chip,
.btn-ghost-proof {
  background: #fffdf8 !important;
  border: 1px solid var(--civic-border) !important;
  color: var(--civic-navy) !important;
}
.source-chip:hover,
.source-chip:focus,
.btn-ghost-proof:hover,
.btn-ghost-proof:focus,
.pill:hover,
.pill:focus {
  background: #f5ead8 !important;
  border-color: var(--civic-red) !important;
  color: var(--civic-red) !important;
}

/* Tables and code/readers */
.table-responsive,
.table-wrap,
table,
.table,
.fulltext-reader,
.fulltext-doc,
.fulltext-body,
.fulltext-topbar,
.initiative-copybox,
pre,
pre.preformatted,
code {
  background: #fffdf8 !important;
  color: var(--civic-ink) !important;
  border-color: var(--civic-border-soft) !important;
}
hr,
.muted-rule,
.section-separator .line {
  border-color: var(--civic-border-soft) !important;
  background: var(--civic-border-soft) !important;
}

/* Quote from Justin Tahai: public ownership of justice */
.justice-public-quote {
  background: linear-gradient(180deg, #fff8e8, #ffffff) !important;
  border-left: 6px solid var(--civic-red) !important;
  border-top: 1px solid var(--civic-border-soft) !important;
  border-right: 1px solid var(--civic-border-soft) !important;
  border-bottom: 1px solid var(--civic-border-soft) !important;
  color: var(--civic-navy) !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: clamp(1.2rem, 2.4vw, 1.7rem) !important;
  line-height: 1.42 !important;
  margin: 28px 0 !important;
  padding: 22px 26px !important;
  border-radius: 0 18px 18px 0 !important;
  box-shadow: 0 16px 42px rgba(16,42,67,0.11) !important;
}
.justice-public-quote cite {
  display: block;
  margin-top: 12px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: .9rem;
  font-style: normal;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--civic-red) !important;
  font-weight: 800;
}

/* Hero layout can now show the Constitution mark without crowding text */
.civic-hero .container,
.initiative-civic-hero .container,
.hero .container,
.page-hero .container {
  max-width: 1180px;
}

@media (max-width: 991px) {
  .navbar .navbar-brand::before { font-size: 8px; }
  .navbar .navbar-nav > li > a { border-radius: 0 !important; }
}
@media (max-width: 767px) {
  .wtp-lockup::before { width: 38px; height: 46px; flex-basis: 38px; }
  .wtp-lockup { gap: 9px !important; min-height: 46px; }
  .navbar { border-top-width: 3px !important; }
}
