:root{
  --sky:        #20B9F0;
  --blue-mid:   #057CBC;
  --navy:       #23335E;
  --navy-deep:  #141F3D;
  --paper:      #F6FAFD;
  --paper-dim:  #EAF3FA;
  --white:      #FFFFFF;
  --ink:        #16213A;
  --text-dim:   #566277;
  --line:       rgba(35,51,94,0.12);
  --display: Arial, "Helvetica Neue", ui-sans-serif, sans-serif;
  --body: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; font-family:var(--body); background:var(--paper); color:var(--ink); line-height:1.62; -webkit-font-smoothing:antialiased;}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:1240px; margin:0 auto; padding:0 28px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important;}}
@media (prefers-reduced-motion: reduce){
  .marquee-track,.news-track{animation:none !important; transform:none !important;}
}
.reveal{opacity:0; transform:translateY(20px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

/* ---- News ticker ---- */
.news-ticker{background:linear-gradient(90deg, var(--sky), var(--blue-mid)); color:#fff; overflow:hidden; position:relative;}
.news-ticker-inner{display:flex; align-items:center;}
.news-ticker-tag{flex:none; background:var(--navy-deep); font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; padding:8px 16px; display:flex; align-items:center; gap:7px; z-index:2;}
.news-ticker-tag svg{width:13px; height:13px;}
.news-track-mask{overflow:hidden; flex:1; -webkit-mask-image:linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent); mask-image:linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);}
.news-track{display:flex; gap:0; width:max-content; animation:newsMove 85s linear infinite;}
.news-track span{white-space:nowrap; font-size:.8rem; font-weight:500; padding:8px 30px; border-right:1px solid rgba(255,255,255,.35);}
@keyframes newsMove{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ---- Top strip ---- */
.top-strip{background:var(--navy-deep); color:rgba(255,255,255,.82); font-size:.8rem;}
.top-strip .wrap{display:flex; justify-content:space-between; align-items:center; padding:8px 28px;}
.top-strip-left{display:flex; gap:22px;}
.top-strip a{text-decoration:none; color:inherit;}
.top-strip-left span{display:inline-flex; align-items:center; gap:6px;}
.top-social{display:flex; gap:12px;}
.top-social a{width:26px; height:26px; border-radius:50%; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center;}
.top-social svg{width:13px; height:13px; fill:#fff;}
@media (max-width:700px){.top-strip-left span:nth-child(2){display:none;}}

/* ---- Nav ---- */
.topbar{position:sticky; top:0; z-index:60; background:rgba(246,250,253,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
.topbar-inner{display:flex; align-items:center; justify-content:space-between; padding:12px 0;}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand img{height:38px; width:auto;}
.brand-text{display:flex; flex-direction:column; line-height:1.05;}
.brand-text b{font-family:var(--display); font-size:1.05rem; font-weight:700; color:var(--navy);}
.brand-text span{font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; color:var(--blue-mid);}
.nav-links{display:none; align-items:center; gap:26px; font-size:.9rem; font-weight:500;}
@media (min-width:980px){.nav-links{display:flex;}}
.nav-links a{text-decoration:none; color:var(--ink); opacity:.8; position:relative;}
.nav-links a:hover{opacity:1; color:var(--blue-mid);}
.btn{display:inline-flex; align-items:center; gap:8px; padding:11px 22px; border-radius:100px; font-weight:600; font-size:.87rem; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:transform .2s ease, box-shadow .2s ease, background .2s ease;}
.btn-primary{background:linear-gradient(135deg, var(--sky), var(--blue-mid)); color:#fff;}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 26px rgba(5,124,188,.35);}
.btn-navy{background:var(--navy); color:#fff;}
.btn-navy:hover{transform:translateY(-2px); box-shadow:0 12px 26px rgba(20,31,61,.3);}
.btn-ghost{border-color:var(--navy); color:var(--navy);}
.btn-ghost:hover{background:var(--navy); color:#fff;}
.nav-cta{display:none;}
@media (min-width:980px){.nav-cta{display:inline-flex;}}
.burger{display:flex; flex-direction:column; justify-content:center; gap:5px; width:38px; height:38px; border-radius:8px; border:1px solid var(--line); background:none; cursor:pointer;}
@media (min-width:980px){.burger{display:none;}}
.burger span{display:block; width:18px; height:2px; margin:0 auto; background:var(--navy); transition:transform .25s ease, opacity .25s ease;}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-panel{max-height:0; overflow:hidden; background:var(--paper); border-bottom:1px solid var(--line); transition:max-height .35s ease;}
.mobile-panel.open{max-height:420px;}
.mobile-panel-inner{display:flex; flex-direction:column; padding:6px 0 18px;}
.mobile-panel a{padding:12px 4px; text-decoration:none; color:var(--navy); font-weight:600; border-bottom:1px solid var(--line); font-size:.94rem;}
.progress-bar{position:absolute; left:0; bottom:-1px; height:2px; width:0%; background:linear-gradient(90deg, var(--sky), var(--blue-mid)); z-index:2;}
@media (max-width:980px){
  .topbar-inner .brand{margin-left:10px;}
  .topbar-inner .burger{margin-right:10px;}
  .mobile-panel-inner{margin-left:10px;}
}

/* ---- Hero carousel ---- */
.hero{position:relative; overflow:hidden; min-height:88vh; display:flex; align-items:center; background:var(--navy-deep);}
#heroCanvas{position:absolute; inset:0; width:100%; height:100%;}
.hero-scrim{position:absolute; inset:0; background:radial-gradient(120% 100% at 20% 20%, rgba(32,185,240,.18), transparent 55%), linear-gradient(180deg, rgba(20,31,61,.55) 0%, rgba(20,31,61,.85) 100%); pointer-events:none;}
.hero-inner{position:relative; z-index:2; width:100%;}
.slide-eyebrow{font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--sky); display:flex; align-items:center; gap:9px; margin-bottom:18px; min-height:1.2em;}
.slide-eyebrow::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--sky); box-shadow:0 0 0 4px rgba(32,185,240,.25);}
.hero h1{font-family:var(--display); font-weight:700; font-size:clamp(2rem,4.6vw,3.5rem); color:#fff; max-width:18ch; margin:0 0 26px; letter-spacing:-.01em; line-height:1.12; min-height:2.2em;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:44px;}
.play-btn{display:inline-flex; align-items:center; gap:12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.28); color:#fff; padding:9px 20px 9px 9px; border-radius:100px; cursor:pointer; font-family:var(--body); font-weight:600; font-size:.87rem;}
.play-btn .circle{width:34px; height:34px; border-radius:50%; background:var(--sky); display:flex; align-items:center; justify-content:center; flex:none;}
.play-btn:hover{background:rgba(255,255,255,.14);}
.hero-dots{display:flex; gap:9px;}
.hero-dot{width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.3); border:none; cursor:pointer; padding:0; transition:background .25s ease, transform .25s ease;}
.hero-dot.active{background:var(--sky); transform:scale(1.3);}
.hero-arrows{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:100%; display:flex; justify-content:space-between; pointer-events:none; padding:0 20px;}
.hero-arrow{pointer-events:auto; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.25); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer;}
@media (max-width:700px){.hero-arrows{display:none;}}

/* ---- Marquee ---- */
.marquee-wrap{background:var(--white); border-bottom:1px solid var(--line); padding:18px 0; overflow:hidden;}
.marquee-label{font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); text-align:center; margin-bottom:12px;}
.marquee-track-mask{overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
.marquee-track{display:flex; gap:52px; width:max-content; animation:marqueeMove 30s linear infinite; align-items:center;}
.marquee-track span{font-family:var(--display); font-weight:600; font-size:1rem; color:var(--navy); opacity:.5; white-space:nowrap;}
@keyframes marqueeMove{from{transform:translateX(0);} to{transform:translateX(-50%);}}

section{padding:96px 0;}
.section-tight{padding:72px 0;}
.eyebrow{font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--blue-mid); margin:0 0 14px; display:flex; align-items:center; gap:10px;}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--blue-mid);}
h2{font-family:var(--display); font-weight:700; font-size:clamp(1.7rem,3vw,2.35rem); color:var(--navy); margin:0 0 18px; letter-spacing:-.01em; max-width:20ch;}
.lead-text{font-size:1.03rem; color:var(--text-dim); max-width:62ch;}
.center-text{text-align:center;}
.center-text h2, .center-text .lead-text{margin-left:auto; margin-right:auto;}

/* ---- About ---- */
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr; gap:32px;}}
.about-grid img{border-radius:16px;}
.about-facts{display:flex; gap:22px; margin-top:28px; flex-wrap:wrap;}
.about-fact b{display:block; font-family:var(--mono); font-size:1.5rem; color:var(--navy);}
.about-fact span{font-size:.78rem; color:var(--text-dim);}

