/* Cassus Gov — public marketing site */
@font-face{font-family:'Open Sans';font-weight:300;font-style:normal;font-display:swap;src:url('/assets/fonts/OpenSans-Light.ttf') format('truetype');}
@font-face{font-family:'Open Sans';font-weight:400;font-style:normal;font-display:swap;src:url('/assets/fonts/OpenSans-Regular.ttf') format('truetype');}
@font-face{font-family:'Open Sans';font-weight:400;font-style:italic;font-display:swap;src:url('/assets/fonts/OpenSans-Italic.ttf') format('truetype');}
@font-face{font-family:'Open Sans';font-weight:600;font-style:normal;font-display:swap;src:url('/assets/fonts/OpenSans-SemiBold.ttf') format('truetype');}
@font-face{font-family:'Open Sans';font-weight:700;font-style:normal;font-display:swap;src:url('/assets/fonts/OpenSans-Bold.ttf') format('truetype');}

:root{
  --red:#b50600; --red-d:#8f0500;
  --ink:#111418; --ink-2:#2b313a;
  --slate:#5b6472; --slate-l:#8b93a1;
  --line:#e3e7 ; --line:#e4e8ee; --line-d:#d4dae2;
  --bg:#ffffff; --bg-2:#f5f7fa; --bg-3:#eef1f5;
  --wrap:1180px;
}
*{box-sizing:border-box;}
[hidden]{display:none!important;}
html{scroll-behavior:smooth;}
body.site{margin:0;font-family:'Open Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-weight:400;color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;}
img{max-width:100%;display:block;}
a{color:var(--red);text-decoration:none;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px;}
h1,h2,h3,h4{color:var(--ink);font-weight:700;line-height:1.15;letter-spacing:-.01em;margin:0 0 .5em;}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem);}
h2{font-size:clamp(1.6rem,3vw,2.3rem);}
h3{font-size:1.28rem;}
p{margin:0 0 1rem;}
.eyebrow{font-size:.74rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--red);margin:0 0 .8rem;}
.lead{font-size:1.18rem;color:var(--ink-2);max-width:62ch;}
.muted{color:var(--slate);}
.center{text-align:center;}
.fineprint{font-size:.82rem;color:var(--slate-l);}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--red);color:#fff;font-weight:600;
  font-size:.95rem;padding:.7rem 1.25rem;border-radius:3px;border:1px solid var(--red);
  transition:background .15s,transform .05s;white-space:nowrap;}
.btn:hover{background:var(--red-d);border-color:var(--red-d);}
.btn:active{transform:translateY(1px);}
.btn-lg{padding:.9rem 1.6rem;font-size:1.02rem;}
.btn-sm{padding:.5rem .9rem;font-size:.85rem;}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--line-d);}
.btn-ghost:hover{background:var(--bg-2);border-color:var(--slate-l);}
.btn-invert{background:#fff;color:var(--ink);border-color:#fff;}
.btn-invert:hover{background:var(--bg-3);border-color:var(--bg-3);}

/* Topbar */
.topbar{background:var(--ink);color:#c9ced8;font-size:.78rem;}
.topbar-in{display:flex;justify-content:space-between;align-items:center;height:36px;letter-spacing:.03em;}
.topbar-org{color:#aab2bf;}
.topbar-portal{color:#fff;font-weight:600;}
.topbar-portal:hover{color:var(--red);}

/* Header */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px);
  border-bottom:1px solid var(--line);}
.site-head::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);}
.head-in{display:flex;align-items:center;justify-content:space-between;height:70px;}
.brand{display:flex;align-items:center;gap:.7rem;}
.brand img{height:34px;width:auto;}
.brand-div{width:1px;height:26px;background:var(--line-d);}
.brand-sub{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--ink);}
.site-nav{display:flex;align-items:center;gap:1.6rem;}
.site-nav a{color:var(--ink-2);font-weight:600;font-size:.95rem;}
.site-nav a:not(.btn):hover{color:var(--red);}
.site-nav a.active:not(.btn){color:var(--red);}
.nav-toggle{display:none;background:none;border:0;flex-direction:column;gap:5px;cursor:pointer;padding:8px;}
.nav-toggle span{width:24px;height:2px;background:var(--ink);display:block;}

