/* DEV NOTE (for AI/human editors): this site preserves the "two spaces after a
   sentence" typing convention in prose text by writing "sentence.&nbsp; Next
   sentence" in the HTML -- a literal &nbsp; entity followed by a normal space --
   instead of two plain spaces, which HTML collapses to one when rendered.
   This file doesn't contain that prose itself, but if you're adding CSS to
   support new prose content elsewhere, keep that convention in mind. */
:root{
  --blue:#002868; --blueDark:#001845; --blueRoyal:#003494;
  --red:#BF0A30; --redDark:#9B0826; --white:#FFFFFF;
  --gold:#DAA520; --goldLight:#F0C75E; --cream:#FFFCF5;
  --lightBlue:#E8F0FE; --slate:#1A1A2E; --gray:#444455;
  --border:#C8D0DC; --shadow:0 3px 15px rgba(0,40,104,0.13);
  --serif:'Times New Roman', Georgia, serif;
  --sans:Arial, 'Helvetica Neue', sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  min-height:100vh;
  font-family:var(--sans);
  background-image:linear-gradient(rgba(0,20,60,0.55),rgba(0,20,60,0.55)), url('/assets/flag-bg.jpg');
  background-size:cover; background-position:center; background-attachment:fixed;
  display:flex; flex-direction:column;
}
a{color:inherit; text-decoration:none;}
a:link, a:visited, a:hover, a:active, a:focus{text-decoration:none;}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
.skip-link{position:absolute; top:-100%; left:50%; transform:translateX(-50%); background:var(--blue); color:var(--white); padding:10px 20px; font-family:var(--sans); font-weight:700; z-index:10000; border-radius:0 0 4px 4px; text-decoration:none;}
.skip-link:focus{top:0;}

/* ---- Banner / RedStripe ---- */
.red-stripe{background:var(--red); padding:3px 0;}

/* ---- Nav ---- */
.nav{background:var(--blue); position:sticky; top:0; z-index:100;}
.nav-row{max-width:1100px; margin:0 auto; padding:0 20px; display:flex; align-items:center; justify-content:space-between; position:relative;}
.nav-brand{text-decoration:none; display:block;}
.nav-title{font-family:var(--serif); font-size:22px; font-weight:700; color:var(--gold); white-space:nowrap; display:block; line-height:1.1;}
.nav-tagline{font-family:var(--sans); font-size:10px; font-weight:600; letter-spacing:0.12em; text-transform:uppercase; color:rgba(255,255,255,0.7); white-space:nowrap; display:block;}
body.page-contact .contact-btn-wrap{display:none;}
.nav-toggle{background:none; border:none; cursor:pointer; color:var(--gold); font-size:26px; padding:10px;}
.nav-menu{position:absolute; top:calc(100% + 13px); right:0; background:var(--blueDark); padding:8px 16px 14px; border-radius:6px; box-shadow:0 8px 24px rgba(0,0,0,0.35); width:max-content; max-width:92vw; z-index:200; display:none;}
.nav-menu.open{display:block;}
.nav-menu a, .nav-menu button.nav-item{display:block; width:100%; text-align:left; background:none; border:none; cursor:pointer; color:var(--white); font-family:var(--sans); font-size:15px; font-weight:400; padding:12px 14px; border-radius:4px; text-decoration:none;}
.nav-menu a.active, .nav-menu button.nav-item.active{background:rgba(255,255,255,0.1); font-weight:700;}
.nav-submenu{padding-left:20px; display:none;}
.nav-submenu.open{display:block;}
.nav-submenu a{color:var(--goldLight); font-size:14px; padding:10px 14px;}
.nav-issues-toggle{display:flex; width:100%; justify-content:space-between; align-items:center;}

/* ---- Issue hero ---- */
.issue-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.issue-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center;}
.issue-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.issue-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white); text-align:center;}
.back-btn{background:rgba(255,255,255,0.12); border:1px solid rgba(255,255,255,0.3); color:var(--white); font-family:var(--sans); font-size:13px; padding:7px 18px; border-radius:4px; cursor:pointer; margin-bottom:18px; display:inline-block; text-decoration:none;}
.issue-title{font-family:var(--serif); font-size:clamp(1.6rem, 5vw, 2.5rem); font-weight:700; line-height:1.2; text-shadow:0 2px 6px rgba(0,0,0,0.25); margin:0;}
.last-updated{font-family:var(--sans); font-size:13px; color:rgba(255,255,255,0.7); margin:8px 0 0; font-style:italic; letter-spacing:0.02em;}

