:root{
    --graphite:#132A4D;
    --graphite-2:#1B3A63;
    --steel-line:#2E4B75;
    --paper:#F5F6F8;
    --paper-2:#E8ECF1;
    --copper:#A6281E;
    --copper-bright:#C3342A;
    --federal-blue:#8C1D16;
    --ink:#101B2E;
    --off-white:#FFFFFF;
    --muted:#9AABC2;
    --muted-dark:#546174;
    --hairline:#CBD4E0;
    --on-navy-sub:#A9B8CC;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    font-family:'IBM Plex Sans', sans-serif;
    background:var(--paper);
    color:var(--ink);
    line-height:1.5;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit; text-decoration:none;}
  .mono{font-family:'IBM Plex Mono', monospace;}

  /* ---------- NAV ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:var(--graphite);
    border-bottom:1px solid var(--steel-line);
  }
  .nav-wrap{
    max-width:1180px; margin:0 auto; padding:14px 28px;
    display:flex; align-items:center; justify-content:space-between;
  }
  .logo{
    display:flex; align-items:center; flex-shrink:0;
  }
  .logo img{
    height:46px; width:auto; display:block;
  }
  nav ul{list-style:none; display:flex; gap:34px;}
  nav a{
    font-size:13px; letter-spacing:0.06em; text-transform:uppercase;
    color:var(--muted); font-weight:500; transition:color .15s ease;
  }
  nav a:hover{color:var(--off-white);}
  .nav-cta{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px; letter-spacing:0.05em; text-transform:uppercase;
    color:var(--graphite); background:var(--copper);
    padding:9px 18px; border:1px solid var(--copper); font-weight:600;
    transition:background .15s ease, color .15s ease;
  }
  .nav-cta:hover{background:transparent; color:var(--copper);}
  .mobile-toggle{display:none;}

  /* ---------- HERO ---------- */
  .hero{
    background:
      radial-gradient(circle at 15% 20%, rgba(166,40,30,0.14), transparent 48%),
      linear-gradient(180deg, var(--graphite) 0%, var(--graphite-2) 100%);
    color:var(--off-white);
    padding:96px 28px 70px;
    border-bottom:1px solid var(--steel-line);
  }
  .hero-inner{max-width:1180px; margin:0 auto;}
  .eyebrow{
    font-family:'IBM Plex Mono', monospace;
    font-size:12px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--copper-bright); margin-bottom:22px;
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:''; width:26px; height:1px; background:var(--copper-bright);}
  .hero h1{
    font-size:clamp(36px, 4.6vw, 56px);
    font-weight:700; letter-spacing:0.01em; line-height:1.03;
    max-width:900px; margin-bottom:30px;
  }
  .hero h1 span{color:var(--muted);}
  .hero p.lede{
    font-size:18px; color:#C7CCD1; max-width:600px; margin-bottom:38px; line-height:1.6;
  }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:64px;}
  .btn-primary{
    background:var(--copper); color:var(--graphite); font-weight:600;
    padding:14px 26px; font-size:14px; letter-spacing:0.03em;
    border:1px solid var(--copper); transition:all .15s ease;
  }
  .btn-primary:hover{background:var(--copper-bright); border-color:var(--copper-bright);}
  .btn-secondary{
    padding:14px 26px; font-size:14px; letter-spacing:0.03em; font-weight:600;
    border:1px solid var(--steel-line); color:var(--off-white); transition:all .15s ease;
  }
  .btn-secondary:hover{border-color:var(--muted); background:rgba(255,255,255,0.03);}

  /* Nameplate strip — signature element */
  .nameplate-row{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:0;
    border:1px solid var(--steel-line);
  }
  .nameplate{
    position:relative;
    padding:20px 20px 22px;
    border-right:1px solid var(--steel-line);
    background:linear-gradient(180deg, rgba(255,255,255,0.02), rgba(255,255,255,0));
  }
  .nameplate:last-child{border-right:none;}
  .nameplate::before, .nameplate::after{
    content:''; position:absolute; width:5px; height:5px; border-radius:50%;
    background:var(--steel-line); top:8px;
  }
  .nameplate::before{left:8px;}
  .nameplate::after{right:8px;}
  .nameplate .np-label{
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.1em;
    text-transform:uppercase; color:var(--muted); margin-bottom:8px;
  }
  .nameplate .np-value{
    font-family:'IBM Plex Mono', monospace; font-size:16px; font-weight:600; color:var(--off-white);
  }
  .nameplate .np-sub{font-size:11px; color:var(--on-navy-sub); margin-top:4px;}

  /* ---------- SECTION SHARED ---------- */
  section{padding:90px 28px;}
  .section-inner{max-width:1180px; margin:0 auto;}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .eyebrow{color:var(--copper);}
  .section-head .eyebrow::before{background:var(--copper);}
  .section-head h2{
    font-size:clamp(28px, 4vw, 42px); font-weight:700; letter-spacing:-0.01em;
    color:var(--ink); line-height:1.15;
  }
  .section-head p{color:var(--muted-dark); font-size:16px; margin-top:16px; line-height:1.65;}

  /* ---------- WHAT WE SOURCE ---------- */
  .source-grid{
    display:grid; grid-template-columns:repeat(2, 1fr); gap:1px;
    background:var(--steel-line);
    border:1px solid var(--steel-line);
  }
  .source-card{
    background:var(--off-white); padding:36px 34px; position:relative;
  }
  .source-card .idx{
    font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--copper);
    letter-spacing:0.08em; margin-bottom:18px; display:block;
  }
  .source-card h3{font-size:21px; font-weight:600; margin-bottom:12px;}
  .source-card p{color:var(--muted-dark); font-size:14.5px; line-height:1.65; margin-bottom:16px;}
  .tag-row{display:flex; gap:8px; flex-wrap:wrap;}
  .tag{
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.05em;
    padding:5px 9px; border:1px solid var(--hairline); color:var(--muted-dark); text-transform:uppercase;
  }

  /* ---------- COMPLIANCE (dark) ---------- */
  .compliance{background:var(--federal-blue); color:var(--off-white);}
  .compliance .section-head .eyebrow{color:#F3D9B1;}
  .compliance .section-head .eyebrow::before{background:#F3D9B1;}
  .compliance .section-head h2{color:var(--off-white);}
  .compliance .section-head p{color:#F0C9C0;}
  .comp-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:28px;}
  .comp-card{
    border:1px solid rgba(255,255,255,0.22); padding:30px 26px;
    background:rgba(255,255,255,0.06);
  }
  .comp-card .num{
    font-family:'IBM Plex Mono', monospace; font-size:13px; color:#F3D9B1;
    margin-bottom:16px; letter-spacing:0.05em;
  }
  .comp-card h4{font-size:17px; font-weight:600; margin-bottom:10px;}
  .comp-card p{font-size:14px; color:#F0DAD5; line-height:1.6;}

  /* ---------- MARKETS ---------- */
  .markets-list{
    display:flex; flex-wrap:wrap; gap:0; border-top:1px solid var(--hairline);
  }
  .market-item{
    flex:1 1 22%; min-width:190px;
    padding:22px 4px; border-bottom:1px solid var(--hairline); border-right:1px solid var(--hairline);
    font-family:'IBM Plex Mono', monospace; font-size:13px; letter-spacing:0.03em;
    color:var(--muted-dark);
  }

  /* ---------- CONTACT ---------- */
  .contact{background:var(--graphite); color:var(--off-white);}
  .contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start;}
  .contact .section-head .eyebrow{color:var(--copper-bright);}
  .contact .section-head .eyebrow::before{background:var(--copper-bright);}
  .contact .section-head h2{color:var(--off-white);}
  .contact .section-head p{color:#C7CCD1;}
  .contact-info-item{margin-bottom:26px;}
  .contact-info-item .label{
    font-family:'IBM Plex Mono', monospace; font-size:11px; text-transform:uppercase;
    letter-spacing:0.08em; color:var(--muted); margin-bottom:6px;
  }
  .contact-info-item .value{font-size:15px; color:var(--off-white);}
  form{display:flex; flex-direction:column; gap:16px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  label{
    font-family:'IBM Plex Mono', monospace; font-size:10.5px; letter-spacing:0.08em;
    text-transform:uppercase; color:var(--muted); margin-bottom:7px; display:block;
  }
  input, select, textarea{
    width:100%; background:var(--graphite-2); border:1px solid var(--steel-line);
    color:var(--off-white); padding:12px 14px; font-family:'IBM Plex Sans', sans-serif;
    font-size:14px;
  }
  input:focus, select:focus, textarea:focus{
    outline:none; border-color:var(--copper);
  }
  textarea{resize:vertical; min-height:90px;}
  .submit-btn{
    align-self:flex-start; margin-top:6px;
  }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--graphite); border-top:1px solid var(--steel-line);
    padding:36px 28px; color:var(--on-navy-sub);
  }
  .footer-inner{
    max-width:1180px; margin:0 auto; display:flex; justify-content:space-between;
    align-items:center; flex-wrap:wrap; gap:28px;
    font-family:'IBM Plex Mono', monospace; font-size:12px;
  }
  .footer-logo{height:76px; width:auto; display:block; opacity:.92;}
  .footer-meta{
    display:flex; flex-direction:column; gap:6px; text-align:right;
    margin-left:auto;
  }

  @media (max-width: 860px){
    .nav-wrap{flex-wrap:wrap; gap:14px; padding:16px 20px;}
    nav{order:3; width:100%;}
    nav ul{
      gap:20px; flex-wrap:wrap; padding-top:12px;
      border-top:1px solid var(--steel-line); width:100%;
    }
    nav a{font-size:12px;}
    .nav-cta{padding:8px 14px;}
    .nameplate-row{grid-template-columns:repeat(2,1fr);}
    .nameplate:nth-child(2){border-right:none;}
    .source-grid{grid-template-columns:1fr;}
    .comp-grid{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr; gap:40px;}
    .field-row{grid-template-columns:1fr;}
    .market-item{flex:1 1 45%;}
    section{padding:60px 20px;}
    .hero{padding:64px 20px 56px;}
    .nameplate:nth-child(1), .nameplate:nth-child(2){border-bottom:1px solid var(--steel-line);}
    .source-card{padding:30px 24px;}
    .footer-inner{flex-direction:column; align-items:flex-start; gap:20px;}
    .logo img{height:34px;}
    .footer-logo{height:62px;}
    .footer-meta{text-align:left; margin-left:0;}
  }

  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{transition:none !important;}
  }

  :focus-visible{outline:2px solid var(--copper); outline-offset:2px;}
/* ---------- SUBPAGE ADDITIONS ---------- */
.page-hero{
  background:
    radial-gradient(circle at 15% 20%, rgba(166,40,30,0.14), transparent 48%),
    linear-gradient(180deg, var(--graphite) 0%, var(--graphite-2) 100%);
  color:var(--off-white);
  padding:64px 28px 56px;
  border-bottom:1px solid var(--steel-line);
}
.page-hero .hero-inner{max-width:1180px; margin:0 auto;}
.page-hero h1{
  font-size:clamp(30px, 4.4vw, 46px); font-weight:700; letter-spacing:-0.005em;
  line-height:1.12; max-width:760px;
}
.page-hero p.lede{
  font-size:16.5px; color:#C7CCD1; max-width:620px; margin-top:16px; line-height:1.6;
}
.breadcrumb{
  font-family:'IBM Plex Mono', monospace; font-size:12px; color:var(--muted);
  margin-bottom:18px;
}
.breadcrumb a{color:var(--muted); border-bottom:1px solid transparent;}
.breadcrumb a:hover{color:var(--off-white); border-bottom-color:var(--off-white);}

nav a.active{color:var(--off-white); position:relative;}
nav a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-19px; height:2px; background:var(--copper);
}

