:root {
  /* ── trafficgrants.ai v2 Brand Palette ── */
  --navy: #0A1628;          /* v2 dark navy: body bg, footer, submit section */
  --blue: #005EB8;          /* v2 City Blue: links, interactive, filter active */
  --blue-light: #E8F1FA;    /* v2 light blue bg */
  --gold: #FFC72C;          /* v2 gold: accents, highlights, CTA */
  --gold-dark: #D4A010;     /* v2 gold hover */
  --slate: #2D3748;         /* v2 body text */
  --gray: #718096;          /* v2 secondary text */
  --gray-light: #EDF2F7;    /* v2 subtle bg */
  --white: #FFFFFF;
  --green: #38A169;
  --orange: #DD6B20;
  --red: #E53E3E;
  /* ── Extended palette for content richness ── */
  --hero-blue: #003F7F;     /* hero bg matches v2 */
  --ink: #0F1923;
  --paper: #F8F9FB;         /* neutral light bg aligned to v2 feel */
  --rule: #E2E8F0;          /* v2 border color */
  --muted: #718096;         /* same as --gray */
  --sky: #E8F1FA;           /* same as --blue-light */
  --teal: #0B6E6E;
  --teal-green: #1A6B3A;
  --green-l: #C6F6D5;       /* v2 badge-open bg */
  --red-b: #B52B2B;
  --red-l: #FED7D7;         /* v2 badge-closed bg */
  --gold-l: #FEFCBF;        /* v2 badge-upcoming bg */
  --purp: #5A2882;
  --purp-l: #F0E8FA;
  --ora: #C45C10;
  --ora-l: #FDEEDD;
  --navy2: #003F7F;         /* hero bg = v2 hero blue */
  --gold2: #D4A010;
  --serif: 'DM Serif Display', serif;
  --sans: 'DM Sans', sans-serif;
  --mono: 'DM Sans', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body {
  font-family: 'DM Sans', sans-serif;
  background: var(--navy);
  color: var(--slate);
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

/* HERO (inline sections) */
.hero{background:var(--navy2);padding:72px 6% 64px;position:relative;overflow:hidden;}
.hero::before{content:'';position:absolute;top:-80px;right:-40px;width:480px;height:480px;border-radius:50%;background:radial-gradient(circle,rgba(255,199,44,.09) 0%,transparent 70%);}
.hero-tag{font-family:var(--mono);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:#FFC72C;margin-bottom:14px;}
.hero h1{font-family:var(--serif);font-size:clamp(1.9rem,4.5vw,3.4rem);color:#fff;line-height:1.1;max-width:820px;margin-bottom:16px;}
.hero h1 em{color:#FFC72C;font-style:normal;}
.hero-sub{font-size:1rem;color:rgba(255,255,255,.62);max-width:680px;font-weight:300;line-height:1.72;margin-bottom:32px;}
.hero-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;}
.hero-pill{border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.72);padding:5px 14px;border-radius:100px;font-size:.76rem;font-weight:500;}
.hero-note{font-family:var(--mono);font-size:.66rem;color:rgba(255,255,255,.28);letter-spacing:.05em;}

/* MODULE SHELL — matches intelligence modules */
.header {
  background: #003F7F;
  border-bottom: 3px solid #FFC72C;
  padding: 40px 40px 36px;
  position: relative;
  overflow: hidden;
  text-align: center;
}
.header::before {
  content: '';
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(-45deg, transparent, transparent 24px, rgba(255,255,255,0.018) 24px, rgba(255,255,255,0.018) 25px);
}
.header-inner { max-width: 1600px; margin: 0 auto; position: relative; z-index: 1; }
.header-logo { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 4px; }
.header-wordmark { display: flex; align-items: baseline; font-family: 'DM Serif Display', serif; font-size: 38px; line-height: 1; }
.header-wordmark .traffic { color: #fff; }
.header-wordmark .grants { color: #FFC72C; }
.header-wordmark .dot-ai { color: #fff; }
.header-tagline { font-size: 13px; color: rgba(255,255,255,0.55); letter-spacing: 3px; text-transform: uppercase; margin-bottom: 12px; }
.header-subtitle { font-family: 'DM Serif Display', serif; font-size: 22px; color: rgba(255,255,255,0.9); font-weight: 400; margin-bottom: 24px; }
.header-stats { display: flex; gap: 40px; flex-wrap: wrap; justify-content: center; }
.header-stat { text-align: center; }
.header-stat .val { font-family: 'DM Serif Display', serif; font-size: 32px; color: #FFC72C; }
.header-stat .lbl { font-size: 11px; color: rgba(255,255,255,0.45); text-transform: uppercase; letter-spacing: 2px; margin-top: 2px; }

.tg-back-nav{display:flex;flex-wrap:wrap;gap:10px 16px;justify-content:center;align-items:center;padding:0 24px 18px;position:relative;z-index:1;}
.tg-back-nav a{font-size:12px;font-weight:600;color:rgba(255,255,255,0.95);text-decoration:none;padding:8px 14px;border-radius:8px;border:1px solid rgba(255,255,255,0.3);transition:color .15s,border-color .15s,background .15s;}
.tg-back-nav a:hover{color:#FFC72C;border-color:rgba(255,199,44,0.55);background:rgba(255,255,255,0.07);}

.tab-bar {
  background: #111f35;
  border-bottom: 1px solid #2a3f60;
  display: flex;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 0 24px;
}
.tab-bar::-webkit-scrollbar { height: 3px; }
.tab-bar::-webkit-scrollbar-thumb { background: #2a3f60; }
.tab-btn {
  padding: 14px 18px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(255,255,255,0.45);
  white-space: nowrap;
  cursor: pointer;
  border: none;
  border-bottom: 3px solid transparent;
  background: none;
  font-family: 'DM Sans', sans-serif;
  transition: all 0.15s;
}
.tab-btn:hover { color: rgba(255,255,255,0.82); background: rgba(255,255,255,0.04); }
.tab-btn.active { color: #FFC72C; border-bottom-color: #FFC72C; }
.tab-content { display: none; }
.tab-content.active { display: block; }

.tf-sheet {
  max-width: 1200px;
  margin: 0 auto;
  background: #fff;
  border-radius: 0;
  position: relative;
  z-index: 2;
  overflow: hidden;
}

/* SECTIONS */
.sec{padding:40px;background:var(--white);}
.sec.alt{background:#F8F9FB;}
.eyebrow{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:0.12em;font-weight:600;text-transform:uppercase;color:#005EB8;margin-bottom:9px;}
.sec-h{font-family:'DM Serif Display',serif;font-size:clamp(22px,2.8vw,30px);color:#0A1628;line-height:1.2;margin-bottom:12px;font-weight:400;}
.sec-lead{font-size:15px;color:#718096;max-width:760px;font-weight:400;line-height:1.65;margin-bottom:32px;}
.sub-hd{font-family:'DM Serif Display',serif;font-size:18px;color:#0A1628;margin:28px 0 13px;padding-bottom:7px;border-bottom:1px solid #E2E8F0;font-weight:400;}

/* CALLOUTS */
.callout{border-radius:10px;padding:15px 18px;margin:18px 0;display:flex;gap:11px;}
.callout.info{background:#E8F1FA;border-left:3px solid #005EB8;}
.callout.warn{background:#FEFCBF;border-left:3px solid #D4A010;}
.callout.key{background:#C6F6D5;border-left:3px solid #38A169;}
.callout.rule{background:#FED7D7;border-left:3px solid #E53E3E;}
.callout.purple{background:#F0E8FA;border-left:3px solid #5A2882;}
.ci{font-size:18px;flex-shrink:0;margin-top:2px;}
.callout h4{font-weight:700;font-size:13px;margin-bottom:4px;color:#0F1923;}
.callout p,.callout ul{font-size:.83rem;color:var(--ink);line-height:1.62;}
.callout ul{padding-left:15px;margin-top:5px;}
.callout li{margin-bottom:3px;}

/* PROGRAM CARDS */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;}
.card{background:#FFFFFF;border-radius:12px;border:1px solid #E2E8F0;overflow:hidden;box-shadow:none;transition:all .2s;display:flex;flex-direction:column;}
.card:hover{border-color:#005EB8;box-shadow:0 4px 20px rgba(0,94,184,.08);transform:translateY(-2px);}
.cs{height:4px;border-radius:12px 12px 0 0;}
.sf{background:#005EB8;} .ss{background:#1A6B3A;} .sr{background:#5A2882;} .sc{background:#C45C10;} .sl{background:#0B6E6E;}
.cb{padding:16px 18px;flex:1;display:flex;flex-direction:column;}
.csrc{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;margin-bottom:6px;}
.cf{color:#005EB8;} .cs2{color:#1A6B3A;} .cr{color:#5A2882;} .cc{color:#C45C10;} .cl{color:#0B6E6E;}
.ct{font-family:'DM Sans',sans-serif;font-size:15px;font-weight:700;color:#0A1628;line-height:1.3;margin-bottom:7px;}
.ct a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.22);transition:border-color .15s;}
.ct a:hover{border-bottom-color:#005EB8;}
.cd{font-size:13px;color:#718096;line-height:1.5;flex:1;margin-bottom:10px;}
.cd a{color:#005EB8;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.2);}
.cd a:hover{border-bottom-color:#005EB8;}
.cft{padding:10px 18px;background:#F8F9FB;border-top:1px solid #E2E8F0;display:flex;gap:5px;flex-wrap:wrap;}
.tag{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:700;padding:2px 8px;border-radius:100px;white-space:nowrap;letter-spacing:0.02em;text-transform:uppercase;}
.tf{background:#E8F1FA;color:#005EB8;} .ts{background:#E4F3EB;color:#1A6B3A;} .tr{background:#F0E8FA;color:#5A2882;}
.tc{background:#FDEEDD;color:#C45C10;} .to{background:#E8F8ED;color:#1A6B3A;font-weight:700;}
.tw{background:#FFFBEB;color:#92700A;} .tn{background:#F5F5F5;color:#555;} .tform{background:#EEF4FF;color:#005EB8;}

/* ACCORDION */
.acc{border:1px solid #E2E8F0;border-radius:10px;margin-bottom:9px;overflow:hidden;}
.acc-h{display:flex;justify-content:space-between;align-items:center;padding:13px 16px;cursor:pointer;background:#FFFFFF;transition:background .15s;user-select:none;gap:10px;}
.acc-h:hover{background:#E8F1FA;}
.al h4{font-weight:700;font-size:14px;color:#0A1628;}
.al .sub{font-size:12px;color:#718096;margin-top:1px;}
.ar{display:flex;gap:5px;align-items:center;flex-wrap:wrap;}
.ai{color:#718096;font-size:13px;flex-shrink:0;transition:transform .2s;}
.ai.open{transform:rotate(180deg);}
.acc-b{display:none;padding:0 16px 16px;background:#F8F9FB;}
.acc-b.open{display:block;}
.acc-b p{font-size:13px;color:#718096;line-height:1.65;margin-top:11px;}
.acc-b ul{font-size:13px;color:#718096;padding-left:16px;margin-top:8px;}
.acc-b li{margin-bottom:4px;}
.acc-b strong{color:#0F1923;}
.acc-b a{color:#005EB8;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.25);}
.acc-b a:hover{border-bottom-color:#005EB8;}

/* FLOW DIAGRAM */
.flow{display:flex;flex-direction:column;max-width:860px;margin:20px 0;}
.fn{border-radius:8px;padding:16px 20px;}
.fnl{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;opacity:.65;margin-bottom:4px;}
.fn h3{font-family:'DM Serif Display',serif;font-size:16px;margin-bottom:5px;font-weight:400;}
.fn p{font-size:13px;opacity:.86;line-height:1.55;}
.fn a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35);}
.fn a:hover{border-bottom-color:rgba(255,255,255,.8);}
.fp-wrap{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px;}
.fp{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;padding:2px 8px;border-radius:100px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);}
.fn1{background:#0A1628;color:#fff;} .fn2{background:#005EB8;color:#fff;} .fn3{background:#0B6E6E;color:#fff;}
.fn4{background:#1A6B3A;color:#fff;} .fn5{background:#C45C10;color:#fff;} .fn6{background:#FFC72C;color:#0A1628;}
.fn6 .fp{background:rgba(0,0,0,0.09);border-color:rgba(0,0,0,0.16);}
.fn6 a{color:#0A1628;border-bottom-color:rgba(10,22,40,.35);}
.fa{display:flex;align-items:center;gap:9px;padding:4px 0 4px 24px;}
.fal{height:20px;width:2px;background:linear-gradient(to bottom,#0A1628,#0B6E6E);opacity:.3;margin-left:2px;}
.fat{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:500;color:#718096;}

/* PLANNING CHAIN */
.plan-chain{display:flex;gap:0;flex-wrap:wrap;margin:20px 0;max-width:900px;}
.pc-node{flex:1;min-width:140px;background:#FFFFFF;border:1px solid #E2E8F0;padding:18px 16px;position:relative;}
.pc-node:first-child{border-radius:8px 0 0 8px;}
.pc-node:last-child{border-radius:0 8px 8px 0;}
.pc-node::after{content:'→';position:absolute;right:-12px;top:50%;transform:translateY(-50%);font-size:1.1rem;color:#0A1628;font-weight:700;z-index:2;background:#F8F9FB;padding:2px;}
.pc-node:last-child::after{display:none;}
.pc-level{font-family:'DM Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:#718096;margin-bottom:5px;}
.pc-name{font-family:'DM Serif Display',serif;font-size:14px;color:#0A1628;font-weight:400;margin-bottom:5px;line-height:1.25;}
.pc-name a{color:#005EB8;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.2);}
.pc-name a:hover{border-bottom-color:#005EB8;}
.pc-detail{font-size:12px;color:#718096;line-height:1.45;}
.pc-active{background:#E8F1FA;border-color:#A8C5E8;}
.pc-gate{background:#FEFCBF;border-color:#F6E05E;}
.pc-end{background:#C6F6D5;border-color:#9AE6B4;}

/* RTIP BOX */
.rtip-box{background:#0A1628;color:#fff;border-radius:12px;padding:28px 32px;margin:24px 0;max-width:880px;}
.rtip-box h3{font-family:'DM Serif Display',serif;font-size:18px;color:#FFC72C;margin-bottom:12px;font-weight:400;}
.rtip-box p{font-size:.85rem;line-height:1.65;opacity:.85;margin-bottom:10px;}
.rtip-box a{color:#A8D4FF;border-bottom:1px solid rgba(168,212,255,.3);text-decoration:none;}
.rtip-box a:hover{border-bottom-color:rgba(168,212,255,.8);}
.rtip-steps{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.rs{display:flex;gap:12px;align-items:flex-start;}
.rs-n{background:#FFC72C;color:#0A1628;font-family:'DM Sans',sans-serif;font-size:11px;font-weight:700;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px;}
.rs-t{font-size:13px;line-height:1.55;opacity:.9;}
.rs-t strong{color:#fff;opacity:1;}

/* COUNTYWIDE TABLE */
.cw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:16px;}
.cw-card{background:#FFFFFF;border-radius:10px;border:1px solid #E2E8F0;padding:16px 18px;border-top:3px solid #0A1628;}
.cw-card h4{font-weight:700;font-size:13px;color:#0A1628;margin-bottom:5px;}
.cw-card p{font-size:12.5px;color:#718096;line-height:1.55;}
.cw-card a{color:#005EB8;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.2);}
.cw-card a:hover{border-bottom-color:#005EB8;}
.cw-must{border-top-color:#E53E3E;}
.cw-strong{border-top-color:#38A169;}
.cw-helpful{border-top-color:#DD6B20;}

/* STEPS */
.steps{display:flex;flex-direction:column;max-width:720px;}
.step{display:flex;gap:16px;padding-bottom:26px;position:relative;}
.step::before{content:'';position:absolute;left:13px;top:30px;bottom:0;width:2px;background:#E2E8F0;}
.step:last-child::before{display:none;}
.sn{width:28px;height:28px;border-radius:50%;background:#0A1628;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'DM Sans',sans-serif;position:relative;z-index:1;border:2px solid #F8F9FB;}
.sb h4{font-weight:700;font-size:14px;color:#0A1628;margin-bottom:3px;}
.sb p{font-size:.83rem;color:var(--muted);line-height:1.62;}
.sb a{color:#005EB8;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.2);}
.sb a:hover{border-bottom-color:#005EB8;}
.stag{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;background:#E8F1FA;color:#005EB8;padding:2px 8px;border-radius:3px;display:inline-block;margin-top:4px;}

/* BIG NUMBERS */
.bignums{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:12px;margin:18px 0;}
.bignum{background:#FFFFFF;border-radius:10px;padding:16px;border:1px solid #E2E8F0;border-top:3px solid #0A1628;}
.bn-n{font-family:'DM Serif Display',serif;font-size:32px;color:#0A1628;line-height:1;margin-bottom:4px;}
.bn-l{font-size:.74rem;color:var(--muted);}
.bn-s{font-family:'DM Sans',sans-serif;font-size:10px;font-weight:600;color:#005EB8;margin-top:3px;}

/* TABLE */
.tbl{width:100%;border-collapse:collapse;font-size:.79rem;margin:14px 0;}
.tbl th{background:#0A1628;color:#fff;padding:8px 11px;text-align:left;font-family:'DM Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;}
.tbl td{padding:9px 11px;border-bottom:1px solid #E2E8F0;vertical-align:top;line-height:1.5;}
.tbl tr:hover td{background:#E8F1FA;}
.tbl tr:last-child td{border:none;}
.tbl td:first-child{font-weight:600;color:#0A1628;}
.tbl a{color:#005EB8;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.25);}
.tbl a:hover{border-bottom-color:#005EB8;}

/* TIMELINE */
.tl{display:flex;overflow-x:auto;gap:0;margin:18px 0;scrollbar-width:thin;}
.tl-box{min-width:144px;flex:1;padding:13px 14px;border-top:3px solid #E2E8F0;position:relative;}
.tl-box.on{border-top-color:#0A1628;}
.tl-box::before{content:'';position:absolute;top:-7px;left:13px;width:10px;height:10px;border-radius:50%;background:#E2E8F0;}
.tl-box.on::before{background:#0A1628;}
.tl-phase{font-family:'DM Sans',sans-serif;font-size:9px;font-weight:700;color:#005EB8;letter-spacing:0.09em;text-transform:uppercase;margin-bottom:3px;}
.tl-title{font-weight:700;font-size:12px;color:#0A1628;margin-bottom:2px;}
.tl-desc{font-size:12px;color:#718096;line-height:1.45;}

/* INLINE LINK */
a.il{color:#005EB8;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(0,94,184,.3);}
a.il:hover{border-bottom-color:#005EB8;}

/* FOOTER */
/* footer handled inline */

@media(max-width:640px){.sec{padding:28px 16px;}.grid{grid-template-columns:1fr;}.bignums{grid-template-columns:repeat(2,1fr);}.plan-chain{flex-direction:column;}.pc-node::after{display:none;}.pc-node{border-radius:8px;margin-bottom:4px;}}

@media (max-width: 768px) {
  html { -webkit-text-size-adjust: 100%; }
  body { overflow-x: hidden; }
  .header { padding: 28px 16px 24px; }
  .header-wordmark { font-size: clamp(1.5rem, 8vw, 2rem); }
  .header-subtitle { font-size: clamp(1rem, 4vw, 1.25rem); margin-bottom: 16px; }
  .header-stats { gap: 20px; }
  .header-stat .val { font-size: clamp(1.25rem, 6vw, 1.75rem); }
  .tab-bar { padding: 0 12px; }
  .tab-btn { padding: 12px 14px; font-size: 12px; min-height: 44px; }
  .tf-sheet { border-radius: 0; }
}
@media (max-width: 420px) {
  .header-stat .val { font-size: 1.5rem; }
  .bignums { grid-template-columns: 1fr; }
}

.footer-mod {
  text-align: center;
  padding: 30px 40px;
  background: #0A1628;
  border-top: 1px solid #2a3f60;
  margin-top: 0;
}
.footer-mod .brand { font-family: 'DM Serif Display', serif; font-size: 20px; color: #e2e8f0; margin-bottom: 6px; }
.footer-mod .brand span { color: #FFC72C; }
.footer-mod .sub { font-size: 11px; color: rgba(255,255,255,0.3); letter-spacing: 1px; line-height: 1.8; }

@media print { .tab-bar { display: none; } .tab-content { display: block !important; } }