/* Hero */
.hero{background:linear-gradient(180deg,var(--bg) 0,var(--bg-2) 100%);
  border-bottom:1px solid var(--line);position:relative;overflow:hidden;}
.hero::after{content:"";position:absolute;right:-160px;top:-120px;width:520px;height:520px;
  background:radial-gradient(circle,rgba(181,6,0,.06),transparent 62%);pointer-events:none;}
.hero-in{padding:84px 24px 72px;position:relative;}
.hero h1{margin:.2em 0 .35em;}
.hero .hl{color:var(--red);}
.hero .lead{margin-bottom:2rem;}
.hero-cta{display:flex;gap:.9rem;flex-wrap:wrap;margin-bottom:3rem;}
.hero-stats{list-style:none;display:flex;gap:2.6rem;flex-wrap:wrap;margin:0;padding:1.6rem 0 0;border-top:1px solid var(--line);}
.hero-stats li{display:flex;flex-direction:column;}
.hero-stats strong{font-size:1.7rem;font-weight:700;color:var(--ink);line-height:1;}
.hero-stats span{font-size:.86rem;color:var(--slate);margin-top:.35rem;max-width:20ch;}

/* Sections */
.section{padding:76px 0;}
.section.alt{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.levels,.capabilities-band,.why{padding:76px 0;}
.capabilities-band{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.sec-head{max-width:720px;margin:0 auto 3rem;text-align:center;}
.sec-sub{color:var(--slate);font-size:1.05rem;}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;}

/* Cards */
.card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:2rem 1.8rem;transition:box-shadow .18s,transform .18s,border-color .18s;}
.card:hover{box-shadow:0 18px 40px -24px rgba(17,20,24,.28);transform:translateY(-3px);border-color:var(--line-d);}
.level-card .ico{width:46px;height:46px;color:var(--red);margin-bottom:1rem;}
.level-card .ico svg{width:100%;height:100%;stroke-linecap:round;stroke-linejoin:round;}
.level-card h3{margin-bottom:.5rem;}
.level-card p{color:var(--slate);font-size:.96rem;}

/* Tick lists */
.tick{list-style:none;margin:1rem 0 0;padding:0;}
.tick li{position:relative;padding-left:1.5rem;margin:.4rem 0;font-size:.92rem;color:var(--ink-2);}
.tick li::before{content:"";position:absolute;left:0;top:.5em;width:8px;height:8px;border:2px solid var(--red);
  border-top:0;border-right:0;transform:rotate(-45deg);}
.tick-lg li{font-size:1rem;margin:.6rem 0;padding-left:1.7rem;}

/* Capability grid */
.cap-grid{margin-bottom:2.4rem;}
.cap{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.6rem;position:relative;}
.cap-mark{display:block;width:34px;height:3px;background:var(--red);margin-bottom:1rem;}
.cap h3{font-size:1.1rem;margin-bottom:.4rem;}
.cap p{color:var(--slate);font-size:.92rem;margin:0;}