/* ---- Nav "Updated" badge ---- */
.nav-item.nav-updated::after{content:"Updated"; display:inline-block; font-family:var(--sans); font-size:10px; font-weight:700; color:var(--gold); background:rgba(218,165,32,0.15); padding:1px 6px; border-radius:3px; margin-left:8px; vertical-align:middle; letter-spacing:0.03em;}

/* ---- Content ---- */
main{flex:1;}
.content-wrap{max-width:780px; margin:0 auto; padding:40px 20px 60px; background:rgba(255,252,245,0.68);}
.content-wrap h2+p, .content-wrap h3+p{margin-top:6px;}
.content-wrap.plain{background:none;}
section.block{margin-bottom:32px;}
h2.section-head{font-family:var(--serif); font-size:22px; color:var(--blue); margin-bottom:14px; padding-bottom:8px; border-bottom:3px solid var(--red);}
h2.section-head.gold{border-bottom-color:var(--gold);}
h2.section-head.blue{border-bottom-color:var(--blue);}
.body-p{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--slate); margin-bottom:14px;}
.speech-byline{font-family:var(--sans); font-size:14px; font-weight:700; font-style:italic; color:var(--gray); margin-bottom:20px;}
.speech-subhead{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--blue); margin:26px 0 12px 0; padding-bottom:6px; border-bottom:2px solid var(--gold);}
.body-list{margin:0 0 14px 0; padding-left:22px;}
.body-list li{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--slate); margin-bottom:10px;}

