/* ============================================================
   DEFENDTEX — clean static rebuild
   Brand: charcoal/black + military olive (#7d924e), white.
   No JS. Responsive. Self-contained. Self-hosted Inter.
   ============================================================ */

@font-face { font-family:"Inter"; font-weight:400; font-style:normal; font-display:swap; src:url("../fonts/inter-400.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-weight:500; font-style:normal; font-display:swap; src:url("../fonts/inter-500.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-weight:600; font-style:normal; font-display:swap; src:url("../fonts/inter-600.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-weight:700; font-style:normal; font-display:swap; src:url("../fonts/inter-700.woff2") format("woff2"); }
@font-face { font-family:"Inter"; font-weight:800; font-style:normal; font-display:swap; src:url("../fonts/inter-800.woff2") format("woff2"); }

:root {
  --ink:      #0d0f0e;
  --panel:    #141714;
  --panel-2:  #1c211b;
  --olive:    #869a56;
  --olive-br: #a7bd6f;
  --olive-dk: #5f7038;
  --sand:     #d8d6cb;
  --muted:    #97a08f;
  --line:     #2a2f28;
  --line-lt:  #e3e5df;
  --bg:       #ffffff;
  --bg-alt:   #f4f5f1;
  --text:     #1a1d18;
  --white:    #ffffff;
  --radius:   10px;
  --shadow:   0 10px 30px rgba(13,15,14,.10);
  --shadow-lg:0 26px 60px rgba(13,15,14,.22);
  --wrap:     1200px;
  --font: "Inter","Segoe UI",Roboto,-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: 90px; }
body { margin:0; font-family:var(--font); color:var(--text); background:var(--bg);
  line-height:1.62; font-size:17px; -webkit-font-smoothing:antialiased; }

/* --- polish: focus visibility, selection, smooth media --- */
:focus-visible { outline:3px solid var(--olive); outline-offset:3px; border-radius:3px; }
::selection { background:var(--olive); color:#0d0f0e; }
.skip-link { position:absolute; left:-9999px; top:0; background:var(--olive); color:#0d0f0e;
  padding:.7em 1.2em; z-index:100; font-weight:700; border-radius:0 0 6px 0; }
.skip-link:focus { left:0; text-decoration:none; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; }
}
img { max-width:100%; display:block; }
a { color:var(--olive-dk); text-decoration:none; }
a:hover { text-decoration:underline; }
h1,h2,h3,h4 { line-height:1.12; margin:0 0 .5em; letter-spacing:-.01em; font-weight:800; }
.upper { text-transform:uppercase; letter-spacing:.04em; }
h2 { font-size:clamp(1.7rem,3.2vw,2.5rem); }
h3 { font-size:1.25rem; }
p { margin:0 0 1rem; }
.wrap { max-width:var(--wrap); margin:0 auto; padding:0 24px; }
.eyebrow { display:inline-block; font-size:.76rem; font-weight:700; letter-spacing:.2em;
  text-transform:uppercase; color:var(--olive-dk); margin-bottom:.9rem; position:relative; padding-left:26px; }
.eyebrow::before { content:""; position:absolute; left:0; top:50%; width:18px; height:2px;
  background:var(--olive); transform:translateY(-50%); }
.center .eyebrow { padding-left:0; }
.center .eyebrow::before { display:none; }
.section { padding:86px 0; }
.section--alt { background:var(--bg-alt); }
.section--dark { background:
  linear-gradient(rgba(13,15,14,.90),rgba(13,15,14,.94)), url("../img/hero.jpg") center/cover fixed;
  color:var(--sand); }
.section--dark h2, .section--dark h3, .section--dark h4 { color:#fff; }
.section--dark .eyebrow { color:var(--olive-br); }
.center { text-align:center; }
.lead { font-size:1.16rem; color:var(--muted); max-width:64ch; }
.section--dark .lead { color:#b9c0ac; }
.center .lead { margin-left:auto; margin-right:auto; }

/* buttons */
.btn { display:inline-flex; align-items:center; gap:.5em; font-weight:600; font-size:.95rem;
  padding:.85em 1.7em; border-radius:4px; border:2px solid transparent; cursor:pointer;
  text-transform:uppercase; letter-spacing:.05em; font-size:.82rem;
  transition:transform .15s ease, background .15s ease, border-color .15s; }
.btn:hover { text-decoration:none; transform:translateY(-2px); }
.btn--primary { background:var(--olive); color:#12140f; }
.btn--primary:hover { background:var(--olive-br); }
.btn--ghost { border-color:rgba(255,255,255,.4); color:#fff; }
.btn--ghost:hover { background:rgba(255,255,255,.1); border-color:#fff; }
.btn--dark { background:var(--ink); color:#fff; }
.btn--dark:hover { background:var(--panel-2); }
.btn--outline { border-color:var(--olive-dk); color:var(--olive-dk); }
.btn--outline:hover { background:var(--olive); border-color:var(--olive); color:#12140f; }

/* header */
.site-header { position:sticky; top:0; z-index:50; background:rgba(13,15,14,.94);
  backdrop-filter:saturate(140%) blur(8px); border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; height:74px; }
.brand img { height:40px; width:auto; }
.nav-links { display:flex; align-items:center; gap:2px; list-style:none; margin:0; padding:0; }
.nav-links > li > a { color:#cdd3c2; font-weight:500; font-size:.9rem; padding:.55em .8em;
  border-radius:5px; text-transform:uppercase; letter-spacing:.03em; }
.nav-links > li > a { position:relative; }
.nav-links > li > a:hover { color:#fff; background:rgba(255,255,255,.07); text-decoration:none; }
.nav-links > li > a.active { color:#fff; }
.nav-links > li > a.active::after { content:""; position:absolute; left:.8em; right:.8em; bottom:.25em;
  height:2px; background:var(--olive); }
.nav-cta { margin-left:8px; }
.nav-toggle, .nav-toggle-label { display:none; }

/* hero */
.hero { position:relative; color:#fff; overflow:hidden; background:var(--ink); }
.hero__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.5; }
.hero__scrim { position:absolute; inset:0;
  background:linear-gradient(100deg, rgba(9,11,9,.94) 0%, rgba(9,11,9,.7) 45%, rgba(9,11,9,.35) 100%); }
.hero__inner { position:relative; padding:130px 0 132px; max-width:760px; }
.hero h1 { font-size:clamp(2.3rem,5.4vw,4rem); font-weight:800; letter-spacing:-.01em; text-transform:uppercase; margin-bottom:.5em; }
.hero h1 .accent { color:var(--olive-br); }
.hero p { font-size:1.2rem; color:#cfd4c6; max-width:56ch; margin-bottom:2rem; }
.hero__actions { display:flex; gap:14px; flex-wrap:wrap; }

/* stat / trust strip */
.trust { background:var(--panel); color:#fff; display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); }
.trust__item { padding:26px 20px; text-align:center; border-left:1px solid var(--line); }
.trust__item:first-child { border-left:none; }
.trust__item strong { display:block; font-size:1.05rem; color:#fff; }
.trust__item span { color:var(--olive-br); font-size:.78rem; text-transform:uppercase; letter-spacing:.13em; }

/* grids */
.grid { display:grid; gap:24px; }
.grid--3 { grid-template-columns:repeat(3,1fr); }
.grid--2 { grid-template-columns:repeat(2,1fr); }
.grid--4 { grid-template-columns:repeat(4,1fr); }

/* product / capability cards */
.card { background:var(--bg); border:1px solid var(--line-lt); border-radius:var(--radius);
  padding:28px; box-shadow:var(--shadow); transition:transform .18s ease, box-shadow .18s ease;
  display:flex; flex-direction:column; }
.card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
/* image-topped card */
.card--photo { padding:0; overflow:hidden; }
.card--photo .card__thumb { display:block; aspect-ratio:16/10; overflow:hidden; }
.card--photo .card__thumb img { width:100%; height:100%; transition:transform .35s ease; }
.card--photo:hover .card__thumb img { transform:scale(1.05); }
.card--photo .card__pad { padding:24px 26px 26px; display:flex; flex-direction:column; flex:1; }

/* transparent-PNG cutouts: light panel + shadow that follows the silhouette */
.card__thumb--cutout { background:linear-gradient(158deg,#fbfbf8 0%,#eef0e9 55%,#e2e6db 100%); }
.card__thumb--cutout img { object-fit:contain; padding:22px;
  filter:drop-shadow(0 16px 16px rgba(24,28,22,.30)) drop-shadow(0 3px 4px rgba(24,28,22,.18)); }
.card--photo:hover .card__thumb--cutout img { transform:scale(1.06) translateY(-2px); }

/* real photographs keep an edge-to-edge cover crop */
.card__thumb--photo { background:#0a0c0a; }
.card__thumb--photo img { object-fit:cover; }

/* product feature panel (Air page) */
.prod__img--cutout { background:linear-gradient(158deg,#fbfbf8 0%,#eef0e9 55%,#e2e6db 100%); }
.prod__img--cutout img { filter:drop-shadow(0 18px 20px rgba(24,28,22,.32)) drop-shadow(0 4px 5px rgba(24,28,22,.20));
  transition:transform .35s ease; }
.prod:hover .prod__img--cutout img { transform:translateY(-4px) scale(1.03); }
.card h3 { margin-bottom:.35em; }
.card p { color:var(--muted); margin:0; font-size:.97rem; }
.card__tag { font-size:.72rem; font-weight:700; color:var(--olive-dk); letter-spacing:.14em;
  text-transform:uppercase; display:block; margin-bottom:.7rem; }
.card--dark { background:var(--panel); border-color:var(--line); }
.card--dark h3 { color:#fff; } .card--dark p { color:var(--muted); }
.card--link { text-decoration:none; color:inherit; }
.card--link:hover { text-decoration:none; }
.card__more { margin-top:auto; padding-top:14px; color:var(--olive-dk); font-weight:600;
  font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; }

/* product feature card with image */
.prod { background:var(--panel); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; }
.prod__img { background:#0a0c0a; aspect-ratio:16/10; display:flex; align-items:center; justify-content:center; padding:22px; }
.prod__img img { max-height:100%; width:auto; object-fit:contain; }
.prod__body { padding:24px 26px 28px; }
.prod__body h3 { color:#fff; margin-bottom:.3em; }
.prod__body p { color:var(--muted); font-size:.96rem; }
.prod__body .btn { margin-top:6px; }

/* awards / medals band */
.awards { background:linear-gradient(180deg,#ffffff 0%,#f4f5f1 100%); }
.awards__medals { max-width:860px; width:100%; margin:34px auto 0; height:auto;
  filter:drop-shadow(0 12px 18px rgba(24,28,22,.18)); }

/* video reel */
.reel { margin-top:40px; border-radius:var(--radius); overflow:hidden; background:#000;
  box-shadow:var(--shadow-lg); border:1px solid var(--line); }
.reel video { width:100%; height:auto; display:block; aspect-ratio:16/9; background:#000; }

/* split feature */
.split { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.split img { border-radius:var(--radius); box-shadow:var(--shadow-lg); width:100%; height:100%; object-fit:cover; max-height:480px; }
.split ul { padding-left:0; list-style:none; margin:1.1rem 0 0; }
.split li { padding:.4em 0 .4em 1.7em; position:relative; }
.split li::before { content:""; position:absolute; left:0; top:.85em; width:11px; height:11px;
  background:var(--olive); clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%); }

/* chips / expertise */
.chip-grid { display:flex; flex-wrap:wrap; gap:10px; margin-top:8px; }
.chip { border:1px solid var(--line-lt); border-radius:4px; padding:.55em 1em; font-weight:600;
  font-size:.9rem; color:var(--text); background:#fff; }
.section--dark .chip { background:var(--panel); border-color:var(--line); color:var(--sand); }
.chip::before { content:""; display:inline-block; width:6px; height:6px; background:var(--olive);
  margin-right:.55em; vertical-align:middle; transform:rotate(45deg); }

/* chips with a thumbnail: CSS-only hover/focus popup */
.chip--pop { position:relative; cursor:help; outline:none; }
.chip--pop:hover, .chip--pop:focus-visible { border-color:var(--olive); background:#fff; }
.chip--pop:focus-visible { box-shadow:0 0 0 3px rgba(134,154,86,.35); }
.chip__pop {
  position:absolute; bottom:calc(100% + 12px); left:50%; transform:translateX(-50%) translateY(6px) scale(.96);
  width:220px; padding:10px; background:#fff; border:1px solid var(--line-lt); border-radius:10px;
  box-shadow:0 18px 40px rgba(16,20,14,.26); opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .18s ease, transform .18s ease, visibility .18s; z-index:30;
}
.chip__pop img { width:100%; height:124px; object-fit:contain;
  background:linear-gradient(158deg,#fbfbf8,#eef0e9); border-radius:6px; padding:8px;
  filter:drop-shadow(0 8px 8px rgba(24,28,22,.26)); }
.chip__pop--photo img { object-fit:cover; background:#0a0c0a; padding:0; filter:none; }
.chip__cap { display:block; margin-top:8px; font-size:.76rem; font-weight:600; letter-spacing:.02em;
  color:var(--muted); text-align:center; text-transform:none; }
/* little arrow */
.chip__pop::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%);
  border:7px solid transparent; border-top-color:#fff; filter:drop-shadow(0 2px 1px rgba(16,20,14,.12)); }
.chip--pop:hover .chip__pop, .chip--pop:focus-visible .chip__pop, .chip--pop:focus-within .chip__pop {
  opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) scale(1);
}
@media (hover:none) { .chip__pop { display:none; } }

/* band */
.band { background:linear-gradient(120deg,var(--ink),var(--panel-2)); color:#fff; border-radius:12px;
  padding:56px; position:relative; overflow:hidden; border:1px solid var(--line); }
.band .eyebrow { color:var(--olive-br); }
.band h2 { color:#fff; } .band p { color:#c9cdbe; max-width:62ch; }

/* CTA */
.cta-band { background:
  linear-gradient(rgba(13,15,14,.88),rgba(13,15,14,.93)), url("../img/hero.jpg") center/cover;
  color:#fff; text-align:center; }
.cta-band h2 { color:#fff; } .cta-band p { color:#c2c7b8; }

/* prose */
.prose h4 { margin-top:1.4em; color:var(--olive-dk); font-size:1.05rem; }
.prose ul { padding-left:1.2em; } .prose li { margin-bottom:.4em; }

/* jobs accordion (CSS-only <details>) */
.job { background:#fff; border:1px solid var(--line-lt); border-radius:8px; margin-bottom:12px;
  overflow:hidden; transition:box-shadow .2s ease, border-color .2s ease; }
.job:hover { border-color:var(--olive); box-shadow:var(--shadow); }
.job[open] { border-color:var(--olive); box-shadow:var(--shadow); }
.job__head { display:flex; justify-content:space-between; align-items:center; gap:20px;
  padding:22px 26px; cursor:pointer; list-style:none; }
.job__head::-webkit-details-marker { display:none; }
.job__title { display:flex; flex-direction:column; gap:2px; }
.job h3 { margin:0; font-size:1.1rem; }
.job .meta { color:var(--muted); font-size:.88rem; }
.job__toggle { flex:none; width:26px; height:26px; border:2px solid var(--olive-dk); border-radius:50%;
  position:relative; transition:transform .25s ease, background .2s ease; }
.job__toggle::before, .job__toggle::after { content:""; position:absolute; background:var(--olive-dk);
  left:50%; top:50%; transform:translate(-50%,-50%); }
.job__toggle::before { width:10px; height:2px; }
.job__toggle::after  { width:2px; height:10px; transition:opacity .2s ease; }
.job[open] .job__toggle { transform:rotate(180deg); background:rgba(134,154,86,.14); }
.job[open] .job__toggle::after { opacity:0; }
.job__body { padding:4px 26px 26px; border-top:1px solid var(--line-lt); margin-top:-2px; }
.job__body h4 { color:var(--olive-dk); font-size:1rem; margin-top:1.4em; }
.job__body ul { padding-left:1.2em; } .job__body li { margin-bottom:.35em; }
.job__body p { color:var(--slate,#39413a); }
.job__body .btn { margin-top:18px; }

/* contact cards */
.office { background:#fff; border:1px solid var(--line-lt); border-radius:var(--radius); padding:28px; }
.office h4 { color:var(--olive-dk); letter-spacing:.06em; }
.office .row { margin:.3em 0; color:var(--text); }
.office .lbl { color:var(--muted); font-size:.82rem; }

/* page hero */
.page-hero { position:relative; background:var(--ink); color:#fff; padding:120px 0 56px; overflow:hidden; }
.page-hero__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.28; }
.page-hero__scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(9,11,9,.85),rgba(9,11,9,.7)); }
.page-hero .wrap { position:relative; }
.page-hero h1 { font-size:clamp(2rem,4.6vw,3.1rem); text-transform:uppercase; }
.page-hero p { color:#c9cdbe; max-width:64ch; font-size:1.1rem; margin:0; }
.breadcrumb { font-size:.82rem; color:#8a917c; margin-bottom:1rem; text-transform:uppercase; letter-spacing:.08em; }
.breadcrumb a { color:#8a917c; }

/* footer */
.site-footer { background:#0a0c0a; color:#9aa189; padding:64px 0 28px; font-size:.94rem; border-top:2px solid var(--olive-dk); }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:36px; }
.site-footer h4 { color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:.13em; margin-bottom:1.1em; }
.site-footer a { color:#9aa189; } .site-footer a:hover { color:#fff; }
.footer-logo { height:38px; margin-bottom:16px; }
.footer-list { list-style:none; padding:0; margin:0; }
.footer-list li { margin-bottom:.55em; }
.footer-bottom { border-top:1px solid var(--line); margin-top:42px; padding-top:22px;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; color:#6d7361; font-size:.83rem; }

/* responsive */
@media (max-width:940px){
  .grid--3,.grid--4 { grid-template-columns:repeat(2,1fr); }
  .split { grid-template-columns:1fr; gap:32px; }
  .trust { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .band { padding:40px 28px; }
  .nav-toggle-label { display:flex; flex-direction:column; gap:5px; cursor:pointer; padding:8px; }
  .nav-toggle-label span { width:26px; height:3px; background:#fff; border-radius:2px; }
  .nav-links { position:absolute; top:74px; left:0; right:0; flex-direction:column; align-items:stretch;
    gap:0; background:var(--ink); border-bottom:1px solid var(--line); max-height:0; overflow:hidden;
    transition:max-height .3s ease; box-shadow:var(--shadow-lg); }
  .nav-links > li > a { padding:1em 24px; border-top:1px solid var(--line); border-radius:0; }
  .nav-cta { margin:12px 24px 18px; }
  .nav-toggle:checked ~ .nav-links { max-height:640px; }
}
@media (max-width:560px){
  .grid--3,.grid--4,.grid--2 { grid-template-columns:1fr; }
  .trust { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .section { padding:58px 0; } .hero__inner { padding:90px 0 92px; }
  .job { flex-direction:column; align-items:flex-start; gap:10px; }
}