.learn-more{
  display:inline-flex; align-items:center; gap:8px;
  font-family:'IBM Plex Mono', monospace; font-size:12.5px; letter-spacing:0.05em;
  text-transform:uppercase; color:var(--copper); font-weight:600; margin-top:6px;
  border-bottom:1px solid transparent;
}
.learn-more:hover{border-bottom-color:var(--copper);}
.learn-more::after{content:'→'; transition:transform .15s ease;}
.learn-more:hover::after{transform:translateX(3px);}

.content-block{max-width:760px;}
.content-block h3{
  font-size:20px; font-weight:600; margin:40px 0 14px; color:var(--ink);
}
.content-block h3:first-child{margin-top:0;}
.content-block p{color:var(--muted-dark); font-size:15.5px; line-height:1.7; margin-bottom:14px;}
.content-block ul{margin:14px 0 14px 20px;}
.content-block li{color:var(--muted-dark); font-size:15.5px; line-height:1.75; margin-bottom:8px;}
.content-block li strong{color:var(--ink);}

.standard-list{list-style:none; margin:0; display:flex; flex-direction:column; gap:0;}
.standard-list li{
  display:grid; grid-template-columns:28px 1fr; gap:16px;
  padding:22px 0; border-bottom:1px solid var(--hairline);
  color:var(--muted-dark); font-size:15px; line-height:1.65;
}
.standard-list li:first-child{padding-top:0;}
.standard-list .n{
  font-family:'IBM Plex Mono', monospace; color:var(--copper); font-weight:600; font-size:14px;
}
.standard-list strong{color:var(--ink); display:block; margin-bottom:4px; font-size:16px;}