.research-btn-wrap{text-align:center; margin-top:18px;}
.research-btn{display:inline-block; background:var(--red); color:var(--white); font-family:var(--sans); font-size:15px; font-weight:700; padding:11px 30px; border-radius:4px; text-decoration:none; letter-spacing:0.04em; box-shadow:0 3px 10px rgba(191,10,48,0.35);}
.research-btn:hover{background:var(--redDark);}
.coming-soon-inline{display:inline-block; font-family:var(--sans); font-size:14px; font-weight:700; color:#6b6b6b;}

.watch-video-wrap{text-align:center; margin-bottom:22px;}
.watch-video-btn{display:inline-block; background:var(--red); color:var(--white); font-family:var(--sans); font-size:15px; font-weight:700; padding:11px 30px; border-radius:4px; border:none; cursor:pointer; letter-spacing:0.04em; box-shadow:0 3px 10px rgba(191,10,48,0.35);}
.watch-video-btn:hover{background:var(--redDark);}
.watch-video-coming-soon{display:inline-block; font-family:var(--sans); font-size:14px; font-weight:700; color:#6b6b6b;}

.video-modal-overlay{display:none; position:fixed; inset:0; background:rgba(0,10,30,0.88); z-index:1000; align-items:center; justify-content:center; padding:20px;}
.video-modal-overlay.open{display:flex;}
.video-modal-inner{position:relative; width:100%; max-width:960px;}
.video-modal-close{position:absolute; top:-42px; right:0; background:none; border:none; color:var(--white); font-size:28px; line-height:1; cursor:pointer; padding:6px;}
.video-modal-body{position:relative; width:100%; aspect-ratio:16/9; background:#000; border-radius:4px; overflow:hidden;}
.video-modal-body iframe, .video-modal-body video{width:100%; height:100%; border:0; display:block;}

.refs-block{margin-top:18px; margin-bottom:18px;}
h3.refs-head{font-family:var(--serif); font-size:16px; color:var(--blue); margin-bottom:10px; padding-bottom:5px; border-bottom:2px solid var(--blue);}
.ref-line{font-family:var(--sans); font-size:13px; color:var(--slate); line-height:1.6; margin-bottom:8px;}
.ref-line:last-child{margin-bottom:0;}
.ref-line a{color:var(--blue); text-decoration:underline;}
.ref-caveat{font-family:var(--sans); font-size:11px; color:var(--gray); font-style:italic; margin-top:12px;}

.proposal-link{display:inline-block; margin-top:4px; font-family:var(--sans); font-size:14px; font-weight:700; color:var(--red); text-decoration:none;}
.prototype-btn-wrap{text-align:center; margin:28px 0 8px;}
.prototype-btn{background:var(--red); color:var(--white); font-family:var(--sans); font-size:16px; font-weight:700; padding:14px 36px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.03em; box-shadow:0 4px 12px rgba(191,10,48,0.3); text-decoration:none; display:inline-block;}

/* ---- Metrics (Goals/Metrics/Review/Severability/Sunset) ---- */
.metrics-list{display:flex; flex-direction:column; gap:14px;}
.metric-box{background:rgba(0,0,0,0.03); border:1px solid #ddd; border-left:4px solid #ccc; border-radius:4px; padding:14px 18px;}
.metric-box.filled{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue);}
.metric-label{font-family:var(--sans); font-size:12.5px; font-weight:700; color:#6b6b6b; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:6px;}
.metric-box.filled .metric-label{color:var(--blue);}
.metric-value{font-family:var(--sans); font-size:14px; line-height:1.6; color:#6b6b6b; margin:0; font-style:italic;}
.metric-box.filled .metric-value{font-size:15px; color:var(--slate); font-style:normal;}

/* ---- Comment form ---- */
.cf-rank-wrap{background:rgba(255,255,255,0.6); border:1px solid var(--border); border-left:4px solid var(--gold); border-radius:6px; padding:18px 20px; margin-bottom:22px;}
.cf-rank-controls{display:flex; align-items:center; gap:14px; margin:10px 0 8px;}
.cf-rank-slider{flex:1; accent-color:var(--red);}
.cf-rank-value{font-family:var(--serif); font-size:24px; font-weight:700; color:var(--red); min-width:32px; text-align:center;}
.cf-rank-note{font-family:var(--sans); font-size:13px; font-style:italic; color:var(--gray); margin:0 0 12px;}
.cf-rank-avg{font-family:var(--sans); font-size:17px; color:var(--blue); font-weight:700; margin:0; padding-top:10px; border-top:1px solid var(--border);}
.cf-rank-avg-value{font-size:22px; color:var(--red);}
.cf-rank-count{font-family:var(--sans); font-size:13px; font-weight:400; color:var(--gray);}

.comment-form{background:rgba(232,240,254,0.75); border:2px solid var(--border); border-top:4px solid var(--blue); border-radius:6px; padding:28px 24px; margin-top:36px;}
.comment-form h3{font-family:var(--serif); font-size:28px; color:var(--goldLight); -webkit-text-stroke:4px var(--blue); paint-order:stroke fill; letter-spacing:3px; margin:0 0 6px;}
.comment-form .cf-invite{font-family:var(--sans); font-size:15px; font-weight:700; color:var(--blue); margin-bottom:8px; line-height:1.6;}
.comment-form .cf-sub{font-family:var(--sans); font-size:14px; color:var(--gray); margin-bottom:20px; line-height:1.5;}
.cf-success{background:#d4edda; border:1px solid #a8d5b5; border-radius:4px; padding:12px 16px; margin-bottom:16px; font-family:var(--sans); font-size:14px; color:#155724; display:none;}
.cf-success.show{display:block;}
.cf-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:14px;}
.cf-field{display:flex; flex-direction:column; gap:14px; margin-top:14px;}
label.cf-label{font-family:var(--sans); font-size:13px; font-weight:600; color:var(--blue); margin-bottom:5px; display:block;}
label.cf-label .opt{font-weight:400; color:#888;}
.cf-input, .cf-select, .cf-textarea{font-family:var(--sans); font-size:15px; padding:10px 14px; border:1px solid var(--border); border-radius:4px; width:100%; box-sizing:border-box; color:var(--slate); background:var(--white);}
.cf-textarea{resize:vertical; min-height:100px;}
.cf-yesno{display:flex; align-items:center; gap:12px; font-family:var(--sans); font-size:14px; color:var(--slate); margin-top:14px;}
.cf-yesno span.q{font-weight:600; color:var(--blue);}
.cf-yesno-btns{display:flex; gap:6px;}
.cf-yn-btn{padding:5px 16px; border-radius:4px; border:2px solid var(--border); background:var(--white); color:var(--slate); font-weight:600; cursor:pointer; font-size:13px;}
.cf-yn-btn.selected{border-color:var(--blue); background:var(--blue); color:var(--white);}
.cf-notify{display:none; align-items:center; gap:8px; font-family:var(--sans); font-size:13.5px; color:var(--slate); margin-top:14px;}
.cf-notify.show{display:flex;}
.cf-submit{background:var(--blue); color:var(--white); font-family:var(--sans); font-size:15px; font-weight:700; padding:12px 36px; border:none; border-radius:4px; cursor:pointer; margin-top:14px;}
.cf-submit:hover{background:var(--blueRoyal);}
.cf-submit:disabled{background:#6688aa; cursor:default; opacity:0.7;}
.cf-error{font-family:var(--sans); font-size:13px; color:var(--red); margin:10px 0 0; font-weight:600;}

/* ---- Contact button / footer ---- */
.contact-btn-wrap{text-align:center; padding:28px 20px 8px;}
.contact-btn{background:var(--gold); color:var(--blueDark); font-family:var(--sans); font-size:15px; font-weight:700; padding:12px 32px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.03em; box-shadow:0 3px 10px rgba(0,0,0,0.15); text-decoration:none; display:inline-block;}
.contact-btn:hover, .contact-btn:visited, .contact-btn:active, .contact-btn:focus{text-decoration:none; color:var(--blueDark);}
footer.site-footer{background:var(--blueDark); color:rgba(255,255,255,0.7); font-family:var(--sans); font-size:13px; text-align:center; padding:24px 20px; line-height:1.6; border-top:3px solid var(--gold);}
footer.site-footer .inner{max-width:780px; margin:0 auto;}
footer.site-footer .paid-for{margin-bottom:4px; color:var(--gold); font-weight:700; font-size:14px;}
footer.site-footer .copyright{margin-bottom:0;}
footer.site-footer .footer-links{margin-bottom:8px; font-size:13px;}
footer.site-footer .footer-links a{color:rgba(255,255,255,0.85); text-decoration:underline; text-decoration-color:rgba(255,255,255,0.4);}
footer.site-footer .footer-links a:hover{color:#fff; text-decoration-color:#fff;}

/* ---- Homepage hero ---- */
.hero{position:relative; overflow:hidden; min-height:420px; display:flex; align-items:center; justify-content:center;}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.72) 0%, rgba(0,24,69,0.82) 100%);}
.hero-inner{position:relative; z-index:1; text-align:center; color:var(--white); padding:64px 24px 56px; max-width:800px; margin:0 auto;}
.hero-title{font-family:var(--serif); font-size:clamp(2.4rem, 7vw, 4.2rem); font-weight:700; margin:0 0 8px; line-height:1.1; text-shadow:0 3px 12px rgba(0,0,0,0.4);}
.hero-subtitle{font-family:var(--sans); font-size:clamp(0.9rem, 2.5vw, 1.1rem); font-weight:600; letter-spacing:0.15em; text-transform:uppercase; color:var(--white); margin:0 0 14px; opacity:0.9;}
.hero-tagline{font-family:var(--serif); font-size:clamp(1.6rem, 4.5vw, 2.4rem); font-weight:700; margin:0 0 10px; line-height:1.45; color:var(--goldLight); text-shadow:0 1px 6px rgba(0,0,0,0.3);}
.hero-rule{width:60px; height:3px; background:var(--red); margin:0 auto 32px; border-radius:2px;}
.hero-cta{background:var(--red); color:var(--white); font-family:var(--sans); font-size:17px; font-weight:700; padding:15px 42px; border:none; border-radius:4px; cursor:pointer; letter-spacing:0.04em; box-shadow:0 4px 16px rgba(191,10,48,0.4); text-decoration:none; display:inline-block;}
.hero-cta:hover{background:var(--redDark);}

/* ---- Mission ---- */
.mission{padding:56px 20px;}
.mission-inner{max-width:700px; margin:0 auto;}
.mission-head{font-family:var(--serif); font-size:clamp(1.5rem, 4vw, 2.1rem); color:var(--blue); margin:0 0 8px; text-align:center;}
.mission-rule{width:50px; height:3px; background:var(--red); margin:0 auto 24px; border-radius:2px;}
.mission-note{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--slate); margin-top:20px; padding:16px 20px; background:rgba(0,40,104,0.06); border-left:4px solid var(--blue); border-radius:4px;}
.mission-note strong{color:var(--blue);}

/* Listen button (text-to-speech) */
.listen-btn-wrap{text-align:right; margin:0 0 12px;}
.listen-btn{display:inline-flex; align-items:center; gap:6px; font-family:var(--sans); font-size:13px; font-weight:600; color:var(--blue); background:rgba(0,40,104,0.08); border:1px solid rgba(0,40,104,0.2); padding:8px 18px; border-radius:20px; cursor:pointer; letter-spacing:0.02em; transition:background 0.2s, color 0.2s;}
.listen-btn:hover{background:rgba(0,40,104,0.15);}
.listen-btn.listening{background:var(--blue); color:var(--white); border-color:var(--blue);}
.listen-icon{font-size:11px;}

/* ---- What's New section ---- */
.whatsnew{padding:40px 20px 44px; background:rgba(255,255,255,0.70);}
.whatsnew-inner{max-width:700px; margin:0 auto;}
.whatsnew-head{font-family:var(--serif); font-size:clamp(1.3rem, 3.5vw, 1.8rem); color:var(--blue); margin:0 0 8px; text-align:center;}
.whatsnew-rule{width:50px; height:3px; background:var(--gold); margin:0 auto 20px; border-radius:2px;}
.whatsnew-list{list-style:none; padding:0; margin:0;}
.whatsnew-item{display:flex; align-items:flex-start; padding:10px 0; border-bottom:1px solid var(--border); font-family:var(--sans); font-size:16px; font-weight:700; font-style:italic; line-height:1.5; color:var(--slate);}
.whatsnew-item:last-child{border-bottom:none;}
.whatsnew-date{flex-shrink:0; white-space:nowrap; color:var(--blue);}
.whatsnew-text{flex:1;}
.whatsnew-link{color:var(--red); font-weight:600; text-decoration:none;}
.whatsnew-link:hover{text-decoration:underline;}

/* ---- Liberty Bell section ---- */
/* ---- Mission portrait ---- */
.mission-flex{max-width:850px; margin:0 auto; display:flex; flex-direction:column; align-items:center; background:rgba(255,255,255,0.70); padding:40px 80px; border-radius:6px;}
.mission-portrait-wrap{padding:40px 24px 32px; display:flex; justify-content:center;}
.mission-portrait{width:100%; max-width:374px; border-radius:6px; box-shadow:0 8px 32px rgba(0,40,104,0.2); border:3px solid var(--blue);}
@media(max-width:700px){
  .mission-flex{padding:40px 20px;}
  .bell-text{padding:40px 20px;}
  .hero-inner{padding:64px 20px 56px;}
  .mission-portrait-wrap{padding:24px 20px 32px;}
  .mission-portrait{max-width:72vw;}
}

.bell-section{background:var(--blue); overflow:hidden;}
.bell-inner{max-width:1100px; margin:0 auto; display:flex; flex-wrap:wrap; align-items:center;}
.bell-img-wrap{flex:1 1 340px; min-width:280px; padding:18px 14px 36px; display:flex; flex-direction:column; align-items:center;}
.bell-img{width:100%; max-width:420px; border-radius:6px; box-shadow:0 8px 32px rgba(0,0,0,0.4); border:3px solid var(--red);}
.bell-caption{font-family:var(--sans); font-size:11px; color:rgba(255,255,255,0.5); margin-top:8px; font-style:italic;}
.bell-text{flex:1 1 340px; padding:40px 28px; color:var(--white);}
.bell-head{font-family:var(--serif); font-size:clamp(1.63rem, 4.67vw, 2.33rem); margin-bottom:16px; color:var(--goldLight); text-align:center;}
.bell-p{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--goldLight); margin-bottom:14px;}

/* ---- Category page ---- */
.category-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.category-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center; filter:brightness(0.3);}
.category-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.category-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white); text-align:center;}
.category-summary{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:6px; padding:28px 24px; margin-bottom:28px;}
.issue-card-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:18px;}
.issue-card{position:relative; background:rgba(255,255,255,0.75); border:2px solid var(--border); border-left:5px solid var(--red); border-radius:5px; padding:22px 20px; text-align:left; cursor:pointer; box-shadow:var(--shadow); display:flex; flex-direction:column; gap:8px;}
.issue-card:hover{border-left-color:var(--blue); transform:translateY(-2px);}
.issue-card-title{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0; text-align:center;}
.issue-card-short{font-family:var(--sans); font-size:14px; color:var(--gray); line-height:1.55; margin:0; flex:1;}
.issue-card-link{font-family:var(--sans); font-size:13px; font-weight:700; color:var(--red); margin-top:4px; text-decoration:none;}
.issue-card-link::after{content:''; position:absolute; top:0; right:0; bottom:0; left:0; z-index:1;}