/* ---- Offer cards ---- */
.offer-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:44px;}
@media (max-width:920px){.offer-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.offer-grid{grid-template-columns:1fr;}}
.offer-card{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:28px 24px; text-align:center; transition:transform .25s ease, box-shadow .25s ease;}
.offer-card:hover{transform:translateY(-6px); box-shadow:0 18px 36px rgba(20,31,61,.1);}
.offer-card .icon{width:54px; height:54px; border-radius:14px; background:linear-gradient(135deg, var(--sky), var(--blue-mid)); display:flex; align-items:center; justify-content:center; margin:0 auto 16px;}
.offer-card .icon svg{width:26px; height:26px; stroke:#fff;}
.offer-card h3{font-family:var(--display); font-size:1.05rem; font-weight:700; margin:0 0 8px; color:var(--navy);}
.offer-card p{font-size:.87rem; color:var(--text-dim); margin:0;}

/* ---- Divisions ---- */
.div-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:44px;}
@media (max-width:920px){.div-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.div-grid{grid-template-columns:1fr;}}
.div-card{background:var(--white); border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease;}
.div-card:hover{transform:translateY(-5px); box-shadow:0 18px 36px rgba(20,31,61,.1);}
.div-card .div-top{height:6px; background:linear-gradient(90deg, var(--sky), var(--blue-mid));}
.div-card-body{padding:26px;}
.div-card .num{font-family:var(--mono); font-size:.72rem; color:var(--blue-mid); letter-spacing:.06em;}
.div-card h3{font-family:var(--display); font-size:1.08rem; font-weight:700; margin:8px 0 8px; color:var(--navy);}
.div-card p{font-size:.87rem; color:var(--text-dim); margin:0;}

/* ---- Stats ---- */
.stats-band{background:var(--navy-deep); position:relative; overflow:hidden;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px; position:relative; z-index:1;}
@media (max-width:700px){.stats-grid{grid-template-columns:repeat(2,1fr);}}
.stat-box{text-align:center; padding:14px;}
.stat-box b{display:block; font-family:var(--mono); font-weight:600; font-size:2.2rem; background:linear-gradient(135deg,#fff,var(--sky)); -webkit-background-clip:text; background-clip:text; color:transparent;}
.stat-box span{font-size:.85rem; color:rgba(255,255,255,.68);}

/* ---- Testimonials ---- */
.testi-wrap{position:relative; max-width:820px; margin:44px auto 0;}
.testi-track{overflow:hidden;}
.testi-slides{display:flex; transition:transform .5s ease;}
.testi-slide{flex:0 0 100%; padding:0 8px;}
.testi-card{background:var(--white); border:1px solid var(--line); border-radius:18px; padding:34px; text-align:center;}
.testi-card p{font-style:italic; font-size:1.05rem; color:var(--ink); margin:0 0 22px; line-height:1.6;}
.testi-avatar{width:52px; height:52px; border-radius:50%; background:linear-gradient(135deg, var(--sky), var(--blue-mid)); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; margin:0 auto 10px;}
.testi-name{font-weight:700; color:var(--navy); font-size:.95rem;}
.testi-role{font-size:.78rem; color:var(--text-dim);}
.testi-dots{display:flex; justify-content:center; gap:8px; margin-top:22px;}
.testi-dot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; cursor:pointer; padding:0;}
.testi-dot.active{background:var(--blue-mid);}
.testi-arrow{position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border-radius:50%; background:var(--white); border:1px solid var(--line); box-shadow:0 8px 20px rgba(20,31,61,.1); display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--navy);}
.testi-arrow.prev{left:-56px;}
.testi-arrow.next{right:-56px;}
@media (max-width:900px){.testi-arrow{display:none;}}

