/* Genmast Defence homepage layer — retains the original Genmast typography and dark visual system. */
:root{--gd-cyan:#58d6c3;--gd-bg:#050b12;--gd-panel:#0a121c;--gd-border:rgba(255,255,255,.08);--gd-muted:#8fa1b5}
html{scroll-behavior:smooth}.brand-txt{display:inline-flex;align-items:baseline;text-transform:uppercase!important;color:#eff7fb!important;white-space:nowrap;gap:.32em}.brand-genmast{display:inline-block;font-family:'Audiowide',sans-serif!important;letter-spacing:.045rem!important;font-weight:400!important}.brand-defence{display:inline-block;margin-left:0;font-family:'Inter',Arial,sans-serif!important;letter-spacing:.02em!important;font-weight:300!important}.defence-home{overflow:hidden;background:var(--gd-bg)}.defence-home .section{position:relative}.defence-display{font-family:'Space Grotesk',sans-serif;font-size:clamp(3.2rem,7vw,7.4rem);line-height:.92;letter-spacing:-.055em;font-weight:600;color:#eff7fb;max-width:920px}.defence-display span{color:var(--gd-cyan)}.hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(88,214,195,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(88,214,195,.045) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,black,transparent 92%)}.defence-hero{min-height:820px;display:flex;align-items:center;padding:150px 0 100px;background:radial-gradient(circle at 70% 45%,rgba(88,214,195,.08),transparent 32%),radial-gradient(circle at 15% 15%,rgba(49,94,140,.12),transparent 30%)}.defence-hero-shell{display:grid;grid-template-columns:1.18fr .82fr;gap:70px;align-items:center}.hero-copy{position:relative;z-index:2}.hero-copy .hero-text{max-width:720px;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.75;margin-top:28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero-signal-row{display:flex;gap:22px;flex-wrap:wrap;margin-top:42px;font:700 10px 'JetBrains Mono',monospace;letter-spacing:.12em;color:#6f8499}.hero-signal-row i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gd-cyan);box-shadow:0 0 12px rgba(88,214,195,.7);margin-right:7px}.hero-visual{height:500px;position:relative;border:1px solid var(--gd-border);border-radius:30px;background:radial-gradient(circle at center,rgba(88,214,195,.12),rgba(4,10,16,.9) 55%);box-shadow:inset 0 0 80px rgba(88,214,195,.04),0 30px 90px rgba(0,0,0,.25)}.radar-orbit{position:absolute;border:1px solid rgba(88,214,195,.18);border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-one{width:68%;aspect-ratio:1}.orbit-two{width:42%;aspect-ratio:1;border-color:rgba(88,214,195,.3)}.radar-core{position:absolute;width:72px;height:72px;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid var(--gd-cyan);border-radius:50%;box-shadow:0 0 40px rgba(88,214,195,.18)}.radar-core:after{content:'';position:absolute;inset:13px;border-radius:50%;background:var(--gd-cyan);box-shadow:0 0 28px rgba(88,214,195,.65)}.radar-line{position:absolute;left:50%;top:50%;height:1px;width:48%;transform-origin:left;background:linear-gradient(90deg,rgba(88,214,195,.8),transparent)}.radar-line-a{transform:rotate(25deg)}.radar-line-b{transform:rotate(205deg)}.radar-node{position:absolute;padding:8px 11px;border:1px solid rgba(88,214,195,.22);background:rgba(5,12,19,.86);border-radius:10px;color:#bfece5;font:700 10px 'JetBrains Mono',monospace;letter-spacing:.12em}.node-a{top:21%;right:15%}.node-b{top:47%;right:6%}.node-c{bottom:17%;left:12%}.node-d{top:28%;left:8%}.visual-readout{position:absolute;left:25px;bottom:24px;display:grid;gap:4px;font-family:'JetBrains Mono',monospace}.visual-readout span,.visual-readout small{font-size:9px;color:#6f8499;letter-spacing:.13em}.visual-readout strong{font-size:18px;color:var(--gd-cyan);letter-spacing:.08em}.domain-strip{padding-top:90px}.section-intro{margin-bottom:42px}.section-intro h2{font-size:clamp(2rem,4.3vw,4.5rem);line-height:1.02;letter-spacing:-.045em;font-weight:600}.section-intro p{max-width:650px;line-height:1.75}.split{display:grid;grid-template-columns:1fr .75fr;gap:80px;align-items:end}.domain-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--gd-border);border-left:1px solid var(--gd-border)}.domain-card{min-height:185px;padding:25px;border-right:1px solid var(--gd-border);border-bottom:1px solid var(--gd-border);position:relative;transition:.25s;background:linear-gradient(145deg,rgba(255,255,255,.015),transparent)}.domain-card:hover{background:rgba(88,214,195,.05);transform:translateY(-2px)}.domain-card span{font:700 10px 'JetBrains Mono',monospace;color:#617489}.domain-card strong{display:block;font-size:27px;margin-top:42px;color:#eff7fb}.domain-card small{display:block;margin-top:6px;color:#8295aa;font:500 11px 'JetBrains Mono',monospace;letter-spacing:.03em}.domain-card b{position:absolute;right:22px;bottom:20px;color:var(--gd-cyan);font-size:18px}.capabilities-section{padding-top:120px}.capability-matrix{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.capability-card{padding:27px 24px 25px;border:1px solid var(--gd-border);border-radius:20px;background:linear-gradient(150deg,rgba(255,255,255,.025),rgba(255,255,255,.005));min-height:360px;position:relative;transition:.25s}.capability-card:hover{border-color:rgba(88,214,195,.28);transform:translateY(-4px)}.capability-card.featured{background:linear-gradient(150deg,rgba(88,214,195,.09),rgba(255,255,255,.01))}.card-index{font:700 10px 'JetBrains Mono',monospace;color:#617489}.cap-icon{font-size:28px;color:var(--gd-cyan);margin-top:26px}.capability-card h3{font-size:22px;color:#eff7fb;margin-top:15px}.capability-card p{font-size:13px;line-height:1.6;margin-top:10px}.capability-card ul{margin-top:18px;display:grid;gap:7px}.capability-card li{font:500 10px 'JetBrains Mono',monospace;color:#93a7ba;text-transform:uppercase;letter-spacing:.05em}.capability-card li:before{content:'— ';color:var(--gd-cyan)}.domain-feature{padding-top:130px}.dark-band{background:linear-gradient(180deg,transparent,rgba(12,24,35,.52),transparent);border-top:1px solid rgba(255,255,255,.035);border-bottom:1px solid rgba(255,255,255,.035)}.feature-shell{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}.feature-shell.reverse .feature-copy{order:2}.feature-shell.reverse .feature-visual{order:1}.feature-copy h2{font-size:clamp(2.3rem,4.7vw,5rem);line-height:1;letter-spacing:-.05em;font-weight:600}.feature-copy>p{font-size:16px;line-height:1.8;max-width:650px;margin-top:24px}.feature-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:28px}.feature-list span,.ew-pills span{border:1px solid rgba(88,214,195,.18);background:rgba(88,214,195,.045);border-radius:999px;padding:9px 11px;color:#9fc8c3;font:700 9px 'JetBrains Mono',monospace;letter-spacing:.08em}.feature-visual{height:450px;border:1px solid var(--gd-border);border-radius:28px;position:relative;overflow:hidden;background:#050b12}.scan-grid,.terrain{position:absolute;inset:0;background-image:linear-gradient(rgba(88,214,195,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(88,214,195,.07) 1px,transparent 1px);background-size:36px 36px;transform:perspective(450px) rotateX(55deg) scale(1.4);transform-origin:center bottom}.air-schematic{position:absolute;left:50%;top:50%;width:210px;height:210px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 18px rgba(88,214,195,.18))}.fuselage{position:absolute;left:46%;top:15%;width:9%;height:70%;border:1px solid var(--gd-cyan);border-radius:50%;transform:rotate(90deg)}.wing{position:absolute;top:42%;width:48%;height:18%;border:1px solid var(--gd-cyan);clip-path:polygon(0 50%,100% 0,85% 100%);opacity:.85}.wing-left{left:-2%;transform:rotate(-4deg)}.wing-right{right:-2%;transform:scaleX(-1) rotate(-4deg)}.sensor-dot{position:absolute;width:9px;height:9px;background:var(--gd-cyan);border-radius:50%;left:48%;top:8%;box-shadow:0 0 22px var(--gd-cyan)}.feature-tag{position:absolute;top:18px;left:18px;color:#7f95a9;font:700 9px 'JetBrains Mono',monospace;letter-spacing:.16em}.defence-rings{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:260px;height:260px;border-radius:50%;display:grid;place-items:center}.defence-rings span{position:absolute;border:1px solid rgba(88,214,195,.2);border-radius:50%;width:100%;height:100%}.defence-rings span:nth-child(2){width:72%;height:72%}.defence-rings span:nth-child(3){width:40%;height:40%;border-color:rgba(88,214,195,.45)}.defence-rings em{width:12px;height:12px;border-radius:50%;background:var(--gd-cyan);box-shadow:0 0 35px rgba(88,214,195,.8)}.threat{position:absolute;border:1px solid rgba(255,255,255,.13);background:rgba(5,11,18,.9);padding:8px 10px;border-radius:8px;font:700 9px 'JetBrains Mono',monospace;color:#9bb0c3}.threat-one{top:21%;right:17%}.threat-two{bottom:22%;right:12%}.threat-three{top:35%;left:13%}.ugv-shape{position:absolute;left:50%;top:55%;width:250px;height:115px;transform:translate(-50%,-50%);border:1px solid var(--gd-cyan);border-radius:26px 32px 16px 16px;box-shadow:0 0 50px rgba(88,214,195,.08)}.ugv-shape:before{content:'';position:absolute;left:30%;top:-42px;width:90px;height:50px;border:1px solid var(--gd-cyan);border-bottom:0;border-radius:45px 45px 0 0}.ugv-shape span{position:absolute;width:42px;height:42px;border:1px solid var(--gd-cyan);border-radius:50%;bottom:-22px;background:#050b12}.ugv-shape span:nth-child(1){left:20px}.ugv-shape span:nth-child(2){right:20px}.ugv-shape span:nth-child(3){left:50%;top:-58px;width:7px;height:7px;border:0;background:var(--gd-cyan);box-shadow:0 0 20px var(--gd-cyan)}.naval-visual{background:linear-gradient(180deg,#06101a,#07141d)}.wave-field{position:absolute;inset:0;overflow:hidden}.wave-field i{position:absolute;left:-10%;width:120%;height:80px;border-top:1px solid rgba(88,214,195,.13);border-radius:50%}.wave-field i:nth-child(1){top:35%}.wave-field i:nth-child(2){top:47%}.wave-field i:nth-child(3){top:59%}.wave-field i:nth-child(4){top:71%}.usv-shape{position:absolute;left:50%;top:50%;width:240px;height:75px;transform:translate(-50%,-50%);background:linear-gradient(180deg,rgba(88,214,195,.12),transparent);border:1px solid var(--gd-cyan);clip-path:polygon(5% 25%,90% 25%,100% 65%,78% 90%,18% 90%,0 55%)}.usv-shape span{position:absolute;left:40%;top:-32px;width:60px;height:34px;border:1px solid var(--gd-cyan);border-bottom:0}.usv-shape b{position:absolute;right:25%;top:-43px;width:6px;height:8px;background:var(--gd-cyan);box-shadow:0 0 18px var(--gd-cyan)}.process-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:34px;font:700 10px 'JetBrains Mono',monospace;color:#b5c8d9;letter-spacing:.1em}.process-line i{color:var(--gd-cyan);font-style:normal}.tech-section{padding-top:120px}.tech-stack{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--gd-border);border-left:1px solid var(--gd-border)}.tech-stack>div{padding:30px;border-right:1px solid var(--gd-border);border-bottom:1px solid var(--gd-border);min-height:190px}.tech-stack span{font:700 10px 'JetBrains Mono',monospace;color:var(--gd-cyan)}.tech-stack strong{display:block;color:#eff7fb;font-size:20px;margin-top:28px}.tech-stack p{font-size:13px;line-height:1.6;margin-top:9px}.ew-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.ew-layout h2{font-size:clamp(2.3rem,4.5vw,4.5rem);line-height:1;letter-spacing:-.05em;font-weight:600}.ew-copy p{font-size:16px;line-height:1.8}.ew-pills{display:flex;gap:8px;flex-wrap:wrap;margin-top:25px}.ecosystem-section{padding-top:130px}.ecosystem-card{display:grid;grid-template-columns:1fr .85fr;gap:70px;padding:55px;border:1px solid rgba(88,214,195,.16);border-radius:30px;background:radial-gradient(circle at 90% 40%,rgba(88,214,195,.09),transparent 40%),rgba(255,255,255,.015)}.ecosystem-copy h2{font-size:clamp(2.2rem,4.4vw,4.5rem);line-height:1;letter-spacing:-.05em;font-weight:600}.ecosystem-copy p{line-height:1.8;max-width:650px;margin-top:22px}.ecosystem-points{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}.ecosystem-points span{padding:10px 12px;border:1px solid var(--gd-border);border-radius:9px;font:700 9px 'JetBrains Mono',monospace;color:#9aabbb}.ecosystem-points b{color:var(--gd-cyan);margin-right:5px}.ecosystem-map{height:300px;position:relative;border:1px solid var(--gd-border);border-radius:20px;overflow:hidden;background:#050b12}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(88,214,195,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(88,214,195,.06) 1px,transparent 1px);background-size:28px 28px}.map-node{position:absolute;border:1px solid rgba(88,214,195,.4);background:#08131c;border-radius:50%;width:70px;height:70px;display:grid;place-items:center;text-align:center;font:700 10px 'JetBrains Mono',monospace;color:#bce8e2;z-index:2}.map-node.us{left:13%;top:22%}.map-node.il{right:15%;top:22%}.map-node.gm{left:50%;top:61%;transform:translate(-50%,-50%);width:105px;height:105px;border-color:var(--gd-cyan);box-shadow:0 0 35px rgba(88,214,195,.12)}.map-line{position:absolute;height:1px;background:linear-gradient(90deg,rgba(88,214,195,.1),rgba(88,214,195,.65),rgba(88,214,195,.1));transform-origin:left}.l1{left:29%;top:43%;width:43%;transform:rotate(24deg)}.l2{right:28%;top:43%;width:43%;transform:rotate(156deg)}.why-section{padding-top:130px}.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.why-grid article{border-top:1px solid var(--gd-border);padding:25px 8px 0}.why-grid span{font:700 10px 'JetBrains Mono',monospace;color:var(--gd-cyan)}.why-grid h3{font-size:20px;color:#eff7fb;margin-top:30px}.why-grid p{font-size:13px;line-height:1.7;margin-top:10px}.engagement-section{padding:130px 0 100px}.engagement-panel{text-align:center;border:1px solid rgba(88,214,195,.2);border-radius:30px;padding:80px 40px;background:radial-gradient(circle at center,rgba(88,214,195,.08),transparent 55%)}.engagement-panel h2{font-size:clamp(3rem,6vw,6rem);line-height:.95;letter-spacing:-.055em;font-weight:600}.engagement-panel>p{max-width:720px;margin:22px auto;line-height:1.8}.engage-steps{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:30px auto 35px}.engage-steps span{border:1px solid var(--gd-border);border-radius:999px;padding:10px 13px;font:700 9px 'JetBrains Mono',monospace;color:#9eb0c1}.engage-steps b{color:var(--gd-cyan);margin-right:6px}.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}.reveal.visible{opacity:1;transform:translateY(0)}
@media(max-width:1000px){.defence-hero-shell,.feature-shell,.split,.ew-layout,.ecosystem-card{grid-template-columns:1fr;gap:50px}.hero-visual{max-width:620px;width:100%;margin:auto}.capability-matrix{grid-template-columns:repeat(2,1fr)}.tech-stack{grid-template-columns:repeat(2,1fr)}.why-grid{grid-template-columns:repeat(2,1fr)}.feature-shell.reverse .feature-copy,.feature-shell.reverse .feature-visual{order:initial}}
@media(max-width:640px){.defence-hero{min-height:auto;padding:120px 0 75px}.defence-display{font-size:clamp(3rem,16vw,5rem)}.hero-visual{height:360px}.domain-grid,.capability-matrix,.tech-stack,.why-grid{grid-template-columns:1fr}.domain-card{min-height:150px}.domain-card strong{margin-top:30px}.feature-visual{height:330px}.feature-copy h2,.section-intro h2{font-size:2.55rem}.ecosystem-card{padding:28px}.engagement-panel{padding:55px 22px}.hero-signal-row{gap:12px;line-height:1.4}.process-line{gap:7px}}

/* Approved Defence SVG graphics: native aspect-ratio containers.
   The artwork itself supplies the frame/background; wrappers must not add a second canvas. */
.hero-visual,
.feature-visual,
.ecosystem-map {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow: hidden;
  position: relative;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.hero-visual > .hero-graphic,
.feature-visual > .feature-graphic,
.ecosystem-map > .ecosystem-graphic {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  object-fit: contain;
  object-position: center;
}
.feature-shell > *,
.defence-hero-shell > *,
.ecosystem-card > * { min-width: 0; }
.hero-graphic { aspect-ratio: 1295 / 1140; }
.aerial-visual .feature-graphic { aspect-ratio: 840 / 670; }
.defence-visual .feature-graphic { aspect-ratio: 1580 / 842; }
.land-visual .feature-graphic { aspect-ratio: 858 / 743; }
.naval-visual .feature-graphic { aspect-ratio: 885 / 660; }
.ecosystem-graphic { aspect-ratio: 1025 / 875; }
@media (max-width: 1000px) {
  .hero-visual, .feature-visual, .ecosystem-map { width: 100%; }
  .hero-graphic, .feature-graphic, .ecosystem-graphic { width: 100%; }
}
@media (max-width: 640px) {
  .hero-visual, .feature-visual, .ecosystem-map { height: auto !important; }
}

/* FINAL APPROVED SVG CONTAINER FIX */
/* Each supplied SVG is a complete graphic composition. The website wrapper must
   follow the SVG's intrinsic dimensions instead of imposing a fixed canvas. */
.hero-visual,
.feature-visual,
.ecosystem-map {
  position: relative;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow: hidden;
  box-sizing: border-box;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.hero-graphic,
.feature-graphic,
.ecosystem-graphic {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain;
  object-position: center;
}
.hero-visual { aspect-ratio: 1295 / 1140 !important; }
.aerial-visual { aspect-ratio: 840 / 670 !important; }
.defence-visual { aspect-ratio: 1580 / 842 !important; }
.land-visual { aspect-ratio: 858 / 743 !important; }
.naval-visual { aspect-ratio: 885 / 660 !important; }
.ecosystem-map { aspect-ratio: 1025 / 875 !important; }
.feature-shell > *,
.defence-hero-shell > *,
.ecosystem-card > * { min-width: 0; }
.hero-visual img,
.feature-visual img,
.ecosystem-map img { vertical-align: top; }
@media (max-width: 1000px) {
  .hero-visual,
  .feature-visual,
  .ecosystem-map { width: 100%; max-width: 100%; }
}
@media (max-width: 640px) {
  .hero-visual,
  .feature-visual,
  .ecosystem-map { height: auto !important; }
}

/* --------------------------------------------------------------------------
   Genmast Defence layout refinement
   Purpose: improve content alignment and responsive behavior without changing
   the approved visual system, typography, colours or supplied SVG artwork.
   -------------------------------------------------------------------------- */

html { scroll-padding-top: 88px; }
body { overflow-x: clip; }
.defence-home { overflow-x: clip; }
.defence-home .section[id] { scroll-margin-top: 92px; }

/* Keep the content column rhythm consistent across the full page. */
.defence-hero-shell {
  grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr);
  gap: clamp(42px, 5vw, 72px);
}
.hero-copy { min-width: 0; max-width: 760px; }
.hero-copy .hero-text { max-width: 670px; }
.hero-visual { align-self: center; justify-self: stretch; min-width: 0; }

.section-intro { max-width: 860px; }
.section-intro.split {
  grid-template-columns: minmax(0, 1fr) minmax(280px, 420px);
  gap: clamp(32px, 5vw, 72px);
}
.section-intro h2,
.feature-copy h2,
.ew-layout h2,
.ecosystem-copy h2 { text-wrap: balance; }

.feature-shell {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(36px, 5.5vw, 86px);
}
.feature-shell > * { min-width: 0; }
.feature-copy { max-width: 620px; }
.feature-shell:not(.reverse) .feature-copy { justify-self: start; }
.feature-shell.reverse .feature-copy { justify-self: end; }
.feature-visual { justify-self: stretch; }
.feature-shell.reverse .feature-visual { justify-self: stretch; }

.ecosystem-card {
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: clamp(36px, 5vw, 72px);
  align-items: center;
}
.ecosystem-copy { min-width: 0; }
.ecosystem-map { min-width: 0; align-self: center; }

/* The supplied SVGs are complete compositions; let their intrinsic ratio drive
   the desktop height and remove the older fixed-canvas behavior. */
.hero-visual,
.feature-visual,
.ecosystem-map {
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: auto !important;
  overflow: hidden;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
}
.hero-graphic,
.feature-graphic,
.ecosystem-graphic {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain;
  object-position: center;
}

/* Mobile header/drawer: preserve the theme but make the controls touch-friendly. */
.mobile-header {
  min-height: 64px;
  padding: 8px 16px !important;
}
.mobile-header .brand { min-width: 0; flex: 1 1 auto; justify-content: center; }
.mobile-header .brand-txt { font-size: 1.05rem !important; }
#mobile-menu-open,
#mobile-menu-close {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
}
#mobile-nav-backdrop {
  position: fixed !important;
  inset: 0 !important;
  width: 100vw !important;
  height: 100dvh !important;
  z-index: 40;
}
#mobile-nav-drawer {
  width: min(88vw, 360px) !important;
  max-width: 360px !important;
  height: 100dvh !important;
  min-height: 100dvh !important;
  border-right: 1px solid rgba(255,255,255,.08);
}
#mobile-nav-drawer nav { padding: 18px 16px 28px !important; }
#mobile-nav-drawer .mobile-nav-link {
  min-height: 50px;
  display: flex !important;
  align-items: center;
  padding: 12px 14px !important;
  border-radius: 12px;
  font-size: .98rem !important;
}
#mobile-nav-drawer .mobile-nav-link:focus-visible,
#mobile-nav-drawer button:focus-visible,
.mobile-header button:focus-visible,
.mobile-header a:focus-visible {
  outline: 2px solid rgba(88,214,195,.75);
  outline-offset: 2px;
}