/* ---- Sitemap page ---- */
.sitemap-list{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:2px;}
.sitemap-list li{padding:6px 0;}
.sitemap-list a{font-family:var(--sans); font-size:10pt; font-weight:700; color:var(--blue); text-decoration:none;}
.sitemap-list a:hover{text-decoration:underline;}
.sitemap-list.indent-1{padding-left:24px; margin-top:2px;}
.sitemap-list.indent-2{padding-left:48px; margin-top:2px;}
.sitemap-list.indent-1 a, .sitemap-list.indent-2 a{font-weight:400;}

/* Hamburger version of the same tree: light text for the dark background,
   plus a visible highlight for whichever page is currently open.  Selectors
   here are deliberately more specific than the base ".nav-menu a" rule
   above (same font-size/weight properties, equal specificity) so this
   doesn't depend on which rule happens to come later in the file. */
.nav-menu.sitemap-nav{max-height:70vh; overflow-y:auto; overscroll-behavior:contain; direction:rtl;}
.nav-menu.sitemap-nav > ul{direction:ltr;} /* undo the rtl flip for the actual content; only the scrollbar position is affected by direction:rtl on the parent */
.nav-menu.sitemap-nav{scrollbar-width:thin; scrollbar-color:var(--gold) rgba(255,255,255,0.1);}
.nav-menu.sitemap-nav::-webkit-scrollbar{width:10px;}
.nav-menu.sitemap-nav::-webkit-scrollbar-track{background:rgba(255,255,255,0.1); border-radius:4px;}
.nav-menu.sitemap-nav::-webkit-scrollbar-thumb{background:var(--gold); border-radius:4px;}
.nav-menu.sitemap-nav .sitemap-list a{color:var(--white); font-size:10pt; font-weight:700; padding:4px 6px;}
.nav-menu.sitemap-nav .sitemap-list.indent-1 a, .nav-menu.sitemap-nav .sitemap-list.indent-2 a{color:var(--goldLight); font-weight:400;}
.nav-menu.sitemap-nav .sitemap-list a.active{background:rgba(255,255,255,0.15); border-radius:3px;}
.tree-toggle{background:none; border:none; cursor:pointer; color:var(--goldLight); font-size:10px; padding:2px 8px; vertical-align:middle;}
.sitemap-list.tree-collapsed{display:none;}