/* ---- Gallery ---- */
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:44px;}
@media (max-width:820px){.gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.gallery-grid{grid-template-columns:1fr;}}
.gallery-grid figure{margin:0; border-radius:14px; overflow:hidden; position:relative; aspect-ratio:4/3; cursor:zoom-in;}
.gallery-grid figure.tall{grid-row:span 2; aspect-ratio:4/6.2;}
.gallery-grid img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.gallery-grid figure:hover img{transform:scale(1.07);}
.gallery-grid figcaption{position:absolute; left:0; right:0; bottom:0; padding:12px 14px; font-size:.75rem; color:#fff; background:linear-gradient(0deg, rgba(0,0,0,.6), transparent);}

/* ---- Lightbox ---- */
.lightbox{position:fixed; inset:0; z-index:200; background:rgba(10,18,32,.92); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; padding:32px; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.lightbox.open{opacity:1; pointer-events:auto;}
.lightbox img{max-width:min(900px,90vw); max-height:78vh; border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.lightbox-cap{color:#fff; font-size:.88rem; margin-top:14px; text-align:center; font-family:var(--mono);}
.lightbox-close{position:absolute; top:26px; right:32px; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.2rem; cursor:pointer;}
.lightbox-inner{display:flex; flex-direction:column; align-items:center;}

/* ---- CTA band ---- */
.cta-band{background:linear-gradient(120deg, var(--navy-deep), var(--blue-mid)); color:#fff; border-radius:24px; padding:44px 40px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px;}
.cta-band .eyebrow{color:var(--sky);}
.cta-band .eyebrow::before{background:var(--sky);}
.cta-band h2{color:#fff; margin:0; max-width:24ch;}

/* ---- Video modal ---- */
.video-modal{position:fixed; inset:0; z-index:200; background:rgba(6,18,26,.92); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.video-modal.open{opacity:1; pointer-events:auto;}
.video-modal video{width:min(920px,92vw); border-radius:12px; box-shadow:0 30px 80px rgba(0,0,0,.5);}
.video-close{position:absolute; top:26px; right:30px; width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:1.2rem; cursor:pointer;}

/* ---- Footer ---- */
footer{background:var(--navy-deep); color:rgba(255,255,255,.68); padding-top:64px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr 1.1fr; gap:28px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.1);}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr 1fr;}}
@media (max-width:620px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:420px){.footer-grid{grid-template-columns:1fr;}}
.footer-grid h4{font-family:var(--display); color:#fff; font-size:.95rem; margin:0 0 16px;}
.footer-grid ul{list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:9px; font-size:.87rem;}
.footer-grid a{text-decoration:none; color:rgba(255,255,255,.68);}
.footer-grid a:hover{color:var(--sky);}
.footer-brand p{font-size:.87rem; max-width:34ch; margin:14px 0 0;}
.footer-bottom{text-align:center; padding:22px 0; font-size:.8rem; color:rgba(255,255,255,.5);}

/* ---- Fabs ---- */
.fab-stack{position:fixed; right:22px; bottom:24px; z-index:60; display:flex; flex-direction:column; gap:12px; align-items:flex-end;}
.fab{width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:#25D366; color:#fff; box-shadow:0 10px 26px rgba(0,0,0,.28); text-decoration:none; position:relative;}
.fab::after{content:""; position:absolute; inset:-6px; border-radius:50%; border:2px solid rgba(37,211,102,.5); animation:pulseRing 2.4s ease-out infinite;}
@keyframes pulseRing{0%{transform:scale(.85); opacity:.9;} 100%{transform:scale(1.35); opacity:0;}}
.fab-top{width:42px; height:42px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; text-decoration:none; opacity:0; pointer-events:none; transform:translateY(10px); transition:opacity .3s ease, transform .3s ease;}

/* ---- Chat widget ---- */
.fab-chat{background:linear-gradient(135deg, var(--sky), var(--blue-mid));}
.fab-chat::after{border-color:rgba(32,185,240,.5);}
.fab-online-dot{position:absolute; top:2px; right:2px; width:13px; height:13px; border-radius:50%; background:#2ecc71; border:2px solid #fff;}
.chat-window{
  position:fixed; right:22px; bottom:96px; z-index:70; width:min(360px, calc(100vw - 44px)); height:min(500px, 70vh);
  background:var(--white); border-radius:18px; box-shadow:0 24px 60px rgba(20,31,61,.28);
  display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(16px) scale(.98); pointer-events:none; transition:opacity .25s ease, transform .25s ease;
}
.chat-window.open{opacity:1; transform:none; pointer-events:auto;}
.chat-header{background:linear-gradient(120deg, var(--navy-deep), var(--blue-mid)); color:#fff; display:flex; align-items:center; gap:12px; padding:14px 16px; flex:none;}
.chat-avatar{width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:700; font-size:.85rem; flex:none;}
.chat-header-text{flex:1; line-height:1.25;}
.chat-header-text b{font-family:var(--display); font-size:.92rem;}
.chat-status{display:flex; align-items:center; gap:6px; font-size:.72rem; color:rgba(255,255,255,.75);}
.chat-status .dot{width:7px; height:7px; border-radius:50%; background:#2ecc71; box-shadow:0 0 0 0 rgba(46,204,113,.6); animation:dotPulse 1.8s infinite;}
@keyframes dotPulse{0%{box-shadow:0 0 0 0 rgba(46,204,113,.55);} 70%{box-shadow:0 0 0 6px rgba(46,204,113,0);} 100%{box-shadow:0 0 0 0 rgba(46,204,113,0);}}
.chat-close{background:rgba(255,255,255,.12); border:none; color:#fff; width:28px; height:28px; border-radius:50%; cursor:pointer; font-size:.95rem; flex:none;}
.chat-body{flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--paper);}
.chat-msg{display:flex; max-width:88%;}
.chat-msg.bot{align-self:flex-start;}
.chat-msg.user{align-self:flex-end; margin-left:auto;}
.chat-msg .bubble{padding:10px 13px; border-radius:14px; font-size:.85rem; line-height:1.45;}
.chat-msg.bot .bubble{background:var(--white); border:1px solid var(--line); color:var(--ink); border-bottom-left-radius:4px;}
.chat-msg.user .bubble{background:linear-gradient(135deg, var(--sky), var(--blue-mid)); color:#fff; border-bottom-right-radius:4px;}
.bubble.typing{display:flex; gap:4px; align-items:center; padding:13px 15px;}
.bubble.typing span{width:6px; height:6px; border-radius:50%; background:var(--text-dim); opacity:.5; animation:typingBounce 1.1s infinite;}
.bubble.typing span:nth-child(2){animation-delay:.15s;}
.bubble.typing span:nth-child(3){animation-delay:.3s;}
@keyframes typingBounce{0%,60%,100%{transform:translateY(0); opacity:.4;} 30%{transform:translateY(-4px); opacity:1;}}
.chat-quick{display:flex; flex-wrap:wrap; gap:8px; padding:0 16px 12px; flex:none;}
.chat-chip{background:var(--paper-dim); border:1px solid var(--line); color:var(--navy); font-size:.78rem; font-weight:600; padding:8px 13px; border-radius:100px; cursor:pointer;}
.chat-chip:hover{background:var(--sky); color:#fff; border-color:var(--sky);}
.chat-input-row{display:flex; gap:8px; padding:12px; border-top:1px solid var(--line); flex:none; background:var(--white);}
.chat-input-row input{flex:1; border:1px solid var(--line); border-radius:100px; padding:9px 14px; font-family:var(--body); font-size:.85rem; outline:none;}
.chat-input-row input:focus{border-color:var(--blue-mid);}
.chat-input-row button{width:38px; height:38px; border-radius:50%; border:none; background:var(--navy); color:#fff; cursor:pointer; flex:none;}
.chat-form-bubble{background:var(--white) !important; border:1px solid var(--line) !important; padding:14px !important; width:100%;}
.chat-lead-form{display:flex; flex-direction:column; gap:8px;}
.chat-lead-form input, .chat-lead-form textarea{border:1px solid var(--line); border-radius:10px; padding:9px 11px; font-family:var(--body); font-size:.83rem; outline:none; resize:vertical;}
.chat-lead-form input:focus, .chat-lead-form textarea:focus{border-color:var(--blue-mid);}
.chat-lead-form button{background:linear-gradient(135deg, var(--sky), var(--blue-mid)); color:#fff; border:none; border-radius:10px; padding:10px; font-weight:600; font-size:.85rem; cursor:pointer;}
.chat-cta-btn{display:inline-block; background:#25D366; color:#fff; text-decoration:none; padding:9px 16px; border-radius:100px; font-weight:600; font-size:.82rem;}
@media (max-width:480px){.chat-window{right:12px; bottom:88px;}}
.fab-top.show{opacity:1; pointer-events:auto; transform:none;}

/* ================= Multi-page additions ================= */

/* ---- Nav active state ---- */
.nav-links a.active{opacity:1; color:var(--blue-mid); font-weight:700;}
.nav-links a.active::after{content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px; background:var(--blue-mid); border-radius:2px;}

/* ---- Page hero (interior pages) ---- */
.page-hero{position:relative; background:var(--navy-deep); padding:64px 0 54px; overflow:hidden;}
.page-hero .wrap{position:relative; z-index:2;}
.page-hero-bg{position:absolute; inset:0; opacity:.5;}
.breadcrumb{font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--sky); margin-bottom:14px;}
.breadcrumb a{text-decoration:none; color:rgba(255,255,255,.6);}
.breadcrumb a:hover{color:#fff;}
.page-hero h1{font-family:var(--display); font-weight:700; color:#fff; font-size:clamp(1.8rem,4vw,2.6rem); margin:0 0 12px; letter-spacing:-.01em;}
.page-hero p{color:rgba(255,255,255,.75); max-width:60ch; margin:0; font-size:1rem;}

/* ---- Breadcrumb light (on white sections) ---- */
.crumb-light{font-family:var(--mono); font-size:.72rem; color:var(--blue-mid); margin-bottom:10px;}
.crumb-light a{text-decoration:none; color:var(--text-dim);}
.crumb-light a:hover{color:var(--navy);}

/* ---- Case study cards / detail ---- */
.cs-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:40px;}
@media (max-width:900px){.cs-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:620px){.cs-grid{grid-template-columns:1fr;}}
.cs-card{background:var(--white); border:1px solid var(--line); border-radius:16px; overflow:hidden; text-decoration:none; color:var(--ink); transition:transform .25s ease, box-shadow .25s ease; display:flex; flex-direction:column;}
.cs-card:hover{transform:translateY(-5px); box-shadow:0 18px 36px rgba(20,31,61,.12);}
.cs-card .cs-thumb{aspect-ratio:16/10; background-size:cover; background-position:center;}
.cs-card-body{padding:20px; flex:1; display:flex; flex-direction:column;}
.cs-card .cs-loc{font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; text-transform:uppercase; color:var(--blue-mid); margin-bottom:8px;}
.cs-card h3{font-family:var(--display); font-size:1.02rem; font-weight:700; margin:0 0 8px; color:var(--navy);}
.cs-card p{font-size:.85rem; color:var(--text-dim); margin:0 0 14px; flex:1;}
.cs-card .cs-link{font-size:.82rem; font-weight:700; color:var(--blue-mid);}
.cs-card.compact{flex-direction:row; align-items:center; padding:18px;}
.cs-card.compact .cs-thumb{display:none;}

.cs-hero-img{width:100%; border-radius:16px; margin:36px 0;}
.cs-specs-row{display:flex; flex-wrap:wrap; gap:12px; margin:24px 0;}
.cs-specs-row span{font-family:var(--mono); font-size:.78rem; background:var(--paper-dim); border:1px solid var(--line); padding:7px 14px; border-radius:100px; color:var(--navy);}
.cs-body-grid{display:grid; grid-template-columns:2fr 1fr; gap:50px; margin-top:20px;}
@media (max-width:860px){.cs-body-grid{grid-template-columns:1fr;}}
.cs-sidebar{background:var(--paper-dim); border-radius:16px; padding:24px; height:fit-content;}
.cs-sidebar h4{font-family:var(--display); font-size:.95rem; color:var(--navy); margin:0 0 14px;}
.cs-sidebar dl{margin:0;}
.cs-sidebar dt{font-family:var(--mono); font-size:.68rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue-mid); margin-top:14px;}
.cs-sidebar dt:first-child{margin-top:0;}
.cs-sidebar dd{margin:3px 0 0; font-size:.88rem; color:var(--ink); font-weight:600;}
.cs-nav-links{display:flex; justify-content:space-between; margin-top:50px; padding-top:24px; border-top:1px solid var(--line); font-size:.88rem; font-weight:600;}
.cs-nav-links a{text-decoration:none; color:var(--blue-mid);}

/* ---- Quote form page ---- */
.quote-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:50px; align-items:start;}
@media (max-width:900px){.quote-grid{grid-template-columns:1fr;}}
.quote-form{background:var(--white); border:1px solid var(--line); border-radius:18px; padding:32px; min-width:0;}
.form-row{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px;}
@media (max-width:560px){.form-row{grid-template-columns:1fr;}}
.form-field{display:flex; flex-direction:column; gap:6px; margin-bottom:16px;}
.form-field label{font-size:.82rem; font-weight:600; color:var(--navy);}
.form-field input, .form-field select, .form-field textarea{
  width:100%; min-width:0; border:1px solid var(--line); border-radius:10px; padding:11px 14px; font-family:var(--body); font-size:.92rem; outline:none; background:var(--paper); color: var(--ink);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{border-color:var(--blue-mid); background:#fff;}
.quote-submit-row{display:flex; gap:14px; flex-wrap:wrap; margin-top:8px;}
.quote-side-card{background:var(--navy-deep); color:#fff; border-radius:18px; padding:28px; margin-bottom:20px;}
.quote-side-card h4{font-family:var(--display); font-size:1.02rem; margin:0 0 10px;}
.quote-side-card p{font-size:.87rem; color:rgba(255,255,255,.75); margin:0;}
.quote-side-list{list-style:none; padding:0; margin:16px 0 0;}
.quote-side-list li{display:flex; gap:10px; padding:7px 0; font-size:.85rem; color:rgba(255,255,255,.85);}
.quote-side-list li::before{content:"✓"; color:var(--sky); font-weight:700;}
.form-note{font-size:.78rem; color:var(--text-dim); margin-top:10px;}

/* ---- Blog page ---- */
.blog-list{display:flex; flex-direction:column; gap:0; margin-top:36px; border-top:1px solid var(--line);}
.blog-item{border-bottom:1px solid var(--line); padding:26px 0;}
.blog-item-head{display:flex; justify-content:space-between; align-items:flex-start; gap:20px; cursor:pointer;}
.blog-tag{display:inline-block; font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue-mid); background:var(--paper-dim); padding:4px 10px; border-radius:100px; margin-bottom:10px;}
.blog-item h3{font-family:var(--display); font-size:1.15rem; font-weight:700; margin:0 0 6px; color:var(--navy);}
.blog-date{font-size:.78rem; color:var(--text-dim);}
.blog-plus{font-size:1.6rem; font-weight:300; color:var(--blue-mid); flex:none; transition:transform .3s ease;}
.blog-item.open .blog-plus{transform:rotate(45deg);}
.blog-body{max-height:0; overflow:hidden; transition:max-height .4s ease;}
.blog-body p{font-size:.92rem; color:var(--text-dim); margin:16px 0 0; max-width:75ch;}

/* ---- Map page ---- */
.map-wrap{position:relative; background:
    radial-gradient(120% 90% at 25% 15%, rgba(32,185,240,.10), transparent 60%),
    var(--navy-deep);
  border-radius:20px; overflow:hidden; aspect-ratio:16/8.4; margin-top:40px;}
.map-wrap .map-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.92;}
.map-wrap svg{width:100%; height:100%; display:block;}
.map-pin{position:absolute; transform:translate(-50%,-100%); cursor:pointer;}
.map-pin-dot{width:16px; height:16px; border-radius:50% 50% 50% 0; background:var(--sky); transform:rotate(-45deg); box-shadow:0 0 0 4px rgba(32,185,240,.25); position:relative;}
.map-pin-dot::after{content:""; position:absolute; inset:4px; background:#fff; border-radius:50%;}
.map-pin-pulse{position:absolute; left:50%; top:50%; width:16px; height:16px; border-radius:50%; background:rgba(32,185,240,.5); transform:translate(-50%,-50%); animation:mapPulse 2.2s infinite;}
@keyframes mapPulse{0%{transform:translate(-50%,-50%) scale(.6); opacity:.8;} 100%{transform:translate(-50%,-50%) scale(2.6); opacity:0;}}
.map-tooltip{
  position:absolute; bottom:calc(100% + 10px); left:50%; transform:translateX(-50%) translateY(6px);
  background:#fff; color:var(--ink); border-radius:12px; padding:12px 14px; width:200px; box-shadow:0 16px 34px rgba(0,0,0,.28);
  opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:5;
}
.map-pin:hover .map-tooltip, .map-pin.active .map-tooltip{opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto;}
.map-tooltip b{font-family:var(--display); font-size:.85rem; color:var(--navy); display:block; margin-bottom:3px;}
.map-tooltip span{font-size:.76rem; color:var(--text-dim);}
.map-legend{display:flex; gap:20px; flex-wrap:wrap; margin-top:20px; font-size:.82rem; color:var(--text-dim);}
.map-legend span{display:inline-flex; align-items:center; gap:7px;}
.map-legend i{width:9px; height:9px; border-radius:50%; background:var(--sky); display:inline-block;}

/* ---- Careers page ---- */
.role-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:40px;}
@media (max-width:760px){.role-grid{grid-template-columns:1fr;}}
.role-card{background:var(--white); border:1px solid var(--line); border-radius:16px; padding:26px;}
.role-card .tag{font-family:var(--mono); font-size:.66rem; text-transform:uppercase; letter-spacing:.06em; color:var(--blue-mid); background:var(--paper-dim); padding:4px 10px; border-radius:100px; display:inline-block; margin-bottom:12px;}
.role-card h3{font-family:var(--display); font-size:1.05rem; font-weight:700; margin:0 0 8px; color:var(--navy);}
.role-card p{font-size:.87rem; color:var(--text-dim); margin:0;}
.culture-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:40px; text-align:center;}
@media (max-width:820px){.culture-grid{grid-template-columns:repeat(2,1fr);}}
.culture-card{padding:10px;}
.culture-card .icon{width:52px; height:52px; border-radius:14px; background:linear-gradient(135deg, var(--sky), var(--blue-mid)); display:flex; align-items:center; justify-content:center; margin:0 auto 14px;}
.culture-card .icon svg{width:24px; height:24px; stroke:#fff;}
.culture-card h4{font-family:var(--display); font-size:.95rem; font-weight:700; margin:0 0 6px; color:var(--navy);}
.culture-card p{font-size:.82rem; color:var(--text-dim); margin:0;}

/* ---- Leadership card (about page) ---- */
.lead-wrap{display:grid; grid-template-columns:160px 1fr; gap:32px; align-items:center; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:32px; min-width:0;}
.lead-wrap > *{min-width:0;}
@media (max-width:640px){.lead-wrap{grid-template-columns:1fr; text-align:center; justify-items:center;}}

/* ---- Offer grid, 3-column variant (home contact section) ---- */
.offer-grid.cols-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:760px){.offer-grid.cols-3{grid-template-columns:repeat(2,1fr);}}
@media (max-width:480px){.offer-grid.cols-3{grid-template-columns:1fr;}}

/* ================= Language toggle & RTL/Urdu support ================= */
.top-strip .wrap{flex-wrap:wrap; gap:8px;}
.top-strip-right{display:flex; align-items:center; gap:14px;}
.lang-toggle{display:flex; gap:2px; background:rgba(255,255,255,.08); border-radius:100px; padding:3px;}
.lang-btn{background:none; border:none; color:rgba(255,255,255,.7); font-size:.72rem; font-weight:600; padding:5px 11px; border-radius:100px; cursor:pointer; font-family:var(--body);}
.lang-btn.active{background:var(--sky); color:#06222e;}

.i18n-notice{
  display:none; background:#FFF6E5; border-bottom:1px solid #F2D9A0; color:#7a5c15;
  text-align:center; font-size:.82rem; padding:10px 20px;
}

/* Urdu / RTL mode */
html[lang="ur"] body{font-family:"Noto Nastaliq Urdu", var(--body);}
html[lang="ur"] h1, html[lang="ur"] h2, html[lang="ur"] h3, html[lang="ur"] h4,
html[lang="ur"] .brand-text b, html[lang="ur"] .eyebrow, html[lang="ur"] .btn,
html[lang="ur"] .nav-links a, html[lang="ur"] .div-card h3, html[lang="ur"] .offer-card h3{
  font-family:"Noto Nastaliq Urdu", var(--display);
}

/* Arabic / RTL mode */
html[lang="ar"] body{font-family:"IBM Plex Sans Arabic", var(--body);}
html[lang="ar"] h1, html[lang="ar"] h2, html[lang="ar"] h3, html[lang="ar"] h4,
html[lang="ar"] .brand-text b, html[lang="ar"] .eyebrow, html[lang="ar"] .btn,
html[lang="ar"] .nav-links a, html[lang="ar"] .div-card h3, html[lang="ar"] .offer-card h3{
  font-family:"IBM Plex Sans Arabic", var(--display);
}

/* Chinese mode */
html[lang="zh"] body{font-family:"Noto Sans SC", var(--body);}
html[lang="zh"] h1, html[lang="zh"] h2, html[lang="zh"] h3, html[lang="zh"] h4,
html[lang="zh"] .brand-text b, html[lang="zh"] .eyebrow, html[lang="zh"] .btn,
html[lang="zh"] .nav-links a, html[lang="zh"] .div-card h3, html[lang="zh"] .offer-card h3{
  font-family:"Noto Sans SC", var(--display);
}

html[dir="rtl"] .eyebrow::before{display:none;}
html[dir="rtl"] .breadcrumb, html[dir="rtl"] .marquee-track, html[dir="rtl"] .news-track{direction:rtl;}
html[dir="rtl"] .top-strip-left, html[dir="rtl"] .topbar-inner, html[dir="rtl"] .footer-inner{direction:rtl;}
html[dir="rtl"] .hero-stat, html[dir="rtl"] .stat-box{direction:rtl;}

/* ================= System Recommendation Quiz ================= */
.quiz-wrap{max-width:720px; margin:40px auto 0; background:var(--white); border:1px solid var(--line); border-radius:20px; padding:36px; box-shadow:0 20px 50px rgba(20,31,61,.08);}
.quiz-progress{display:flex; gap:6px; margin-bottom:30px;}
.quiz-progress span{flex:1; height:4px; border-radius:100px; background:var(--line);}
.quiz-progress span.done{background:var(--blue-mid);}
.quiz-progress span.active{background:var(--sky);}
.quiz-step{display:none;}
.quiz-step.active{display:block;}
.quiz-q-num{font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--blue-mid); margin-bottom:10px;}
.quiz-step h3{font-family:var(--display); font-size:1.3rem; font-weight:700; color:var(--navy); margin:0 0 22px;}
.quiz-options{display:flex; flex-direction:column; gap:12px;}
.quiz-option{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  text-align:left; background:var(--paper); border:1.5px solid var(--line); border-radius:14px;
  padding:16px 18px; font-family:var(--body); font-size:.94rem; font-weight:600; color:var(--ink);
  cursor:pointer; transition:border-color .2s ease, background .2s ease, transform .15s ease;
}
.quiz-option:hover{border-color:var(--sky); background:var(--paper-dim); transform:translateX(3px);}
.quiz-option svg{flex:none; width:18px; height:18px; stroke:var(--blue-mid); opacity:0;}
.quiz-back{margin-top:22px; background:none; border:none; color:var(--text-dim); font-size:.85rem; cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
.quiz-back:hover{color:var(--navy);}
.quiz-result{text-align:center;}
.quiz-result-icon{width:64px; height:64px; border-radius:50%; background:linear-gradient(135deg, var(--sky), var(--blue-mid)); display:flex; align-items:center; justify-content:center; margin:0 auto 20px;}
.quiz-result-icon svg{width:30px; height:30px; stroke:#fff;}
.quiz-result h3{font-family:var(--display); font-size:1.5rem; font-weight:700; color:var(--navy); margin:0 0 12px;}
.quiz-result p{color:var(--text-dim); font-size:.95rem; max-width:52ch; margin:0 auto 26px;}
.quiz-result-actions{display:flex; gap:12px; justify-content:center; flex-wrap:wrap;}
.quiz-restart{margin-top:18px; background:none; border:none; color:var(--blue-mid); font-size:.85rem; cursor:pointer; text-decoration:underline;}

/* ================= Print styles ================= */
@media print{
  .news-ticker, .top-strip, .topbar, .fab-stack, .chat-window, .video-modal, .lightbox,
  .mobile-panel, .progress-bar, .i18n-notice, footer, .hero-arrows, .hero-dots,
  .play-btn, .btn, #heroCanvas, .marquee-wrap{ display:none !important; }
  body{ background:#fff !important; }
  .page-hero{ background:#fff !important; padding:20px 0 !important; }
  .page-hero h1, .page-hero p, .breadcrumb, .breadcrumb a{ color:#111 !important; }
  .eyebrow{ color:#333 !important; }
  section{ padding:16px 0 !important; }
  .cs-sidebar, .quote-side-card{ background:#f4f4f4 !important; color:#111 !important; border:1px solid #ccc !important; }
  .quote-side-card *{ color:#111 !important; }
  a{ color:#111 !important; text-decoration:underline !important; }
  .cs-specs-row span{ border:1px solid #999 !important; color:#111 !important; }
  * { box-shadow:none !important; text-shadow:none !important; }
}

/* Dropdown nav menus */
.nav-links{position:relative;}
.nav-item{position:relative; display:flex; align-items:center;}
.nav-item > a{display:flex; align-items:center; gap:3px;}
.nav-caret{font-size:.62rem; opacity:.6; transform:translateY(1px);}
.nav-dropdown{position:absolute; top:calc(100% + 14px); left:0; background:var(--white); border:1px solid var(--line); border-radius:12px; box-shadow:0 20px 40px rgba(20,31,61,.14); padding:8px; min-width:230px; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .15s ease .35s, visibility .15s ease .35s, transform .15s ease .35s; z-index:60;}
.nav-dropdown::before{content:""; position:absolute; left:0; right:0; top:-14px; height:14px;}
.nav-dropdown.mega{min-width:520px; display:grid; grid-template-columns:1fr 1fr; gap:1px 10px;}
.nav-item:hover .nav-dropdown, .nav-item:focus-within .nav-dropdown{opacity:1; visibility:visible; transform:translateY(0); transition-delay:0s;}
.nav-dropdown a{display:block; padding:9px 12px; border-radius:8px; font-size:.83rem; font-weight:500; color:var(--ink); opacity:.82; text-decoration:none; white-space:nowrap;}
.nav-dropdown a:hover{background:var(--paper-dim); opacity:1; color:var(--blue-mid);}
.mobile-panel a.sub{padding-left:18px; font-weight:500; font-size:.86rem; opacity:.85;}

.subcat-link{display:block;padding:10px 14px;border:1px solid var(--border,#e2e2e2);border-radius:8px;font-size:.85rem;text-decoration:none;color:var(--text-dim,#555);transition:.15s;}
.subcat-link:hover{border-color:var(--blue-mid,#0a6ebd);color:var(--blue-mid,#0a6ebd);background:rgba(10,110,189,.06);}

/* ================= 2026 visual and accessibility refresh ================= */
html{scroll-padding-top:96px;}
body{overflow-x:hidden;}
:focus-visible{outline:3px solid #20B9F0;outline-offset:3px;border-radius:4px;}
.reveal{opacity:1;transform:none;}
.js .reveal{opacity:0;transform:translateY(16px);}
.js .reveal.in{opacity:1;transform:none;}
.brand img{width:42px;height:42px;object-fit:contain;flex:none;}
.brand-text b{letter-spacing:-.015em;}
.nav-caret{display:inline-block;width:7px;height:7px;margin-left:5px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);}
.nav-dropdown{border:1px solid var(--line);box-shadow:0 18px 48px rgba(20,31,61,.14);}
.hero::before{content:"";position:absolute;inset:0;background:url("assets/hero-water-treatment.webp") center/cover no-repeat;z-index:0;}
.hero-scrim{background:linear-gradient(90deg,rgba(8,20,44,.96) 0%,rgba(11,28,58,.88) 43%,rgba(11,28,58,.38) 78%,rgba(11,28,58,.28) 100%),linear-gradient(180deg,rgba(20,31,61,.12),rgba(20,31,61,.6));}
#heroCanvas{opacity:.2;z-index:1;}
.hero h1{text-wrap:balance;text-shadow:0 2px 24px rgba(0,0,0,.28);}
.hero .slide-eyebrow{max-width:66ch;}
.page-hero::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,rgba(32,185,240,.75),transparent);}
h2{text-wrap:balance;}
.about-grid img,.cs-hero-img{width:100%;object-fit:cover;box-shadow:0 16px 40px rgba(20,31,61,.12);}
.about-grid img{aspect-ratio:16/10;}
.cs-card,.div-card,.offer-card,.testi-card,.contact-card{box-shadow:0 1px 2px rgba(20,31,61,.04);}
.cs-card .cs-thumb{aspect-ratio:16/9;}
.gallery-grid img{background:#dcecf4;}
.gallery-grid figcaption{padding-top:36px;font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.5);}
.btn{min-height:44px;justify-content:center;}
.form-field input,.form-field select,.form-field textarea{min-height:46px;}
.footer-grid a,.mobile-panel a{min-height:36px;display:inline-flex;align-items:center;}

@media (max-width:1180px){
  .nav-links,.nav-cta{display:none !important;}
  .burger{display:flex !important;}
  .topbar-inner{padding-left:18px;padding-right:18px;}
}
@media (min-width:1181px){
  .nav-links{display:flex;gap:18px;font-size:.84rem;}
  .nav-cta{display:inline-flex;}
  .burger{display:none;}
}
@media (max-width:700px){
  .wrap{padding-left:20px;padding-right:20px;}
  .news-ticker-tag{padding:7px 10px;}
  .news-track span{font-size:.72rem;padding:7px 20px;}
  .top-strip .wrap{padding:7px 20px;}
  .top-strip-right .top-social{display:none;}
  .brand-text b{font-size:.92rem;}
  .brand-text span{font-size:.55rem;}
  .brand img{width:38px;height:38px;}
  .hero{min-height:74vh;}
  .hero::before{background-position:64% center;}
  .hero-scrim{background:linear-gradient(90deg,rgba(8,20,44,.97),rgba(11,28,58,.78)),linear-gradient(180deg,transparent,rgba(20,31,61,.55));}
  .hero h1{font-size:clamp(2rem,10vw,2.65rem);max-width:14ch;min-height:0;}
  section{padding:68px 0;}
  .page-hero{padding:50px 0 44px;}
  .fab-stack{right:16px;bottom:18px;}
  .fab-stack{display:none;}
  .fab{width:50px;height:50px;}
  .chat-window{right:14px;bottom:82px;width:calc(100vw - 28px);}
  .cta-band{padding:34px 26px;border-radius:18px;}
  .footer-grid{gap:30px 24px;}
}
@media (max-width:420px){
  .footer-grid{grid-template-columns:1fr 1fr;}
  .footer-brand,.footer-grid > div:last-child{grid-column:1/-1;}
  .footer-grid h4{margin-bottom:10px;}
  .footer-grid ul{gap:5px;}
}
@media (prefers-reduced-motion:reduce){
  .reveal,.js .reveal{opacity:1 !important;transform:none !important;}
  .fab::after{animation:none !important;}
}


/* ================= Production hardening refresh ================= */
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:10px 16px;background:#fff;color:#14203d;border:2px solid #20b9f0;border-radius:8px;font-weight:700;transform:translateY(-160%);transition:transform .15s;text-decoration:none;}
.skip-link:focus{transform:translateY(0);}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
main{display:block;}
body.dialog-open{overflow:hidden;}
[aria-hidden="true"].video-modal,[aria-hidden="true"].lightbox,[aria-hidden="true"].chat-window{visibility:hidden;}
[aria-hidden="false"].video-modal,[aria-hidden="false"].lightbox,[aria-hidden="false"].chat-window{visibility:visible;}
figure[data-lightbox]:focus-visible{outline:3px solid #20b9f0;outline-offset:5px;}
.chat-close,.lightbox-close,.video-close,.burger{min-width:44px;min-height:44px;}
.page-hero{padding:52px 0 46px;}
@media (max-width:700px){
  .news-ticker{display:none;}
  .top-strip .wrap{min-height:40px;}
  .topbar-inner{min-height:72px;}
  .hero{min-height:68vh;}
  .hero h1{font-size:clamp(1.95rem,9.2vw,2.45rem);line-height:1.08;max-width:15ch;}
  .hero-ctas{gap:12px;}
  .page-hero{padding:40px 0 36px;}
  .fab-stack{right:14px;bottom:max(14px,env(safe-area-inset-bottom));}
  .fab{width:46px;height:46px;}
  .footer-grid a,.mobile-panel a{min-height:44px;}
}
@media (max-width:700px){
  body[data-page="home"] .div-grid .div-card:nth-child(n+7){display:none;}
}


/* ================= 2026 experience enhancements ================= */
.nav-search{width:44px;height:44px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none;transition:border-color .2s,background .2s,transform .2s}
.nav-search:hover{border-color:var(--blue-mid);background:var(--paper-dim);transform:translateY(-1px)}
.nav-search svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
@media(max-width:1180px){.nav-search{margin-left:auto}.topbar-inner .brand{margin-right:auto}.topbar-inner .burger{margin-left:8px}}
@media(min-width:1181px){.nav-search{margin-left:4px}}
.search-dialog{position:fixed;inset:0;z-index:200;background:rgba(8,20,44,.72);backdrop-filter:blur(8px);display:none;align-items:flex-start;justify-content:center;padding:10vh 20px 30px}
.search-dialog.open{display:flex}.search-panel{width:min(760px,100%);max-height:78vh;background:#fff;border:1px solid rgba(255,255,255,.4);border-radius:18px;box-shadow:0 32px 90px rgba(0,0,0,.32);overflow:hidden;display:flex;flex-direction:column}
.search-head{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--line)}
.search-input-wrap{flex:1;display:flex;align-items:center;gap:10px;background:var(--paper-dim);border:1px solid var(--line);border-radius:10px;padding:0 14px}.search-input-wrap:focus-within{border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(32,185,240,.14)}
.search-input-wrap svg{width:20px;stroke:var(--text-dim);fill:none}.search-input{width:100%;height:48px;border:0;background:transparent;font:inherit;color:var(--ink);outline:0}.search-close{width:44px;height:44px;border:0;background:transparent;border-radius:9px;color:var(--navy);cursor:pointer;font-size:1.25rem}
.search-hint{padding:12px 20px;font-size:.78rem;color:var(--text-dim);border-bottom:1px solid var(--line)}.search-results{overflow:auto;padding:10px}.search-result{display:grid;grid-template-columns:1fr auto;gap:8px 16px;padding:14px;border-radius:11px;text-decoration:none;border:1px solid transparent}.search-result:hover,.search-result:focus{background:var(--paper-dim);border-color:var(--line);outline:0}.search-result b{color:var(--navy);font-family:var(--display)}.search-result p{grid-column:1/-1;margin:0;color:var(--text-dim);font-size:.84rem;line-height:1.45}.search-result span{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;color:var(--blue-mid)}.search-empty{padding:34px;text-align:center;color:var(--text-dim)}
.solution-gateway{padding:48px 0;background:#fff;border-bottom:1px solid var(--line)}.solution-gateway-inner{display:grid;grid-template-columns:.8fr 2fr;gap:44px;align-items:center}.solution-copy h2{font-size:1.55rem;margin:8px 0 8px}.solution-copy p{margin:0;color:var(--text-dim);font-size:.92rem}.solution-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.solution-actions a{display:grid;grid-template-columns:40px 1fr;column-gap:12px;align-items:center;padding:17px;border:1px solid var(--line);border-radius:12px;text-decoration:none;background:var(--paper);transition:border-color .2s,transform .2s,box-shadow .2s}.solution-actions a:hover{border-color:var(--blue-mid);transform:translateY(-2px);box-shadow:0 8px 22px rgba(20,31,61,.08)}.solution-icon{grid-row:1/3;width:40px;height:40px;border-radius:10px;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:var(--mono);font-size:.75rem}.solution-actions b{color:var(--navy);font-size:.86rem}.solution-actions small{color:var(--text-dim);font-size:.74rem;margin-top:2px}
@media(max-width:980px){.solution-gateway-inner{grid-template-columns:1fr}.solution-actions{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.solution-gateway{padding:36px 0}.solution-actions{grid-template-columns:1fr}.solution-gateway-inner{gap:22px}}
.portfolio-section{background:var(--paper-dim)}.portfolio-intro{display:flex;align-items:end;justify-content:space-between;gap:28px}.portfolio-intro .lead-text{margin-bottom:0}.portfolio-filters{display:flex;flex-wrap:wrap;gap:9px;margin-top:34px}.portfolio-filter{min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--navy);font:600 .82rem var(--body);cursor:pointer}.portfolio-filter:hover{border-color:var(--blue-mid)}.portfolio-filter.active{background:var(--navy);border-color:var(--navy);color:#fff}.portfolio-count{margin:18px 0 0;font-size:.8rem;color:var(--text-dim)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:20px}.portfolio-card{display:flex;flex-direction:column;overflow:hidden;border-radius:15px;border:1px solid var(--line);background:#fff;color:var(--ink);text-decoration:none;transition:transform .25s,box-shadow .25s,border-color .25s}.portfolio-card:hover{transform:translateY(-4px);border-color:#c8d9e6;box-shadow:0 16px 36px rgba(20,31,61,.1)}.portfolio-card.is-hidden{display:none}.portfolio-image{aspect-ratio:16/10;background-size:cover;background-position:center}.portfolio-image--diagram{background-size:92%;background-repeat:no-repeat;background-color:#eaf7fb}.portfolio-body{display:flex;flex-direction:column;flex:1;padding:22px}.portfolio-meta{display:flex;flex-wrap:wrap;gap:6px}.portfolio-meta span{font:600 .64rem var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--blue-mid);background:var(--paper-dim);padding:5px 8px;border-radius:6px}.portfolio-card h3{font-family:var(--display);font-size:1.08rem;color:var(--navy);margin:14px 0 9px}.portfolio-card p{font-size:.86rem;color:var(--text-dim);margin:0 0 18px;line-height:1.6}.portfolio-card b{font-size:.8rem;color:var(--blue-mid);margin-top:auto}.portfolio-empty{margin-top:20px;padding:28px;text-align:center;background:#fff;border:1px dashed var(--line);border-radius:12px;color:var(--text-dim)}
@media(max-width:900px){.portfolio-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:620px){.portfolio-intro{align-items:flex-start;flex-direction:column}.portfolio-grid{grid-template-columns:1fr}.portfolio-filters{display:grid;grid-template-columns:1fr 1fr;width:100%}}
.form-status{min-height:22px;margin-top:12px;font-size:.82rem;color:var(--blue-mid)}.form-status.is-error{color:#b42318}.draft-badge{display:inline-flex;align-items:center;gap:6px;background:#e8f1ec;color:#287a4f;padding:7px 10px;border-radius:7px;font-size:.76rem;font-weight:600}
@media print{.nav-search,.search-dialog,.solution-gateway,.portfolio-filters{display:none!important}}

.field-help{display:block;margin-top:6px;color:var(--text-dim);font-size:.78rem;line-height:1.45;}


/* ================= Visitor workflow enhancements ================= */
.contact-enquiry-section{background:var(--paper-dim)}.contact-enquiry-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:start}.contact-enquiry-copy{position:sticky;top:120px}.contact-expectation{margin-top:28px;padding:20px;border-left:3px solid var(--sky);background:rgba(255,255,255,.6);border-radius:0 10px 10px 0}.contact-expectation b{color:var(--navy)}.contact-expectation ul{margin:10px 0 0;padding-left:20px;color:var(--text-dim);font-size:.88rem}.contact-enquiry-form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px}.contact-form-actions{display:flex;gap:12px;flex-wrap:wrap}.contact-form-actions .btn{flex:1}.form-note{font-size:.76rem;color:var(--text-dim);line-height:1.5}
@media(max-width:860px){.contact-enquiry-grid{grid-template-columns:1fr;gap:28px}.contact-enquiry-copy{position:static}}@media(max-width:520px){.contact-enquiry-form{padding:22px}.contact-form-actions{flex-direction:column}}
.division-explorer{margin-top:32px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.division-search-wrap,.faq-search-wrap{display:flex;align-items:center;gap:10px;background:var(--paper-dim);border:1px solid var(--line);border-radius:10px;padding:0 14px}.division-search-wrap:focus-within,.faq-search-wrap:focus-within{border-color:var(--blue-mid);box-shadow:0 0 0 3px rgba(32,185,240,.13)}.division-search-wrap svg,.faq-search-wrap svg{width:19px;fill:none;stroke:var(--text-dim);stroke-width:2;flex:none}.division-search-wrap input,.faq-search-wrap input{width:100%;height:48px;border:0;background:transparent;outline:0;color:var(--ink);font:inherit}.division-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.division-filter{min-height:40px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:600;cursor:pointer}.division-filter.active{background:var(--navy);border-color:var(--navy);color:#fff}.division-result-count{margin:12px 2px 0;color:var(--text-dim);font-size:.78rem}.division-explorer-grid .div-card.is-hidden{display:none}.division-no-results{grid-column:1/-1;padding:32px;text-align:center;color:var(--text-dim);background:#fff;border:1px dashed var(--line);border-radius:12px}
.faq-tools{margin-bottom:24px;padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px}.faq-tools>label{display:block;color:var(--navy);font-weight:700;margin-bottom:9px}.faq-tools p{margin:9px 2px 0;color:var(--text-dim);font-size:.78rem}.faq-empty{padding:30px;text-align:center;color:var(--text-dim);background:#fff;border:1px dashed var(--line);border-radius:12px}.blog-item.is-hidden{display:none}.blog-item-head[role="button"]{cursor:pointer}.blog-item-head[role="button"]:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.page-action-bar{background:#fff;border-bottom:1px solid var(--line)}.page-action-inner{min-height:58px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.page-action-btn{min-height:40px;display:inline-flex;align-items:center;gap:7px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--navy);font-weight:600;font-size:.78rem;cursor:pointer}.page-action-btn:hover{border-color:var(--blue-mid);color:var(--blue-mid)}.page-action-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}.page-action-status{margin-right:auto;color:var(--text-dim);font-size:.78rem}
.install-site-link{display:none;border:0;background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer;text-align:left;padding:12px 4px}.install-site-link.available{display:inline-flex;align-items:center;gap:8px}.mobile-panel .install-site-link.available{min-height:44px;border-bottom:1px solid var(--line);color:var(--blue-mid)}
@media(max-width:600px){.page-action-btn span{display:none}.page-action-inner{justify-content:flex-end}.division-filter-row{display:grid;grid-template-columns:repeat(2,1fr)}.division-filter{width:100%}}
@media print{.contact-enquiry-section,.division-explorer,.faq-tools,.page-action-bar,.install-site-link{display:none!important}}
