:root { --font:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif; --display:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif; --blue:#289cda; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#081c32; color:#fff; font:16px/1.5 var(--font); overflow-x:hidden; }
button,input,select { font:inherit; }
button { cursor:pointer; }
a { color:inherit; text-decoration:none; }
button:focus-visible,a:focus-visible { outline:3px solid #65c8ff; outline-offset:4px; }
.site-shell { position:relative; min-height:100svh; width:100%; }
.header { position:absolute; z-index:30; top:clamp(17px,3.2vh,30px); left:50%; transform:translateX(-50%); display:flex; align-items:center; justify-content:space-between; gap:0; width:calc(100% - 8%); max-width:1250px; min-height:80px; padding:15px 20px 15px 24px; border-radius:12px; background:rgba(10,17,29,.93); border:1px solid rgba(186,226,255,.18); box-shadow:0 10px 34px #00000050; -webkit-backdrop-filter:blur(13px); backdrop-filter:blur(13px); }
.brand { flex-shrink:0; display:flex; align-items:center; width:178px; }
.brand img { display:block; width:175px; height:auto; max-height:56px; object-fit:contain; mix-blend-mode:normal; background:transparent; padding:0; border-radius:0; filter: drop-shadow(0 2px 6px rgba(0,0,0,.22)); }
.nav { display:flex; flex:1; justify-content:flex-start; align-items:center; gap:clamp(12px,1.55vw,22px); min-width:0; margin-left:clamp(16px,6.3vw,86px); }
.nav-link { display:block; padding:8px 0; border:0; background:none; color:#f7fbff; font-size:16px; font-weight:500; line-height:1.4; white-space:nowrap; transition:color .2s; }
.nav-link:hover,.nav-link:focus-visible { color:#75d4ff; }
.services-wrap { position:relative; }
.services-menu { display:none; position:absolute; left:-25px; top:44px; width:285px; flex-direction:column; padding:12px; background:#122437; border:1px solid #35536a; border-radius:13px; box-shadow:0 18px 55px #021a2e66; }
.services-menu.open { display:flex; }
.services-menu button { display:flex; width:100%; justify-content:space-between; align-items:center; padding:10px 12px; background:transparent; border:0; border-radius:8px; color:#f4faff; font-size:13px; text-align:left; font-weight:700; }
.services-menu button span { font-size:10px; opacity:.55; }
.services-menu button:hover:not(:disabled) { background:#1e415c; color:#83d8ff; }
.services-menu button:disabled { cursor:not-allowed; color:#7894a6; }
.menu-divider { margin:8px 5px; height:1px; background:#35536a; }
.menu-hint { padding:3px 12px 6px; color:#8fb5d0; font:800 10px var(--font); letter-spacing:1.3px; }
.quote-btn { flex-shrink:0; display:grid; place-items:center; min-width:131px; min-height:40px; border:0; border-radius:24px; background:#168cd0; color:#fff; font-size:14px; font-weight:700; transition:background .2s, transform .2s; }
.quote-btn:hover { background:#39b6f4; transform:translateY(-1px); }
.menu-toggle { display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; height:38px; width:38px; border:0; background:transparent; }
.menu-toggle span { width:22px; height:2px; background:#ffffff; border-radius:5px; }
/* Video fills the viewport; no split column, floating card or video frame. */
.hero { position:relative; width:100%; height:100svh; min-height:580px; overflow:hidden; isolation:isolate; background:#0b2d4d; }
.video-stage,.video-layer,.video-vignette { position:absolute; inset:0; }
.video-stage { z-index:-1; background:#0c3655; }
.video-layer { opacity:0; transition:opacity 1.3s ease; }
.video-layer.is-active { opacity:1; z-index:1; }
.video-layer video { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.video-vignette { z-index:2; pointer-events:none; background:linear-gradient(90deg,rgba(2,13,29,.69) 0%,rgba(3,21,45,.50) 38%,rgba(4,21,39,.23) 75%,rgba(4,20,35,.26) 100%),linear-gradient(180deg,rgba(3,19,35,.30),transparent 30%,rgba(3,14,32,.2) 100%); }
.hero-copy { position:absolute; top:53%; left:max(5.1%,32px); transform:translateY(-32%); z-index:4; width:min(750px,82%); color:white; text-shadow:0 2px 15px #071b3280; transition:opacity .28s ease,filter .28s ease; }
.hero-copy.changing { opacity:0; filter:blur(3px); }
.hero h1 { font:800 clamp(38px,4.25vw,60px)/1.13 var(--display); letter-spacing:-.043em; margin:0 0 12px; color:#fff; }
.hero h2 { font:700 clamp(22px,2.2vw,32px)/1.25 var(--display); letter-spacing:-.022em; margin:0; color:#fff; }
.description { max-width:565px; margin:27px 0 0; font:500 clamp(14px,1.14vw,16px)/1.72 var(--font); color:#f2f8fc; }
.hero-cta { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin-top:43px; padding:9px 24px; background:#050505; border:2px solid #fff; border-radius:2px; color:white; font:700 14px var(--font); box-shadow:0 4px 12px #00000030; transition:background .2s,color .2s,transform .2s; }
.hero-cta:hover { background:white; color:#081c30; transform:translateY(-2px); }
.slider-toolbar { position:absolute; z-index:6; right:7.8%; bottom:7.0%; display:flex; justify-content:flex-end; align-items:center; gap:23px; }
.slider-dots { display:flex; align-items:center; gap:8px; opacity:.65; transition:opacity .2s; }
.slider-dots:hover { opacity:1; }
.slide-dot { width:8px; height:8px; padding:0; border:1px solid #fff; border-radius:50%; background:#ffffff60; transition:width .2s,background .2s; }
.slide-dot.active { width:23px; border-radius:10px; background:white; }
.slider-controls { display:flex; align-items:center; gap:18px; }
.control-arrow { display:grid; place-items:center; width:27px; height:27px; padding:0; border:0; border-radius:50%; background:#eff2f6; color:#152744; font:800 16px/1 var(--font); box-shadow:0 0 8px #09203933; transition:transform .2s,background .2s; }
.control-arrow:hover { background:white; transform:scale(1.14); }
.pause-rotation { font-size:12px; font-weight:800; background:rgba(238,245,252,.91); }
.pause-rotation[aria-pressed="true"] { color:#137cb4; background:#e5f7ff; }
.toast { position:fixed; bottom:25px; left:50%; transform:translate(-50%,15px); z-index:70; max-width:calc(100vw - 32px); padding:12px 19px; border-radius:10px; color:white; background:#0a314d; box-shadow:0 12px 40px #0008; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; font-size:13px; text-align:center; }
.toast.visible { opacity:1; transform:translate(-50%,0); }
.modal { width:min(450px,94vw); padding:27px; border:1px solid #d4ecf8; border-radius:19px; box-shadow:0 25px 100px #092d4a42; color:#123e5c; background:#fff; }
.modal::backdrop { background:#102f48ae; backdrop-filter:blur(5px); }
.modal-head { display:flex; align-items:start; justify-content:space-between; }
.modal-head small { color:#188bc7; font-size:10px; font-weight:800; letter-spacing:2px; }
.modal-head h2 { margin:8px 0 0; font:800 25px var(--display); }
.modal p { color:#698597; font-size:13px; line-height:1.7; }
.modal-close { width:35px; height:35px; background:#eaf7ff; border:0; border-radius:50%; color:#376c89; }
.modal label { display:block; margin-top:15px; color:#35617b; font-size:12px; font-weight:700; }
.modal input,.modal select { width:100%; margin-top:6px; padding:12px 11px; border:1px solid #cfebf7; background:#f8fcff; border-radius:8px; color:#133c59; }
.modal-action { width:100%; margin-top:24px; padding:13px; background:#168ac7; color:#fff; border:0; border-radius:8px; font-weight:700; }
@media(max-width:1190px) {
  .header { width:calc(100% - 48px); padding:12px 18px; }
  .brand { width:166px; } .brand img { width:164px; max-height:52px; }
  .nav { margin-left:clamp(10px,2vw,26px); gap:clamp(10px,1.4vw,17px); }
  .nav-link { font-size:14px; }
  .quote-btn { min-width:112px; font-size:12.5px; }
}
@media(max-width:930px) {
  .header { min-height:72px; }
  .nav { position:absolute; top:calc(100% + 10px); left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; margin:0; padding:13px; border-radius:14px; border:1px solid #31526a; background:#0b1728fa; box-shadow:0 15px 40px #031d3f77; max-height:calc(100svh - 110px); overflow:auto; }
  .nav.expanded { display:flex; }
  .nav-link { width:100%; padding:12px; font-size:15px; text-align:left; }
  .services-menu { position:static; width:100%; box-shadow:none; border:0; background:#132d43; }
  .quote-btn { margin-left:auto; margin-right:12px; }
  .menu-toggle { display:flex; }
  .hero-copy { top:53%; left:6%; width:82%; }
  .hero h1 { font-size:clamp(38px,6vw,55px); }
  .slider-toolbar { right:6%; }
}
@media(max-width:600px) {
  .header { top:15px; width:calc(100% - 26px); min-height:65px; padding:8px 12px; border-radius:11px; }
  .brand { width:142px; } .brand img { width:140px; max-height:46px; }
  .quote-btn { min-width:102px; min-height:36px; margin-right:5px; font-size:11px; }
  .menu-toggle { width:32px; }
  .hero { min-height:620px; }
  .video-layer video { object-position:center; }
  .video-vignette { background:linear-gradient(90deg,rgba(3,15,32,.75),rgba(3,18,35,.33)),linear-gradient(180deg,rgba(5,14,25,.2),rgba(3,14,30,.25) 52%,rgba(2,12,27,.6)); }
  .hero-copy { top:50%; left:6%; width:88%; transform:translateY(-28%); }
  .hero h1 { font-size:clamp(34px,8.8vw,49px); margin-bottom:12px; }
  .hero h2 { font-size:clamp(20px,5.2vw,28px); }
  .description { margin-top:22px; font-size:14px; line-height:1.65; max-width:370px; }
  .hero-cta { margin-top:30px; font-size:13px; }
  .slider-toolbar { right:7%; bottom:6%; gap:18px; }
  .slider-controls { gap:13px; }
}
@media(max-width:390px) { .brand { width:124px; } .brand img { width:122px; } .quote-btn { min-width:90px; font-size:10px; } .slider-dots { display:none; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }

/* Approved service navigation: real links with hover and keyboard access */
.services-wrap:hover .services-menu,.services-wrap:focus-within .services-menu{display:flex;}
.services-menu{width:340px;max-height:min(72vh,470px);overflow-y:auto;z-index:500;}
.services-menu a{display:flex;align-items:center;min-height:46px;padding:10px 13px;color:#f4faff;border-radius:9px;text-decoration:none;font:700 12.5px/1.3 var(--font,system-ui);white-space:normal;}
.services-menu a:hover,.services-menu a:focus-visible,.services-menu a[aria-current=page]{background:#1e415c;color:#83d8ff;outline:none;}
@media(max-width:850px){.services-menu{max-height:none;width:100%;}}

/* Services overview link with separate category dropdown control. */
.services-wrap{display:flex;align-items:center;gap:5px}.services-toggle{font-size:19px;line-height:1;padding:5px 3px;min-width:20px}.services-overview-link.active{color:#82d5ff}.services-menu{top:calc(100% + 9px)}
@media(max-width:850px){.services-wrap{display:flex;flex-wrap:wrap;align-items:center}.services-menu{flex-basis:100%;position:static}}