/* ---- Simple content page (bio, accountability, thinking-aloud, tax-dollars) ---- */
.simple-hero{position:relative; overflow:hidden; padding:44px 20px 36px;}
.simple-hero::before{content:""; position:absolute; inset:0; background-image:url('/assets/flag-bg.jpg'); background-size:cover; background-position:center; filter:brightness(0.3);}
.simple-hero::after{content:""; position:absolute; inset:0; background:linear-gradient(170deg, rgba(0,40,104,0.82) 0%, rgba(0,24,69,0.9) 100%);}
.simple-hero-inner{max-width:780px; margin:0 auto; position:relative; z-index:1; color:var(--white); text-align:center;}
.issues-hero{text-align:center;} /* redundant now that simple-hero-inner is centered by default; harmless, left in place */
.issues-hero-subtitle{font-family:var(--serif); font-size:clamp(1.4rem, 4vw, 2rem); font-weight:700; color:var(--goldLight); margin:8px 0 0; line-height:1.2;}
.simple-subtitle{font-family:var(--sans); font-size:19px; color:var(--goldLight); margin-top:8px;}
.bio-body{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--slate);}
.bio-body p{margin-bottom:16px;}
.bio-closer{font-family:var(--sans); font-size:17px; line-height:1.75; color:var(--goldLight); -webkit-text-stroke:3px var(--blue); paint-order:stroke fill; letter-spacing:2px; font-weight:700; font-style:italic; margin-top:8px;}