@media (max-width: 1100px) {
  .defence-hero-shell { grid-template-columns: minmax(0, 1fr) minmax(320px, .75fr); gap: 42px; }
  .feature-shell { gap: 48px; }
  .ecosystem-card { gap: 46px; }
}

@media (max-width: 1023px) {
  /* Tailwind's lg breakpoint switches the header here; keep all page grids
     aligned with that same breakpoint so the transition is clean. */
  .defence-hero-shell,
  .feature-shell,
  .split,
  .ew-layout,
  .ecosystem-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }
  .feature-shell.reverse .feature-copy,
  .feature-shell.reverse .feature-visual { order: initial; }
  .hero-copy,
  .feature-copy { max-width: 760px; }
  .feature-shell.reverse .feature-copy { justify-self: start; }
  .hero-visual { max-width: 760px; width: 100%; margin-inline: auto; }
  .ecosystem-card { padding: 42px; }
  .ecosystem-map { width: min(100%, 760px); margin-inline: auto; }
}

#mobile-nav-drawer .mobile-nav-footer { flex: 0 0 auto; }
#mobile-nav-drawer .mobile-nav-footer .btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; width: 100%; }

@media (max-width: 680px) {
  html { scroll-padding-top: 72px; }
  .defence-home .section[id] { scroll-margin-top: 76px; }

  .mobile-header { gap: 8px !important; }
  .mobile-header > a:last-child {
    min-height: 40px;
    padding-inline: 12px !important;
  }

  .defence-hero {
    min-height: auto;
    padding: 58px 0 58px;
  }
  .defence-display {
    max-width: 10ch;
    font-size: clamp(2.65rem, 12.2vw, 4.25rem);
    line-height: .95;
    letter-spacing: -.05em;
  }
  .hero-copy .eyebrow {
    width: auto;
    max-width: 100%;
    white-space: normal;
    line-height: 1.3;
    min-height: 30px;
    height: auto;
    padding-block: 6px;
  }
  .hero-copy .hero-text { font-size: 1rem; line-height: 1.68; margin-top: 22px; }
  .hero-actions { margin-top: 26px; gap: 10px; }
  .hero-actions .btn { min-height: 48px; justify-content: center; }
  .hero-signal-row { margin-top: 30px; gap: 10px 16px; line-height: 1.4; }
  .hero-signal-row span { max-width: 100%; }

  .section { padding: 68px 0; }
  .domain-strip,
  .capabilities-section,
  .domain-feature,
  .tech-section,
  .ecosystem-section,
  .why-section { padding-top: 56px; }
  .engagement-section { padding: 64px 0 72px; }

  .section-intro,
  .section-intro.split { margin-bottom: 28px; gap: 14px; }
  .section-intro h2,
  .feature-copy h2,
  .ew-layout h2,
  .ecosystem-copy h2 { font-size: clamp(2rem, 9.4vw, 3.05rem); line-height: .99; }
  .section-intro p,
  .feature-copy > p,
  .ew-copy p,
  .ecosystem-copy p { font-size: 15px; line-height: 1.72; }

  .domain-grid,
  .capability-matrix,
  .tech-stack,
  .why-grid { grid-template-columns: 1fr; }
  .domain-card { min-height: 138px; padding: 22px; }
  .domain-card strong { margin-top: 28px; font-size: 24px; }

  .capability-card { min-height: 0; padding: 24px 21px 23px; }
  .capability-card h3 { font-size: 20px; }
  .capability-card ul { margin-top: 16px; }

  .feature-shell { gap: 28px; }
  .feature-copy { max-width: none; }
  .feature-list { margin-top: 22px; gap: 7px; }
  .feature-list span,
  .ew-pills span {
    padding: 8px 10px;
    font-size: 8.5px;
  }
  .process-line { margin-top: 24px; gap: 7px; line-height: 1.6; }

  .hero-visual,
  .feature-visual,
  .ecosystem-map { width: 100%; max-width: 100%; }
  .hero-graphic,
  .feature-graphic,
  .ecosystem-graphic {
    width: 100% !important;
    height: auto !important;
    max-height: 72vw;
    object-fit: contain;
    object-position: center;
    margin-inline: auto !important;
  }
  .hero-graphic { max-height: 86vw; }

  .ecosystem-card { padding: 28px 22px; border-radius: 24px; }
  .ecosystem-points { gap: 7px; margin-top: 24px; }
  .ecosystem-points span { padding: 9px 10px; }

  .why-grid { gap: 20px; }
  .why-grid article { padding-top: 20px; }
  .why-grid h3 { margin-top: 22px; font-size: 19px; }

  .engagement-panel { padding: 48px 20px; border-radius: 24px; }
  .engagement-panel h2 { font-size: clamp(2.65rem, 13vw, 4rem); }
  .engagement-panel > p { margin: 18px auto; line-height: 1.72; }
  .engage-steps { justify-content: flex-start; margin: 24px auto 28px; }

  #mobile-nav-drawer .brand-txt { font-size: 1.05rem !important; }
}

