:root { --blue:#0a4c94; --deep:#04162b; --navy:#061f3f; --yellow:#ffb400; --ice:#eaf5ff; --white:#fff; --ink:#122033; --muted:#64748b; --green:#149447; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:#fff; color:var(--ink); font-family:Arial, Helvetica, sans-serif; overflow-x:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button { color:inherit; }
em { color:var(--blue); font-style:normal; }
.section { padding:120px clamp(24px,6vw,100px); }
.page-transition { position:fixed; z-index:1000; inset:0; display:grid; place-items:center; background:linear-gradient(135deg,var(--deep),var(--blue)); transform:translateY(-105%); transition:transform .38s cubic-bezier(.76,0,.24,1); pointer-events:none; }
.page-transition:after { content:""; position:absolute; inset:auto 0 0; height:5px; background:var(--yellow); }
.page-transition span { color:white; font-size:44px; font-weight:900; letter-spacing:-.08em; opacity:0; transform:scale(.8); transition:.2s .08s; }
.page-transition.active { transform:translateY(0); }
.page-transition.active span { opacity:1; transform:scale(1); }
.animate-on-scroll { opacity:0; transform:translateY(42px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.75,.25,1); }
.animate-on-scroll.in-view { opacity:1; transform:none; }
.service-card.animate-on-scroll:nth-child(2),.product-card.animate-on-scroll:nth-child(2),.values-strip>div.animate-on-scroll:nth-child(2) { transition-delay:.08s; }
.service-card.animate-on-scroll:nth-child(3),.product-card.animate-on-scroll:nth-child(3),.values-strip>div.animate-on-scroll:nth-child(3) { transition-delay:.16s; }
.service-card.animate-on-scroll:nth-child(4),.values-strip>div.animate-on-scroll:nth-child(4) { transition-delay:.24s; }
.section-dark { background:var(--deep); color:white; }
.section-blue { background:linear-gradient(145deg,#073c78 0%,#062a59 100%); color:white; }

.site-header { position:fixed; top:0; left:0; right:0; height:82px; padding:0 clamp(22px,4vw,64px); z-index:100; display:flex; align-items:center; gap:34px; background:rgba(255,255,255,.94); backdrop-filter:blur(14px); border-bottom:1px solid rgba(10,76,148,.1); box-shadow:0 8px 30px rgba(4,22,43,.05); }
.brand { display:flex; align-items:center; justify-content:flex-start; width:116px; height:64px; flex-shrink:0; }
.brand img { width:auto; height:62px; max-width:100%; object-fit:contain; }
.nav { margin-left:auto; display:flex; align-items:center; gap:clamp(14px,1.8vw,30px); }
.nav a { position:relative; font-size:12px; font-weight:700; color:#28384d; padding:29px 0; white-space:nowrap; }
.nav a:after { content:""; position:absolute; height:2px; left:0; right:100%; bottom:22px; background:var(--yellow); transition:.25s; }
.nav a:hover { color:var(--blue); }
.nav a:hover:after { right:0; }
.header-cta { background:var(--blue); color:white; font-size:12px; font-weight:800; padding:15px 18px; border-radius:4px; white-space:nowrap; box-shadow:0 8px 20px rgba(10,76,148,.22); }
.header-cta span { color:var(--yellow); margin-left:6px; }
.menu-button { display:none; width:44px; height:44px; border:0; background:transparent; padding:11px; }
.menu-button span { display:block; height:2px; background:var(--blue); margin:5px 0; }

.hero { position:relative; min-height:850px; padding:160px clamp(24px,6vw,100px) 90px; background:linear-gradient(125deg,#03162e 0%,#062a57 56%,#0a4c94 100%); color:white; overflow:hidden; display:grid; grid-template-columns:1.04fr .96fr; align-items:center; gap:5vw; }
.hero-grid { position:absolute; inset:0; opacity:.13; background-image:linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px); background-size:70px 70px; mask-image:linear-gradient(to right,black,transparent 68%); }
.hero-glow { position:absolute; border-radius:50%; filter:blur(30px); pointer-events:none; }
.hero-glow-one { width:500px; height:500px; background:rgba(0,137,255,.16); top:-170px; right:18%; }
.hero-glow-two { width:360px; height:360px; background:rgba(255,180,0,.13); bottom:-190px; left:32%; }
.hero-copy { z-index:2; max-width:760px; }
.eyebrow { margin:0 0 24px; display:flex; align-items:center; gap:12px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.21em; color:#cbd8e7; }
.eyebrow span { width:38px; height:2px; background:var(--yellow); display:inline-block; }
.eyebrow.dark { color:var(--blue); }
.hero h1 { margin:0; font-size:clamp(50px,5.3vw,88px); line-height:.98; letter-spacing:-.055em; font-weight:760; }
.hero h1 em { color:var(--yellow); }
.hero-text { max-width:590px; color:#cbd8e7; line-height:1.75; font-size:17px; margin:30px 0 34px; }
.hero-actions { display:flex; gap:14px; flex-wrap:wrap; }
.button { padding:17px 22px; min-width:190px; display:inline-flex; justify-content:center; align-items:center; gap:20px; font-size:13px; font-weight:800; border-radius:4px; transition:.25s; }
.button-primary { background:var(--yellow); color:var(--deep); box-shadow:0 16px 34px rgba(255,180,0,.18); }
.button-primary:hover { transform:translateY(-3px); background:#ffc43d; }
.button-ghost { border:1px solid rgba(255,255,255,.25); background:rgba(255,255,255,.05); }
.button-ghost:hover { border-color:white; background:rgba(255,255,255,.1); }
.hero-trust { margin-top:52px; padding-top:28px; border-top:1px solid rgba(255,255,255,.14); display:flex; gap:clamp(20px,3.5vw,55px); }
.hero-trust div { display:flex; align-items:center; gap:12px; }
.hero-trust strong { font-size:29px; letter-spacing:-.04em; color:white; }
.hero-trust span { color:#9fb3c9; text-transform:uppercase; font-size:8px; font-weight:800; line-height:1.45; letter-spacing:.08em; }
.hero-visual { z-index:2; position:relative; height:610px; display:flex; align-items:center; justify-content:center; }
.hero-image-wrap { width:82%; height:520px; border-radius:210px 24px 210px 24px; overflow:hidden; position:relative; border:1px solid rgba(255,255,255,.22); box-shadow:0 45px 100px rgba(0,0,0,.4); }
.hero-image-wrap img { width:100%; height:100%; object-fit:cover; }
.hero-image-wrap img { animation:heroZoom 12s ease-in-out infinite alternate; }
.image-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 45%,rgba(3,22,46,.55)); }
.floating-card { position:absolute; z-index:3; display:flex; align-items:center; gap:12px; background:rgba(255,255,255,.95); color:var(--ink); border-radius:8px; padding:15px 18px; box-shadow:0 20px 50px rgba(0,0,0,.24); }
.floating-card small,.floating-card b { display:block; }
.floating-card small { font-size:9px; text-transform:uppercase; letter-spacing:.12em; color:#758397; margin-bottom:4px; }
.floating-card strong,.floating-card b { font-size:12px; }
.floating-top { right:0; top:96px; }
.floating-bottom { left:0; bottom:85px; }
.floating-bottom>strong { font-size:24px; color:var(--blue); border-right:1px solid #dbe2ea; padding-right:12px; }
.pulse { width:11px; height:11px; border-radius:50%; background:#20b15a; box-shadow:0 0 0 6px rgba(32,177,90,.14); }
.orbit { position:absolute; border:1px solid rgba(255,255,255,.13); border-radius:50%; pointer-events:none; }
.orbit-one { width:565px; height:565px; }
.orbit-two { width:650px; height:650px; border-style:dashed; animation:spin 40s linear infinite; }
.scroll-cue { position:absolute; z-index:3; left:38px; bottom:35px; display:flex; flex-direction:column; gap:12px; align-items:center; }
.scroll-cue span { writing-mode:vertical-rl; font-size:8px; letter-spacing:.26em; color:#8ea7c0; }
.scroll-cue i { color:var(--yellow); font-style:normal; }
@keyframes spin { to { transform:rotate(360deg); } }
@keyframes heroZoom { from { transform:scale(1.01); } to { transform:scale(1.085); } }
@keyframes rise { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
.reveal { animation:rise .85s ease-out both; }

.section-kicker { font-size:10px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; color:var(--blue); margin-bottom:32px; }
.section-dark .section-kicker,.section-blue .section-kicker { color:var(--yellow); }
.about { background:#f7fafc; }
.about-layout { display:grid; grid-template-columns:1fr 1fr; gap:9vw; align-items:start; }
.about h2,.section-head h2,.clients h2,.location h2,.contact h2 { margin:0; font-size:clamp(42px,4.6vw,72px); line-height:1.05; letter-spacing:-.055em; }
.about-copy { padding-top:45px; }
.about-copy p { color:#69788b; line-height:1.8; font-size:15px; margin:0 0 18px; }
.about-copy .lead { color:#1e2e42; font-size:20px; line-height:1.6; }
.signature { display:flex; align-items:center; gap:16px; margin-top:32px; }
.signature>span { display:grid; place-items:center; width:56px; height:56px; border-radius:50%; background:var(--blue); color:white; font-size:20px; font-weight:900; }
.signature strong,.signature small { display:block; }
.signature strong { font-size:13px; margin-bottom:5px; }
.signature small { color:#8190a2; }
.values-strip { margin-top:90px; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid #dce4ec; border-bottom:1px solid #dce4ec; }
.values-strip>div { padding:32px 28px 28px 0; border-right:1px solid #dce4ec; position:relative; }
.values-strip>div:not(:first-child) { padding-left:28px; }
.values-strip>div:last-child { border-right:0; }
.values-strip span { color:var(--yellow); font-size:10px; font-weight:900; display:block; margin-bottom:20px; }
.values-strip strong { font-size:18px; }
.values-strip p { color:#718095; font-size:12px; line-height:1.6; margin:8px 0 0; }

.section-head { display:flex; justify-content:space-between; align-items:end; gap:50px; margin-bottom:64px; }
.section-head>p { max-width:410px; color:#748296; line-height:1.7; font-size:14px; }
.section-head.light>p { color:#9fb0c4; }
.section-head.light h2 em { color:var(--yellow); }
.featured-services { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:26px; }
.featured-service { position:relative; min-height:430px; overflow:hidden; border:1px solid rgba(255,255,255,.16); box-shadow:0 24px 60px rgba(0,0,0,.25); }
.featured-service:after { content:""; position:absolute; inset:12px; border:1px solid rgba(255,255,255,.2); pointer-events:none; }
.featured-service img { position:absolute; width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.featured-service:hover img { transform:scale(1.065); }
.featured-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(2,15,32,.96) 0%,rgba(2,15,32,.78) 44%,rgba(2,15,32,.16) 100%); }
.featured-ac .featured-shade { background:linear-gradient(90deg,rgba(4,35,72,.98) 0%,rgba(4,35,72,.8) 50%,rgba(4,35,72,.22) 100%); }
.featured-copy { position:relative; z-index:2; min-height:430px; padding:52px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; max-width:72%; }
.featured-copy>span { color:var(--yellow); font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.18em; margin-bottom:18px; }
.featured-copy h3 { font-size:clamp(38px,4vw,62px); line-height:.93; letter-spacing:-.055em; margin:0 0 20px; }
.featured-copy p { color:#c0d0df; font-size:13px; line-height:1.65; margin:0 0 27px; }
.featured-copy a { background:var(--yellow); color:var(--deep); padding:15px 19px; font-size:11px; font-weight:900; }
.featured-copy a b { margin-left:16px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.12); border-left:1px solid rgba(255,255,255,.12); }
.service-card { min-height:340px; padding:32px; position:relative; border-right:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); transition:.3s; overflow:hidden; }
.service-card:before { content:""; position:absolute; inset:auto 0 0; height:0; background:linear-gradient(180deg,transparent,rgba(10,76,148,.34)); transition:.35s; }
.service-card:hover { background:rgba(255,255,255,.025); transform:translateY(-4px); }
.service-card:hover:before { height:70%; }
.service-number { position:absolute; top:26px; right:26px; font-size:10px; color:#60738a; font-weight:900; }
.service-icon { position:relative; width:54px; height:54px; border:1px solid rgba(255,180,0,.35); color:var(--yellow); display:grid; place-items:center; border-radius:50%; font-size:22px; margin-bottom:42px; }
.service-card h3,.product-card h3 { position:relative; font-size:22px; margin:0 0 16px; }
.service-card p { position:relative; color:#91a4ba; font-size:13px; line-height:1.75; min-height:72px; }
.service-tag { position:relative; display:flex; align-items:center; gap:8px; color:#b7c5d4; text-transform:uppercase; letter-spacing:.11em; font-size:8px; font-weight:800; margin-top:26px; }
.service-tag span { width:17px; height:2px; background:var(--yellow); }
.service-cta { margin-top:40px; background:white; color:var(--ink); padding:28px 32px; display:flex; align-items:center; justify-content:space-between; gap:30px; border-left:5px solid var(--yellow); }
.service-cta p { margin:0; font-size:17px; font-weight:800; }
.service-cta a,.client-banner a,.location-copy>a { background:var(--blue); color:white; padding:15px 19px; font-size:12px; font-weight:800; }
.service-cta a span,.client-banner a span,.location-copy>a span { color:var(--yellow); margin-left:12px; }

.clients { background:white; }
.clients-intro { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:56px; }
.clients-intro p { max-width:370px; color:#738197; line-height:1.7; }
.client-types { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #dce4eb; margin-bottom:80px; }
.client-types>div { display:grid; grid-template-columns:38px 1fr 20px; align-items:center; padding:26px 14px 26px 0; border-bottom:1px solid #dce4eb; margin-right:32px; transition:.25s; }
.client-types>div:hover { padding-left:12px; color:var(--blue); }
.client-types span { font-size:9px; color:var(--yellow); font-weight:900; }
.client-types strong { font-size:17px; }
.client-types i { font-style:normal; color:#9aabba; }
.client-banner { min-height:450px; display:grid; grid-template-columns:1fr .9fr; background:linear-gradient(130deg,#061f3f,#0a4c94); color:white; overflow:hidden; }
.client-banner>div { padding:64px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; }
.client-banner h3 { font-size:clamp(36px,3.8vw,62px); line-height:1.04; letter-spacing:-.05em; margin:0 0 22px; }
.client-banner>div>p:not(.eyebrow) { color:#b9c9d9; max-width:520px; line-height:1.7; margin:0 0 28px; }
.client-banner img { width:100%; height:100%; max-height:500px; object-fit:cover; object-position:center; }
.client-banner a { background:var(--yellow); color:var(--deep); }

.cases { background:#eef3f7; }
.case-grid { display:grid; grid-template-columns:1.3fr .7fr; grid-template-rows:340px 340px; gap:18px; }
.case-card { position:relative; border:0; padding:0; overflow:hidden; cursor:pointer; background:#102942; text-align:left; }
.case-card img { width:100%; height:100%; object-fit:cover; transition:transform .55s; }
.case-card:hover img { transform:scale(1.045); }
.case-1 { grid-row:1 / span 2; }
.case-2,.case-4 { display:none; }
.case-3 { grid-column:2; grid-row:1; }
.case-4 { grid-column:2; grid-row:2; }
.case-2 { grid-column:2; grid-row:2; }
.case-overlay { position:absolute; inset:0; padding:30px; display:flex; flex-direction:column; justify-content:flex-end; color:white; background:linear-gradient(transparent 42%,rgba(3,20,40,.9)); }
.case-overlay span { font-size:9px; text-transform:uppercase; letter-spacing:.15em; color:var(--yellow); font-weight:900; }
.case-overlay h3 { margin:9px 0 0; font-size:22px; }
.case-overlay i { position:absolute; top:22px; right:22px; width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:rgba(255,255,255,.9); color:var(--blue); font-style:normal; font-size:20px; }
.case-grid .case-2 { display:block; }
.modal.hidden { display:none; }
.modal { position:fixed; z-index:999; inset:0; background:rgba(2,13,28,.88); backdrop-filter:blur(8px); display:grid; place-items:center; padding:30px; }
.modal-close { position:absolute; top:22px; right:28px; color:white; background:transparent; border:0; font-size:42px; cursor:pointer; }
.modal-content { width:min(1000px,90vw); max-height:84vh; display:grid; grid-template-columns:1.2fr .8fr; background:white; overflow:hidden; }
.modal-content img { width:100%; height:70vh; object-fit:contain; background:#e6edf3; }
.modal-content div { padding:50px; align-self:center; }
.modal-content span { color:var(--blue); text-transform:uppercase; letter-spacing:.15em; font-size:9px; font-weight:900; }
.modal-content h3 { font-size:36px; margin:14px 0; }
.modal-content p { color:#748296; line-height:1.8; }

.products .section-head { margin-bottom:52px; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.product-card { background:white; color:var(--ink); transition:.28s; }
.product-card:hover { transform:translateY(-8px); box-shadow:0 24px 60px rgba(0,0,0,.22); }
.product-card:hover .product-image img { transform:scale(1.07); }
.product-image { height:330px; position:relative; overflow:hidden; background:#e7eef5; }
.product-image img { width:100%; height:100%; object-fit:cover; }
.product-image img { transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.product-image span { position:absolute; left:18px; top:18px; background:var(--yellow); color:var(--deep); font-size:8px; text-transform:uppercase; letter-spacing:.12em; font-weight:900; padding:9px 12px; }
.product-body { padding:26px; }
.product-body p { color:#718095; font-size:13px; line-height:1.7; min-height:66px; }
.product-body a { display:flex; justify-content:space-between; margin-top:24px; padding-top:18px; border-top:1px solid #dce5ed; font-size:11px; font-weight:900; color:var(--blue); }
.product-body a span { color:var(--yellow); }
.product-note { text-align:center; color:#a8bbcd; font-size:11px; margin:28px auto 0; max-width:700px; }

.location { background:#f6f9fc; }
.location-card { display:grid; grid-template-columns:1.05fr .95fr; min-height:560px; box-shadow:0 28px 80px rgba(26,53,80,.12); }
.map-graphic { position:relative; overflow:hidden; min-height:520px; background:linear-gradient(135deg,#eaf4fd,#cfe4f6); }
.map-lines { position:absolute; inset:-10%; background-image:linear-gradient(45deg,transparent 47%,rgba(10,76,148,.09) 48%,rgba(10,76,148,.09) 50%,transparent 51%),linear-gradient(-45deg,transparent 47%,rgba(10,76,148,.08) 48%,rgba(10,76,148,.08) 50%,transparent 51%); background-size:90px 90px; transform:rotate(8deg); }
.map-graphic:before,.map-graphic:after { content:""; position:absolute; border:1px solid rgba(10,76,148,.2); border-radius:47% 53% 60% 40%; }
.map-graphic:before { width:440px; height:270px; top:90px; left:45px; transform:rotate(-16deg); }
.map-graphic:after { width:300px; height:430px; top:45px; left:180px; transform:rotate(30deg); }
.map-pin { position:absolute; top:47%; left:50%; transform:translate(-50%,-50%); width:88px; height:88px; border-radius:50% 50% 50% 0; background:var(--blue); transform-origin:center; rotate:-45deg; display:grid; place-items:center; box-shadow:0 18px 40px rgba(10,76,148,.3); }
.map-pin span { color:white; font-weight:900; font-size:24px; rotate:45deg; }
.map-pin i { position:absolute; width:110px; height:110px; border:1px solid rgba(10,76,148,.35); border-radius:50%; animation:pulsemap 2.2s infinite; }
@keyframes pulsemap { 0% { transform:scale(.6); opacity:1; } 100% { transform:scale(1.6); opacity:0; } }
.map-label { position:absolute; background:white; color:var(--blue); padding:10px 14px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; box-shadow:0 8px 30px rgba(25,61,94,.13); }
.label-one { left:12%; top:25%; }.label-two { right:8%; bottom:22%; }
.location-copy { background:white; padding:70px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; }
.location-copy>p { color:#738197; line-height:1.75; margin:24px 0; }
.location-data { width:100%; border-top:1px solid #e0e7ef; margin-bottom:30px; }
.location-data>div { padding:18px 0; border-bottom:1px solid #e0e7ef; }
.location-data span,.location-data strong { display:block; }
.location-data span { color:#91a0b1; font-size:9px; text-transform:uppercase; letter-spacing:.12em; margin-bottom:7px; }
.location-data strong { font-size:14px; }

.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:9vw; }
.contact-copy>p { max-width:530px; color:#9eb1c6; line-height:1.8; margin:28px 0 38px; }
.contact-copy h2 em { color:var(--yellow); }
.phone { display:block; border-left:3px solid var(--yellow); padding-left:20px; margin-bottom:36px; }
.phone small,.phone strong { display:block; }
.phone small { color:#8298ae; text-transform:uppercase; font-size:9px; letter-spacing:.15em; margin-bottom:7px; }
.phone strong { font-size:30px; }
.contact-badges { display:flex; gap:25px; flex-wrap:wrap; color:#a7b8c9; font-size:11px; }
.contact-badges span::first-letter { color:var(--yellow); }
.contact-form { background:white; color:var(--ink); padding:40px; display:grid; grid-template-columns:1fr 1fr; gap:22px 18px; }
.field { display:flex; flex-direction:column; gap:8px; }
.field label { font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; color:#647488; }
.field input,.field select { height:50px; border:0; border-bottom:1px solid #cfd8e2; outline:0; background:transparent; color:#203047; font-size:13px; }
.field input:focus,.field select:focus { border-color:var(--blue); }
.contact-form button { grid-column:1/-1; margin-top:8px; height:56px; border:0; background:var(--yellow); color:var(--deep); font-size:12px; font-weight:900; cursor:pointer; display:flex; justify-content:center; align-items:center; gap:18px; transition:.25s; }
.contact-form button:hover { background:#ffc43a; transform:translateY(-2px); }
.contact-form>small { grid-column:1/-1; color:#8290a0; font-size:9px; text-align:center; }

footer { background:#020d1c; color:white; padding:70px clamp(24px,6vw,100px) 28px; }
.footer-main { display:grid; grid-template-columns:150px 1.2fr .8fr 1fr; gap:50px; align-items:start; }
.footer-main>img { width:145px; height:110px; object-fit:contain; background:white; border-radius:8px; padding:10px; }
.footer-main p { margin:0; font-size:24px; line-height:1.3; color:#d5e0eb; }.footer-main p em { color:var(--yellow); }
.footer-nav { display:flex; flex-direction:column; gap:12px; font-size:12px; color:#9dafc1; }
.footer-contact { display:flex; flex-direction:column; gap:10px; }
.footer-contact span { color:#71869d; font-size:9px; text-transform:uppercase; letter-spacing:.14em; }
.footer-contact a:first-of-type { font-size:20px; font-weight:900; }
.footer-contact a:last-child { color:var(--yellow); font-size:11px; font-weight:800; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.1); margin-top:50px; padding-top:24px; display:flex; justify-content:space-between; color:#667b91; font-size:9px; }
.whatsapp-float { position:fixed; right:22px; bottom:22px; z-index:90; display:flex; align-items:center; gap:10px; background:#1eaf55; color:white; padding:12px 17px; border-radius:30px; box-shadow:0 12px 28px rgba(14,123,56,.3); font-size:11px; }
.whatsapp-float span { font-size:20px; }
.whatsapp-float { animation:floatButton 2.6s ease-in-out infinite; }
@keyframes floatButton { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*:before,*:after { animation:none!important; transition-duration:.01ms!important; } .animate-on-scroll { opacity:1; transform:none; } }

@media (max-width:1180px) {
  .nav { gap:14px; }.nav a { font-size:10px; }.header-cta { display:none; }
  .hero { grid-template-columns:1fr 1fr; }.hero-image-wrap { width:92%; }
}
@media (max-width:900px) {
  .section { padding:85px 24px; }
  .site-header { height:72px; padding:0 20px; }.brand { width:92px; }.brand img { width:auto; height:58px; }
  .menu-button { display:block; margin-left:auto; }.nav { display:none; position:absolute; top:72px; left:0; right:0; background:white; padding:18px 24px 28px; flex-direction:column; align-items:flex-start; box-shadow:0 20px 30px rgba(0,0,0,.12); }.nav.open { display:flex; }.nav a { padding:8px 0; font-size:13px; }
  .hero { min-height:auto; padding:130px 24px 80px; grid-template-columns:1fr; gap:60px; }.hero-visual { height:520px; }.hero-image-wrap { height:440px; width:88%; }.orbit-two { width:520px; height:520px; }.orbit-one { width:460px; height:460px; }
  .about-layout,.contact-grid { grid-template-columns:1fr; gap:35px; }.about-copy { padding-top:0; }.values-strip { grid-template-columns:1fr 1fr; }.values-strip>div:nth-child(2) { border-right:0; }.values-strip>div { border-bottom:1px solid #dce4ec; }
  .service-grid,.product-grid { grid-template-columns:1fr 1fr; }.section-head,.clients-intro { align-items:flex-start; flex-direction:column; }
  .featured-services { grid-template-columns:1fr; }.featured-copy { max-width:74%; }
  .client-banner,.location-card { grid-template-columns:1fr; }.client-banner img { max-height:390px; }.map-graphic { min-height:400px; }.location-copy { padding:50px 35px; }
  .case-grid { grid-template-columns:1fr 1fr; grid-template-rows:380px 310px; }.case-1 { grid-column:1/-1; grid-row:1; }.case-3 { grid-column:1; grid-row:2; }.case-2 { grid-column:2; grid-row:2; }
  .footer-main { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .hero h1 { font-size:49px; }.hero { padding-top:120px; }.hero-trust { gap:16px; flex-wrap:wrap; }.hero-trust div { width:45%; }.hero-visual { height:430px; }.hero-image-wrap { height:360px; width:90%; border-radius:140px 18px 140px 18px; }.orbit-one { width:370px;height:370px; }.orbit-two { width:420px;height:420px; }.floating-top { right:-5px;top:55px;}.floating-bottom { left:-5px;bottom:28px;}.scroll-cue { display:none; }
  .about h2,.section-head h2,.clients h2,.location h2,.contact h2 { font-size:43px; }.values-strip { grid-template-columns:1fr; }.values-strip>div,.values-strip>div:not(:first-child) { padding:25px 0; border-right:0; }
  .service-grid,.product-grid { grid-template-columns:1fr; }.service-card { min-height:300px; }.service-cta { align-items:flex-start; flex-direction:column; }
  .featured-service,.featured-copy { min-height:410px; }.featured-copy { padding:36px 30px; max-width:90%; }.featured-copy h3 { font-size:42px; }
  .client-types { grid-template-columns:1fr; }.client-types>div { margin-right:0; }.client-banner>div { padding:45px 28px; }
  .case-grid { display:flex; flex-direction:column; }.case-card { height:350px; }.modal-content { display:block; max-height:86vh; overflow:auto; }.modal-content img { height:48vh; }.modal-content div { padding:28px; }
  .location-copy { padding:42px 26px; }.map-graphic { min-height:350px; }.contact-form { grid-template-columns:1fr; padding:28px 22px; }.field,.contact-form button,.contact-form>small { grid-column:1; }
  .footer-main { grid-template-columns:1fr; }.footer-bottom { flex-direction:column; gap:12px; }.whatsapp-float b { display:none; }.whatsapp-float { width:50px;height:50px;padding:0;justify-content:center; }
}

/* 2026 content and mobile refinement */
section[id],article[id] { scroll-margin-top:86px; }
.timeline { margin-top:84px; display:grid; grid-template-columns:repeat(7,1fr); border-top:1px solid #dce4ec; }
.timeline-item { position:relative; padding:31px 24px 10px 0; }
.timeline-item:before { content:""; position:absolute; top:-5px; left:0; width:9px; height:9px; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 6px rgba(255,180,0,.13); }
.timeline-item span { color:var(--blue); font-weight:900; font-size:12px; display:block; margin-bottom:15px; }
.timeline-item strong { font-size:13px; display:block; margin-bottom:9px; }
.timeline-item p { color:#748296; font-size:11px; line-height:1.65; margin:0; }
.service-grid { grid-template-columns:repeat(4,1fr); margin-bottom:84px; }
.service-card { min-height:280px; display:flex; flex-direction:column; justify-content:flex-end; }
.service-card h3 { max-width:250px; }
.service-card p { min-height:66px; }
.service-tag b { margin-left:auto; color:var(--yellow); }
.service-details { display:grid; gap:28px; }
.detail-card { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); min-height:520px; background:white; color:var(--ink); overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.19); }
.detail-card:nth-child(even) .detail-image { order:2; }
.detail-image { position:relative; min-height:520px; overflow:hidden; background:#dce8f3; }
.detail-image:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(3,20,40,.66)); pointer-events:none; }
.detail-image img { width:100%; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.detail-card:hover .detail-image img { transform:scale(1.035); }
.detail-image>span { position:absolute; z-index:2; left:25px; bottom:24px; background:var(--yellow); color:var(--deep); padding:10px 13px; font-size:9px; font-weight:900; text-transform:uppercase; letter-spacing:.12em; }
.detail-copy { padding:clamp(34px,5vw,72px); align-self:center; }
.detail-copy h3 { font-size:clamp(34px,4.2vw,60px); line-height:1; letter-spacing:-.055em; margin:0 0 22px; color:var(--deep); }
.detail-intro { color:#66778a; line-height:1.75; font-size:14px; margin:0 0 24px; }
.detail-copy details { border-top:1px solid #dbe4ec; border-bottom:1px solid #dbe4ec; margin-bottom:28px; }
.detail-copy summary { list-style:none; display:flex; justify-content:space-between; align-items:center; cursor:pointer; padding:18px 0; font-size:11px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; color:var(--blue); }
.detail-copy summary::-webkit-details-marker { display:none; }
.detail-copy details[open] summary b { transform:rotate(45deg); }
.detail-copy summary b { color:var(--yellow); font-size:20px; transition:.25s; }
.detail-copy ul { margin:0 0 22px; padding:0; list-style:none; columns:2; column-gap:30px; }
.detail-copy li { break-inside:avoid; position:relative; padding:0 0 10px 17px; color:#607184; font-size:12px; line-height:1.55; }
.detail-copy li:before { content:""; position:absolute; left:0; top:7px; width:6px; height:6px; border-radius:50%; background:var(--yellow); }
.efficiency-note { background:#edf6ff; border-left:3px solid var(--blue); padding:16px; color:#52677b; line-height:1.65; font-size:11px; margin:0 0 22px; }
.detail-cta { display:inline-flex; gap:22px; align-items:center; background:var(--blue); color:white; padding:15px 20px; font-size:11px; font-weight:900; }
.detail-cta span { color:var(--yellow); }
.case-grid { grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(3,300px); }
.case-card,.case-grid .case-card { display:block; grid-column:auto; grid-row:auto; }
.case-card:first-child { grid-row:span 2; }
.case-card:nth-child(5) { grid-column:span 2; }
.contact-head { max-width:900px; margin-bottom:60px; }
.contact-head h2 { color:white; font-size:clamp(46px,6vw,82px); line-height:.99; letter-spacing:-.06em; margin:18px 0 24px; }
.contact-head h2 em { color:var(--yellow); }
.contact-head>p { color:#9eb1c6; line-height:1.75; max-width:680px; }
.contact-grid { align-items:start; gap:5vw; }
.contact-copy>img { width:100%; height:360px; object-fit:cover; margin-bottom:34px; border:1px solid rgba(255,255,255,.14); }
.contact-badges { flex-direction:column; gap:12px; }
.field-full { grid-column:1/-1; }
.field textarea { width:100%; resize:vertical; min-height:120px; border:1px solid #d4dee7; padding:14px; outline:0; background:#f8fafc; color:#203047; font-size:13px; line-height:1.6; }
.field textarea:focus { border-color:var(--blue); }
.label-three { left:11%; bottom:15%; }
.animate-on-scroll { opacity:0; transform:translateY(30px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1); }
.animate-on-scroll.in-view { opacity:1; transform:none; }

@media (max-width:1100px) {
  .timeline { grid-template-columns:repeat(4,1fr); row-gap:25px; }
  .service-grid { grid-template-columns:repeat(2,1fr); }
  .detail-copy ul { columns:1; }
  .case-grid { grid-template-columns:repeat(2,1fr); grid-template-rows:repeat(5,290px); }
  .case-card:first-child { grid-row:span 1; }
  .case-card:nth-child(5) { grid-column:span 1; }
}

@media (max-width:900px) {
  body.menu-visible { overflow:hidden; }
  .site-header { position:fixed; z-index:120; }
  .menu-button { position:relative; z-index:122; width:44px; height:44px; padding:11px; border:1px solid #d9e2eb; background:white; }
  .menu-button span { display:block; width:100%; margin:4px 0; transition:.25s; }
  .nav,.nav.open { position:fixed; z-index:121; inset:72px 0 0; display:flex; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; padding:24px; background:rgba(255,255,255,.98); overflow-y:auto; overscroll-behavior:contain; transform:translateX(105%); transition:transform .32s cubic-bezier(.76,0,.24,1); box-shadow:none; }
  .nav.open { transform:none; }
  .nav a { width:100%; padding:15px 2px; border-bottom:1px solid #e3e9ef; font-size:17px; font-weight:800; color:var(--deep); }
  .hero { padding-top:124px; }
  .timeline { grid-template-columns:repeat(2,1fr); }
  .detail-card,.detail-card:nth-child(even) { grid-template-columns:1fr; }
  .detail-card:nth-child(even) .detail-image { order:0; }
  .detail-image { min-height:440px; }
  .contact-copy>img { height:440px; }
}

@media (max-width:600px) {
  .section { padding:74px 18px; }
  .site-header { padding:0 14px; }
  .brand { width:104px; }
  .brand img { height:62px; max-width:104px; object-fit:contain; }
  .hero { padding:112px 18px 62px; gap:42px; }
  .hero h1 { font-size:clamp(43px,13vw,56px); }
  .hero-text { font-size:14px; }
  .hero-actions { align-items:stretch; }
  .hero-actions .button { width:100%; justify-content:space-between; }
  .hero-trust { display:grid; grid-template-columns:1fr 1fr; width:100%; }
  .hero-trust div { width:auto; }
  .hero-visual { height:390px; }
  .hero-image-wrap { height:340px; width:94%; border-radius:90px 14px 90px 14px; }
  .floating-card { padding:12px; }
  .floating-top { right:-2px; top:40px; }
  .floating-bottom { left:-2px; bottom:18px; }
  .about h2,.section-head h2,.clients h2,.location h2,.contact h2 { font-size:clamp(37px,11vw,47px); }
  .timeline { grid-template-columns:1fr; margin-top:55px; border-left:1px solid #dce4ec; border-top:0; }
  .timeline-item { padding:0 0 30px 25px; }
  .timeline-item:before { top:3px; left:-5px; }
  .service-grid { grid-template-columns:1fr; margin-bottom:55px; }
  .service-card { min-height:245px; padding:28px; }
  .service-details { gap:18px; }
  .detail-card { min-height:0; }
  .detail-image { min-height:300px; }
  .detail-copy { padding:30px 22px 34px; }
  .detail-copy h3 { font-size:38px; }
  .detail-copy ul { columns:1; }
  .detail-cta { width:100%; justify-content:space-between; }
  .case-grid { display:grid; grid-template-columns:1fr; grid-template-rows:none; }
  .case-card { height:300px; }
  .modal { padding:14px; }
  .modal-close { z-index:3; top:5px; right:14px; font-size:38px; }
  .modal-content { width:100%; max-height:88vh; }
  .modal-content img { height:42vh; }
  .modal-content h3 { font-size:28px; }
  .contact-head { margin-bottom:38px; }
  .contact-grid { gap:30px; }
  .contact-copy>img { height:300px; }
  .phone strong { font-size:25px; }
  .contact-form { padding:28px 18px; gap:20px; }
  .field input,.field select { min-height:52px; font-size:16px; }
  .field textarea { font-size:16px; }
  .contact-form button { min-height:58px; height:auto; padding:14px; }
  .map-label { font-size:8px; }
  .label-one { left:5%; top:18%; }
  .label-two { right:4%; bottom:17%; }
  .label-three { left:5%; bottom:7%; }
  .footer-main>img { width:126px; height:98px; }
  .whatsapp-float { right:14px; bottom:14px; }
}