/* Contact page */
.contact-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:8px; padding:36px 32px; text-align:center;}
.contact-card p{font-family:var(--serif); font-size:18px; font-style:italic; color:var(--slate); line-height:1.8; margin-bottom:20px;}
.contact-card .email-main{color:var(--gold); font-weight:700; font-size:20px;}
.contact-pills{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:24px;}
.contact-pill{font-family:var(--sans); font-size:14px; font-weight:600; color:var(--blue); background:rgba(0,40,104,0.08); padding:6px 14px; border-radius:20px;}
.contact-note{font-family:var(--serif); font-size:16px; font-style:italic; color:var(--gray); line-height:1.8;}

/* Accountability framework cards */
.framework-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue); border-radius:4px; padding:18px 22px;}
.framework-card h3{font-family:var(--serif); font-size:19px; font-weight:700; color:var(--blue); margin:0 0 8px 0;}
.framework-card p{font-family:var(--sans); font-size:14pt; line-height:1.7; color:var(--slate); margin:0;}
.framework-list{display:flex; flex-direction:column; gap:18px;}

/* Thinking Aloud entries */
.entry-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--blue); border-radius:4px; padding:24px 28px; margin-bottom:20px;}
.entry-head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:14px;}
.entry-head h2{font-family:var(--serif); font-size:20px; font-weight:700; color:var(--blue); margin:0;}
.entry-date{font-family:var(--sans); font-size:13px; color:var(--gray); font-style:italic;}
.entry-card p{font-family:var(--sans); font-size:14pt; line-height:1.75; color:var(--slate); margin-bottom:14px;}
.entry-card p:last-child{margin-bottom:0;}

