/* Full-bleed original photography. Last in cascade, including on the homepage. */
:root { --wallpaper: url('/assets/images/generated/is-security-technical-background.webp'); }
main { background: #f1f5f5; }
main > .section:not(.immersive):not(.depth-section):not(.technical-sources) {
  background-image: linear-gradient(105deg,#f5f8f8f7,#f0f5f5eb),var(--wallpaper);
  background-size: cover; background-position: center;
}
main > .section.soft:not(.immersive), main > .handover-strip {
  background-image: linear-gradient(105deg,#e7eef1ed,#edf3f3e8),var(--wallpaper);
}
.cta-band { background-image: linear-gradient(100deg,#122a37f5,#163847d9),var(--wallpaper); background-size:cover; color:#fff; }
.cta-band p { color:#dce8ec; }
.immersive { position:relative; isolation:isolate; color:#fff; background:#0c1d28; }
.immersive > .wallpaper-media { position:absolute; inset:0; z-index:-3; overflow:hidden; pointer-events:none; }
.immersive > .wallpaper-media > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--image-position,65% 50%); }
.immersive::before { content:''; position:absolute; inset:0; z-index:-2; pointer-events:none; opacity:1; background:linear-gradient(90deg,rgba(5,17,26,.95),rgba(5,17,26,.80) 39%,rgba(5,17,26,.20) 78%,rgba(5,17,26,.15)); }
.immersive::after { content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(0deg,#091d2b80,transparent 32%); }
.immersive :is(h1,h2,h3,strong) { color:#fff; }
.immersive :is(p,.lead,.intro-lead,.feature-note,.technical-note,.eyebrow,.intro-capabilities,.capability-list,.check-list) { color:#e0eaf0; }
.immersive .eyebrow { color:#b8dce9; }
.immersive :is(.text-link,.feature-links a,.maritime-links a) { color:#fff; }
.immersive .btn.secondary { background:#102936b3; border-color:#a6b9c3; color:#fff; }
.immersive a:focus-visible { outline:3px solid #fff; outline-offset:5px; }
.ref-hero.background-hero { padding:24px 0 72px; min-height:570px; display:flex; align-items:center; }
.background-hero .ref-hero-grid { display:block; }
.background-hero .ref-hero-copy { max-width:670px; width:58%; }
.background-hero .ref-hero-copy h1 { font-size:clamp(42px,4.6vw,72px); max-width:720px; }
.background-hero .breadcrumbs { color:#d7e7ed; margin-bottom:54px; }
.background-hero .breadcrumbs a { color:inherit; }
.background-hero .lead { max-width:58ch; }
.ref-hero.utility-hero { min-height:370px; }
.hero-explainer { padding-block:30px; }
.hero-diagrams > figure,.hero-diagrams > .resource-panel { max-width:100%; }
.hero-diagrams .technical-heading { margin-block:20px; }
.hero-diagrams .connection-flow { grid-template-columns:repeat(4,minmax(0,1fr)); }
.hero-diagrams .technical-heading strong { max-width:none; }
.hero-diagrams .analytics-panel > svg { max-height:330px; }
.hero-diagrams .vessel-plan > svg { max-height:270px; }
.background-band { min-height:510px; padding-block:85px; }
.background-band .background-copy { display:block; }
.background-copy > div { max-width:610px; width:54%; }
.background-band .check-list li { border-color:#8ea9b666; }
.background-band .check-list li::before { color:#a6e0ed; }
.background-directory { padding:210px 24px 30px; min-height:380px; }
.background-directory::before { background:linear-gradient(0deg,#071924fa,#071924bd 55%,#07192430); }
.background-directory .number { color:#c0e0ec; }
.background-directory h3 { margin-top:20px; }
/* Homepage: one continuous image field per major capability. */
.home-page .home-intro { min-height:670px; border:0; }
.home-page .home-intro .intro-grid { display:grid; grid-template-columns:minmax(0,1fr) 260px; min-height:670px; padding-block:65px; align-items:center; gap:64px; }
.home-page .intro-copy { padding:0; max-width:780px; }
.home-page .intro-copy h1 { font-size:clamp(40px,4.25vw,69px); line-height:1.07; }
.home-page .intro-lead { max-width:580px; font-size:17px; }
.home-page .intro-capabilities { border-color:#b6ccd044; }
.home-page .intro-capabilities span { color:#9acdda; }
.hero-annotation { align-self:end; padding:22px 0 0; border-top:1px solid #bad7e188; }
.hero-annotation > span { font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.hero-annotation strong { display:block; font:500 30px/1.15 var(--heading); margin:14px 0; }
.hero-annotation a { font-size:12px; text-underline-offset:5px; }
.home-page .background-band { padding-block:90px; }
.home-page .background-band .feature-grid { grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:8%; }
.home-page .foundation .feature-grid { grid-template-columns:minmax(0,1fr) minmax(0,.8fr); }
.home-page .foundation .feature-copy { grid-column:1; grid-row:1; }
.home-page .foundation .cabling-visual { grid-column:2; grid-row:1; }
.home-page .background-band .technical-panel { background:#102936e8; border-color:#86a8b766; }
.home-page .background-band .section-head { max-width:1150px; }
.home-page .background-band .feature-copy p { color:#e0eaf0; }
.home-page .background-band .capability-list li { border-color:#8cabb655; }
.home-page .video-feature .feature-copy { grid-column:1; grid-row:1; }
.home-page .video-visual { grid-column:2; grid-row:1; align-self:end; }
.home-page .video-caption { background:#0b2432de; border-color:#a3cbd7; }
.home-page .video-caption span,.home-page .video-caption p { color:#dceaf0; }
.home-page .background-band .deployment-intro { display:block; }
.home-page .background-band .deployment-intro > div { max-width:630px; }
.home-page .background-band .resource-equation { background:#0c2432ed; border-color:#638895; padding:28px; }
.home-page .background-band .resource-equation > span { color:#fff; }
.home-page .background-band .resource-equation > strong { color:#d5eaf2; }
.home-page .background-band .resource-equation b { color:#aacbd7; }
.home-page .home-maritime { width:100%; margin:0; padding-block:95px; }
.home-page .home-maritime > .maritime-panel { width:min(var(--max),calc(100% - 80px)); padding:0; background:transparent; gap:8%; }
.home-page .maritime-panel > div:last-child { background:#102936e8; padding:30px; align-self:center; }
.home-page .maritime-panel p { color:#e0eaf0; }
.home-page .industry-grid { gap:2px; }
.home-page .industry-tile { min-height:340px; }
.home-page .industry-tile::before { background:linear-gradient(0deg,#081c29fa,#081c29c9 45%,#081c2920); }
.home-page .industry-tile::after { background:none; }
.home-page .industry-tile > div { z-index:1; }
.home-page .project-evidence-link { border-top:2px solid #a50000; }
@media(min-width:1800px) {
  .home-page .home-intro,.home-page .home-intro .intro-grid { min-height:750px; }
  .ref-hero.background-hero { min-height:650px; }
}
@media(max-width:980px) {
  .background-hero .ref-hero-copy { width:76%; }
  .home-page .home-intro .intro-grid { grid-template-columns:1fr; min-height:650px; padding-block:60px; gap:35px; }
  .hero-annotation { max-width:420px; }
  .hero-annotation strong { font-size:25px; }
  .home-page .home-intro { min-height:650px; }
  .home-page .intro-copy { max-width:690px; }
  .home-page .background-band .feature-grid { gap:35px; }
  .home-page .home-maritime > .maritime-panel { width:calc(100% - 56px); }
  .background-copy > div { width:72%; }
}
@media(max-width:680px) {
  .immersive > .wallpaper-media > img { object-position:center; }
  /* Minimum 80% navy under all mobile copy, regardless of source brightness. */
  .immersive::before { background:linear-gradient(90deg,rgba(5,17,26,.91),rgba(5,17,26,.80)); }
  .ref-hero.background-hero { min-height:570px; padding:24px 0 55px; }
  .background-hero .ref-hero-copy { width:100%; }
  .background-hero .ref-hero-copy h1 { font-size:clamp(38px,10.5vw,52px); }
  .background-hero .breadcrumbs { margin-bottom:38px; }
  .ref-hero.utility-hero { min-height:350px; }
  .background-band { min-height:480px; padding-block:58px; }
  .background-copy > div { width:100%; max-width:100%; }
  .hero-diagrams .connection-flow { grid-template-columns:1fr 1fr; }
  .home-page .home-intro,.home-page .home-intro .intro-grid { min-height:690px; }
  .home-page .home-intro .intro-grid { padding-block:44px; gap:38px; }
  .home-page .intro-copy h1 { font-size:clamp(35px,9.2vw,51px); }
  .home-page .intro-lead { font-size:15px; }
  .home-page .hero-annotation strong { font-size:24px; }
  .home-page .background-band { padding-block:58px; }
  .home-page .background-band .feature-grid,.home-page .foundation .feature-grid { display:flex; flex-direction:column; align-items:stretch; gap:35px; }
  .home-page .foundation .feature-copy { order:-1; }
  .home-page .video-feature .feature-copy { order:-1; }
  .home-page .video-visual { align-self:stretch; }
  .home-page .background-band .resource-equation { padding:22px; }
  .home-page .home-maritime > .maritime-panel { width:calc(100% - 40px); }
  .home-page .maritime-panel > div:last-child { padding:22px; }
  .home-page .industry-tile { min-height:290px; }
  .home-page .industry-tile::before { background:linear-gradient(0deg,#081c29fa,#081c29cb 55%,#081c2955); }
}
@media(prefers-reduced-motion:reduce) { .wallpaper-media img { transition:none; } }
@media(forced-colors:active) { .wallpaper-media,.immersive::before,.immersive::after { display:none; } .immersive,.immersive p,.immersive h1,.immersive h2,.immersive h3 { color:CanvasText; background:Canvas; } }
@media print { .wallpaper-media,.immersive::before,.immersive::after { display:none; } .immersive,.immersive :is(h1,h2,h3,p,a,.eyebrow,.lead) { color:#000!important; background:#fff!important; } }
/* Crisp network linework carries the wallpaper theme through light reading areas. */
main > .section:not(.immersive):not(.depth-section):not(.technical-sources),
main > .section.soft:not(.immersive),main > .handover-strip {
  background-image:url('/assets/images/backgrounds/inner-technical-linework.svg?v=2');
  background-size:1600px 800px; background-repeat:repeat-y; background-position:right top;
}
.cta-band { background-image:linear-gradient(100deg,#102b3ac4,#14374470),var(--wallpaper); }
@media(min-width:681px) and (max-width:980px) {
  .home-page .intro-copy .actions { display:flex; flex-wrap:wrap; }
  .home-page .intro-copy .actions .btn { width:auto; flex:0 1 auto; }
  .home-page .home-intro::before { background:linear-gradient(90deg,#05111af2,#05111acc 60%,#05111a66); }
}
.home-page .immersive .use-cases span { background:#183747; border-color:#638895; color:#e0eaf0; }
.home-page .cta-band { background:#102b3a; background-image:linear-gradient(100deg,#102b3ac4,#14374470),var(--wallpaper); background-size:cover; }