.agency-grid{display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--steel-line); border:1px solid var(--steel-line);}
.agency-card{background:var(--off-white); padding:28px 30px;}
.agency-card h4{font-size:16.5px; font-weight:600; margin-bottom:8px;}
.agency-card p{color:var(--muted-dark); font-size:14px; line-height:1.6;}

.reg-table{width:100%; border-collapse:collapse; margin:18px 0 8px;}
.reg-table td{padding:12px 0; border-bottom:1px solid var(--hairline); font-size:14.5px;}
.reg-table td:first-child{
  font-family:'IBM Plex Mono', monospace; font-size:11.5px; letter-spacing:0.06em;
  text-transform:uppercase; color:var(--muted-dark); width:220px;
}
.reg-table td:last-child{color:var(--ink); font-weight:500;}

.contact-teaser{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:24px;
  padding:44px 40px; background:var(--graphite); border:1px solid var(--steel-line);
}
.contact-teaser h3{color:var(--off-white); font-size:22px; font-weight:600;}
.contact-teaser p{color:#C7CCD1; font-size:14.5px; margin-top:6px;}

@media (max-width: 860px){
  .agency-grid{grid-template-columns:1fr;}
  .contact-teaser{flex-direction:column; align-items:flex-start; padding:32px 24px;}
  .standard-list li{grid-template-columns:22px 1fr; gap:12px;}
}