/* Tax Dollars page */
.did-you-know{background:#1B8C3A; color:var(--white); border-radius:8px; padding:20px 24px; margin-bottom:28px; box-shadow:0 3px 12px rgba(27,140,58,0.3);}
.did-you-know h3{font-family:var(--serif); font-size:20px; font-weight:700; margin-bottom:10px; color:#fff;}
.did-you-know p{font-family:var(--sans); font-size:15px; line-height:1.7; margin:0;}
.tax-item-list{display:flex; flex-direction:column; gap:12px;}
.tax-item{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:4px; padding:16px 20px;}
.tax-item.c0{border-left:4px solid var(--blue);}
.tax-item.c1{border-left:4px solid var(--red);}
.tax-item.c2{border-left:4px solid var(--gold);}
.tax-item-head{display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; margin-bottom:6px;}
.tax-item-head h3{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0;}
.tax-item-year{font-family:var(--sans); font-size:12px; font-weight:600; color:var(--gray); background:rgba(0,40,104,0.08); padding:2px 10px; border-radius:3px;}
.tax-item p{font-family:var(--sans); font-size:14px; color:var(--slate); line-height:1.6; margin:0;}
.tax-footnote{font-family:var(--sans); font-size:14px; color:var(--gray); text-align:center; margin-top:28px; font-style:italic;}

/* ---- Humor page ---- */
.quote-wrap{display:flex; flex-wrap:wrap; gap:16px; justify-content:center; align-items:flex-start;}
.quote-card{background:rgba(255,255,255,0.85); border-radius:20px; box-shadow:0 3px 12px rgba(0,0,0,0.1); flex:0 1 auto;}
.quote-card p.quote-text{font-family:var(--serif); font-style:italic; color:var(--slate); line-height:1.5; margin:0;}
.quote-card p.quote-attr{font-family:var(--sans); font-size:12px; font-weight:700; margin:10px 0 0 0;}
.quote-footnote{font-family:var(--sans); font-size:14px; color:var(--gray); text-align:center; margin-top:32px; font-style:italic;}

/* ---- Endorsements page ---- */
.endorse-tabs{display:flex; gap:8px; margin-bottom:28px;}
.endorse-tab-btn{flex:1; padding:12px; font-family:var(--sans); font-size:15px; font-weight:700; border:none; border-radius:4px; cursor:pointer; background:rgba(0,40,104,0.1); color:var(--blue);}
.endorse-tab-btn.active{background:var(--blue); color:var(--white);}
.endorse-panel{display:none;}
.endorse-panel.active{display:block;}
.endorse-list{display:flex; flex-direction:column; gap:12px;}
.endorse-card{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-left:4px solid var(--gold); border-radius:4px; padding:16px 20px;}
.endorse-card h3{font-family:var(--serif); font-size:17px; font-weight:700; color:var(--blue); margin:0 0 6px 0;}
.endorse-card p{font-family:var(--sans); font-size:14px; color:var(--slate); line-height:1.5; margin:0;}
.volunteer-quote{background:rgba(255,255,255,0.7); border-left:4px solid var(--red); border-radius:6px; padding:26px 28px; margin-bottom:28px;}
.volunteer-quote-text{font-family:var(--serif); font-size:20px; font-style:italic; color:var(--slate); line-height:1.5; margin:0 0 16px;}
.volunteer-quote-attr{font-family:var(--sans); font-size:13px; color:var(--gray); line-height:1.6; margin:0;}

.endorse-empty{background:rgba(255,255,255,0.75); border:1px solid var(--border); border-radius:6px; padding:40px 24px; text-align:center;}
.endorse-empty p.headline{font-family:var(--serif); font-size:20px; color:var(--blue); margin-bottom:12px;}
.endorse-empty p.body{font-family:var(--sans); font-size:15px; color:var(--gray); line-height:1.6; margin:0;}

/* ---- Seeing the Budget page ---- */
.prototype-banner{background:var(--red); color:var(--white); font-family:var(--sans); font-size:13px; font-weight:700; text-align:center; padding:10px; border-radius:4px; margin-bottom:32px;}
.budget-section-head{font-family:var(--serif); font-size:clamp(1.3rem,3.5vw,1.8rem); color:var(--blue); margin-bottom:8px;}
.budget-source-note{font-family:var(--sans); font-size:13px; color:var(--gray); margin-bottom:20px; font-style:italic;}
.budget-lead{font-family:var(--sans); font-size:14px; color:var(--slate); margin-bottom:20px;}
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(160px, 1fr)); gap:14px; margin-bottom:28px;}
.stat-card{background:rgba(255,255,255,0.75); padding:16px; border-radius:6px; text-align:center; border:2px solid var(--border);}
.stat-label{font-family:var(--sans); font-size:11px; font-weight:600; color:var(--gray); text-transform:uppercase; letter-spacing:0.08em;}
.stat-value{font-family:var(--serif); font-size:28px; font-weight:700; margin:6px 0;}
.budget-sub-head{font-family:var(--serif); font-size:18px; color:var(--blue); margin-bottom:14px; padding-bottom:6px; border-bottom:3px solid;}
.budget-sub-head.red-underline{border-bottom-color:var(--red);}
.budget-sub-head.gold-underline{border-bottom-color:var(--gold);}
.chart-card{background:rgba(255,255,255,0.75); padding:24px; border-radius:6px; border:1px solid var(--border); margin-bottom:28px;}
.budget-footnote{font-family:var(--sans); font-size:13px; color:var(--gray); font-style:italic; text-align:center; margin-bottom:48px;}
.budget-divider{border-top:3px solid var(--blue); padding-top:32px; margin-bottom:8px;}

.pie-wrap{display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:center;}
.pie-svg{max-width:100%;}
.pie-legend{display:flex; flex-direction:column; gap:6px; min-width:200px;}
.pie-legend-row{display:flex; align-items:center; gap:8px; font-family:Arial,sans-serif; font-size:13px; color:#1A1A2E;}
.pie-swatch{width:14px; height:14px; border-radius:3px; flex-shrink:0;}
.pie-legend-label{font-weight:600;}
.pie-legend-value{color:#666; margin-left:auto; white-space:nowrap;}

.bar-chart{display:flex; flex-direction:column; gap:8px;}
.bar-label-row{display:flex; justify-content:space-between; font-family:var(--sans); font-size:13px; color:var(--slate); margin-bottom:3px;}
.bar-label{font-weight:600;}
.bar-track{background:rgba(0,0,0,0.08); border-radius:3px; height:22px; overflow:hidden;}
.bar-fill{height:100%; border-radius:3px;}