@media (max-width: 380px) {
  .mobile-header .brand-txt { font-size: .96rem !important; }
  .mobile-header > a:last-child { padding-inline: 10px !important; font-size: .72rem !important; }
  .defence-display { font-size: clamp(2.5rem, 11.8vw, 3.7rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .domain-card:hover,
  .capability-card:hover { transform: none; }
}
/* Mobile section-intro stacking fix: keep heading and supporting copy in
   separate vertical blocks on compact screens so long display headings cannot
   visually overlap the paragraph. */
@media (max-width: 1100px) {
  .section-intro.split {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 22px !important;
  }
  .section-intro.split > div,
  .section-intro.split > p {
    min-width: 0;
    width: 100%;
  }
  .section-intro.split > div {
    margin: 0;
  }
  .section-intro.split h2 {
    margin: 0;
    max-width: 100%;
  }
  .section-intro.split > p {
    margin: 0;
    max-width: 720px;
  }
}
@media (max-width: 680px) {
  .section-intro.split {
    gap: 24px !important;
    margin-bottom: 30px !important;
  }
  .section-intro.split > p {
    font-size: 15px;
    line-height: 1.72;
  }
}



/* FINAL MOBILE OVERLAP GUARD --------------------------------------------------
   At tablet/mobile widths the intro heading and supporting paragraph must be
   normal-flow blocks. This prevents large display type from ever sharing the
   same grid row/track or visually colliding with the paragraph. */
@media (max-width: 1023px) {
  .section-intro.split {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    overflow: visible !important;
    margin-bottom: 30px !important;
  }

  .section-intro.split > div {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 0 22px !important;
    padding: 0 !important;
  }

  .section-intro.split > div > h2 {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }

  .section-intro.split > p {
    display: block !important;
    position: static !important;
    clear: both !important;
    width: 100% !important;
    max-width: 720px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-self: auto !important;
    align-self: auto !important;
    white-space: normal !important;
    overflow-wrap: normal !important;
  }
}

@media (max-width: 680px) {
  .section-intro.split > div {
    margin-bottom: 18px !important;
  }

  .section-intro.split > p {
    font-size: 15px !important;
    line-height: 1.72 !important;
  }
}

/* FINAL RESPONSIVE TYPOGRAPHY / FLOW GUARD
   Keep every heading + supporting-copy composition in normal document flow on
   tablet/mobile. This is intentionally stronger than the earlier grid rules:
   large display headings must always finish before supporting copy begins. */
@media (max-width: 1100px) {
  .section-intro.split {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-bottom: 34px !important;
  }

  .section-intro.split > div,
  .section-intro.split > p {
    display: block !important;
    position: static !important;
    float: none !important;
    clear: both !important;
    flex: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    transform: none !important;
  }

  .section-intro.split > div {
    margin: 0 0 28px !important;
    padding: 0 !important;
  }

  .section-intro.split > div > .eyebrow {
    display: inline-flex !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 0 18px !important;
  }

  .section-intro.split > div > h2 {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 16ch !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.08 !important;
    letter-spacing: -.045em !important;
    white-space: normal !important;
    overflow: visible !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
  }

  .section-intro.split > p {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.75 !important;
    max-width: 680px !important;
  }

  /* The same protection for the other two-column text compositions. */
  .ew-layout,
  .ecosystem-card,
  .feature-shell {
    min-width: 0;
  }
}

@media (max-width: 680px) {
  .section-intro.split {
    margin-bottom: 30px !important;
  }

  .section-intro.split > div {
    margin-bottom: 24px !important;
  }

  .section-intro.split > div > .eyebrow {
    margin-bottom: 16px !important;
  }

  .section-intro.split > div > h2 {
    max-width: 15ch !important;
    font-size: clamp(2rem, 9.4vw, 3.05rem) !important;
    line-height: 1.08 !important;
  }

  .section-intro.split > p {
    font-size: 15px !important;
    line-height: 1.72 !important;
  }
}

