/* Layout and components — uses tokens from base.css */
html{scroll-behavior:smooth;scroll-padding-top:84px}
img{max-width:100%;display:block}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}

/* Header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,251,253,.92);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.brand img{height:40px;width:auto}
.nav{display:flex;align-items:center;gap:28px;font-family:var(--font-heading);font-weight:500;font-size:15px}
.nav a{color:var(--ink);text-decoration:none;position:relative;padding:6px 0}
.nav a:hover{color:var(--blue-br)}
.nav a.active::after,.nav a:hover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--gold)}
.nav .btn{padding:10px 18px}
.nav .btn::after{display:none}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--ink);margin:5px 0;transition:.3s}

/* Buttons and links */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--blue);color:#fff!important;font-family:var(--font-heading);font-weight:600;font-size:15px;padding:14px 26px;border-radius:6px;text-decoration:none;border:1px solid var(--blue);transition:background .2s,border-color .2s}
.btn:hover{background:var(--blue-br);border-color:var(--blue-br)}
.btn.ghost{background:transparent;color:var(--blue)!important}
.btn.ghost:hover{background:var(--blue);color:#fff!important}
.arrow-link{font-family:var(--font-heading);font-weight:600;color:var(--blue);text-decoration:none}
.arrow-link::after{content:" →";transition:margin .2s}
.arrow-link:hover::after{margin-left:4px}

/* Sections */
section{padding:96px 0}
.band{background:var(--bg-tint);border-block:1px solid var(--line)}
.eyebrow{font-family:var(--font-heading);font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin:0 0 14px}
.section-head{max-width:760px;margin-bottom:48px}
.section-head h2{font-size:clamp(30px,3.6vw,44px);margin:0 0 16px}
.section-head p{font-size:18px;color:var(--dim);margin:0}
h2 .accent{color:var(--blue)}

/* Hero */
.hero{position:relative;padding:120px 0 110px;background:
  radial-gradient(900px 500px at 85% 10%,rgba(34,119,212,.10),transparent 60%),
  radial-gradient(700px 400px at 0% 100%,rgba(168,126,1,.08),transparent 60%),var(--bg);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:center}
.hero h1{font-size:clamp(36px,5vw,62px);margin:0 0 22px;letter-spacing:-.01em}
.hero h1 .accent{color:var(--blue)}
.hero h1 .gold{color:var(--gold)}
.hero p{font-size:19px;max-width:40em;margin:0 0 34px}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px}
.hero-badge{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 20px 50px rgba(14,26,43,.08)}
.hero-badge img{border-radius:8px}
.hero-badge p{font-size:14px;color:var(--dim);margin:14px 4px 4px}

/* About */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.split p{font-size:18px;margin-top:0}
.partners{display:grid;gap:16px}
.partner{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px 26px;border-left:4px solid var(--blue)}
.partner.gold{border-left-color:var(--gold)}
.partner h3{margin:0 0 6px;font-size:20px}
.partner p{margin:0;font-size:16px;color:var(--dim)}

/* Cards */
.grid{display:grid;gap:22px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:30px 28px;transition:transform .25s,box-shadow .25s,border-color .25s}
.card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(14,26,43,.08);border-color:#d3dbe6}
.card .icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center;background:rgba(12,83,149,.08);color:var(--blue);margin-bottom:20px}
.card .icon svg{width:24px;height:24px}
.card h3{font-size:20px;margin:0 0 10px}
.card p{margin:0;font-size:16px}
.card .num{font-family:var(--font-heading);font-weight:700;color:var(--gold);font-size:14px;letter-spacing:.12em}