/* Why */
.why-in{align-items:center;}
.why-panel{background:var(--ink);color:#dfe3ea;border-radius:8px;padding:2.2rem;}
.why-panel h4{color:#fff;font-size:1.1rem;letter-spacing:.02em;margin-bottom:1rem;}
.why-panel .muted{color:#aab2bf;}
.why-panel .tick li{color:#dfe3ea;}
.why-panel .tick li::before{border-color:#fff;}
.reg{width:100%;border-collapse:collapse;margin:.4rem 0 1rem;font-size:.9rem;}
.reg th{text-align:left;font-weight:700;color:inherit;padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.14);white-space:nowrap;}
.reg td{text-align:right;padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.14);color:inherit;}
.why-panel .fineprint{color:#8b93a1;}

/* Page hero (inner pages) */
.page-hero{background:var(--ink);color:#e7eaf0;padding:74px 0 66px;position:relative;}
.page-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--red);}
.page-hero .eyebrow{color:#ff6a63;}
.page-hero h1{color:#fff;}
.page-hero .lead{color:#c3cad6;}

/* Detail grid (capabilities) */
.detail-grid{gap:1.6rem;}
.detail{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.9rem;}
.detail h3{font-size:1.18rem;}
.detail p{color:var(--slate);font-size:.95rem;}
.vehicle{background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.9rem;}
.vehicle h4{font-size:1.05rem;margin-bottom:1rem;}
.vehicle .reg th,.vehicle .reg td{color:var(--ink-2);border-bottom:1px solid var(--line);}
.vehicle .reg th{color:var(--ink);}
.vehicle .reg td{text-align:left;color:var(--slate);padding-left:1rem;}

/* Steps */
.steps{list-style:none;counter-reset:s;margin:0;padding:0;display:grid;gap:1.4rem;}
.steps li{display:flex;gap:1.5rem;background:#fff;border:1px solid var(--line);border-radius:6px;padding:1.7rem 1.9rem;align-items:flex-start;}
.step-n{font-size:1.5rem;font-weight:700;color:var(--red);flex:0 0 auto;line-height:1;padding-top:.15rem;}
.steps h3{margin-bottom:.3rem;font-size:1.2rem;}
.steps p{margin:0;color:var(--slate);}

/* Contact */
.contact-in{align-items:start;}
.contact-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:2.2rem;}
.contact-card .btn{margin:.4rem 0 1.6rem;}
.contact-lines{border-top:1px solid var(--line);padding-top:1.2rem;display:grid;gap:.7rem;}
.contact-lines .lbl{display:inline-block;width:80px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--slate-l);font-weight:700;}
.contact-aside{padding-top:.5rem;}
.contact-aside h4{font-size:1.05rem;}

/* CTA band */
.cta-band{background:var(--red);color:#fff;}
.cta-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:52px 24px;flex-wrap:wrap;}
.cta-band h2{color:#fff;margin-bottom:.3rem;}
.cta-band p{color:rgba(255,255,255,.9);margin:0;}

/* Footer */
.site-foot{background:var(--ink);color:#aab2bf;padding:54px 0 0;}
.foot-in{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;padding-bottom:36px;}
.foot-brand img{margin-bottom:1rem;}
.foot-brand p{font-size:.9rem;max-width:34ch;color:#8b93a1;}
.foot-col h4{color:#fff;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;}
.foot-col a,.foot-col span{display:block;color:#aab2bf;font-size:.92rem;margin:.45rem 0;}
.foot-col a:hover{color:#fff;}
.foot-legal{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.1);
  padding:20px 24px;font-size:.8rem;color:#7c8593;flex-wrap:wrap;gap:.5rem;}

/* Responsive */
@media(max-width:900px){
  .grid-3{grid-template-columns:1fr;}
  .grid-2{grid-template-columns:1fr;gap:1.8rem;}
  .foot-in{grid-template-columns:1fr 1fr;}
  .site-nav{position:fixed;inset:106px 0 auto 0;background:#fff;flex-direction:column;align-items:stretch;
    gap:0;padding:0;border-bottom:1px solid var(--line);box-shadow:0 20px 30px -20px rgba(0,0,0,.25);
    transform:translateY(-140%);transition:transform .25s;}
  body.nav-open .site-nav{transform:translateY(0);}
  .site-nav a{padding:1rem 24px;border-top:1px solid var(--line);}
  .site-nav a.btn{margin:14px 24px;justify-content:center;}
  .nav-toggle{display:flex;}
}
@media(max-width:560px){
  .foot-in{grid-template-columns:1fr;}
  .steps li{flex-direction:column;gap:.4rem;}
}

/* =====================================================================
   Centered layout + 90% container width + white-on-red buttons
   ===================================================================== */
/* 90% width on all devices (roomy, symmetric margins) */
.wrap{width:90%;max-width:1280px;padding:0;}

/* Remove eyebrow labels site-wide */
.eyebrow{display:none;}

/* Prevent hanging/orphaned words: balance headings, avoid widow lines in text */
h1,h2,h3,h4,.lead,.sec-sub{text-wrap:balance;}
p,li{text-wrap:pretty;}

/* Login / portal auth page: ensure Open Sans Regular (it was defaulting to serif) */
body.login{font-family:'Open Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-weight:400;color:var(--ink);}
body.login h1{text-wrap:balance;}

/* Breathing room so hero content is not jammed against the sticky nav */
.hero-in{padding-top:72px;padding-bottom:64px;}
.page-hero{padding-top:68px;padding-bottom:60px;}
.hero h1{margin-top:0;}
.page-hero h1{margin-top:0;}

/* Buttons: primary is always white text on brand red, and centered */
.btn{background:var(--red);color:#fff;border-color:var(--red);justify-content:center;text-align:center;}
.btn:hover{background:var(--red-d);border-color:var(--red-d);color:#fff;}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line-d);}
.btn-ghost:hover{background:var(--bg-2);color:var(--ink);}
.btn-invert{background:#fff;color:var(--ink);border-color:#fff;}
/* Nav CTA button: keep white text (the .site-nav a rule was overriding it) */
.site-nav a.btn,.site-nav a.btn:hover{color:#fff;}

/* Hero: centered text, buttons, and stats */
.hero-in{text-align:center;}
.hero .lead{margin-left:auto;margin-right:auto;}
.hero .eyebrow{text-align:center;}
.hero-cta{justify-content:center;}
.hero-stats{justify-content:center;}
.hero-stats li{align-items:center;text-align:center;}
.hero-stats span{max-width:22ch;}

/* Inner page hero centered */
.page-hero .wrap{text-align:center;}
.page-hero .lead{margin-left:auto;margin-right:auto;}

/* Section headers already centered; center card content too */
.level-card,.cap,.detail{text-align:center;}
.level-card .ico,.cap-mark{margin-left:auto;margin-right:auto;}
.level-card .tick,.cap .tick,.detail .tick{display:inline-block;text-align:left;margin-left:auto;margin-right:auto;}

/* CTA band: stacked and centered on every device.
   NB: restore vertical padding here, since .wrap{padding:0} above zeroes it. */
.cta-in{flex-direction:column;text-align:center;align-items:center;gap:1.1rem;padding:56px 0;}
.cta-band p{margin-left:auto;margin-right:auto;max-width:60ch;}

/* Contact + why intros centered */
.contact-card,.contact-aside{text-align:center;}
.contact-card .contact-lines{text-align:left;display:inline-grid;}
.contact-aside .tick{display:inline-block;text-align:left;}

/* Footer login link (small, in the legal bar) */
.foot-legal{justify-content:center;gap:.4rem 1.4rem;text-align:center;font-size:10px;padding:10px 0;}
.foot-legal span,.foot-legal a{font-size:10px;}
.foot-legal-mid{flex:1 1 auto;min-width:200px;}
.foot-login{color:#fff;font-weight:700;}
.foot-login:hover{color:var(--red);}

/* Capabilities presentation popup */
.play-ico{width:18px;height:18px;vertical-align:-3px;margin-right:.15rem;}
.vid-modal{position:fixed;inset:0;background:rgba(10,12,15,.88);display:flex;align-items:center;justify-content:center;z-index:200;padding:24px;}
.vid-box{width:90%;max-width:960px;position:relative;}
.vid-box video{width:100%;border-radius:8px;background:#000;display:block;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);}
.vid-close{position:absolute;top:-16px;right:-16px;width:40px;height:40px;border-radius:50%;background:#fff;border:0;
  font-size:1.6rem;line-height:1;color:var(--ink);cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.4);}
.vid-close:hover{background:var(--red);color:#fff;}
.vid-actions{text-align:center;margin-top:1.1rem;}
@media(max-width:560px){.vid-close{top:8px;right:8px;}}
