* { box-sizing: border-box; }
:root { --ink: #06112b; --navy: #0a1740; --white: #f9fbff; --orange: #f26522; }
a:hover{text-decoration: none;color: inherit;}
html { scroll-behavior: smooth;outline: transparent; }
button, div{outline: none !important;}
body { outline:transparent; margin:0; color:var(--white); background:#fff; font-family:"Montserrat",Arial,sans-serif;outline: none; }
.mobile-contact-bar { display:none; }
.site-container { width:100%; max-width:1366px !important; padding-left:80px; padding-right:80px; }
.site-header { position: fixed; z-index: 20; top: 0; left: 0; width: 100%; height: 110px; background: rgba(255, 255, 255, 1); border-bottom: 1px solid #dfe6f0; box-shadow:0 5px 22px rgba(13,41,85,.09); backdrop-filter: blur(12px); }
.header-inner { height:100%; display:flex; align-items:center; }
.brand { flex: 0 0 auto;
    display: block;
    /* width: 154px; */
    /* height: 55px; */
    border-radius: 8px;
    overflow: hidden;
    background: #fff;
    padding: 12px}
.brand img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand picture,.thank-you-logo picture { display:block; width:100%; height:100%; }
.primary-nav { height: 47px; margin-left: 19%; flex: 1; display: flex; justify-content: space-between; align-items: center; }
.primary-nav a { position:relative; z-index:0; padding:16px 0 10px; color:#132958; text-decoration:none; font-size:18px; font-weight:500; white-space:nowrap; transition:color .25s ease; }
.primary-nav > a::after,.nav-dropdown-toggle::after { content:""; position:absolute; z-index:1; right:0; bottom:2px; left:0; height:2px; border-radius:2px; background:var(--orange); transform:scaleX(0); transform-origin:right center; transition:transform .3s cubic-bezier(.22,.8,.28,1); }
.primary-nav > a:hover,.primary-nav > a:focus-visible,.primary-nav > a.active,.nav-dropdown-toggle:hover,.nav-dropdown-toggle:focus-visible,.nav-dropdown-toggle.active { color:var(--orange); }
.primary-nav > a:hover::after,.primary-nav > a:focus-visible::after,.primary-nav > a.active::after,.nav-dropdown-toggle:hover::after,.nav-dropdown-toggle:focus-visible::after,.nav-dropdown-toggle.active::after { transform:scaleX(1); transform-origin:left center; }
.nav-dropdown { position:relative; height:100%; display:flex; align-items:center; }
.nav-dropdown-toggle { position:relative; z-index:0; display:inline-flex; align-items:center; gap:7px; padding:16px 0 10px; border:0; outline:0; color:#132958; background:transparent; font:500 18px "Montserrat",sans-serif; white-space:nowrap; cursor:pointer; transition:color .25s ease; }
.nav-dropdown-toggle i { position:relative; top:1px; font-size:10px; transition:transform .2s; }
.nav-dropdown.open .nav-dropdown-toggle i { transform:rotate(180deg); }
.nav-dropdown-menu { position:absolute; z-index:30; top:50px; left:0; min-width:220px; padding:8px 0; visibility:hidden; opacity:0; transform:translateY(8px); background:#fff; border-radius:4px; box-shadow:0 12px 30px rgba(0,0,0,.28); transition:opacity .2s,transform .2s,visibility .2s; }
.nav-dropdown.open .nav-dropdown-menu { visibility:visible; opacity:1; transform:translateY(0); }
.primary-nav .nav-dropdown-menu a { display:block; width:100%; padding:10px 15px; color:#152a64; font-size:14px; white-space:nowrap; }
.primary-nav .nav-dropdown-menu a:hover { color:#fff; background:#1d3476; }
.menu-toggle { display:none; }
.product-hero { height: 760px; position: relative; overflow: hidden; padding: 110px 0 52px;
     /* background: radial-gradient(circle at 77% 49%, #18275d 0, #0d1a49 26%, #071334 61%, #040d21 100%);  */
     isolation: isolate; }
.hero-inner { position:relative; min-height:calc(83vh - 162px); }
.product-hero::before { content:""; position:absolute; inset:0; z-index:-2; opacity:1; 
    background-image: url("../assets/3dmodel-bg.jpeg"); background-position:bottom right; background-size:cover; mix-blend-mode:screen; }
/* Keeps the left-hand product copy legible over the brighter water image. */
.product-hero::after { content:""; position:absolute; inset:0; z-index:-2; pointer-events:none; background:linear-gradient(90deg,rgba(4,13,33,.88) 0%,rgba(6,17,43,.62) 34%,rgba(7,19,52,.12) 62%,rgba(7,19,52,0) 100%); }
.hero-grid { position:absolute; z-index:-1; left:-10%; right:-10%; bottom:-33%; height:60%; opacity:.3; transform:perspective(400px) rotateX(58deg); transform-origin:center bottom; background-image: linear-gradient(rgba(72, 108, 207, .48) 1px, transparent 1px), linear-gradient(90deg, rgba(72, 108, 207, .48) 1px, transparent 1px); background-size: 44px 44px; mask-image:linear-gradient(to top, #000 15%, transparent 93%); }
.product-copy { position:relative; z-index:2; max-width:500px; padding-top:0; }
.eyebrow { display:none; }
.product-copy h1, .product-copy h2 { margin: 70px 0 17px;
    font-size: 40px; letter-spacing:1.8px; line-height:1; font-weight:700; }
.subtitle { margin:0;     font-size: 20px;
    line-height: 1.6;
 font-weight:500; letter-spacing:.15px; }
.product-features { margin:25px 0 0; padding:0; list-style:none; }
.product-features li { width:100%; margin-bottom:20px; padding:14px 19px; display:flex;
     align-items:center; gap:13px; background:rgba(62,80,136,.65); color:#f1f3fb; font-size:16px; line-height:1.15;
      text-transform:uppercase; letter-spacing:.45px; line-height: 1.6;}
      .product-features span { color:var(--orange); line-height:1; font-size:18px; }
.rov-stage { position:absolute; z-index:1; top:0; right:40px; width:54%; height:calc(83vh - 162px); min-height:0; overflow:visible; padding:18px; }.rov-stage model-viewer { width:100%; height:100%; overflow:visible; --poster-color:transparent; }
/* Stop the browser's own double-tap/double-click zoom over the 3D stage.
   `disable-zoom` on <model-viewer> only blocks camera zoom, not page zoom, and
   model-viewer sets touch-action itself only after the model finishes loading. */
.product-hero, .rov-stage, .rov-stage model-viewer { touch-action: manipulation; }
.rov-stage model-viewer { -webkit-user-select:none; user-select:none; }
.rov-stage--image { display:flex; align-items:center; justify-content:center; }
.product-hero-static-image { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 22px 28px rgba(0,0,0,.28)); }
.enquire-tab {
        position: fixed;
    z-index: 22;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 33px;
    height: 167px;
    background: var(--orange);
    color: white;
    text-decoration: none;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 1.3px;
    writing-mode: vertical-rl;
    transform: translateY(-50%) rotate(180deg);}
.overview-section { position:relative; overflow:hidden; padding:0 0 68px; color:#171717; background:#fff; border-top:2px solid #101c43; }
.overview-inner { position:relative; z-index:2; }
.overview-breadcrumb { display:flex; justify-content:center; align-items:center; gap:6px; padding-top:14px; font-size:14px; font-weight:500; color:#4e4e4e; }
.overview-breadcrumb a { color:inherit; text-decoration:none; }
.overview-heading { margin-top:70px; }
.overview-heading p { margin:0 0 18px; font-size:16px; font-weight:500; letter-spacing:.2px; }
.overview-heading h2, .overview-heading h1 { margin:0; color:#172e78; font-size:44px; line-height:1; font-weight:800; letter-spacing:1px; }
.overview-copy { max-width:1185px; margin:24px 0 27px; font-size:16px; line-height:1.8; font-weight:500; letter-spacing:.15px; }
/* Two overview paragraphs in a row (e.g. JERRY ROV intro + overview): normal paragraph spacing between them. */
.overview-copy + .overview-copy { margin-top:0; }
.overview-stats { display:grid; grid-template-columns:repeat(4, 1fr); width:100%; margin:0 auto; }
.overview-stat { position:relative; min-height:160px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; padding:10px 24px 13px; text-align:center; }
.overview-stat:not(:nth-child(4n))::after { content:""; position:absolute; top:31px; right:0; width:1px; height:103px; background:#d1d1d1; }
.overview-stat:nth-child(n+5) { margin-top:26px; padding-top:35px; }
.overview-stat:nth-child(n+5)::before { content:""; position:absolute; top:0; left:50%; width:102px; height:1px; transform:translateX(-50%); background:#cfcfcf; }
.overview-stat img { width:auto; height:62px; object-fit:contain; margin-bottom:10px; }
.overview-stat:nth-child(n+5) img { height:69px; }
.overview-stat h3 { margin:0; color:#080808; font-size:27px; line-height:1.05; font-weight:800; }
.overview-stat p { margin:14px 0 0; color:#171717; font-size:15px; line-height:1.15; font-weight:600; letter-spacing:.25px; }
.engine-pattern { position:absolute; z-index:1; width:162px; height:437px; background:url("../assets/engine-pattern.png") 
    center/contain no-repeat; opacity:1; pointer-events:none; }
.engine-pattern-left { left:0; top:240px; transform:rotate(0deg); }
.engine-pattern-right { right:0; top:55px;transform:rotate(180deg); }
#about{position: relative;}
.gallery-section { position:relative; color:#193474; background:#fff; overflow:hidden; }
.gallery-inner { position:relative; padding-top:70px; padding-bottom:80px; }
.gallery-heading { position:relative; z-index:3; }
.gallery-heading p { margin:0 0 6px; color:var(--orange); font-size:15px; line-height:1; font-weight:700; letter-spacing:1.6px; }
.gallery-heading h2 { margin:0; color:#193474; font-size:36px; line-height:1.3; font-weight:700; letter-spacing:.4px; }
.gallery-slider { position:relative; left:50%; width:100vw; max-width:none; display:flex; gap:10px; overflow-x:auto; overflow-y:hidden; margin:34px 0 0 -50vw; padding:5px 0 0; scroll-snap-type:none; scrollbar-width:none; -ms-overflow-style:none; }
.gallery-slider::-webkit-scrollbar { display:none; width:0; height:0; }
.gallery-slide { position:relative; flex:0 0 calc((100% - 30px) / 4); width:calc((100% - 30px) / 4); height:clamp(320px,28vw,348px); 
    overflow:hidden; padding:0; border:0; border-radius:0; opacity:1; background:#ffffff; cursor:zoom-in; box-shadow:none; scroll-snap-align:start; transition:transform .3s ease,box-shadow .3s ease; }
.gallery-slide picture { display:block; width:100%; height:100%; }
.gallery-slide img { display:block; width:100%; height:100%; object-fit:contain; transition:transform .45s ease; }
.gallery-slide:hover,.gallery-slide:focus-visible { z-index:1; transform:translateY(-3px);  }
.gallery-slide.active { box-shadow:none; }
.gallery-slide:hover img,.gallery-slide:focus-visible img { transform:none; }
.gallery-indicators { display:none; }
.gallery-controls { position:absolute; z-index:5; top:55%; left:50%; width:100vw; display:flex; justify-content:space-between; padding:0 14px; transform:translate(-50%,-50%); pointer-events:none; }
.gallery-controls button { width:46px; height:46px; display:flex; align-items:center; justify-content:center; padding:0; border:1px solid #d9dfe8; border-radius:50%; color:#193474; background:#fff; box-shadow:0 5px 18px rgba(6,17,43,.18); font-size:22px; line-height:1; cursor:pointer; pointer-events:auto; transition:color .25s ease,background .25s ease,border-color .25s ease,transform .25s ease; }
.gallery-controls button:hover,.gallery-controls button:focus-visible { color:#fff; border-color:var(--orange); background:var(--orange); transform:translateY(-2px); }
.gallery-counter { display:none; }
.gallery-lightbox-open { overflow:hidden; }
.gallery-lightbox { position:fixed; z-index:10000; inset:0; display:flex; align-items:center; justify-content:center; padding:32px; opacity:0; background:rgba(4,13,33,.92); backdrop-filter:blur(6px); transition:opacity .22s ease; }
.gallery-lightbox[hidden] { display:none; }
.gallery-lightbox.is-open { opacity:1; }
.gallery-lightbox-frame { position:relative; display:flex; align-items:center; justify-content:center; max-width:94vw; max-height:90vh; padding:10px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.45); transform:scale(.96); transition:transform .22s ease; }
.gallery-lightbox.is-open .gallery-lightbox-frame { transform:scale(1); }
.gallery-lightbox-frame img { display:block; width:auto; height:auto; max-width:calc(94vw - 20px); max-height:calc(90vh - 20px); object-fit:contain; }
.gallery-lightbox-close { position:absolute; z-index:2; top:-18px; right:-18px; width:42px; height:42px; display:flex; align-items:center; justify-content:center; padding:0 0 3px; border:2px solid #fff; border-radius:50%; color:#fff; background:var(--orange); box-shadow:0 5px 16px rgba(0,0,0,.3); font:400 31px/1 Arial,sans-serif; cursor:pointer; transition:background .2s ease,transform .2s ease; }
.gallery-lightbox-close:hover,.gallery-lightbox-close:focus-visible { background:#193474; transform:rotate(90deg); }
.gallery-model-placeholder { min-height:500px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.gallery-model-placeholder model-viewer { width:min(720px,82vw); height:420px; }
.gallery-model-placeholder p { margin:8px 0 0; color:#dce4fa; font-size:14px; }
.technical-section { padding:52px 0 65px; color:#222; background:#fff; }
.technical-inner { max-width:1300px  !important; }
.technical-heading > p { margin:0 0 13px; font-size:16px; font-weight:500; letter-spacing:.4px; }
.technical-heading h2 { margin:0; color:#193270; font-size:36px; line-height:1.15; font-weight:700; letter-spacing:.7px; }
.technical-intro { max-width:1120px; margin-top:31px; font-size:18px; line-height:1.75; font-weight:500; letter-spacing:.45px; text-align:justify; }
.technical-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:27px; }
.technical-column { display:flex; flex-direction:column; gap:15px; }
.spec-card { overflow:hidden; border:1px solid #b9b9b9; border-radius:13px; background:#fff; }
.spec-card h3 { min-height:40px; margin:0; display:flex; align-items:center; gap:8px; padding: 20px; color:#fff; background:#1d3476; font-size:17px; line-height:1.1; font-weight:700; letter-spacing:.25px; }
.spec-card h3 img { width:29px; height:29px; object-fit:contain; }
.spec-card dl { margin:0; }
.spec-card dl > div { min-height:40px; display:grid; grid-template-columns:42% 58%; align-items:center; padding:20px 14px; border-bottom:1px dashed #c9c9c9; }
.spec-card dl > div:last-child { border-bottom:0; }
.spec-card dt, .spec-card dd { margin:0; font-size:18px; line-height:1.15; }
.spec-card dt { font-weight:500; }
.spec-card dd { font-weight:600; text-align:right;line-height: 1.6; }
.gallery-slide{outline: none !important;}
.gallery-indicators button{outline: none;}
.applications-section { padding:45px 0 58px; color:#222; background:#fff; }
.applications-heading { text-align:center; }
.applications-heading h2 { margin:0; color:#193474; font-size:42px; line-height:1.15; font-weight:700; letter-spacing:.5px; }
.applications-heading p { margin:10px 0 0; font-size:16px; line-height:1.5; font-weight:500; }
.jerry-applications-list { max-width:1150px; margin:31px auto 0; padding:0; border:1px solid #343434; list-style:none; background:#fff; }
.jerry-applications-list li { position:relative; margin:0; padding:10px 18px 10px 31px; border-bottom:1px solid #343434; font-size:20px; line-height:1.35; }
.jerry-applications-list li:last-child { border-bottom:0; }
.jerry-applications-list li::before { content:"\25B8"; position:absolute; top:10px; left:13px; color:#007575; font-size:14px; }
.jerry-applications-list strong { color:#007575; font-weight:500; }
.thank-you-section { min-height:100vh; display:flex; align-items:center; padding:90px 0; background:linear-gradient(135deg,#06142f,#173b78); }
.thank-you-card { max-width:760px; margin:0 auto; padding:55px 45px; background:#fff; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.22); }
.thank-you-logo { display:block; width:190px; margin:0 auto 28px; }
.thank-you-logo img { display:block; width:100%; height:auto; }
.thank-you-icon { display:inline-flex; width:68px; height:68px; align-items:center; justify-content:center; border-radius:50%; background:#193474; color:#fff; font-size:28px; }
.thank-you-eyebrow { margin:22px 0 8px; color:#f05a24; font-size:14px; font-weight:700; letter-spacing:1.5px; }
.thank-you-card h1 { margin:0; color:#193474; font-size:32px; line-height:1.2; font-weight:700; }
.thank-you-card > p:not(.thank-you-eyebrow) { max-width:590px; margin:18px auto 28px; color:#333; font-size:17px; line-height:1.7; }
.thank-you-card .benzz-btn { margin:0 auto; }
.applications-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px 18px; max-width:1150px; margin:31px auto 0; }
.application-card { min-height:210px; display:flex; flex-direction:column; align-items:flex-start; padding:18px 22px 15px; border:1px solid #343434; background:#fff; }
.application-card img { width:auto; height:50px; object-fit:contain; margin-bottom:9px; }
.application-card h3 { margin:0; color:#1d3979; font-size:22px; line-height:1.2; font-weight:700; }
.application-card p {     margin: 24px 0 14px;    font-size: 16px;
    line-height: 1.6; font-weight:500; }
.application-card a {
    margin-top: auto;
    display: inline-flex;
    min-width: 108px;
    height: 25px;
    align-items: center;
    justify-content: center;
    padding: 18px 15px;
    color: #fff;
    background: #e60000;
    font-size: 16px;
    text-decoration: none;
    clip-path: polygon(0 0, 100% 0, 100% 75%, 92% 100%, 0 100%);
    transition: background .2s;
}
.application-card a:hover { color:#fff; background:#bd0000; }
.enquiry-section { min-height:445px; padding:19px 0 31px; color:#171717; background-color:#fff; background-image:url("../assets/oppertunity-bg.png"); background-image:image-set(url("../assets/oppertunity-bg.avif") type("image/avif"),url("../assets/oppertunity-bg.png") type("image/png")); background-position:center; background-size:cover; background-repeat:no-repeat; }
.enquiry-heading { text-align:center; }
.enquiry-heading > p { margin:0 0 7px; font-size:16px; font-weight:500; letter-spacing:.5px; }
.enquiry-heading h2 { margin:0; color:#193474; font-size:40px; line-height:1.02; font-weight:700; letter-spacing:.4px; }
.enquiry-heading > div { margin-top:17px; font-size:17px; line-height:1.45; font-weight:500; }
.enquiry-form { display:grid; grid-template-columns:repeat(3,1fr); gap:25px 11px; max-width:1070px; margin:52px auto 0; }
.form-field { position:relative; }.form-field input, .form-field select, .form-field textarea { width:100%;; padding:10px 16px; 
    border:1px solid #c9c9c9; border-radius:0; outline:0; color:#222; 
    background:rgba(255,255,255,.58); font:500 16px "Montserrat",sans-serif; }
    .form-field select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,#aaa 50%),linear-gradient(135deg,#aaa 50%,transparent 50%); background-position:calc(100% - 18px) 16px,calc(100% - 13px) 16px; background-size:5px 5px; background-repeat:no-repeat; }.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:#193474; box-shadow:0 0 0 2px rgba(25,52,116,.12); }.form-field.invalid input, .form-field.invalid select, .form-field.invalid textarea { border-color:#d90000; }
    .field-error { position:absolute; top:47px; left:2px; color:#c40000; font-size:10px; line-height:1.1; }
.message-field { grid-column:1/-1; }
.message-field textarea { display:block; min-height:110px; resize:vertical; }
.message-field .field-error { top:auto; bottom:-14px; }
.consent-field { grid-column:1/-1; }
.consent-field label { display:flex !important; align-items:flex-start; gap:10px; margin:0 !important; color:#30394a !important; font-size:12px !important; font-weight:500 !important; line-height:1.55; cursor:pointer; }
.consent-field input[type="checkbox"] { flex:0 0 17px; width:17px; height:17px; min-height:0; margin:1px 0 0; padding:0; accent-color:#193474; cursor:pointer; }
.consent-field a { color:#193474; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
/* Privacy Policy link sits on its own line under the checkbox, lined up with the checkbox text. */
/* The Contact form gives every input a 48px min-height; keep its consent checkbox checkbox-sized. */
.contact-enquiry-form .consent-field input[type="checkbox"] { height:17px; min-height:0; }
.consent-policy { margin:4px 0 0 27px; color:#30394a; font-size:12px; font-weight:500; line-height:1.55; }
.consent-field .field-error { position:static; display:block; min-height:12px; margin:4px 0 0 27px; }
.consent-field.invalid label { color:#a90000 !important; }
.enquiry-submit { grid-column:1/-1; display:flex; justify-content:center; margin-top:3px; }
.enquiry-submit button { min-width:160px; height:35px; padding:0 24px; border:0; color:#fff; background:#e00000; font-size:15px; cursor:pointer; clip-path:polygon(0 0,100% 0,100% 75%,94% 100%,0 100%); }.enquiry-submit button:hover { background:#b90000; }.form-status { grid-column:1/-1; min-height:18px; margin:-14px 0 0; text-align:center; font-size:12px; }.form-status.error { color:#b00000; }.form-status.success { color:#126b31; }
.mission-section { position:relative; min-height:640px; color:#fff; background:#111827 url("../assets/youtube-slider-bg.jpg") center/cover no-repeat; overflow:hidden; }
.mission-inner { min-height:640px; padding-top:98px; padding-bottom:96px; }
.mission-heading { position:relative; z-index:2; text-align:center; }
.mission-heading h2 { margin:0; font-size:36px; font-weight:700; }
.mission-heading p { margin:5px 0 39px; font-size:18px; color:#d6dae5; }
.mission-slider { margin-top:18px; }.mission-slide { height:465px; }
.mission-video-trigger { position:relative; display:block; width:min(620px,70vw); height:455px; margin:0 auto; padding:0; border:0; outline:0; background:transparent; cursor:pointer; }
.mission-product { width:100%; height:100%; object-fit:contain; }
.mission-play { position:absolute; top:50%; left:50%; width:70px; height:auto; transform:translate(-50%,-50%); transition:transform .2s; }.mission-video-trigger:hover .mission-play { transform:translate(-50%,-50%) scale(1.08); }
.mission-slider .slick-arrow { position:absolute; z-index:4; top:48%; width:42px; height:42px; display:flex; align-items:center; justify-content:center; padding:0; border:0; border-radius:50%; background:#fff; cursor:pointer; }.mission-slider .slick-arrow img { width:30px; height:26px; object-fit:contain; }.mission-slider .slick-prev { left:0; }.mission-slider .slick-next { right:0; }.mission-slider .slick-next img { transform:rotate(180deg); }
.video-modal[hidden] { display:none; }.video-modal { position:fixed; z-index:100; inset:0; display:flex; align-items:center; justify-content:center; padding:25px; }.video-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.82); }.video-modal-dialog { position:relative; z-index:1; width:min(900px,94vw); overflow:hidden; border-radius:10px; background:#0b1225; box-shadow:0 20px 70px rgba(0,0,0,.5); }
.video-modal-header { height:55px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; color:#fff; }.video-modal-header h2 { margin:0; font-size:20px; }.video-modal-header button { border:0; color:#fff; background:transparent; font-size:34px; cursor:pointer; }.video-frame-wrap { position:relative; aspect-ratio:16/9; background:#050914; }.video-frame-wrap iframe { width:100%; height:100%; border:0; }.video-url-notice { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding:30px; text-align:center; color:#fff; } body.modal-open { overflow:hidden; }
.mission-slider button{outline: none;}
.site-footer { color:#fff; background:#1d3474; }.footer-inner { padding-top:65px; padding-bottom:17px; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1.05fr .9fr 2fr; }.footer-column { min-height:245px; padding:0 30px; border-right:1px solid rgba(255,255,255,.2); }.footer-column:first-child { padding-left:5px; }.footer-column:last-child { padding-right:0; border-right:0; }
.footer-column h2 { margin:0 0 16px; font-size:19px; line-height:1.2; font-weight:700; letter-spacing:.8px; }.footer-column ul { margin:0; padding:0; list-style:none; }.footer-column li { margin-bottom:11px; }.footer-column li a::before { content:"-"; margin-right:7px; }.footer-column a { color:#f4f5fa; text-decoration:none; font-size:16px; line-height:1.45; }.footer-column a:hover { color:#f26522; }
.footer-accordion-toggle { width:100%; display:flex; align-items:center; justify-content:space-between; padding:0; border:0; outline:0; color:inherit; background:transparent; font:inherit; letter-spacing:inherit; text-align:left; cursor:default; }
.footer-accordion-toggle i { display:none; transition:transform .3s ease; }
.footer-accordion-content { overflow:visible; }
.footer-contact address { margin:0 0 20px; font-size:16px; line-height:1.7; font-style:normal; }.footer-contact p { display:flex; align-items:center; gap:7px; margin:0 0 10px; font-size:16px; white-space:nowrap; }.footer-contact p i { width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; border-radius:50%; color:#1d3474; background:#fff; font-size:13px; }.footer-contact p a { font-size:16px; }
.footer-extras { min-height:125px; display:flex; align-items:flex-end; justify-content:space-between; padding:0 5px 13px; }.make-india-picture { display:block; width:133px; }.make-india { display:block; width:133px; height:auto; }.footer-social { display:flex; align-items:center; gap:7px; font-size:16px; }.footer-social a { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:#e56430; font-size:16px; transition:transform .2s; }.footer-social a:hover { color:#fff; transform:translateY(-2px); }
.footer-bottom { padding:17px 0 0; border-top:1px solid rgba(255,255,255,.4); text-align:center; font-size:16px; letter-spacing:.1px; }.footer-bottom span { margin:0 5px; }.footer-bottom a { color:#fff; text-decoration:none; }
.home-hero { position:relative; height:clamp(660px,57vw,930px); overflow:visible; color:#fff; background:#03182c; }
.home-banner-slider { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; }.home-banner-slider .slick-list,.home-banner-slider .slick-track,.home-banner-slide { height:100%; }.home-banner-slide { background:#03182c; }.home-banner-slide picture { display:block; width:100%; height:100%; }
.home-banner-image { width:100%; height:100%; display:block; object-fit:cover; object-position:right top; }.home-banner-slider .slick-slide > div { height:100%; }
.home-banner-image--jerry { object-position:center center; }
.home-banner-video { width:100%; height:100%; display:block; object-fit:cover; object-position:center; background:#03182c; }
.home-banner-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,8,17,.78) 0%,rgba(0,8,17,.45) 41%,rgba(0,8,17,.04) 73%); pointer-events:none; }.home-hero-inner { position:relative; height:100%; }
.home-copy-slider { position:absolute; z-index:2; top:278px; left:80px; width:620px; }.home-copy-slider .slick-list,.home-copy-slider .slick-track { width:100%; }.home-hero-copy { position:relative; }
.home-title-frame { position:relative; min-width:445px; padding:24px 20px 20px; border-left:4px solid #fff; }.home-title-frame::before,.home-title-frame::after { content:""; position:absolute; left:0; height:4px; background:#fff; }.home-title-frame::before { top:0; width:126px; }.home-title-frame::after { bottom:0; width:180px; }.home-title-frame h1,.home-title-frame h2 { margin:0; font-size:43px; line-height:1; font-weight:700; letter-spacing:1px; }.home-title-frame p { margin:2px 0 0; font-size:23px; line-height:1.1; font-weight:400; letter-spacing:.6px; }
.home-title-frame h1.home-title-long,.home-title-frame h2.home-title-long { font-size:37px; line-height:1.08; }
.home-hero-description { margin:25px 0 17px; font-size:16px; line-height:1.75; font-weight:500; width: 90%;}.home-read-more { width:174px; height:42px; display:inline-flex; align-items:center; justify-content:center; color:#fff; background:#e50000; font-size:15px; font-weight:600; letter-spacing:.4px; text-decoration:none; clip-path:polygon(0 0,100% 0,100% 75%,94% 100%,0 100%); }.home-read-more:hover { color:#fff; background:#bd0000; }
.home-banner-controls { position:absolute; z-index:3; left:80px; bottom:140px; display:flex; gap:11px; }.home-banner-controls button { width:43px; height:43px; border:1px solid rgba(255,255,255,.7); border-radius:50%; color:#fff; background:rgba(0,0,0,.2); font-size:18px; cursor:pointer; transition:background .2s; }.home-banner-controls button:hover { background:#e35f2e; }
.home-info-section { min-height:200px; background:#fff; }
.home-info-inner { min-height:150px; display:flex; justify-content:flex-end; }
.home-info-cards { position:relative; z-index:4; width:760px; display:grid; grid-template-columns:repeat(3,1fr);
     margin-top:-15px; }
.home-info-card { min-height:210px; padding:35px 28px 22px; color:#fff; }
.home-info-card h2 { margin:0 0 16px; font-size:15px; line-height:1.2; font-weight:600; }.home-info-card p { margin:0; font-size:15px; line-height:1.4; font-weight:500; }.home-info-card a { position:absolute; bottom:19px; color:inherit; font-size:23px; }.about-card { position:relative; color:#242b34; background:#e9eff5; }.about-card h2 { color:#89919c; }.naval-card { position:relative; background:#da5a2d; }.aerial-card { position:relative; background:#1e4e7c; }
.indigenous-section { position:relative; min-height:910px; margin-top:-150px; padding:190px 0 55px; overflow:hidden; color:#191919; background:#fff url("../assets/indigenous-bg.jpg") center/cover no-repeat; }
.indigenous-inner { position:relative; z-index:2; }
.indigenous-intro { padding-left:5px; }
.indigenous-kicker { margin:0 0 20px; font-size:16px; line-height:1.2; font-weight:500; }
.indigenous-intro h1 { margin:0; font-size:38px; line-height:1.18; font-weight:700; 
    letter-spacing:.4px; text-align:center;     margin-bottom: 31px;
    margin-top: 70px; }
.indigenous-intro h1 span{ display: block; font-size:20px; color:#f26522;margin-top: 18px;}
.indigenous-intro h2 { margin:0; color:#193474; font-size:36px; line-height:1.18; font-weight:700; letter-spacing:.4px; }
.indigenous-intro > p:last-child { margin:14px 0 0; font-size:16px; line-height:1.5; font-weight:500; }
.system-tabs { display:flex; gap:20px; width:max-content; margin:42px 0 38px 5px; padding:6px; background:rgba(224,226,230,.8); }
.system-tab { width:230px; height:48px; border:0; color:#fff;
     background:linear-gradient(110deg,#31539a 0 50%,#1d3474 50% 100%) right center/200% 100% no-repeat; font:500 16px "Montserrat",sans-serif; letter-spacing:.5px; cursor:pointer; clip-path:polygon(7% 0,100% 0,100% 78%,94% 100%,0 100%,0 18%); transition:background-position .4s cubic-bezier(.22,.8,.28,1),transform .3s ease,filter .3s ease; }
.system-tab.active { background-image:linear-gradient(110deg,#f06c3d 0 50%,#d95b30 50% 100%); }
.system-tab:hover,.system-tab:focus-visible { background-position:left center; filter:drop-shadow(0 8px 8px rgba(14,38,86,.24)); transform:translateY(-3px); }
.system-tab:active { transform:translateY(-1px); }
.system-tab:focus-visible { outline:2px solid #fff; outline-offset:-4px; }
.system-panel[hidden],.product-panel:not(.active) { display:none; }
.product-tabs { display:inline-flex; align-items:center; overflow-x:auto; 
    border-bottom:1px solid #d95b30; 
    scrollbar-width:thin; scrollbar-color:#d95b30  transparent; width:104%; }
.product-tabs::-webkit-scrollbar { height:4px; }
.product-tabs::-webkit-scrollbar-track { background:transparent; }
.product-tabs::-webkit-scrollbar-thumb { border-radius:4px; background:#8f8f8f; }
.product-tabs::-webkit-scrollbar-thumb:hover { background:#666; }
.product-tab { position:relative; flex:0 0 auto; min-height:44px; padding:0 22px; border:0; color:#1c1c1c; background:transparent; font:500 16px "Montserrat",sans-serif; cursor:pointer; }
.product-tab:first-child { padding-left:5px; }
.product-tab:not(:last-child)::after { content:""; position:absolute; top:14px; right:0; width:2px; height:17px; background:#323232; }
.product-tab.active { color:#193474; font-weight:700; }
/* .product-tab.active::before { content:""; position:absolute; left:5px; right:17px; bottom:0; height:3px; background:#193474; } */
.product-panel { min-height:500px; display:grid; grid-template-columns:55% 45%; align-items:center; padding:38px 0 0 5px; }
.product-panel-copy { position:relative; z-index:2; }
.product-panel-copy h3 { margin:0; color:#193474; font-size:36px; line-height:1; font-weight:700; }
.product-tagline { margin:8px 0 26px; font-size:16px; line-height:1.3; font-weight:600; }
.product-summary { max-width:620px; margin:0; font-size:16px; line-height:1.85; font-weight:500; }
.product-highlights { display:grid; grid-template-columns:repeat(4,1fr); gap:35px; max-width:600px; margin-top:30px; }
.product-highlights > div { display:flex; flex-direction:column; align-items:flex-start; }
.product-highlights img { width:auto; height:49px; object-fit:contain; margin-bottom:8px; }
.product-highlights i { height:49px; display:flex; align-items:center; color:#193474; font-size:42px; margin-bottom:8px; }
.product-highlights p { margin:0; font-size:16px; line-height:1.35; font-weight:500; }
.product-certifications { display:flex; gap:34px; align-items:center; margin-top:24px; }
.product-certifications span { display:flex; align-items:center; font-size:18px; font-weight:600; }
.product-certifications img { width:55px; height:58px; object-fit:contain; margin-right:7px; }
.product-know-more { width:176px; height:39px; display:flex; align-items:center; justify-content:center; margin-top:18px; color:#fff; background:#e00000; font-size:15px; text-decoration:none; clip-path:polygon(0 0,100% 0,100% 75%,94% 100%,0 100%); }
.product-know-more:hover { color:#fff; background:#bd0000; }
.product-panel-image { width:100%; height:auto; max-height:450px; object-fit:contain; }
.product-panel-picture { display:block; width:100%; }
.subsea-tab-visual { justify-self:center; width:330px; height:330px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:radial-gradient(circle at 50% 42%,#356cbd 0%,#173b79 48%,#071a3d 72%); box-shadow:0 22px 55px rgba(13,47,101,.28),inset 0 0 45px rgba(119,176,255,.25); }
.subsea-tab-visual i { font-size:82px; filter:drop-shadow(0 0 14px rgba(255,255,255,.8)); }
.subsea-tab-visual strong { margin-top:18px; font-size:38px; line-height:1; }
.subsea-tab-visual span { margin-top:7px; font-size:12px; font-weight:700; letter-spacing:2px; }
.subsea-equipment-tab-image { max-width:560px; max-height:440px; padding:18px; object-fit:contain; filter:drop-shadow(0 24px 25px rgba(10,28,65,.22)); }
.aerospace-panel { min-height:480px; }
.environments-section { padding:24px 0 0px; color:#171717; background:#fff url("../assets/indigenous-bg.jpg") center/cover no-repeat; }
.environments-heading { padding-top:12px; padding-bottom:34px; }
.environments-heading > p { margin:0 0 13px; font-size:15px; line-height:1.2; font-weight:700; }
.environments-heading h2 { margin:0; color:#193474; font-size:44px; line-height:1.16; font-weight:700; }
.environments-heading > div { margin-top:11px; font-size:14px; line-height:1.5; font-weight:500; }
.environments-accordion { width:100%; height:575px; display:flex; overflow:hidden; background:#0a1c34; }
.environment-card { position:relative; flex:1 1 0%; min-width:0; height:100%; overflow:hidden; color:#fff;
     background-color:#0a1c34; background-image:linear-gradient(rgba(10,26,53,.28),rgba(8,25,51,.28)),var(--environment-image); background-position:center; background-size:cover; background-repeat:no-repeat; border-right:1px solid rgba(255,255,255,.7); outline:0; cursor:pointer; transition:flex-grow .7s cubic-bezier(.22,.61,.36,1); }
.environment-card:nth-child(1) { --environment-image:url("../assets/acqua-culture-bg.jpg"); --environment-image:image-set(url("../assets/acqua-culture-bg.avif") type("image/avif"),url("../assets/acqua-culture-bg.jpg") type("image/jpeg")); }
.environment-card:nth-child(2) { --environment-image:url("../assets/pipeline-inspection-bg.jpg"); --environment-image:image-set(url("../assets/pipeline-inspection-bg.avif") type("image/avif"),url("../assets/pipeline-inspection-bg.jpg") type("image/jpeg")); }
.environment-card:nth-child(3) { --environment-image:url("../assets/vessel-inspection-bg.jpg"); --environment-image:image-set(url("../assets/vessel-inspection-bg.avif") type("image/avif"),url("../assets/vessel-inspection-bg.jpg") type("image/jpeg")); }
.environment-card:nth-child(4) { --environment-image:url("../assets/search-inspection-bg.jpg"); }
.environment-card:nth-child(5) { --environment-image:url("../assets/sonar-imaging-bg.jpg"); --environment-image:image-set(url("../assets/sonar-imaging-bg.avif") type("image/avif"),url("../assets/sonar-imaging-bg.jpg") type("image/jpeg")); }
.environment-card:last-child { border-right:0; }
.environment-card::after { content:""; position:absolute; inset:0;
    
      transition:background .4s; }
.environment-label { position:absolute; z-index:2; top:50%; left:50%; margin:0; color:#fff; font-size:17px; line-height:1; font-weight:700; white-space:nowrap; transform:translate(-50%,-50%) rotate(-90deg); transform-origin:center; transition:opacity .25s; }
.environment-details { position:absolute; z-index:3; left:26px; bottom:32px; width:min(440px,calc(100% - 52px)); opacity:0; visibility:hidden; transform:translateY(18px); transition:opacity .32s .15s,transform .32s .15s,visibility 0s .15s; }
.environment-details h3 { margin:0 0 8px; font-size:26px; line-height:1.2; font-weight:700; }
.environment-details p { max-width:440px; margin:0 0 20px; font-size:15px; line-height:1.7; }
.environment-details a { position:relative; width:190px; height:58px; display:block; color:#fff; background:#fff; font-size:13px; font-weight:700; letter-spacing:1px; text-decoration:none; clip-path:polygon(6% 0,100% 0,100% 78%,92% 100%,0 100%,0 18%); }
.environment-details a i { font-size:21px; }
.environment-card:hover { flex-grow:4; }

.environment-card:hover .environment-label { opacity:0; }
.environment-card:hover .environment-details { opacity:1; visibility:visible; transform:translateY(0); }
.environments-more { width:145px; height:31px; display:flex; align-items:center; justify-content:center; margin:15px auto 0; color:#fff; background:#e00000; font-size:13px; text-decoration:none; clip-path:polygon(0 0,100% 0,100% 75%,93% 100%,0 100%); }
.environments-more:hover { color:#fff; background:#bd0000; }
.about-benzz-section { padding:55px 0 38px; color:#171717; background:#fff; }
.about-benzz-inner { display:grid; grid-template-columns:minmax(0,46%) minmax(316px,54%); align-items:center; min-height:500px; }
.about-benzz-copy { padding:0 30px 0 5px; }
.about-benzz-kicker { margin:0 0 23px; font-size:15px; line-height:1.2; font-weight:500; }
.about-benzz-copy h2 { margin:0; color:#193474; font-size:46px; line-height:1.14; font-weight:700; letter-spacing:.3px; }
.about-benzz-summary { max-width:620px; margin:20px 0 0; font-size:18px; line-height:1.75; font-weight:500; }
.about-benzz-points { margin:28px 0 32px; padding:0; list-style:none; }
.about-benzz-points li { display:flex; align-items:flex-start; gap:10px; margin-bottom:15px; font-size:18px; line-height:1.4; font-weight:500; }
.about-benzz-points i { flex:0 0 auto; margin-top:2px; color:#111; font-size:14px; }
.about-benzz-button { width:190px; height:42px; }
.about-benzz-visual { display:flex; align-items:center; justify-content:center; }
.about-benzz-visual img { display:block; width:100%; height:auto; object-fit:contain; }
/* WebP <picture> wrappers should not change the layout of the images inside them. */
.about-benzz-visual picture, .bz-about-picture { display:contents; }
.home-enquiry-section { min-height:455px; padding:34px 0 42px; }
.home-enquiry-section .enquiry-heading { text-align:left; }
.home-enquiry-section .enquiry-heading h2 { font-size:44px; line-height:1.08; }
.home-enquiry-section .enquiry-heading > div { max-width:980px; margin-top:17px; }
.home-enquiry-form { max-width:1030px; margin-left:0; margin-top:31px; margin-right:0; gap:22px 9px; }
.home-enquiry-form .enquiry-submit { justify-content:flex-start; }
.home-enquiry-form .form-status { text-align:left; }

/* Shared CTA component. Use .benzz-btn plus a variant for every future content button. */
.benzz-btn.benzz-btn { --btn-notch:11px; --btn-edge:currentColor; --btn-fill:transparent; --btn-sweep:currentColor; --btn-ease:cubic-bezier(.175,.885,.32,1.275); --btn-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 12'%3E%3Cpath d='M0 6h26M21 1l5 5-5 5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'/%3E%3C/svg%3E"); position:relative; isolation:isolate; box-sizing:border-box; display:inline-flex; flex-shrink:0; align-items:center; justify-content:center; gap:.7rem; border:0; padding:0 18px; line-height:1; text-align:center; white-space:nowrap; font-family:"Montserrat",sans-serif; font-weight:700; letter-spacing:.08em; text-transform:uppercase; text-decoration:none; cursor:pointer; clip-path:polygon(var(--btn-notch) 0,100% 0,100% calc(100% - var(--btn-notch)),calc(100% - var(--btn-notch)) 100%,0 100%,0 var(--btn-notch)); background:linear-gradient(to right,var(--btn-sweep) 0 50%,var(--btn-fill) 50% 100%) right center/200% 100% no-repeat; transition:background-position .45s var(--btn-ease),color .4s var(--btn-ease); }
.benzz-btn.benzz-btn:hover,.benzz-btn.benzz-btn:focus-visible { background-position:left center; }
.benzz-btn.benzz-btn::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(var(--btn-edge) 0 0) right top/calc(100% - var(--btn-notch)) 2px no-repeat,linear-gradient(var(--btn-edge) 0 0) left bottom/calc(100% - var(--btn-notch)) 2px no-repeat,linear-gradient(var(--btn-edge) 0 0) left bottom/2px calc(100% - var(--btn-notch)) no-repeat,linear-gradient(var(--btn-edge) 0 0) right top/2px calc(100% - var(--btn-notch)) no-repeat,linear-gradient(135deg,transparent calc(50% - 2px),var(--btn-edge) 0,var(--btn-edge) calc(50% + 2px),transparent 0) left top/var(--btn-notch) var(--btn-notch) no-repeat,linear-gradient(135deg,transparent calc(50% - 2px),var(--btn-edge) 0,var(--btn-edge) calc(50% + 2px),transparent 0) right bottom/var(--btn-notch) var(--btn-notch) no-repeat; }
.benzz-btn.benzz-btn::after { content:""; flex:0 0 auto; width:26px; height:12px; background:currentColor; -webkit-mask:var(--btn-arrow) no-repeat center/contain; mask:var(--btn-arrow) no-repeat center/contain; transition:transform .4s var(--btn-ease); }
.benzz-btn.benzz-btn:hover::after,.benzz-btn.benzz-btn:focus-visible::after { transform:translateX(6px); }
.benzz-btn.benzz-btn:focus-visible { outline:0; box-shadow:inset 0 0 0 2px currentColor; }
.benzz-btn--solid.benzz-btn--solid { color:#fff; --btn-edge:#d81f26; --btn-fill:#d81f26; --btn-sweep:#a5161c; }
.benzz-btn--solid.benzz-btn--solid:hover,.benzz-btn--solid.benzz-btn--solid:focus-visible { color:#fff; --btn-edge:#a5161c; }
.benzz-btn--ghost.benzz-btn--ghost { color:#fff; --btn-edge:rgba(255,255,255,.7); --btn-fill:transparent; --btn-sweep:#fff; background-color:transparent; }
.benzz-btn--ghost.benzz-btn--ghost:hover,.benzz-btn--ghost.benzz-btn--ghost:focus-visible { color:#04101f; --btn-edge:#fff; }
.benzz-btn--noarrow.benzz-btn--noarrow::after { display:none; }
.home-read-more.benzz-btn { width:190px; }
.product-know-more.benzz-btn { width:190px; }
.application-card .benzz-btn { min-width:180px; height:35px; }
/* TEMPORARY: "Know more" buttons hidden on every Key Applications card across the
   five Naval Systems product pages, because only 3 of the ~55 application pages
   have content so far. The links are left intact in the markup — delete this one
   rule to bring them all back. Placed after .benzz-btn.benzz-btn (line 318) so it
   overrides that rule's display:inline-flex without needing !important. */
.application-card .benzz-btn { display: none; }
.environment-details .benzz-btn { width:190px; height:58px; }
.environments-more.benzz-btn { width:190px; height:42px; display:flex; margin:15px auto 0; }
.enquiry-submit .benzz-btn { min-width:180px; height:44px; }
@supports not ((mask-image:none) or (-webkit-mask-image:none)) { .benzz-btn.benzz-btn::after { display:none; } }
@media (prefers-reduced-motion:reduce) { .benzz-btn.benzz-btn,.benzz-btn.benzz-btn::before,.benzz-btn.benzz-btn::after { transition:none; } }
.indigenous__drone{position: absolute;right: 0;top: 200px;}

/* Contact page */
.contact-page { color:#1a1a1a; background:#fff; }
.contact-hero { position:relative; min-height:460px; overflow:hidden; color:#fff; background:linear-gradient(115deg,#071a3d 0%,#0d2f60 60%,#173d77 100%); }
.contact-hero-pattern { position:absolute; inset:0; opacity:.13; background:url("../assets/engine-pattern.png") center/cover no-repeat; }
.contact-hero-inner { 
position: relative;
    z-index: 1;
    display: flex;
    min-height: 339px;
    flex-direction: column;
    justify-content: center;
    padding-top: 160px; 
}
.contact-hero-inner > p,.contact-form-copy > p { margin:0 0 8px; color:#e45a2b; font-size:15px; font-weight:700; letter-spacing:1.5px; }
.contact-hero h1,.contact-hero h2 { max-width:760px; margin:0; font-size:52px; line-height:1.12; font-weight:700; }
.contact-breadcrumb { display:flex; gap:9px; margin-top:24px; font-size:14px; }
.contact-breadcrumb a { color:#fff; text-decoration:none; }
.contact-breadcrumb span { color:rgba(255,255,255,.72); }
.contact-details { padding:72px 0 78px; background:#fff; }
.contact-intro { max-width:800px; margin:0 auto; text-align:center; }
.contact-intro > p { margin:0 0 8px; color:#df572c; font-size:14px; font-weight:700; letter-spacing:1.4px; }
.contact-intro h2,.contact-intro h1 { margin:0; color:#193474; font-size:40px; line-height:1.2; font-weight:700; }
.contact-intro > div { margin-top:15px; font-size:16px; line-height:1.7; }
.contact-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:42px; }
.contact-card { display:flex; min-height:185px; gap:17px; padding:28px 24px; border:1px solid #d6dbe5; background:#fff; box-shadow:0 12px 32px rgba(13,41,85,.07); }
.contact-card-icon { flex:0 0 46px; width:46px; height:46px; display:grid; place-items:center; color:#fff; background:#1d3979; font-size:19px; clip-path:polygon(0 0,100% 0,100% 78%,78% 100%,0 100%); }
.contact-card h3 { margin:1px 0 10px; color:#193474; font-size:20px; font-weight:700; }
.contact-card address,.contact-card p { margin:0; font-style:normal; font-size:14px; line-height:1.65; }
.contact-card a { color:#222; font-size:16px; line-height:1.5; overflow-wrap:anywhere; text-decoration:none; }
.contact-card a:hover { color:#df572c; }
.contact-card p { margin-top:7px; color:#6c7280; }
.contact-form-section { padding:72px 0; background-color:#f7f9fc; background-image:url("../assets/oppertunity-bg.png"); background-image:image-set(url("../assets/oppertunity-bg.avif") type("image/avif"),url("../assets/oppertunity-bg.png") type("image/png")); background-position:center; background-size:cover; background-repeat:no-repeat; }
.contact-form-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:70px; align-items:start; }
.contact-form-copy h2 { margin:0; color:#193474; font-size:42px; line-height:1.08; font-weight:700; }
.contact-form-copy > div { max-width:520px; margin-top:19px; font-size:16px; line-height:1.7; }
.contact-form-copy ul { margin:27px 0 0; padding:0; list-style:none; }
.contact-form-copy li { display:flex; gap:10px; margin-top:13px; font-size:15px; font-weight:600; }
.contact-form-copy li i { margin-top:3px; color:#df572c; }
.contact-enquiry-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:23px 14px; padding:30px; background:rgba(255,255,255,.94); box-shadow:0 15px 40px rgba(13,41,85,.1); }
.contact-enquiry-form .form-field label { display:block; margin:0 0 7px; color:#193474; font-size:13px; font-weight:700; }
.contact-enquiry-form .form-field input,.contact-enquiry-form .form-field select,.contact-enquiry-form .form-field textarea { min-height:48px; background-color:#fff; }
.contact-enquiry-form .field-error { position:static; display:block; min-height:12px; margin-top:5px; color:#c40000; font-size:10px; line-height:1.2; }
.contact-location-field { grid-column:1/-1; }
.contact-form-submit,.contact-enquiry-form .form-status { grid-column:1/-1; }
.contact-form-submit { display:flex; justify-content:flex-start; margin-top:2px; }
.contact-form-submit .benzz-btn { min-width:190px; min-height:46px; }
.contact-enquiry-form .form-status { margin:0; text-align:left; }
model-viewer, .rov-stage, button{outline: none;}
.subsea-page { color:#1b2438; background:#fff; }
.subsea-hero { position:relative; min-height:610px; overflow:hidden; color:#fff; background:linear-gradient(115deg,#04122d 0%,#0d2e65 58%,#153f82 100%); }
.subsea-hero-grid { position:absolute; inset:0; opacity:.18; background-image:linear-gradient(rgba(94,151,223,.32) 1px,transparent 1px),linear-gradient(90deg,rgba(94,151,223,.32) 1px,transparent 1px); background-size:92px 92px; transform:perspective(500px) rotateX(58deg) scale(1.5); transform-origin:center bottom; }
.subsea-hero-inner { position:relative; z-index:1; min-height:610px; display:grid; grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr); gap:60px; align-items:center; padding-top:70px; }
.subsea-hero-copy > p,.subsea-intro > .site-container > p,.subsea-section-heading > p { margin:0 0 12px; color:#f36a32; font-size:14px; font-weight:700; letter-spacing:1.6px; }
.subsea-hero h1, .subsea-hero h2 { max-width:700px; margin:0; font-size:44px; line-height:1.08; font-weight:700; }
.subsea-hero-copy > div { max-width:720px; margin:22px 0 30px; color:#dce6fa; font-size:17px; line-height:1.75; }
.subsea-hero .benzz-btn { width:205px; height:50px; }
.subsea-light-visual { justify-self:center; width:280px; height:280px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.35); border-radius:50%; background:radial-gradient(circle,rgba(94,157,255,.34),rgba(8,25,59,.15) 65%,transparent 66%); box-shadow:0 0 80px rgba(78,146,255,.28); }
.subsea-light-visual i { color:#fff; font-size:72px; filter:drop-shadow(0 0 18px rgba(255,255,255,.7)); }
.subsea-light-visual span { margin-top:17px; font-size:36px; line-height:1; font-weight:800; }
.subsea-light-visual small { margin-top:7px; color:#cbd9f1; font-size:11px; font-weight:700; letter-spacing:2px; }
.subsea-hero-product { width:min(100%,570px); height:430px; border:0; border-radius:0; background:none; box-shadow:none; }
.subsea-hero-product picture { display:block; width:100%; height:100%; }
.subsea-hero-product img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 30px 28px rgba(0,0,0,.3)); }
.subsea-intro { padding:75px 0; text-align:center; background:#fff url('../assets/indigenous-bg.jpg') center/cover no-repeat; }
.subsea-intro h1,.subsea-intro h2,.subsea-section-heading h2 { margin:0; color:#193474; font-size:42px; line-height:1.16; font-weight:700; }
.subsea-intro > .site-container > div:not(.subsea-metrics) { max-width:900px; margin:18px auto 0; font-size:16px; line-height:1.75; }
.subsea-metrics { max-width:940px; display:grid; grid-template-columns:repeat(3,1fr); margin:40px auto 0; border:1px solid #dbe2ef; background:#fff; box-shadow:0 15px 38px rgba(13,41,85,.08); }
.subsea-metrics div { min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:20px; border-right:1px solid #dbe2ef; }
.subsea-metrics div:last-child { border-right:0; }
.subsea-metrics strong { color:#193474; font-size:25px; }
.subsea-metrics span { margin-top:6px; color:#59657a; font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.8px; }
.subsea-systems { padding:75px 0 85px; background:#f5f7fb; }
.subsea-section-heading { margin-bottom:35px; text-align:center; }
.subsea-system-switcher { position:relative; max-width:980px; margin:0 auto; border:1px solid #d8dfeb; background:#fff; box-shadow:0 16px 38px rgba(13,41,85,.1); }
.subsea-product-selector { position:relative; z-index:4; }
.subsea-selector-toggle { width:100%; min-height:92px; display:grid; grid-template-columns:58px minmax(0,1fr) 24px; align-items:center; gap:18px; padding:20px 28px; border:0; color:#fff; background:linear-gradient(110deg,#081b42,#214b8e); text-align:left; cursor:pointer; }
.subsea-selector-number { color:#f36a32; font-size:23px; font-weight:800; }
.subsea-selector-name { font-size:23px; line-height:1.3; font-weight:700; }
.subsea-selector-toggle i { justify-self:end; font-size:15px; transition:transform .25s ease; }
.subsea-selector-toggle[aria-expanded="true"] i { transform:rotate(180deg); }
.subsea-selector-toggle:focus-visible { box-shadow:inset 0 0 0 3px #f36a32; }
.subsea-selector-options { position:absolute; top:100%; right:0; left:0; overflow:hidden; border:1px solid #cfd8e7; border-top:0; background:#fff; box-shadow:0 18px 32px rgba(7,26,61,.18); }
.subsea-selector-options[hidden] { display:none; }
.subsea-selector-options button { width:100%; min-height:58px; display:grid; grid-template-columns:58px minmax(0,1fr); align-items:center; gap:18px; padding:12px 28px; border:0; border-bottom:1px solid #e0e5ed; color:#193474; background:#fff; font:600 16px "Montserrat",sans-serif; text-align:left; cursor:pointer; transition:color .2s ease,background .2s ease; }
.subsea-selector-options button:last-child { border-bottom:0; }
.subsea-selector-options button span { color:#f36a32; font-weight:800; }
.subsea-selector-options button:hover,.subsea-selector-options button:focus-visible,.subsea-selector-options button.active { color:#fff; background:#193474; }
.subsea-system-content[hidden] { display:none; }
.subsea-system-content { animation:subsea-panel-in .32s ease both; }
.subsea-system-image { --subsea-image-scale:1; position:relative;  overflow:hidden; background:#07345b; }
.subsea-system-image--compact { --subsea-image-scale:1; }
.subsea-system-image--standard { --subsea-image-scale:1.04; }
.subsea-system-image--high-output { --subsea-image-scale:1.1; }
.subsea-system-image--heavy-duty { --subsea-image-scale:1.18; }
.subsea-system-image picture,.subsea-system-image img { display:block; width:100%; height:100%; }
.subsea-system-image img { 
    /* object-fit:cover; object-position:center; transform:scale(var(--subsea-image-scale));  */
    transition:transform .35s ease; }
.subsea-system-content dl { margin:0; }
.subsea-system-content dl > div { display:grid; grid-template-columns:36% 64%; border-top:1px solid #e2e6ee; }
.subsea-system-content dt,.subsea-system-content dd { margin:0; padding:13px 18px; font-size:16px; line-height:1.45; }
.subsea-system-content dt { color:#193474; background:#f4f6fa; font-weight:700; }
.subsea-system-content dd { overflow-wrap:anywhere; }
@keyframes subsea-panel-in { from { opacity:0; transform:translateY(7px); } to { opacity:1; transform:none; } }
.kami_title{font-size: 34px !important;}
.comp_field{display: none;}
.userInput {outline: none !important;}
/* ── Rising bubbles: the five product 3D-model banners only ─────────────────
   Performance notes:
   - Only transform and opacity are animated, so each bubble runs entirely on
     the compositor thread. No layout, no repaint, no main-thread work per
     frame. (Animating top/left or background-position would repaint instead.)
   - 12 elements on desktop, 7 on phones. No blur, no filter, no backdrop-filter.
   - Negative animation-delays stagger them so the banner starts mid-flow rather
     than empty.
   - js/product.js pauses the whole layer once the banner scrolls out of view,
     so nothing composites while it is off-screen.
   - Disabled outright under prefers-reduced-motion. */
.hero-bubbles { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; contain:layout paint; }
.hero-bubbles span { position:absolute; bottom:-90px; width:14px; height:14px; border-radius:50%; opacity:0; background:radial-gradient(circle at 32% 28%, rgba(255,255,255,.72) 0%, rgba(205,232,255,.3) 45%, rgba(165,210,250,.12) 72%, transparent 73%); box-shadow:inset 0 0 6px rgba(255,255,255,.35); animation:hero-bubble-rise 18s linear infinite; }
.hero-bubbles.is-paused span { animation-play-state:paused; }
@keyframes hero-bubble-rise {
  0%   { transform:translate3d(0,0,0) scale(.85); opacity:0; }
  10%  { opacity:.85; }
  75%  { opacity:.66; }
  100% { transform:translate3d(var(--bx,14px),-118vh,0) scale(1.15); opacity:0; }
}
.hero-bubbles span:nth-child(1)  { left:6%;  width:10px; height:10px; animation-duration:17s; animation-delay:0s;   --bx:-18px; }
.hero-bubbles span:nth-child(2)  { left:14%; width:16px; height:16px; animation-duration:21s; animation-delay:-6s;  --bx:22px; }
.hero-bubbles span:nth-child(3)  { left:23%; width:7px;  height:7px;  animation-duration:14s; animation-delay:-11s; --bx:-10px; }
.hero-bubbles span:nth-child(4)  { left:31%; width:20px; height:20px; animation-duration:25s; animation-delay:-3s;  --bx:26px; }
.hero-bubbles span:nth-child(5)  { left:42%; width:11px; height:11px; animation-duration:18s; animation-delay:-14s; --bx:-22px; }
.hero-bubbles span:nth-child(6)  { left:50%; width:8px;  height:8px;  animation-duration:15s; animation-delay:-8s;  --bx:14px; }
.hero-bubbles span:nth-child(7)  { left:58%; width:18px; height:18px; animation-duration:23s; animation-delay:-19s; --bx:-26px; }
.hero-bubbles span:nth-child(8)  { left:66%; width:12px; height:12px; animation-duration:19s; animation-delay:-2s;  --bx:18px; }
.hero-bubbles span:nth-child(9)  { left:74%; width:9px;  height:9px;  animation-duration:16s; animation-delay:-13s; --bx:-14px; }
.hero-bubbles span:nth-child(10) { left:82%; width:22px; height:22px; animation-duration:27s; animation-delay:-22s; --bx:24px; }
.hero-bubbles span:nth-child(11) { left:89%; width:10px; height:10px; animation-duration:17s; animation-delay:-5s;  --bx:-18px; }
.hero-bubbles span:nth-child(12) { left:95%; width:14px; height:14px; animation-duration:20s; animation-delay:-16s; --bx:12px; }
.hero-bubbles span:nth-child(13) { left:10%; width:13px; height:13px; animation-duration:22s; animation-delay:-9s;  --bx:20px; }
.hero-bubbles span:nth-child(14) { left:19%; width:9px;  height:9px;  animation-duration:16s; animation-delay:-17s; --bx:-16px; }
.hero-bubbles span:nth-child(15) { left:37%; width:17px; height:17px; animation-duration:24s; animation-delay:-4s;  --bx:-24px; }
.hero-bubbles span:nth-child(16) { left:54%; width:12px; height:12px; animation-duration:18s; animation-delay:-21s; --bx:20px; }
.hero-bubbles span:nth-child(17) { left:70%; width:15px; height:15px; animation-duration:21s; animation-delay:-7s;  --bx:-20px; }
.hero-bubbles span:nth-child(18) { left:86%; width:8px;  height:8px;  animation-duration:15s; animation-delay:-12s; --bx:16px; }
@media (max-width:767px) { .hero-bubbles span:nth-child(n+11) { display:none; } }
@media (prefers-reduced-motion:reduce) { .hero-bubbles { display:none; } }

/* ── Scroll depth gauge (right edge, every page) ────────────────────────────
   Flush to the right edge, full viewport height. .enquire-tab now sits on the
   left edge, so the two no longer compete for the same corner. Top padding
   clears the 110px fixed header so the 0 m mark is never hidden behind it.
   Carries its own dark panel because it floats over both the navy heroes and
   the white content sections — a transparent gauge would vanish on one of them.
   Only the fill's transform and the readout's text change on scroll; the scale
   itself is static, so scrolling costs no layout. */
.depth-ruler { position:fixed; z-index:21; top:0; right:0; display:flex; flex-direction:column; align-items:stretch; width:62px; height:100vh; height:100dvh; padding:126px 0 14px; pointer-events:none; background:linear-gradient(90deg,rgba(6,17,43,.42) 0%,rgba(6,17,43,.72) 40%,rgba(6,17,43,.78) 100%); box-shadow:-6px 0 24px rgba(3,9,25,.22); }
.depth-ruler-track { position:relative; flex:1; margin:0 10px; border-right:1px solid rgba(255,255,255,.28); }
.depth-ruler-fill { position:absolute; inset:0; transform:scaleY(0); transform-origin:top center; background:linear-gradient(180deg,rgba(242,101,34,.16) 0%,rgba(242,101,34,.42) 100%); border-right:2px solid var(--orange); transition:transform .18s linear; }
.depth-ruler-scale { position:absolute; inset:0; margin:0; padding:0; list-style:none; }
.depth-tick { position:absolute; right:0; width:7px; height:1px; margin-top:-.5px; background:rgba(255,255,255,.34); }
.depth-tick.is-major { width:13px; height:1px; background:rgba(255,255,255,.75); }
.depth-tick-label { position:absolute; right:17px; top:-8px; color:rgba(255,255,255,.82); font-size:11px; font-weight:600; letter-spacing:.4px; line-height:1; white-space:nowrap; }
.depth-ruler-readout { margin:9px 6px 8px; padding:6px 4px; display:flex; align-items:baseline; justify-content:center; gap:3px; border-radius:3px; background:var(--orange); color:#fff; font-weight:700; line-height:1; }
.depth-ruler-readout strong { font-size:15px; font-variant-numeric:tabular-nums; }
.depth-ruler-readout span { font-size:10px; opacity:.9; }
@media (max-width:1199px) { .depth-ruler { display:none; } }
@media (max-height:620px) { .depth-ruler { display:none; } }

/* ── Scroll reveal ──────────────────────────────────────────────────────────
   Elements fade and lift into place as they first enter the viewport.

   Performance:
   - Only `opacity` and `translate` animate. Both are compositor properties, so
     no layout and no repaint. `translate` is used in preference to `transform`
     so existing hover effects that set `transform` (e.g. .app-card:hover) are
     not overridden by the revealed state.
   - js/product.js unobserves each element the moment it reveals, so once you
     have scrolled past, the cost drops to zero. Nothing runs on scroll.
   - `will-change` is deliberately not set: it would hold a compositor layer for
     every element permanently. The transition creates one only while running.
   - Hero content is excluded so the largest contentful paint is never delayed.

   Robustness: the hidden state is gated on html.has-reveal, which is added by a
   small script in header.php only when JS and IntersectionObserver are present
   and prefers-reduced-motion is not set. That script also removes the class if
   the observer fails to start, so content can never be stranded invisible. */
.has-reveal .overview-stat,
.has-reveal .spec-card,
.has-reveal .application-card,
.has-reveal .app-card,
.has-reveal .contact-card,
.has-reveal .environment-card,
.has-reveal .technical-column,
.has-reveal .home-info-card,
.has-reveal .app-section-head,
.has-reveal .contact-intro,
.has-reveal .overview-heading,
.has-reveal .technical-heading,
.has-reveal .gallery-heading,
.has-reveal .mission-heading,
.has-reveal .enquiry-heading,
.has-reveal .applications-heading,
.has-reveal .about-benzz-copy,
.has-reveal .about-benzz-visual,
.has-reveal .app-intro-copy,
.has-reveal .app-intro-visual,
.has-reveal .app-note,
.has-reveal .app-check-list li,
.has-reveal .app-pill-list li,
.has-reveal .app-steps li {
  opacity:0; translate:0 18px;
  transition:opacity .6s ease, translate .6s cubic-bezier(.22,.8,.28,1), transform .25s ease, box-shadow .25s ease;
}
.has-reveal .environment-card {
  transition:opacity .6s ease, translate .6s cubic-bezier(.22,.8,.28,1), transform .25s ease, box-shadow .25s ease, flex-grow .7s cubic-bezier(.22,.61,.36,1);
}
.has-reveal .overview-stat.is-in,
.has-reveal .spec-card.is-in,
.has-reveal .application-card.is-in,
.has-reveal .app-card.is-in,
.has-reveal .contact-card.is-in,
.has-reveal .environment-card.is-in,
.has-reveal .technical-column.is-in,
.has-reveal .home-info-card.is-in,
.has-reveal .app-section-head.is-in,
.has-reveal .contact-intro.is-in,
.has-reveal .overview-heading.is-in,
.has-reveal .technical-heading.is-in,
.has-reveal .gallery-heading.is-in,
.has-reveal .mission-heading.is-in,
.has-reveal .enquiry-heading.is-in,
.has-reveal .applications-heading.is-in,
.has-reveal .about-benzz-copy.is-in,
.has-reveal .about-benzz-visual.is-in,
.has-reveal .app-intro-copy.is-in,
.has-reveal .app-intro-visual.is-in,
.has-reveal .app-note.is-in,
.has-reveal .app-check-list li.is-in,
.has-reveal .app-pill-list li.is-in,
.has-reveal .app-steps li.is-in { opacity:1; translate:none; }
@media (prefers-reduced-motion:reduce) { .has-reveal *, .has-reveal *::before { opacity:1 !important; translate:none !important; transition:none !important; } }


/* ==========================================================================
   ABOUT US PAGE
   Merged from about/about.css. Two changes were needed on the way in:
     - the bare `body`, `h1-h5`, `a` and `a:hover` rules are scoped to
       .about-page, since unscoped they restyled every page on the site;
     - .bz-hero gained top padding to clear the fixed site header, which
       the standalone version did not have.
   The standalone footer rules (.bz-foot*, .bz-social, .bz-credit) were
   dropped: footer.php supplies that markup instead.
   ========================================================================== */
/* ==========================================================================
   BENZZ — About page theme
   Written to match the approved Contact page: navy hero band with an orange
   kicker, white body, centred section headings, bordered info cards, a
   two-column block with red ticks, and the navy four-column footer.

   Bootstrap 4.5.2 supplies the grid and spacing; everything here is the brand
   layer on top. Loaded AFTER bootstrap.min.css so these rules win without
   needing !important.

   Fonts: the live site serves Montserrat locally and never from a CDN, at the
   client's instruction. This standalone page falls back to a system stack so
   it works on its own; when it is folded into the site, drop the @font-face
   block in and the stack below picks it up.
   ========================================================================== */

:root {
    --bz-navy:      #12305e;   /* hero band and footer */
    --bz-navy-dk:   #0c2348;   /* hero gradient foot */
    --bz-ink:       #16233a;   /* headings */
    --bz-body:      #4a5c72;   /* body copy */
    --bz-orange:    #e8552a;   /* kickers, ticks, social discs */
    --bz-red:       #d81f26;   /* primary button */
    --bz-red-dk:    #a5161c;
    --bz-line:      #e2e8f0;
    --bz-tint:      #f7f9fb;
}

/* Scoped to .about-page: as a bare `body` rule this reset the type size and
   colour for the whole site. */
.about-page {
    font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    color: var(--bz-body);
    font-size: 15px;
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
}

.about-page h1, .about-page h2, .about-page h3, .about-page h4, .about-page h5 { color: var(--bz-ink); font-weight: 700; letter-spacing: -.01em; }
.about-page a { color: var(--bz-navy); }
.about-page a:hover { color: var(--bz-orange); }

/* ---- kicker -------------------------------------------------------------- */
/* The small orange caps line above every heading — the single most
   recognisable piece of this theme. */
.bz-kicker {
    display: block;
    color: var(--bz-orange);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    margin-bottom: .75rem;
}

/* ---- hero band ----------------------------------------------------------- */
/* Deliberately no navigation: this page is supplied without the header menu.
   The band keeps its full height so the title still sits where it does on the
   contact page rather than riding up against the top of the window. */
.bz-hero {
    background: linear-gradient(160deg, var(--bz-navy) 0%, var(--bz-navy-dk) 100%);
    color: #fff;
    /* 110px clears the fixed .site-header; 4.5rem is the design's own spacing. */
    padding: calc(4.5rem + 110px) 0 3.5rem;
    position: relative;
    overflow: hidden;
}
/* A faint wash so the band is not a flat rectangle — the contact page carries
   the same softening. */
.bz-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 90% at 78% 30%, rgba(90, 140, 220, .22), transparent 60%);
    pointer-events: none;
}
.bz-hero > .container { position: relative; z-index: 1; }
.bz-hero h1,.bz-hero h2 {
    color: #fff;
    font-size: clamp(1.9rem, 4.4vw, 3rem);
    margin: 0 0 1rem;
}
/* Intro paragraph under the About page H1 */
.bz-hero-intro { max-width: 780px; margin: 0 0 1.4rem; color: rgba(255, 255, 255, .86); font-size: 1.05rem; line-height: 1.75; }
@media (max-width: 767px) { .bz-hero-intro { font-size: 1rem; line-height: 1.65; } }
.bz-crumbs { font-size: .84rem; color: rgba(255, 255, 255, .72); margin: 0; }
.bz-crumbs a { color: rgba(255, 255, 255, .82); text-decoration: none; }
.bz-crumbs a:hover { color: #fff; text-decoration: underline; }
.bz-crumbs span { opacity: .5; margin: 0 .45rem; }

/* ---- sections ------------------------------------------------------------ */
.bz-section { padding: 4.5rem 0; }
.bz-section--tint { background: var(--bz-tint); }
.bz-head { max-width: 46rem; margin: 0 auto 3rem; text-align: center; }
.bz-head h2 { font-size: clamp(1.5rem, 3.2vw, 2.2rem); margin-bottom: .9rem; }
.bz-head p { margin: 0; }

/* ---- info cards ---------------------------------------------------------- */
/* The three bordered cards from the contact page, with the navy icon square. */
.bz-card {
    height: 100%;
    background: #fff;
    border: 1px solid var(--bz-line);
    padding: 1.6rem 1.5rem;
}
.bz-card-ic {
    width: 44px; height: 44px;
    display: flex; align-items: center; justify-content: center;
    background: var(--bz-navy);
    color: #fff;
    margin-bottom: 1rem;
    flex: none;
}
.bz-card-ic svg { width: 20px; height: 20px; }
.bz-card h3 { font-size: 1.06rem; margin: 0 0 .4rem; color: var(--bz-navy); }
.bz-card p  { margin: 0; font-size: .9rem; }
.bz-card .bz-muted { color: #8b9bb0; font-size: .82rem; }

/* ---- two-column block with ticks ----------------------------------------- */
.bz-ticks { list-style: none; margin: 1.6rem 0 0; padding: 0; }
.bz-ticks li {
    position: relative;
    padding-left: 1.7rem;
    margin-bottom: .7rem;
    font-weight: 600;
    color: var(--bz-ink);
    font-size: .92rem;
}
/* A drawn tick rather than a font glyph, so it cannot be affected by a missing
   icon font. */
.bz-ticks li::before {
    content: '';
    position: absolute;
    left: 0; top: .42em;
    width: 11px; height: 6px;
    border-left: 2px solid var(--bz-orange);
    border-bottom: 2px solid var(--bz-orange);
    transform: rotate(-45deg);
}

/* ---- figures ------------------------------------------------------------- */
.bz-figs { list-style: none; margin: 0; padding: 0; }
.bz-fig strong {
    display: block;
    font-size: clamp(1.6rem, 3.4vw, 2.3rem);
    color: var(--bz-navy);
    line-height: 1.1;
}
.bz-fig span {
    display: block;
    font-size: .72rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    color: #8b9bb0; margin-top: .35rem;
}

/* ---- leadership ---------------------------------------------------------- */
.bz-person {
    background: #fff;
    border: 1px solid var(--bz-line);
    padding: 1.6rem 1.5rem;
    height: 100%;
}
.bz-person h3 { font-size: 1.05rem; margin: 0 0 .2rem; }
.bz-person .bz-role {
    font-size: .74rem; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--bz-orange); margin: 0 0 .9rem;
}
.bz-person p { margin: 0; font-size: .9rem; }

/* ---- button -------------------------------------------------------------- */
/* The chamfered red CTA from the site, rebuilt without the sweep so it does
   not depend on the main stylesheet. */
.bz-btn {
    display: inline-flex; align-items: center; gap: .7rem;
    padding: 15px 30px;
    background: var(--bz-red);
    color: #fff !important;
    font-size: .78rem; font-weight: 700;
    letter-spacing: .13em; text-transform: uppercase;
    text-decoration: none; border: 0;
    clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px),
                       calc(100% - 10px) 100%, 0 100%, 0 10px);
    transition: background-color .3s ease;
}
.bz-btn:hover { background: var(--bz-red-dk); color: #fff !important; text-decoration: none; }
.bz-btn svg { width: 26px; height: 10px; }

@media (max-width: 767.98px) {
    .bz-hero { padding: calc(3rem + 82px) 0 2.5rem; }   /* mobile header is 82px */
    .bz-section { padding: 3rem 0; }
}

/* ---- vision & mission ---------------------------------------------------- */
.bz-vm {
    height: 100%;
    background: #fff;
    border: 1px solid var(--bz-line);
    padding: 2rem 1.8rem;
}
.bz-vm-ic {
    display: block;
    width: 54px; height: 54px;
    margin-bottom: 1.2rem;
}
/* The orange ring that used to frame these is gone: the supplied artwork is
   already round and carries its own navy-and-orange, so a second ring around
   it read as a badge inside a badge. */
.bz-vm-ic img { width: 100%; height: 100%; object-fit: contain; display: block; }
.bz-vm-ic svg { width: 100%; height: 100%; }
/* Larger than the page's other card text: these two statements are the point
   of the section, and at 1.15/0.95 they read as captions under the icons rather
   than as the company's own words. The heading scales with the viewport so it
   does not overpower a phone. */
.bz-vm h3 {
    font-size: clamp(1.3rem, 2.4vw, 1.65rem);
    margin: 0 0 .85rem;
    color: var(--bz-navy);
}
.bz-vm p {
    margin: 0;
    font-size: 1.06rem;
    line-height: 1.8;
}
/* Marked plainly rather than filled with invented wording — a vision statement
   is the client's to write. */
.bz-pending { color: #9aa8ba; font-style: italic; }

/* ---- leadership ---------------------------------------------------------- */
.bz-leader { margin: 0; }
.bz-portrait {
    position: relative;
    border: 1px solid var(--bz-line);
    background: #fff;
    padding: 8px;
    /* The supplied portraits are close to 4:5; reserving the ratio stops the
       row jumping when the photograph loads. */
    aspect-ratio: 4 / 5;
    max-width: 340px;
}
.bz-portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Until the photographs are supplied the frame shows as a tinted panel rather
   than a broken-image icon. */
.bz-portrait.is-empty {
    background: linear-gradient(160deg, #e7edf5, #f5f8fb);
}
.bz-portrait.is-empty::after {
    content: 'Photograph to follow';
    position: absolute; inset: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: .78rem; letter-spacing: .1em; text-transform: uppercase;
    color: #9aa8ba;
}

.bz-leader h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-bottom: .2rem; }
.bz-role {
    color: var(--bz-orange);
    font-size: .8rem; font-weight: 700;
    letter-spacing: .12em; text-transform: uppercase;
    margin: 0 0 1.3rem;
}

/* The client's own layout sets each message inside large orange quotation
   marks. Drawn with pseudo-elements so no image or icon font is needed. */
.bz-quote {
    position: relative;
    margin: 0;
    padding: 0 1.6rem;
    font-size: 1.02rem;
    line-height: 1.85;
    color: var(--bz-body);
}
.bz-quote::before,
.bz-quote::after {
    position: absolute;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.6rem;
    line-height: 1;
    color: var(--bz-orange);
}
.bz-quote::before { content: '\201C'; left: 0; top: -.1em; }
.bz-quote::after  { content: '\201D'; margin-left: .15em; }

.bz-strapline {
    margin: 1.6rem 0 0;
    padding-top: 1.2rem;
    border-top: 1px solid var(--bz-line);
    font-weight: 700;
    color: var(--bz-navy);
    font-size: .98rem;
}

@media (max-width: 991.98px) {
    .bz-portrait { max-width: 280px; margin: 0 auto; }
}

/* ---- founder's message --------------------------------------------------- */
/* Its own design, deliberately set apart from the other leader rows: a navy
   band with the portrait on an offset orange frame and the message as a large
   pull quote, signed off with the name. Scoped to .bz-founder only. */
.bz-founder {
    position: relative;
    overflow: hidden;
    padding: 5.5rem 0;
    color: #fff;
    background: linear-gradient(135deg, var(--bz-navy) 0%, var(--bz-navy-dk) 100%);
}
.bz-founder::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(60% 80% at 85% 20%, rgba(90, 140, 220, .22), transparent 65%),
        repeating-linear-gradient(90deg, rgba(255, 255, 255, .035) 0 1px, transparent 1px 64px);
    pointer-events: none;
}
.bz-founder > .container { position: relative; z-index: 1; }
.bz-founder-grid {
    display: grid;
    grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
    align-items: center;
    gap: clamp(3rem, 7vw, 6.5rem);
}

.bz-founder-photo {
    position: relative;
    margin: 0 0 22px 22px;
    aspect-ratio: 4 / 5;
}
/* Offset orange frame behind the photograph. */
.bz-founder-photo::before {
    content: '';
    position: absolute;
    inset: 0;
    transform: translate(-22px, 22px);
    border: 2px solid var(--bz-orange);
}
.bz-founder-photo img {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-shadow: 0 24px 50px rgba(3, 9, 25, .45);
}
.bz-founder-photo.is-empty { background: rgba(255, 255, 255, .06); }
.bz-founder-badge {
    position: absolute;
    right: -14px;
    bottom: 28px;
    padding: .55rem 1.1rem;
    background: var(--bz-orange);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
    box-shadow: 0 10px 22px rgba(0, 0, 0, .25);
}

.bz-founder-copy .bz-kicker { margin-bottom: 1.4rem; }
.bz-founder-quote {
    position: relative;
    margin: 0;
    padding: 0;
}
/* Oversized, faint opening mark sitting behind the first lines. */
.bz-founder-quote::before {
    content: '\201C';
    position: absolute;
    top: -.3em;
    left: -.08em;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 9rem;
    line-height: 1;
    color: var(--bz-orange);
    opacity: .28;
    pointer-events: none;
}
.bz-founder-quote p {
    position: relative;
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.6;
    letter-spacing: -.005em;
}

.bz-founder-sign { display: flex; align-items: center; gap: 1.1rem; margin: 0 0 3.2rem; }
.bz-founder-rule { flex: 0 0 56px; height: 3px; background: var(--bz-orange); }
.about-page .bz-founder-sign h2 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.35rem, 2.4vw, 1.75rem);
}
.bz-founder-sign p {
    margin: .15rem 0 0;
    color: rgba(255, 255, 255, .7);
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
}

@media (max-width: 991.98px) {
    .bz-founder { padding: 4rem 0; }
    .bz-founder-grid { grid-template-columns: 1fr; gap: 3.5rem; }
    .bz-founder-photo { width: min(280px, calc(100% - 36px)); margin: 0 auto 22px; }
    .bz-founder-copy { text-align: center; }
    .bz-founder-quote::before { left: 50%; transform: translateX(-50%); }
    .bz-founder-sign { justify-content: center; text-align: left; }
}
@media (max-width: 575.98px) {
    .bz-founder-quote::before { font-size: 6.5rem; }
    .bz-founder-rule { flex-basis: 32px; }
}
.bz-founder-badge { white-space: nowrap; }

/* Light variant (Managing Director, CEO - Aerospace): same layout on a pale
   ground so the four leader rows alternate dark / light. */
.bz-founder--light {
    color: var(--bz-ink);
    background: linear-gradient(135deg, #ffffff 0%, var(--bz-tint) 100%);
}
.bz-founder--light::before {
    background:
        radial-gradient(60% 80% at 15% 20%, rgba(232, 85, 42, .07), transparent 65%),
        repeating-linear-gradient(90deg, rgba(18, 48, 94, .045) 0 1px, transparent 1px 64px);
}
.bz-founder--light .bz-founder-photo img { box-shadow: 0 24px 50px rgba(18, 48, 94, .18); }
.bz-founder--light .bz-founder-photo.is-empty { background: #e7edf5; }
.bz-founder--light .bz-founder-quote::before { opacity: .18; }
.bz-founder--light .bz-founder-quote p { color: var(--bz-ink); }
.about-page .bz-founder--light .bz-founder-sign h2 { color: var(--bz-ink); }
.bz-founder--light .bz-founder-sign p { color: var(--bz-body); }

/* Reverse variant: photograph on the right, frame and badge mirrored.
   Desktop only; below 992px every row stacks photo-first. */
@media (min-width: 992px) {
    .bz-founder--reverse .bz-founder-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 340px); }
    .bz-founder--reverse .bz-founder-photo { order: 2; margin: 0 22px 22px 0; }
    .bz-founder--reverse .bz-founder-photo::before { transform: translate(22px, 22px); }
    .bz-founder--reverse .bz-founder-badge { right: auto; left: -14px; }
}

/* ---- about us block ------------------------------------------------------ */
/* The client's own layout for this section is left-aligned in a single column
   with the heading broken over two lines and set noticeably larger than the
   other section headings — so it is not run through .bz-head, which centres. */
.bz-about { max-width: 44rem; }
.bz-about-head {
    font-size: clamp(2rem, 5vw, 3.2rem);
    line-height: 1.12;
    color: var(--bz-navy);
    margin: 0 0 1.4rem;
    letter-spacing: -.02em;
}
.bz-about-lede { font-size: 1.02rem; line-height: 1.85; margin: 0; }
/* The ticks in their design are a drawn check, larger and set clear of the
   text; the base .bz-ticks rule already draws one, this only spaces it for a
   longer list. */
.bz-about .bz-ticks { margin-top: 2rem; }
.bz-about .bz-ticks li { font-weight: 500; color: var(--bz-body); margin-bottom: 1rem; }

/* The four-panel product collage beside the About copy. Transparent around the
   panels, so it must never sit on a filled box — the section's own white is
   what the staggered edges are cut against. */
.bz-about-img {
    display: block;
    width: 100%;
    height: auto;
    /* the artwork's own width — never upscaled */
    margin-left: auto;   /* sits to the outside edge on wide screens */
}
@media (max-width: 991.98px) {
    .bz-about-img { margin: 0 auto; }
}
/* The About column no longer needs its own width cap — the grid column sets it
   now, and leaving both would narrow the text twice over. */
@media (min-width: 992px) {
    .bz-about { max-width: none; }
}

/* ---- About: perspective dot plane ---------------------------------------- */
/* Bright ground, at the client's request. The effect is the same receding grid
   and orbit rings as the reference; only the palette inverts — dark points on
   a pale ground instead of light points on a dark one.
   Colour AND strength are both set here. The script reads them back, so the
   two can never drift apart: change the background to dark again and only these
   three lines move. */
.bz-section--particles {
    position: relative;
    overflow: hidden;
    --bz-particle: 20, 52, 104;        /* brand navy, for a light ground */
    --bz-particle-alpha: 0.55;         /* dark on pale needs far less than 1 */
    background:
        radial-gradient(110% 95% at 86% 6%, rgba(150, 190, 232, .45), transparent 60%),
        linear-gradient(158deg, #ffffff 0%, #f1f5fa 45%, #e6edf7 100%);
}
#bz-particles {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;   /* never steals a click or a scroll */
}
.bz-section--particles > .container { position: relative; z-index: 1; }

/* Text returns to the page's normal dark set. */
.bz-section--particles .bz-about-head { color: var(--bz-navy); }
.bz-section--particles .bz-about-lede { color: var(--bz-body); }
.bz-section--particles .bz-ticks li   { color: var(--bz-body); }

/* The collage keeps its transparent corners, so the plane shows through them
   rather than being blocked by a flat panel. */

/* Careers page */
.careers-page { color:#20283a; background:#fff; }
.careers-hero { position:relative; min-height:590px; overflow:hidden; padding-top:110px; color:#fff; background:linear-gradient(115deg,#04122d 0%,#0b2a5b 58%,#174883 100%); }
.careers-hero::after { content:""; position:absolute; right:-8%; bottom:-45%; width:720px; height:720px; border:1px solid rgba(255,255,255,.1); border-radius:50%; box-shadow:0 0 0 90px rgba(255,255,255,.025),0 0 0 180px rgba(255,255,255,.018); }
.careers-hero-pattern { position:absolute; inset:0; opacity:.12; background:url("../assets/engine-pattern.png") center/cover no-repeat; }
.careers-hero-inner { position:relative; z-index:1; min-height:480px; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); gap:70px; align-items:center; }
.careers-hero-copy > p,.careers-eyebrow,.careers-section-heading > p,.career-cta p { margin:0 0 10px; color:var(--orange); font-size:14px; font-weight:700; letter-spacing:1.7px; }
.careers-hero h1,.careers-hero h2 { max-width:760px; margin:0; font-size:58px; line-height:1.08; font-weight:700; }
.careers-hero-copy > div { max-width:700px; margin:22px 0 30px; color:#dce6fa; font-size:17px; line-height:1.75; }
.careers-hero .benzz-btn { width:210px; height:50px; }
.careers-hero-mark { justify-self:center; width:270px; height:270px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; border:1px solid rgba(255,255,255,.32); border-radius:50%; background:radial-gradient(circle,rgba(71,132,224,.35),rgba(7,24,58,.18) 67%,transparent 68%); box-shadow:0 0 70px rgba(62,132,235,.25); }
.careers-hero-mark i { font-size:66px; color:#fff; }
.careers-hero-mark span { color:#fff; font-size:20px; line-height:1.3; font-weight:800; letter-spacing:4px; text-align:center; }
.careers-breadcrumb { background:#fff; }
.careers-breadcrumb > div { min-height:58px; display:flex; align-items:center; gap:9px; color:#6c7483; font-size:14px; }
.careers-breadcrumb a { color:#193474; text-decoration:none; }
.careers-intro { padding:82px 0; background:#fff url("../assets/indigenous-bg.jpg") center/cover no-repeat; }
.careers-intro-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:90px; align-items:start; }
.careers-intro h2,.careers-section-heading h2,.career-cta h2,.careers-intro h1 { margin:0; color:#193474; font-size:42px; line-height:1.15; font-weight:700; }
.careers-intro-copy { padding-left:34px; border-left:3px solid var(--orange); }
.careers-intro-copy p { margin:0; font-size:16px; line-height:1.8; }
.careers-intro-copy p + p { margin-top:13px; }
.career-disciplines { padding:78px 0 88px; background:#f4f7fb; }
.careers-section-heading { max-width:760px; margin:0 auto 42px; text-align:center; }
.careers-section-heading > div { margin-top:14px; color:#606b7e; font-size:16px; line-height:1.7; }
.career-discipline-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.career-discipline-card { position:relative; min-height:285px; overflow:hidden; padding:32px 28px 28px; border:1px solid #dce3ef; background:#fff; box-shadow:0 10px 28px rgba(9,35,80,.06); transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease; }
.career-discipline-card:hover { transform:translateY(-6px); border-color:#ef7841; box-shadow:0 18px 38px rgba(9,35,80,.12); }
.career-discipline-card > span { position:absolute; top:21px; right:23px; color:#a9b1bf; font-size:12px; font-weight:700; letter-spacing:1px; }
.career-discipline-card > i { width:48px; height:48px; display:flex; align-items:center; 
    justify-content:center; color:#fff; background:#193474; font-size:21px; }
.career-discipline-card h3 { margin:26px 0 12px; color:#193474; font-size:21px; line-height:1.3; 
    font-weight:700; }
.career-discipline-card p { margin:0; color:#596477; font-size:14px; line-height:1.72; }
.career-profile-card { display:flex; flex-direction:column; justify-content:center; color:#fff; border-color:#17356e; background:linear-gradient(135deg,#102958,#1e4c89); }
.career-profile-card > span { position:static; color:#f47a41; }
.career-profile-card h3 { margin-top:14px; color:#fff; font-size:26px; }
.career-profile-card p { color:#dce5f5; }
.career-profile-card a { display:inline-flex; align-items:center; gap:10px; margin-top:24px; color:#fff; font-size:14px; font-weight:700; text-decoration:none; }
.career-profile-card a i { transition:transform .25s ease; }
.career-profile-card a:hover i { transform:translateX(5px); }
.career-values { padding:82px 0 88px; color:#fff; background:#071634; }
.careers-section-heading--light h2 { color:#fff; }
.career-values-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border:1px solid rgba(255,255,255,.15); }
.career-values-grid article { min-height:235px; padding:32px 26px; border-right:1px solid rgba(255,255,255,.15); }
.career-values-grid article:last-child { border-right:0; }
.career-values-grid i { color:var(--orange); font-size:30px; }
.career-values-grid h3 { margin:25px 0 10px; font-size:19px; font-weight:700; }
.career-values-grid p { margin:0; color:#cbd6e9; font-size:14px; line-height:1.7; }
.career-process { padding:80px 0 88px; background:#fff; }
.career-process-list { max-width:980px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:0 auto; padding:0; list-style:none; border-top:1px solid #dbe1ec; }
.career-process-list li { display:grid; grid-template-columns:58px 1fr; gap:18px; padding:30px 28px; border-right:1px solid #dbe1ec; border-bottom:1px solid #dbe1ec; }
.career-process-list li:nth-child(2n) { border-right:0; }
.career-process-list > li > span { color:var(--orange); font-size:14px; font-weight:800; letter-spacing:1px; }
.career-process-list h3 { margin:0 0 8px; color:#193474; font-size:19px; font-weight:700; }
.career-process-list p { margin:0; color:#5c6678; font-size:14px; line-height:1.65; }
.career-application { padding:85px 0; color:#20283a; background:#eef3f9 url("../assets/indigenous-bg.jpg") center/cover no-repeat; }
.career-application-layout { display:grid; grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr); gap:65px; align-items:start; }
.career-application-copy { position:sticky; top:145px; }
.career-application-copy > p { margin:0 0 9px; color:var(--orange); font-size:14px; font-weight:700; letter-spacing:1.7px; }
.career-application-copy h2 { margin:0; color:#193474; font-size:42px; line-height:1.15; font-weight:700; }
.career-application-copy > div { margin-top:17px; color:#586477; font-size:16px; line-height:1.75; }
.career-application-copy ul { margin:28px 0 0; padding:0; list-style:none; }
.career-application-copy li { display:flex; align-items:flex-start; gap:10px; margin-bottom:13px; color:#334055; font-size:14px; line-height:1.5; }
.career-application-copy li i { margin-top:3px; color:var(--orange); }
.career-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 14px; padding:34px; border-top:4px solid var(--orange); background:rgba(255,255,255,.97); box-shadow:0 18px 45px rgba(13,41,85,.12); }
.career-form-field { min-width:0; }
.career-form-field label { display:block; margin:0 0 7px; color:#193474; font-size:13px; font-weight:700; }
.career-form-field label span { color:#7b8493; font-weight:500; }
.career-form-field input,.career-form-field select,.career-form-field textarea { width:100%; min-height:48px; padding:11px 14px; border:1px solid #cbd3df; border-radius:0; outline:0; color:#20283a; background:#fff; font:500 14px "Montserrat",sans-serif; transition:border-color .2s ease,box-shadow .2s ease; }
.career-form-field select { appearance:none; padding-right:38px; background-image:linear-gradient(45deg,transparent 50%,#8b94a3 50%),linear-gradient(135deg,#8b94a3 50%,transparent 50%); background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px; background-size:5px 5px; background-repeat:no-repeat; }
.career-form-field textarea { min-height:125px; resize:vertical; }
.career-form-field input:focus,.career-form-field select:focus,.career-form-field textarea:focus { border-color:#193474; box-shadow:0 0 0 3px rgba(25,52,116,.1); }
.career-form-field input[type="file"] { padding:10px; color:#596477; }
.career-form-field input[type="file"]::file-selector-button { margin:-5px 12px -5px -5px; padding:9px 13px; border:0; color:#fff; background:#193474; font:600 12px "Montserrat",sans-serif; cursor:pointer; }
.career-form-field small { display:block; margin-top:6px; color:#737d8e; font-size:11px; }
.career-form-wide,.career-form-submit,.career-form-status { grid-column:1/-1; }
.career-form-submit { margin-top:4px; }
.career-form-submit .benzz-btn { min-width:230px; height:48px; }
.career-form-submit .benzz-btn:disabled { opacity:.65; cursor:wait; }
.career-form-status { min-height:18px; margin:-7px 0 0; color:#b00000; font-size:12px; }
.career-cta { padding:58px 0; color:#fff; background:linear-gradient(105deg,#173b78,#0b1e46); }
.career-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:50px; }
.career-cta h2 { color:#fff; font-size:37px; }
.career-cta div > div { margin-top:9px; color:#d8e2f3; font-size:15px; }
.career-cta .benzz-btn { min-width:205px; height:50px; }

/* Naval systems catalogue */
.naval-catalogue-page { color:#20283a; background:#fff; }
.naval-catalogue-hero { position:relative; min-height:650px; overflow:hidden; padding-top:110px; color:#fff; background-image:linear-gradient(90deg,rgba(1,10,27,.08) 0%,rgba(2,17,42,.02) 54%,rgba(1,17,39,0) 100%),url("../assets/naval-systems-underwater-portfolio-bg.png?v=20260916"); background-image:linear-gradient(90deg,rgba(1,10,27,.08) 0%,rgba(2,17,42,.02) 54%,rgba(1,17,39,0) 100%),image-set(url("../assets/naval-systems-underwater-portfolio-bg.avif?v=20260916") type("image/avif"),url("../assets/naval-systems-underwater-portfolio-bg.png?v=20260916") type("image/png")); background-position:center; background-size:cover; background-repeat:no-repeat; isolation:isolate; }
.naval-catalogue-grid { position:absolute; z-index:-1; right:-12%; bottom:-42%; left:-12%; height:70%; opacity:.08; transform:perspective(460px) rotateX(60deg); transform-origin:center bottom; background-image:linear-gradient(rgba(80,131,214,.48) 1px,transparent 1px),linear-gradient(90deg,rgba(80,131,214,.48) 1px,transparent 1px); background-size:58px 58px; mask-image:linear-gradient(to top,#000 12%,transparent 92%); }
.naval-catalogue-hero-inner { min-height:540px; display:grid; grid-template-columns:minmax(0,1.03fr) minmax(380px,.97fr); gap:55px; align-items:center; }
.naval-catalogue-hero-copy { position:relative; z-index:2; }
.naval-catalogue-hero-copy > p,.naval-catalogue-intro-grid > div:first-child > p,.naval-products-heading > p,.naval-catalogue-cta p { margin:0 0 10px; color:var(--orange); font-size:14px; font-weight:700; letter-spacing:1.8px; }
.naval-catalogue-hero h1,.naval-catalogue-hero h2 { max-width:720px; margin:0; font-size:40px; line-height:1.08; font-weight:700; }
.naval-catalogue-hero-copy > div { max-width:670px; margin:23px 0 31px; color:#d8e3f6; font-size:17px; line-height:1.75; }
.naval-catalogue-hero .benzz-btn { width:215px; height:50px; }
.naval-catalogue-visual { position:relative; min-height:440px; display:flex; align-items:center; justify-content:center; }
.naval-catalogue-visual::before { content:""; position:absolute; width:390px; height:390px; border-radius:50%; background:radial-gradient(circle,rgba(70,136,235,.25),rgba(6,20,49,0) 68%); box-shadow:0 0 70px rgba(50,115,220,.2); }
.naval-catalogue-visual picture { position:relative; z-index:2; width:min(100%,540px); overflow:hidden; -webkit-mask-image:radial-gradient(ellipse 78% 74% at center, #000 50%,rgba(0,0,0,.9) 70%,transparent 100%); mask-image:radial-gradient(ellipse 78% 74% at center, #000 50%,rgba(0,0,0,.9) 70%,transparent 100%); }
.naval-catalogue-visual img { display:block; width:100%; max-height:430px; object-fit:contain; filter:drop-shadow(0 35px 35px rgba(0,0,0,.45)) saturate(.88) brightness(.84); }
.naval-product-showcase { position:relative; z-index:2; width:min(100%,540px); display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.naval-showcase-item { min-height:213px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:12px 10px 8px; border:1px solid rgba(184,217,255,.26); border-radius:12px; background:linear-gradient(145deg,rgba(34,88,164,.46),rgba(5,22,52,.66)); box-shadow:0 14px 28px rgba(0,0,0,.18); backdrop-filter:blur(4px); }
.naval-showcase-item picture { display:block; width:100%; height:112px; }
.naval-showcase-item img { width:100%; height:112px; max-height:none; object-fit:contain; filter:drop-shadow(0 10px 10px rgba(0,0,0,.36)); }
.naval-showcase-item span { margin-top:7px; color:#dce9ff; font-size:9px; font-weight:700; letter-spacing:.7px; line-height:1.15; text-align:center; }
.naval-orbit { position:absolute; z-index:1; border:1px solid rgba(255,255,255,.18); border-radius:50%; }
.naval-orbit-one { width:390px; height:390px; }
.naval-orbit-two { width:300px; height:300px; border-style:dashed; animation:naval-orbit-spin 22s linear infinite; }
@keyframes naval-orbit-spin { to { transform:rotate(360deg); } }
.naval-catalogue-breadcrumb { background:#fff; }
.naval-catalogue-breadcrumb > div { min-height:58px; display:flex; align-items:center; gap:9px; color:#6c7483; font-size:14px; }
.naval-catalogue-breadcrumb a { color:#193474; text-decoration:none; }
.naval-catalogue-intro { padding:78px 0; background:#fff url("../assets/indigenous-bg.jpg") center/cover no-repeat; }
.naval-catalogue-intro-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:85px; align-items:center; }
.naval-catalogue-intro h2,.naval-products-heading h2,.naval-catalogue-cta h2,.naval-catalogue-intro h1 { margin:0; color:#193474; font-size:42px; line-height:1.17; font-weight:700; }
.naval-catalogue-intro-grid > div:last-child { padding-left:32px; border-left:3px solid var(--orange); color:#586477; font-size:16px; line-height:1.8; }
.naval-products-section { position:relative; padding:88px 0 100px; overflow:hidden; background:radial-gradient(circle at 5% 5%,rgba(83,145,225,.16),transparent 25%),radial-gradient(circle at 96% 42%,rgba(242,101,34,.09),transparent 21%),#f4f7fb; }
.naval-products-section::before { content:""; position:absolute; inset:0; opacity:.34; pointer-events:none; background-image:linear-gradient(rgba(28,69,134,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(28,69,134,.045) 1px,transparent 1px); background-size:34px 34px; }
.naval-products-section > .site-container { position:relative; z-index:1; }
.naval-products-heading { position:relative; margin-bottom:50px; text-align:center; }
.naval-products-heading::after { content:""; display:block; width:64px; height:3px; margin:17px auto 0; background:linear-gradient(90deg,var(--orange),#f9b64b); }
.naval-product-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.naval-product-card { position:relative; overflow:hidden; border:1px solid rgba(191,207,229,.9); border-radius:16px; background:#fff; box-shadow:0 15px 35px rgba(13,41,85,.09); transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease; }
.naval-product-card::before { content:""; position:absolute; z-index:3; top:0; left:0; width:100%; height:4px; background:linear-gradient(90deg,var(--orange),#ffc15c); transform:scaleX(0); transform-origin:left; transition:transform .32s ease; }
.naval-product-card:hover { transform:translateY(-8px); border-color:#b8cbe7; box-shadow:0 25px 54px rgba(13,41,85,.17); }
.naval-product-card:hover::before { transform:scaleX(1); }
.naval-product-image { position:relative; min-height:315px; display:flex; align-items:center; justify-content:center; overflow:hidden; padding:25px; background:linear-gradient(180deg,#12699b 0%,#0a4d81 48%,#052c59 100%); }
.naval-product-image::before { content:""; position:absolute; inset:0; opacity:.7; background-image:radial-gradient(circle at 13% 20%,rgba(225,248,255,.9) 0 1px,transparent 2px),radial-gradient(circle at 79% 29%,rgba(225,248,255,.7) 0 1px,transparent 2px),radial-gradient(circle at 35% 52%,rgba(225,248,255,.55) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 24%,rgba(198,238,255,.16) 25% 28%,transparent 29% 45%,rgba(198,238,255,.12) 46% 49%,transparent 50% 100%); background-size:92px 92px,128px 128px,160px 160px,100% 100%; }
.naval-product-image::after { content:""; position:absolute; inset:auto 0 0; height:48%; background:linear-gradient(transparent,rgba(0,17,46,.16) 32%,rgba(0,12,34,.54)),repeating-linear-gradient(165deg,rgba(169,212,229,.12) 0 1px,transparent 1px 11px); }
.naval-product-image picture { display:contents; }
.naval-product-image img { position:relative; z-index:1; width:100%; height:265px; object-fit:contain; transition:transform .45s ease; }
.naval-product-card:hover .naval-product-image img { transform:scale(1.045); }
.naval-product-image > span { position:absolute; z-index:2; top:19px; left:20px; width:45px; height:45px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; background:#193474; box-shadow:0 7px 16px rgba(12,37,81,.25); font-size:13px; font-weight:800; letter-spacing:1px; }
.naval-product-body { padding:31px 32px 34px; }
.naval-product-body > p { margin:0 0 7px; color:var(--orange); font-size:12px; font-weight:700; letter-spacing:1.4px; }
.naval-product-body h3 { min-height:58px; margin:0; color:#193474; font-size:26px; line-height:1.2; font-weight:700; }
.naval-product-body > div { min-height:78px; margin-top:14px; color:#5a6576; font-size:15px; line-height:1.72; }
.naval-product-body ul { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 27px; padding:0; list-style:none; }
.naval-product-body li { padding:7px 10px; border-left:2px solid #87a9d8; color:#243a67; background:#eef3fa; font-size:14px; font-weight:700; }
.benzz-btn--outline.benzz-btn--outline { width:185px; height:46px; color:#193474; --btn-edge:#193474; --btn-fill:transparent; --btn-sweep:#193474; }
.benzz-btn--outline.benzz-btn--outline:hover,.benzz-btn--outline.benzz-btn--outline:focus-visible { color:#fff; }
.naval-catalogue-cta { padding:62px 0; color:#fff; background:linear-gradient(105deg,#173b78,#0b1e46); }
.naval-catalogue-cta-inner { display:flex; align-items:center; justify-content:space-between; gap:55px; }
.naval-catalogue-cta h2 { color:#fff; font-size:38px; }
.naval-catalogue-cta div > div { max-width:760px; margin-top:10px; color:#d8e2f3; font-size:15px; line-height:1.65; }
.naval-catalogue-cta .benzz-btn { min-width:205px; height:50px; }
.privacy-page { color:#24324b; background:#fff; }
.privacy-hero { padding:185px 0 82px; color:#fff; background:radial-gradient(circle at 78% 38%,rgba(53,124,220,.4),transparent 24%),linear-gradient(120deg,#06132d,#123d7b); }
.privacy-hero-inner { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.privacy-hero p { margin:0 0 10px; color:var(--orange); font-size:14px; font-weight:700; letter-spacing:1.8px; }
.privacy-hero h1,.privacy-hero h2 { margin:0; font-size:54px; line-height:1.1; }
.privacy-hero h1 + div,.privacy-hero h2 + div { max-width:530px; margin-top:18px; color:#dce8fc; font-size:17px; line-height:1.7; }
.privacy-hero-icon { width:136px; height:136px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(198,226,255,.4); border-radius:50%; color:#fff; background:rgba(116,180,255,.12); box-shadow:0 0 0 18px rgba(135,190,255,.06),0 0 50px rgba(66,147,245,.26); font-size:62px; }
.privacy-content { padding:76px 0 95px; background:#f5f8fc; }
.privacy-content-inner { max-width:900px !important; padding:50px 64px; border:1px solid #dce5f0; border-radius:14px; background:#fff; box-shadow:0 18px 46px rgba(13,41,85,.08); }
.privacy-content p { margin:0 0 24px; color:#5a6576; font-size:16px; line-height:1.82; }
/* Page H1 at the top of the legal page content (the banner title is an h2) */
.privacy-content .privacy-page-title { margin:0 0 8px; color:#193474; font-size:32px; line-height:1.2; font-weight:700; }
@media (max-width:767px) { .privacy-content .privacy-page-title { font-size:26px; } }
.privacy-content .privacy-updated { color:#6f7b8e; font-size:14px; font-weight:600; }
.privacy-content h2 { margin:34px 0 11px; color:#193474; font-size:24px; line-height:1.25; }
.privacy-content a { color:#e85f2b; font-weight:700; }
@media (prefers-reduced-motion:reduce) { .naval-orbit-two { animation:none; } .naval-product-card,.naval-product-image img { transition:none; } }

/* ---- 404 page -------------------------------------------------------------
   Reuses the Privacy page hero; the card below offers the way back. */
.notfound-content { padding:76px 0 95px; background:#f5f8fc; }
.notfound-card { max-width:980px !important; display:grid; grid-template-columns:1.1fr .9fr; gap:48px; padding:48px 56px; border:1px solid #dce5f0; border-radius:14px; background:#fff; box-shadow:0 18px 46px rgba(13,41,85,.08); }
.notfound-card h2,.notfound-card h1 { margin:0 0 12px; color:#193474; font-size:24px; line-height:1.25; }
.notfound-card p { margin:0 0 24px; color:#5a6576; font-size:16px; line-height:1.75; }
.notfound-actions { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:28px; }
.notfound-contact { list-style:none; margin:0; padding:22px 0 0; border-top:1px solid #e3eaf3; display:grid; gap:10px; }
.notfound-contact li { display:flex; align-items:center; gap:10px; font-size:15px; }
.notfound-contact i { width:18px; color:var(--orange); }
.notfound-contact a { color:#193474; font-weight:700; text-decoration:none; overflow-wrap:anywhere; }
.notfound-contact a:hover, .notfound-contact a:focus-visible { color:var(--orange); }
.notfound-links { list-style:none; margin:0; padding:0; display:grid; gap:4px; }
.notfound-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:8px; color:#193474; font-weight:600; text-decoration:none; transition:background-color .2s ease, color .2s ease; }
.notfound-links a:hover, .notfound-links a:focus-visible { background:#f1f5fb; color:var(--orange); }
.notfound-links i { font-size:13px; }
@media (max-width:991px) { .notfound-card { grid-template-columns:1fr; gap:34px; padding:34px 26px; } }

/* ---- Legal pages (Privacy, Terms, Cookies): lists, address and the cookie table ---- */
.privacy-content ul { margin:0 0 24px; padding-left:22px; color:#5a6576; font-size:16px; line-height:1.8; }
.privacy-content li { margin-bottom:8px; }
.privacy-content address { margin:0 0 24px; color:#5a6576; font-size:16px; line-height:1.8; font-style:normal; }
.policy-table-wrap { overflow-x:auto; margin:0 0 24px; border:1px solid #dce5f0; border-radius:10px; }
.policy-table { width:100%; min-width:640px; border-collapse:collapse; color:#44516a; font-size:15px; }
.policy-table th { padding:12px 14px; color:#193474; background:#f1f5fb; font-weight:700; text-align:left; white-space:nowrap; }
.policy-table td { padding:12px 14px; border-top:1px solid #e3eaf3; line-height:1.6; vertical-align:top; }
.policy-table code { color:#193474; font-size:14px; font-weight:700; white-space:nowrap; }

/* Aerial Systems "coming soon" page (reuses the privacy hero and 404 card) */
.aerial-soon-list { list-style:none; margin:0; padding:0; display:grid; gap:22px; }
.aerial-soon-list li { display:flex; align-items:flex-start; gap:16px; }
.aerial-soon-list i { flex:0 0 46px; width:46px; height:46px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#193474; background:#eef3fa; font-size:19px; }
.aerial-soon-list h3 { margin:2px 0 4px; color:#193474; font-size:17px; font-weight:700; }
.notfound-card .aerial-soon-list p { margin:0; font-size:15px; line-height:1.6; }
/* Buttons in the 404 / coming-soon card: the base button has no size of its own, and the
   outline variant is fixed at 185px, too narrow for longer labels. */
.notfound-actions .benzz-btn.benzz-btn { width:auto; height:46px; font-size:14px; }
/* Home intro paragraph under the page H1 */
.indigenous-intro .indigenous-summary { max-width:920px; margin:-13px auto 40px; font-size:17px; line-height:1.7; font-weight:500; text-align:center; }
@media (max-width:767px) { .indigenous-intro .indigenous-summary { margin:-15px auto 28px; font-size:16px; line-height:1.65; } }

/* FAQ accordion (faq.php) (native <details>, works without JavaScript) */
.faq-section { padding:80px 0 90px; background:#f5f8fc; }
.faq-inner { display:flex; flex-direction:column; gap:32px; }
.faq-heading p { margin:0 0 10px; color:var(--orange); font-size:14px; font-weight:700; letter-spacing:1.8px; }
.faq-heading h2 { margin:0; color:#193474; font-size:40px; line-height:1.15; font-weight:700; }
.faq-list { display:grid; gap:12px; }
.faq-item { border:1px solid #dce5f0; border-radius:10px; background:#fff; transition:box-shadow .25s ease, border-color .25s ease; }
.faq-item[open]:not(.is-closing) { border-color:#c9d6e8; box-shadow:0 12px 30px rgba(13,41,85,.07); }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 24px; list-style:none; cursor:pointer; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary:focus,.faq-item summary:focus-visible { outline:none; }
.faq-item h3 { margin:0; color:#193474; font-size:18px; line-height:1.4; font-weight:700; }
.faq-item summary i { flex:0 0 32px; width:32px; height:32px; display:flex; align-items:center; justify-content:center; border-radius:50%; color:#fff; background:var(--orange); font-size:13px; transition:transform .25s ease; }
.faq-item[open]:not(.is-closing) summary i { transform:rotate(45deg); }
/* Padding sits on the paragraph so the answer can animate all the way to 0 height. */
.faq-answer { overflow:hidden; }
.faq-answer p { margin:0; padding:0 24px 22px; color:#4a5568; font-size:16px; line-height:1.75; }
@media (max-width:767px) {
  .faq-section { padding:56px 0 64px; }
  .faq-heading h2 { font-size:30px; }
  .faq-item summary { padding:16px 18px; }
  .faq-item h3 { font-size:16px; }
  .faq-inner { gap:24px; }
  .faq-answer p { padding:0 18px 18px; }
}
@media (prefers-reduced-motion:reduce) { .faq-item, .faq-item summary i { transition:none; } }

/* Footer visitor counter */
.footer-visitors { font-weight:500; white-space:nowrap; }
.footer-visitors i { margin-right:4px; color:var(--orange); }