/* Mission */
.mission{background:var(--ink);color:#d8dfeb}
.mission .eyebrow{color:var(--gold-br)}
.mission blockquote{margin:0;font-family:var(--font-heading);font-weight:500;color:#fff;font-size:clamp(24px,3vw,36px);line-height:1.35;max-width:980px}
.mission blockquote .gold{color:var(--gold-br)}

/* Agencies strip */
.agencies{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.chip{font-family:var(--font-heading);font-weight:500;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 16px}
.stat{font-family:var(--font-heading);font-weight:700;font-size:64px;color:var(--blue);line-height:1}
.stat small{display:block;font-size:16px;font-weight:500;color:var(--dim);margin-top:10px}

/* Contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.info-list{display:grid;gap:14px}
.info{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.info .icon{flex:none;width:40px;height:40px;border-radius:8px;display:grid;place-items:center;background:rgba(168,126,1,.1);color:var(--gold)}
.info .icon svg{width:20px;height:20px}
.info h4{margin:0 0 2px;font-size:15px}
.info a,.info span{color:var(--ink-2);text-decoration:none;font-size:16px}
.info a:hover{color:var(--blue-br)}
form.card{padding:34px}
.field{display:grid;gap:6px;margin-bottom:16px}
.field label{font-family:var(--font-heading);font-weight:500;font-size:14px;color:var(--ink)}
.field input,.field textarea{font:inherit;font-weight:200;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px 14px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field textarea:focus{border-color:var(--blue-br);box-shadow:0 0 0 3px rgba(34,119,212,.15)}
.field textarea{min-height:140px;resize:vertical}
.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}

/* Tables / key-value (SEWP page) */
.kv{display:grid;grid-template-columns:200px 1fr;border-top:1px solid var(--line)}
.kv div{padding:14px 0;border-bottom:1px solid var(--line)}
.kv div:nth-child(odd){font-family:var(--font-heading);font-weight:600;color:var(--ink)}
.steps{counter-reset:s;display:grid;gap:14px;padding:0;margin:0;list-style:none}
.steps li{counter-increment:s;display:flex;gap:18px;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px}
.steps li::before{content:counter(s);flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-family:var(--font-heading);font-weight:700}
.tag{display:inline-block;font-family:var(--font-heading);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(168,126,1,.35);border-radius:999px;padding:4px 10px;margin-bottom:12px}
.note{font-size:15px;color:var(--dim)}

/* Footer */
.site-footer{background:var(--ink);color:#aab6c8;padding:64px 0 28px;font-size:15px}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px}
.site-footer h4{color:#fff;font-size:15px;margin:0 0 14px}
.site-footer a{color:#aab6c8;text-decoration:none}
.site-footer a:hover{color:var(--gold-br)}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.footer-logo{background:#fff;border-radius:8px;padding:12px 14px;display:inline-block;margin-bottom:16px}
.footer-logo img{height:34px}
.site-footer .bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px}

/* Reveal on scroll */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* Responsive */
@media (max-width:1024px){.grid-4{grid-template-columns:repeat(2,1fr)}.site-footer .cols{grid-template-columns:1fr 1fr}}
@media (max-width:860px){
  .menu-toggle{display:block}
  .nav{position:fixed;inset:76px 0 auto 0;flex-direction:column;align-items:flex-start;gap:4px;background:var(--bg);border-bottom:1px solid var(--line);padding:16px 20px 24px;transform:translateY(-120%);transition:transform .3s;z-index:-1}
  .nav.open{transform:none}
  .hero .wrap,.split,.contact-grid,.grid-3,.grid-2{grid-template-columns:1fr}
  .hero-badge{max-width:420px}
  section{padding:72px 0}
  .kv{grid-template-columns:1fr}.kv div:nth-child(odd){padding-bottom:0;border-bottom:0}
}
@media (max-width:560px){.grid-4,.row,.site-footer .cols{grid-template-columns:1fr}.brand img{height:32px}}

/* fixes */
img{height:auto}
.hero-badge{text-decoration:none;display:block}
.section-head p.eyebrow{color:var(--gold);font-size:13px;margin-bottom:14px}
.mission .eyebrow{font-size:13px}
.split .section-head{margin-bottom:24px}

/* Video hero (home.mp4) */
.hero-video{min-height:calc(100vh - 76px);display:flex;align-items:center;background:#05101c;color:#d8e2ef}
.hero-video .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero-video .hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(5,16,28,.92) 0%,rgba(5,16,28,.7) 45%,rgba(5,16,28,.2) 100%),linear-gradient(0deg,rgba(5,16,28,.6),transparent 40%)}
.hero-video .wrap{position:relative;z-index:2}
.hero-video h1{color:#fff}
.hero-video h1 .accent{color:#6fb3ff}
.hero-video h1 .gold,.hero-video .eyebrow{color:var(--gold-br)}
.hero-video p{color:#c9d5e4}
.hero-video .btn.ghost{color:#fff!important;border-color:rgba(255,255,255,.6)}
.hero-video .btn.ghost:hover{background:#fff;color:var(--blue)!important;border-color:#fff}
.hero-video .hero-badge{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.15);backdrop-filter:blur(8px)}
.hero-video .hero-badge p{color:#c9d5e4}


/* Compact video hero */
.hero-video{min-height:0;padding:96px 0 88px}
.hero-video .wrap{display:block}
.hero-copy{max-width:760px}
.hero-video h1{font-size:clamp(34px,4.4vw,56px)}
.hero-video p{margin-bottom:0}
@media (max-width:860px){.hero-video{padding:72px 0 64px}}

/* ===== Text color rule: black (--ink) and gold only =====
   Light sections: black text, gold accents. Dark sections (hero video, mission, footer): gold text. */
body,p,li,span,small,.caption,.note,.section-head p,.partner p,.hero-badge p,.stat small,
.info a,.info span,.card p,.field label,.kv div{color:var(--ink)}
h1,h2,h3,h4,h5,h6,.nav a,.chip{color:var(--ink)}
a,.arrow-link,.btn.ghost{color:var(--ink)!important}
a:hover,.nav a:hover,.info a:hover,.arrow-link:hover{color:var(--gold)!important}
.accent,h2 .accent,.hero h1 .accent,.stat,.eyebrow,.num,.tag,.section-head p.eyebrow{color:var(--gold)}
.card .icon,.info .icon{color:var(--gold);background:rgba(168,126,1,.1)}
/* Buttons: black with gold label */
.btn{background:var(--ink);border-color:var(--ink);color:var(--gold-br)!important}
.btn:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)!important}
.btn.ghost{background:transparent;border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--gold-br)!important}
.steps li::before{background:var(--ink);color:var(--gold-br)}
/* Dark sections: gold text */
.hero-video,.hero-video p,.hero-video h1,.hero-video h1 .accent,.hero-video h1 .gold,.hero-video span,
.mission,.mission p,.mission blockquote,.mission blockquote .gold,.mission span,
.site-footer,.site-footer p,.site-footer span,.site-footer h4,.site-footer a{color:var(--gold-br)!important}
.mission blockquote .gold,.hero-video h1 .gold{font-weight:700}
.site-footer p,.site-footer a,.site-footer span{opacity:.85}
.site-footer a:hover{opacity:1;text-decoration:underline}
/* Hero headline: white, with only "Joint Venture" and "Varmoda Tech" in gold */
.hero-video h1{color:#fff!important}
.hero-video h1 .gold{color:var(--gold-br)!important}
.hero-video h1{margin-bottom:0}

/* Centered typewriter heading (About) */
.about-head{text-align:center;margin-bottom:56px}
.about-head h2{font-size:clamp(28px,3.6vw,46px);margin:0;line-height:1.25}
.typer,.typer .typer-word{color:var(--gold);white-space:nowrap}
.typer-caret{display:inline-block;width:2px;height:.9em;background:var(--gold);margin-left:3px;vertical-align:-.08em;animation:blink 1s step-end infinite}
@keyframes blink{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.typer-caret{display:none}}
.about-head .hl{color:var(--gold)}

/* About: lead paragraph + firm tiles */
.about-lead{max-width:860px;margin:0 auto 48px;text-align:center;font-size:19px;line-height:1.75}
.firm-tiles{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:980px;margin:0 auto}
.firm-tile{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:40px 32px;text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}
.firm-tile:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(14,26,43,.08);border-color:var(--gold)}
.firm-logo{height:110px;display:flex;align-items:center;justify-content:center;margin-bottom:24px}
.firm-logo img{max-height:110px;max-width:260px;width:auto;object-fit:contain}
.firm-tile h3{margin:0 0 8px;font-size:22px}
.firm-tile p{margin:0 0 18px;font-size:16px}
.firm-tile:hover .arrow-link{color:var(--gold)!important}
@media (max-width:700px){.firm-tiles{grid-template-columns:1fr}}
.about-lead{text-align:justify;text-align-last:center;hyphens:auto}
.about-lead{max-width:980px;hyphens:manual}

/* Firm tiles — matched to varmoda.com joint-venture cards */
.jvs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,22px);max-width:980px;margin:0 auto}
.jv{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;min-height:230px;padding:34px 30px;border-radius:22px;text-decoration:none;
  background:radial-gradient(120% 90% at 100% 0%,#FFF8E6 0%,rgba(255,248,230,0) 58%),linear-gradient(160deg,#FFFFFF 0%,#F6F9FD 100%);
  border:1px solid var(--line);box-shadow:0 14px 34px -24px rgba(3,20,42,.45);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s}
.jv::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--blue-br) 0%,var(--blue) 38%,rgba(12,83,149,0) 100%);transform:scaleX(.3);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.jv:hover{transform:translateY(-7px);border-color:rgba(190,143,1,.45);box-shadow:0 30px 56px -28px rgba(3,20,42,.42)}
.jv:hover::after{transform:scaleX(1)}
.jv:focus-visible{outline:3px solid var(--gold-br);outline-offset:4px}
.jvlogo{display:grid;place-items:center;width:100%}
.jvlogo img{max-width:84%;max-height:72px;object-fit:contain}
.jvtags{display:flex;flex-wrap:wrap;gap:10px 18px;justify-content:center}
.jvtags span{font-family:var(--font-heading);font-weight:600;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);transition:color .4s ease}
.jv:hover .jvtags span{color:var(--gold)}
.jvwm{position:absolute;right:-26px;bottom:-30px;width:190px;height:190px;pointer-events:none;opacity:.09;transform:translate(10px,10px) scale(.94);transform-origin:bottom right;transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.jvwm svg{width:100%;height:100%;fill:none;stroke:var(--blue);stroke-width:1.3}
.jv:hover .jvwm{opacity:.2;transform:none}
.jv:hover .jvwm svg{stroke:var(--gold)}
.jvlogo,.jvtags{position:relative;z-index:1}
@media (max-width:700px){.jvs{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.jv,.jv::after,.jvwm{transition-duration:.01ms}}
.jvlogo img[src*="pcs.png"]{max-height:96px}.jvlogo img[src*="varmoda-logo"]{max-height:60px}
/* Header: logo only, on the right */
.site-header .wrap{justify-content:flex-end}
.section-head.center{margin-inline:auto;text-align:center}

/* Mission lead */
.mission-lead{max-width:980px;margin:0 auto 48px;font-size:19px;line-height:1.75;text-align:justify;text-align-last:center}
/* Market rows — matched to varmoda.com "Where Varmoda works" */
.wrows{max-width:1100px;margin:0 auto;border-top:1px solid var(--line)}
.wrow{position:relative;display:grid;grid-template-columns:66px 1fr;gap:clamp(16px,2vw,26px);align-items:center;padding:clamp(20px,2.4vw,28px) clamp(16px,2vw,24px);border-bottom:1px solid var(--line);border-radius:14px;transition:background .38s ease,box-shadow .38s ease,transform .38s cubic-bezier(.2,.8,.2,1)}
.wrow.reveal.in:hover,.wrow:hover{transform:translateY(-2px);background:linear-gradient(140deg,#1550A4 0%,#0C5395 42%,#071E3C 100%);box-shadow:0 20px 40px -24px rgba(3,20,42,.6);border-bottom-color:transparent}
.wic{width:54px;height:54px;display:block}
.wic svg{width:100%;height:100%;fill:none;stroke:var(--blue);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;opacity:.82;transition:stroke .38s,opacity .38s}
.wrow:hover .wic svg{stroke:var(--gold-br);opacity:1}
.wrow h3{font-family:var(--font-heading);font-weight:600;font-size:clamp(1.15rem,2.1vw,1.5rem);letter-spacing:-.02em;color:var(--ink);margin:0;transition:color .38s}
.wrow:hover h3{color:#fff}
@media (max-width:600px){.wrow{grid-template-columns:44px 1fr;gap:14px}.wic{width:36px;height:36px}}
@media (prefers-reduced-motion:reduce){.wrow{transition-duration:.01ms}.wrow:hover{transform:none}}
/* Two market rows per line */
.wrows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;border-top:0}
.wrow{border-top:1px solid var(--line);border-bottom:0}
.wrows .wrow:nth-last-child(-n+2){border-bottom:1px solid var(--line)}
.wrows .wrow:last-child:nth-child(odd){grid-column:1 / -1;max-width:calc(50% - 12px);justify-self:center;width:100%}
.wrow:hover{border-color:transparent}
@media (max-width:760px){.wrows{grid-template-columns:1fr}.wrows .wrow:last-child:nth-child(odd){max-width:none}}

/* Flag video blended into the light ground across the whole Mission section
   (same technique as varmoda.com's state & local services section) */
.flag-sec{position:relative;overflow:hidden;isolation:isolate}
.flag-sec>.wrap{position:relative;z-index:2}
.flag-bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:50% 40%;opacity:.55;pointer-events:none;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 14%,#000 84%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 14%,#000 84%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 10%,#000 90%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
.flag-shade{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(60% 38% at 50% 26%,rgba(251,251,253,.7),rgba(251,251,253,0) 75%),rgba(251,251,253,.35)}
.flag-sec .wrow{background:rgba(251,251,253,.38);border:1px solid rgba(228,233,240,.8);margin-bottom:12px}
.flag-sec .wrows .wrow:nth-last-child(-n+2){border-bottom:1px solid rgba(228,233,240,.8)}
.flag-sec .wrow:hover{background:linear-gradient(140deg,#1550A4 0%,#0C5395 42%,#071E3C 100%);border-color:transparent}

.mission-lead{max-width:1100px;text-align:justify;text-align-last:left;hyphens:manual;padding:0}

/* =========================================================
   SYMMETRY: one content width, centered headings, even rhythm
   ========================================================= */
.wrap{width:min(1100px,100% - 40px)}
section{padding:104px 0}
.section-head.center{max-width:860px;margin:0 auto 52px;text-align:center}
.section-head.center h2{margin-bottom:0}
.about-head{margin-bottom:44px}
.about-lead,.mission-lead,.jvs,.wrows{max-width:none;width:100%}
.about-lead{text-align:justify;text-align-last:left;margin-bottom:48px}
.grid{align-items:stretch}
.card{display:flex;flex-direction:column}
.expertise-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:28px;align-items:stretch}
.lead-j{font-size:18px;line-height:1.75;text-align:justify;margin:0 0 24px}
.stat-card{justify-content:center;align-items:center;text-align:center}
.stat-card .stat small{max-width:280px;margin-inline:auto}
.agencies{margin-top:0}
.contact-grid{grid-template-columns:1fr 1fr;align-items:stretch}
.info-list{grid-auto-rows:1fr}
@media (max-width:860px){.expertise-grid,.contact-grid{grid-template-columns:1fr}.info-list{grid-auto-rows:auto}}

/* =========================================================
   AMBIENT BACKGROUND: drifting brand orbs + faint grid
   ========================================================= */
.amb{position:relative;isolation:isolate;overflow:hidden}
.amb>.wrap{position:relative;z-index:2}
.amb-layer{position:absolute;inset:0;z-index:0;pointer-events:none}
.amb-layer::before{content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(12,83,149,.10) 1px,transparent 1.2px);background-size:26px 26px;
  -webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(70% 60% at 50% 40%,#000,transparent 75%);
  transform:translateY(var(--par,0px))}
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;animation:drift 22s ease-in-out infinite alternate}
.orb.b{width:420px;height:420px;background:radial-gradient(circle,rgba(34,119,212,.35),transparent 65%);top:-120px;left:-120px}
.orb.g{width:360px;height:360px;background:radial-gradient(circle,rgba(227,178,27,.32),transparent 65%);bottom:-120px;right:-100px;animation-duration:26s}
@keyframes drift{to{transform:translate(80px,60px) scale(1.15)}}

/* =========================================================
   SECTION TRANSITIONS
   1) gold line draws open across the top of each section
   2) headings rise word by word out of a blur
   3) cards/tiles cascade in with depth
   ========================================================= */
.sx{position:relative}
.sx::after{content:"";position:absolute;top:0;left:50%;width:min(1100px,100% - 40px);height:2px;z-index:3;
  background:linear-gradient(90deg,transparent,var(--gold-br) 30%,var(--gold) 50%,var(--gold-br) 70%,transparent);
  transform:translateX(-50%) scaleX(0);transition:transform 1.2s cubic-bezier(.7,0,.2,1)}
.sx.seen::after{transform:translateX(-50%) scaleX(1)}
.w{display:inline-block;opacity:0;filter:blur(10px);transform:translateY(.45em);
  transition:opacity .7s ease,filter .7s ease,transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 70ms)}
.seen .w{opacity:1;filter:none;transform:none}
.reveal{opacity:0;transform:translateY(28px) scale(.97);filter:blur(6px);
  transition:opacity .8s ease,transform .9s cubic-bezier(.2,.8,.2,1),filter .8s ease;transition-delay:var(--d,0ms)}
.reveal.in{opacity:1;transform:none;filter:none}
/* keep hover lifts working after the reveal */
.jv.reveal.in:hover{transform:translateY(-7px)}
.card.reveal.in:hover{transform:translateY(-4px)}
.wrow.reveal.in:hover{transform:translateY(-2px)}
/* scroll progress */
.progress{position:fixed;top:0;left:0;height:3px;width:100%;z-index:60;transform-origin:left;transform:scaleX(var(--p,0));
  background:linear-gradient(90deg,var(--blue),var(--gold-br))}
@media (prefers-reduced-motion:reduce){
  .orb{animation:none}.w,.reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
  .sx::after{transition:none;transform:translateX(-50%) scaleX(1)}.amb-layer::before{transform:none}}
/* split words keep the color of the span they came from */
h1 .w,h2 .w{color:inherit!important}
/* Flags only: sky removed from the footage, blended onto the page background */
.flag-bg{opacity:.85;mix-blend-mode:multiply}
.flag-shade{background:radial-gradient(60% 30% at 50% 18%,rgba(251,251,253,.75),rgba(251,251,253,0) 75%)}
.flag-sec{background:var(--bg)}
.flag-sec .wrow{background:rgba(255,255,255,.55);border-color:var(--line)}

/* Expertise tiles — varmoda.com capability-tile style, compact */
.xps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.xp{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;min-height:158px;padding:24px 22px 22px;border-radius:18px;
  background:radial-gradient(62% 52% at 94% 2%,rgba(227,178,27,.20),transparent 60%),linear-gradient(140deg,#1550A4 0%,#0C5395 38%,#071E3C 100%);
  box-shadow:0 18px 36px -24px rgba(3,20,42,.6);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.xp::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;z-index:4;background:linear-gradient(90deg,var(--gold-br) 0%,var(--gold) 34%,rgba(227,178,27,0) 100%);transform:scaleX(.34);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.xp::before{content:"";position:absolute;z-index:1;width:200px;height:200px;border-radius:50%;right:-90px;bottom:-110px;pointer-events:none;background:radial-gradient(circle,#E3B21B,transparent 66%);opacity:.16;filter:blur(18px);transition:opacity .45s}
.xp .mk{position:absolute;z-index:1;right:-18px;bottom:-22px;width:120px;height:120px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;opacity:.18;pointer-events:none;transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1),stroke .5s}
.xp .eb{position:relative;z-index:3;font-family:var(--font-heading);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-br)!important;margin-bottom:8px}
.xp h3{position:relative;z-index:3;font-size:clamp(1.02rem,1.3vw,1.18rem);font-weight:600;line-height:1.25;color:#fff!important;margin:0;max-width:88%}
.xp.reveal.in:hover,.xp:hover{transform:translateY(-6px);box-shadow:0 30px 56px -26px rgba(3,20,42,.68)}
.xp:hover::after{transform:scaleX(1)}
.xp:hover::before{opacity:.38}
.xp:hover .mk{opacity:.34;stroke:var(--gold-br);transform:translateY(-10px) scale(1.06)}
@media (max-width:1024px){.xps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.xps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.xps{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.xp,.xp::after,.xp .mk{transition:none}}
.xp{justify-content:flex-start;padding-top:30px}
/* Logo pinned to the far right edge of the page */
.site-header .wrap{width:100%;max-width:none;padding-inline:clamp(16px,2.5vw,36px)}
.section-head .subhead{margin:14px auto 0;font-family:var(--font-heading);font-weight:500;font-size:clamp(16px,1.6vw,20px);letter-spacing:.01em;color:var(--ink)}
.section-head .subhead .hl{color:var(--gold)}
/* gold underline beneath the Expertise subheading, draws open when the section appears */
.section-head .subhead::after{content:"";display:block;width:120px;height:3px;margin:16px auto 0;border-radius:3px;
  background:linear-gradient(90deg,transparent,var(--gold-br) 20%,var(--gold) 50%,var(--gold-br) 80%,transparent);
  transform:scaleX(0);transition:transform 1s cubic-bezier(.7,0,.2,1) .4s}
.seen .section-head .subhead::after,.section-head.in .subhead::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.section-head .subhead::after{transform:none;transition:none}}
/* underline matches the text width: solid gold on the left, fading out to the right */
.section-head .subhead{display:inline-block}
.section-head .subhead::after{width:100%;height:2px;margin:12px 0 0;border-radius:2px;
  background:linear-gradient(90deg,var(--gold-br) 0%,var(--gold) 45%,rgba(168,126,1,.15) 85%,transparent 100%);
  transform-origin:left}

/* Clients: one ribbon of logos moving left to right */
#clients .section-head .subhead{display:block;max-width:760px;font-family:var(--font-body);font-weight:200;font-size:18px;line-height:1.7}
#clients .section-head .subhead::after{display:none}
.marquee{position:relative;overflow:hidden;padding:10px 0;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee var(--dur,40s) linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-set{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0 14px}
@keyframes marquee{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.logo{flex:none;width:200px;height:96px;display:grid;place-items:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 22px;
  box-shadow:0 12px 28px -22px rgba(3,20,42,.45);transition:transform .35s,box-shadow .35s,border-color .35s}
.logo img{max-width:100%;max-height:60px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .35s,opacity .35s}
.logo:hover{transform:translateY(-4px);border-color:rgba(190,143,1,.45);box-shadow:0 22px 40px -24px rgba(3,20,42,.5)}
.logo:hover img{filter:none;opacity:1}
.logo.ph span{font-family:var(--font-heading);font-weight:500;font-size:14px;color:var(--ink);opacity:.5}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}.marquee{overflow-x:auto}}
#clients .section-head .subhead{text-align:justify;text-align-last:left;hyphens:manual}

/* =========================================================
   CONTACT — matched to varmoda.com's homepage contact section
   ========================================================= */
#contact .section-head .subhead{display:block;font-family:var(--font-body);font-weight:200;font-size:clamp(17px,1.3vw,20px);line-height:1.66}
#contact .section-head .subhead::after{display:none}
.cgrid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:start}
.cform{display:flex;flex-direction:column;gap:16px}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.cform label{display:flex;flex-direction:column;gap:7px;font-family:var(--font-heading);font-weight:600;font-size:.9rem;color:var(--ink)}
.cform .lt{display:block}
.cform input,.cform textarea{font-family:var(--font-body);font-weight:200;font-size:1rem;color:var(--ink);background:#fff;border:1.5px solid #C9D6E6;border-radius:12px;padding:12px 14px;width:100%;resize:vertical;
  box-shadow:0 1px 2px rgba(3,20,42,.04);transition:border-color .25s,box-shadow .25s}
.cform input:hover,.cform textarea:hover{border-color:var(--blue-br)}
.cform input:focus,.cform textarea:focus{outline:none;border-color:var(--gold-br);box-shadow:0 0 0 3px rgba(227,178,27,.28)}
.req{color:var(--gold)!important;font-weight:700}
.reqnote{margin:2px 0 0;font-family:var(--font-heading);font-size:.84rem}
.emsg{display:none;font-family:var(--font-heading);font-weight:500;font-size:.8rem;color:#C0392B!important}
.cform label.err input,.cform label.err textarea{border-color:#D14436;box-shadow:0 0 0 3px rgba(209,68,54,.18)}
.cform label.err .emsg{display:block}
.cform .btn{align-self:flex-start;margin-top:6px;background:linear-gradient(135deg,var(--gold-br),var(--gold));border-color:transparent;color:#211A03!important}
.cform .btn:hover{filter:brightness(1.06);background:linear-gradient(135deg,var(--gold-br),var(--gold));color:#211A03!important}
.cform .btn:disabled{opacity:.6;cursor:wait}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fnote{margin:0;min-height:1.2em;font-size:.92rem}
.fnote.ok{font-family:var(--font-heading);font-weight:500;line-height:1.65;border-left:3px solid var(--gold-br);padding-left:14px}
.cinfo{position:relative;z-index:3}
.cinfo::before{content:"";position:absolute;z-index:-1;inset:-14px -16px -18px -16px;border-radius:18px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.45))}
.cinfo h3{display:inline-block;font-size:clamp(1.3rem,1.7vw,1.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.24;margin:0 0 22px}
.cinfo h3::after{content:"";display:block;width:100%;height:3px;border-radius:2px;margin-top:14px;background:linear-gradient(90deg,var(--gold-br) 0%,var(--gold-br) 42%,rgba(227,178,27,0) 100%)}
.cinfo dl{margin:0}
.cinfo dt{font-family:var(--font-heading);font-size:.82rem;font-weight:500;color:var(--ink);opacity:.7;margin-top:16px}
.cinfo dt:first-of-type{margin-top:0}
.chq dt:first-of-type{margin-top:16px}
.cinfo dd{margin:3px 0 0;font-size:1.03rem;line-height:1.5}
.cinfo a{text-decoration:none;transition:color .25s}
.cmap{position:relative;display:block;height:178px;margin-top:14px;border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 28px -22px rgba(3,20,42,.45)}
.cmap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;pointer-events:none;filter:saturate(.92) contrast(1.02)}
.cmap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,26,43,0) 46%,rgba(14,26,43,.66) 100%)}
.cmap-cta{position:absolute;left:14px;bottom:11px;z-index:2;font-family:var(--font-heading);font-weight:600;font-size:.9rem;color:#fff!important;text-shadow:0 1px 6px rgba(6,16,30,.6)}
.cmap-cta span{color:#fff!important}
@media (max-width:900px){.cgrid{grid-template-columns:1fr}}
@media (max-width:560px){.f2{grid-template-columns:1fr}}
/* Mission paragraph: darker, slightly bolder strokes and a soft white halo so it reads over the flags */
.flag-sec .mission-lead{color:var(--ink)!important;-webkit-text-stroke:.45px var(--ink);
  text-shadow:0 0 6px rgba(251,251,253,.95),0 0 14px rgba(251,251,253,.9)}
/* Compact partner tiles */
.jvs{max-width:880px;margin-inline:auto;gap:18px}
.jv{min-height:0;height:150px;padding:22px 26px;border-radius:18px;gap:0}
.jvlogo img{max-width:72%;max-height:none;height:auto}
.jvlogo img[src*="varmoda-logo"]{width:200px;max-height:52px}
.jvlogo img[src*="pcs.png"]{width:auto;max-height:92px}
.jvwm{width:130px;height:130px;right:-18px;bottom:-22px}
@media (max-width:700px){.jv{height:130px}}
.jvs{max-width:760px}
/* Heading highlights in Varmoda PCS logo blue (#115A9C) instead of gold */
:root{--logo-blue:#115A9C}
h1 .accent,h2 .accent,h3 .accent,h2 .hl,.section-head .accent,.about-head .hl,.typer,.typer .typer-word{color:var(--logo-blue)!important}
.typer-caret{background:var(--logo-blue)}
/* Hero headline highlights in Varmoda blue, lifted to stay readable on the dark video */
.hero-video h1 .gold{color:#5A9BE0!important}
.hero-video h1{color:#fff!important}
.hero-video h1 .vt{color:var(--gold-br)!important}
.hero-video h1 .pcs{color:#5FC100!important}
.hero-video h1 .vt,.hero-video h1 .pcs{color:#fff!important}

/* Contract vehicles: two columns */
.cv-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(28px,4vw,56px);align-items:center}
.cv-left h2{font-size:clamp(30px,3.6vw,44px);margin:0 0 16px}
.cv-left p{font-size:18px;line-height:1.75;text-align:justify;margin:0;color:var(--ink)}
.cv-right{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cv{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:6px;padding:26px 24px;border-radius:18px;text-decoration:none;
  background:radial-gradient(62% 52% at 94% 2%,rgba(227,178,27,.20),transparent 60%),linear-gradient(140deg,#1550A4 0%,#0C5395 38%,#071E3C 100%);
  box-shadow:0 18px 36px -24px rgba(3,20,42,.6);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s}
.cv::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--gold-br),var(--gold) 34%,rgba(227,178,27,0));transform:scaleX(.34);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.cv.reveal.in:hover,.cv:hover{transform:translateY(-6px);box-shadow:0 30px 56px -26px rgba(3,20,42,.68)}
.cv:hover::after{transform:scaleX(1)}
.cv .cv-tag{font-family:var(--font-heading);font-weight:600;font-size:.72rem;letter-spacing:.14em;color:var(--gold-br)!important}
.cv h3{color:#fff!important;font-size:1.4rem;margin:0}
.cv p{color:rgba(234,241,249,.86)!important;font-size:15px;margin:0 0 12px}
.cv .cv-go,.cv .cv-go span{margin-top:auto;font-family:var(--font-heading);font-weight:600;font-size:.88rem;color:var(--gold-br)!important}
@media (max-width:900px){.cv-grid{grid-template-columns:1fr}}
@media (max-width:520px){.cv-right{grid-template-columns:1fr}}
.cv-left h2{margin:0}
/* Compact contract vehicles section */
#vehicles{padding:52px 0}
.cv{padding:18px 20px;gap:4px}
.cv p{margin:0 0 6px}
.cv-solo{justify-content:center}
.cv-solo h3{font-size:1.5rem}
.cv-num,.cv-num .cv-copytext{user-select:text;-webkit-user-select:text;cursor:text}
.cv-num .cv-copytext{letter-spacing:.04em}
.cv-cats{display:flex;flex-direction:column;gap:2px}
.cv-cats span{color:rgba(234,241,249,.9)!important}
.site-footer .bottom{align-items:center}
.site-footer .updated{margin-left:auto;padding-left:24px}

/* ===== Consistency & symmetry pass ===== */
h1,h2,h3{text-wrap:balance}
#contact .section-head{max-width:980px}
/* Contract vehicles: centered heading above two equal tiles, same width as the partner tiles */
#vehicles .cv-grid{grid-template-columns:1fr;justify-items:center;gap:32px;max-width:760px}
#vehicles .cv-left{text-align:center}
#vehicles .cv-left h2::after{content:"";display:block;width:90px;height:3px;border-radius:3px;margin:14px auto 0;background:linear-gradient(90deg,var(--gold-br),var(--gold) 45%,rgba(168,126,1,0))}
#vehicles .cv-right{width:100%}
#vehicles .cv{min-height:150px}
#vehicles{padding:80px 0}
/* Phones: left-align justified copy (justify leaves big word gaps on narrow screens) */
@media (max-width:575px){
  .about-lead,.mission-lead,.lead-j,#clients .section-head .subhead,.cv-left p{text-align:left!important;-webkit-text-stroke:0}
  .hero-video{padding:64px 0 56px}
  .xp{min-height:0;padding:22px 20px}
  .xp .mk{width:90px;height:90px}
  section{padding:64px 0}
}
/* Clients intro: heading and paragraph span the full content width */
#clients .section-head{max-width:none}
#clients .section-head .subhead{max-width:none;margin-left:0;margin-right:0;hyphens:manual}
/* Contract vehicles: one row — heading left, GSA and NASA tiles side by side on the right */
#vehicles .cv-grid{grid-template-columns:auto 1fr;justify-items:stretch;align-items:center;gap:clamp(28px,5vw,72px);max-width:none}
#vehicles .cv-left{text-align:left}
#vehicles .cv-left h2{white-space:nowrap}
#vehicles .cv-left h2::after{margin:14px 0 0}
#vehicles .cv-right{grid-template-columns:1fr 1fr;gap:18px;width:100%}
@media (max-width:900px){#vehicles .cv-grid{grid-template-columns:1fr}#vehicles .cv-left{text-align:center}#vehicles .cv-left h2::after{margin:14px auto 0}}
@media (max-width:520px){#vehicles .cv-right{grid-template-columns:1fr}}
/* Capability statement tile (varmoda.com style), compact and centered */
.capstat{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;gap:20px;
  width:min(440px,100%);margin:28px auto 0;padding:30px 34px;border-radius:22px;text-decoration:none;
  background:radial-gradient(120% 90% at 100% 0%,#FFF8E6 0%,rgba(255,248,230,0) 58%),linear-gradient(160deg,#FFFFFF 0%,#F6F9FD 100%);
  border:1px solid var(--line);box-shadow:0 14px 34px -24px rgba(3,20,42,.45);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s}
.capstat::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--blue-br) 0%,var(--blue) 38%,rgba(12,83,149,0) 100%);transform:scaleX(.4);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.capstat .mk{position:absolute;z-index:-1;right:-14px;bottom:-26px;width:150px;height:150px;fill:none;stroke:var(--blue);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;opacity:.14}
.capstat .cs-title{font-family:var(--font-heading);font-weight:700;font-size:clamp(1.4rem,2vw,1.75rem);line-height:1.2;color:var(--ink)!important;max-width:80%}
.capstat .cs-gold{color:var(--gold)!important}
.capstat .cs-btn{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;border-radius:999px;font-family:var(--font-heading);font-weight:600;font-size:.95rem;color:#fff!important;
  background:linear-gradient(135deg,#1550A4,#0C5395 50%,#2F4A5E);box-shadow:0 12px 24px -12px rgba(12,83,149,.6)}
.capstat .cs-btn span{color:#fff!important;transition:transform .3s}
.capstat:hover,.capstat.reveal.in:hover{transform:translateY(-6px);border-color:rgba(190,143,1,.45);box-shadow:0 28px 52px -28px rgba(3,20,42,.42)}
.capstat:hover::after{transform:scaleX(1)}
.capstat:hover .cs-btn span{transform:translateX(4px)}

/* Client logos: full color, uniform tiles */
.logo{width:220px;height:116px;padding:18px 24px}
.logo img{max-height:76px;max-width:100%;width:auto;height:auto;filter:none;opacity:1}
.logo:hover img{filter:none}
@media (max-width:600px){.logo{width:170px;height:96px}.logo img{max-height:60px}}

/* Simplified footer: logo + tagline left, Reach us right, last-updated line */
.site-footer .cols.cols-2{grid-template-columns:1fr auto;align-items:start}
.site-footer .reach{text-align:right}
.site-footer .bottom{justify-content:flex-end}
.site-footer .updated{margin-left:0;padding-left:0}
@media (max-width:560px){.site-footer .cols.cols-2{grid-template-columns:1fr}.site-footer .reach{text-align:left}.site-footer .bottom{justify-content:flex-start}}
/* Submit button: same blue pill as "Read the statement" */
.cform .btn,.cform .btn:hover{background:linear-gradient(135deg,#1550A4,#0C5395 50%,#2F4A5E)!important;border:0!important;color:#fff!important;
  border-radius:999px;padding:14px 28px;box-shadow:0 12px 24px -12px rgba(12,83,149,.6);filter:none}
.cform .btn span{color:#fff!important;transition:transform .3s}
.cform .btn:hover{box-shadow:0 18px 32px -14px rgba(12,83,149,.75)}
.cform .btn:hover span{transform:translateX(4px)}
/* Footer logo: light version directly on the dark footer (no white box) */
.site-footer .footer-logo{background:none!important;padding:0!important;border-radius:0}
.site-footer .footer-logo img{height:44px;width:auto}

/* Compact footer */
.site-footer{padding:26px 0!important}.site-footer .cols.cols-2{margin-bottom:0!important;gap:24px;align-items:center!important}.site-footer .footer-logo{margin-bottom:6px!important}.site-footer .footer-logo img{height:34px!important}.site-footer .cols p{margin:0}.site-footer .reach h4{margin:0 0 6px!important}.site-footer .reach ul{gap:2px!important}

/* Footer: standard height, white text, gold heading */
.site-footer{padding:48px 0!important}.site-footer .footer-logo img{height:40px!important}.site-footer .footer-logo{margin-bottom:12px!important}.site-footer .reach h4{margin:0 0 10px!important}.site-footer .reach ul{gap:6px!important}.site-footer p,.site-footer a,.site-footer span{color:#FFFFFF!important;opacity:.88}.site-footer h4{color:var(--gold-br)!important;opacity:1}.site-footer a:hover{opacity:1;color:var(--gold-br)!important;text-decoration:none}

/* Capability statement: full-width banner */
.capstat{width:100%;flex-direction:row;align-items:center;justify-content:space-between;gap:32px;padding:30px 36px}
.capstat .cs-text{display:flex;flex-direction:column;gap:8px;max-width:760px}
.capstat .cs-title{max-width:none}
.capstat .cs-desc{font-size:16px;line-height:1.6;color:var(--ink)!important}
.capstat .cs-btn{flex:none;position:relative;z-index:1}
.capstat .mk{right:200px;bottom:-30px;width:140px;height:140px}
@media (max-width:760px){.capstat{flex-direction:column;align-items:flex-start;gap:18px;padding:26px 24px}.capstat .mk{right:-14px}}

/* GSA MAS title link */
.cv h3 .cv-link{color:#fff!important;text-decoration:none;background:linear-gradient(var(--gold-br),var(--gold-br)) left bottom/0 2px no-repeat;transition:background-size .3s}
.cv h3 .cv-link:hover,.cv h3 .cv-link:focus-visible{background-size:100% 2px}
.cv h3 .cv-link::after{content:" \2197";font-size:.8em;color:var(--gold-br)}
.cv h3 .cv-link:focus-visible{outline:3px solid #fff;outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* GSA tile: contract number in body text, link styled like the NASA tile */
.cv .cv-num{margin:0 0 12px;color:rgba(234,241,249,.9)!important;font-family:var(--font-body);font-size:15px}
.cv .cv-num .cv-copytext{color:rgba(234,241,249,.9)!important}
.cv a.cv-go{text-decoration:none}
.cv a.cv-go:hover span,.cv a.cv-go:focus-visible span{display:inline-block;transform:translateX(4px)}
.cv a.cv-go:focus-visible{outline:3px solid #fff;outline-offset:3px}
.cv .cv-num{display:block}
.cv:hover .cv-go span,.cv:focus-visible .cv-go span{display:inline-block;transform:translateX(4px)}
.cv:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* ===== GSA MAS page ===== */
.gsa-hero{padding:96px 0 88px}
.gsa-hero .hero-copy{max-width:820px}
.gsa-hero p{margin:18px 0 0}
.gsa-hero .eyebrow{color:var(--gold-br)!important;margin:0 0 12px}
.gsa-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.gsa-btn{background:linear-gradient(135deg,var(--gold-br),var(--gold))!important;border:0!important;color:#211A03!important;transition:box-shadow .3s,filter .3s}
.gsa-btn:hover{background:linear-gradient(135deg,var(--gold-br),var(--gold))!important;color:#211A03!important;box-shadow:0 14px 28px -12px rgba(227,178,27,.65);filter:brightness(1.06)}
.gsa-split{display:grid;grid-template-columns:1.35fr 1fr;gap:28px;align-items:start}
.kv-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:10px 28px;box-shadow:0 14px 34px -24px rgba(3,20,42,.45)}
.kv-card .kv{border-top:0}
.kv-card .kv div:nth-last-child(-n+2){border-bottom:0}
.gsa-sins{display:grid;gap:16px}
.gsa-sins > h3{margin:0;font-size:20px}
.gsa-sins .xp{min-height:130px}
#terms .card .num{letter-spacing:.14em;font-size:12px}
.gsa-links{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.gsa-link{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 16px;padding:22px 26px;border-radius:18px;text-decoration:none;
  background:radial-gradient(62% 52% at 94% 2%,rgba(227,178,27,.20),transparent 60%),linear-gradient(140deg,#1550A4 0%,#0C5395 38%,#071E3C 100%);
  box-shadow:0 18px 36px -24px rgba(3,20,42,.6);transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.gsa-link span{grid-column:1;font-family:var(--font-heading);font-weight:700;font-size:1.15rem;color:#fff!important}
.gsa-link small{grid-column:1;color:rgba(234,241,249,.85)!important;font-size:14px}
.gsa-link b{grid-column:2;grid-row:1/span 2;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12);color:var(--gold-br)!important;transition:transform .3s}
.gsa-link:hover{transform:translateY(-4px);box-shadow:0 28px 52px -26px rgba(3,20,42,.7)}
.gsa-link:hover b{transform:translateX(4px)}
#order .steps{max-width:880px;margin:0 auto}
#contacts .card p{line-height:1.8}
@media (max-width:860px){.gsa-split,.gsa-links{grid-template-columns:1fr}}

.steps li .st{display:block;flex:1}
.gsa-hero p:not(.eyebrow){color:#D4DEEA!important}
.gsa-hero h1 .gold{color:var(--gold-br)!important}
#info .gsa-split{grid-template-columns:1fr}
#info .kv{grid-template-columns:260px 1fr}
.gsa-link b{grid-row:1}

/* ===== Final consistency pass ===== */
/* one heading scale */
main h2,.about-head h2,.section-head h2,.cv-left h2{font-size:clamp(30px,3.6vw,44px)!important}
.soon h1{font-size:clamp(34px,4.4vw,56px)}
/* one lead-paragraph size */
.about-lead,.mission-lead,#clients .section-head .subhead,#contact .section-head .subhead,.soon p{font-size:18px!important;line-height:1.75}
/* tile titles */
.cv h3{font-size:1.3rem}
.gsa-link span{font-size:1.3rem}
/* even section rhythm */
#vehicles{padding:104px 0}
@media (max-width:575px){#vehicles{padding:64px 0}}
/* videos always visible */
.hero-video .hero-bg,.flag-bg{display:block!important}
/* ===== Mobile fixes ===== */
@media (max-width:700px){
  #info .kv{grid-template-columns:1fr}
  #info .kv div:nth-child(odd){padding-bottom:2px;border-bottom:0;font-size:13px;letter-spacing:.04em;opacity:.8}
  #info .kv div:nth-child(even){padding-top:0}
  .kv-card{padding:6px 20px}
  .gsa-actions .btn{width:100%;justify-content:center}
  .gsa-hero{padding:64px 0 56px}
  .jv{height:120px}
  .flag-sec .mission-lead{background:rgba(251,251,253,.82);border-radius:14px;padding:16px 18px}
  .cv-left h2{white-space:normal}
  .capstat .cs-title{font-size:1.3rem}
  .site-header .wrap{height:64px}
  .site-header .brand img{height:30px}
}
.cf-turnstile{margin:4px 0 2px;min-height:65px}

/* ---- press feedback ----
 * Every clickable surface dips while it is held, then springs back on
 * release. Matters most on a phone, where there is no hover. Last in the
 * sheet so it overrides the hover transforms on the same elements. */
.btn:active,
.cform .btn:active,
.gsa-btn:active,
.soon-btn:active,
.cv:active,
.cv.reveal.in:active,
.jv:active,
.jv.reveal.in:active,
.capstat:active,
.capstat.reveal.in:active,
.gsa-link:active,
.cmap:active,
.arrow-link:active,
.info a:active,
.site-footer a:active,
.site-header .brand:active{
  transform:scale(.976);
  transition-duration:.08s;
}
/* the shadow collapses with the press, so the surface reads as pushed in */
.cv:active, .cv.reveal.in:active, .jv:active, .jv.reveal.in:active,
.capstat:active, .capstat.reveal.in:active, .gsa-link:active, .cmap:active{
  box-shadow:0 6px 16px -12px rgba(3,20,42,.5);
}
/* buttons dip further, since they are small */
.btn:active, .cform .btn:active, .gsa-btn:active, .soon-btn:active{ transform:scale(.96); }

@media (prefers-reduced-motion:reduce){
  .btn:active, .cform .btn:active, .gsa-btn:active, .soon-btn:active,
  .cv:active, .cv.reveal.in:active, .jv:active, .jv.reveal.in:active,
  .capstat:active, .capstat.reveal.in:active, .gsa-link:active, .cmap:active,
  .arrow-link:active, .info a:active, .site-footer a:active,
  .site-header .brand:active{ transform:none; }
}

/* ---- reduced transparency ----
 * macOS and iOS can ask for solid surfaces instead of blur. Nobody else
 * sees any difference. */
@media (prefers-reduced-transparency: reduce){
  .site-header{
    background:var(--bg);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    border-bottom:1px solid var(--line);
  }
  .hero-video .hero-badge{
    background:var(--ink);
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
    border:1px solid rgba(255,255,255,.15);
  }
}

/* ---- Mission section: single flag standing at the far left ---- */
.flag-sec .flag-bg{inset:auto;left:0;top:0;bottom:0;width:auto;height:100%;max-width:52%;object-fit:cover;object-position:left center;
  opacity:.95;mix-blend-mode:multiply;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 90%,transparent 100%),linear-gradient(90deg,#000 0%,#000 70%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 8%,#000 90%,transparent 100%),linear-gradient(90deg,#000 0%,#000 70%,transparent 100%);
  -webkit-mask-composite:source-in;mask-composite:intersect}
.flag-sec .flag-shade{background:none}
@media (max-width:860px){.flag-sec .flag-bg{max-width:none;width:100%;opacity:.35}}
.flag-sec .flag-bg{opacity:.5}.flag-sec .mission-lead{position:relative;z-index:2}
