:root { --navy:#061b38; --navy-2:#0b2b56; --blue:#1769e0; --sky:#ddecff; --ice:#f4f8fc; --white:#fff; --ink:#0a1d35; --muted:#5e6d7c; --line:#dce5ee; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
html { scroll-behavior:smooth; scroll-padding-top:88px; }
body { margin:0; background:var(--white); color:var(--ink); font-family:Arial, Helvetica, sans-serif; font-size:16px; font-weight:400; line-height:1.65; }
button, a { font:inherit; }
a { color:inherit; text-decoration:none; }
button { color:inherit; }
button:focus-visible,a:focus-visible { outline:3px solid #79aaff; outline-offset:3px; }
.site-header { height:88px; padding:0 clamp(22px,4vw,68px); display:flex; align-items:center; justify-content:space-between; position:sticky; top:0; background:rgba(255,255,255,.96); border-bottom:1px solid rgba(12,41,77,.09); z-index:50; backdrop-filter:blur(14px); }
.brand { display:flex; align-items:center; gap:15px; }
.brand-logo { display:block; width:136px; height:34px; object-fit:contain; object-position:left center; }
nav { display:flex; align-items:center; gap:clamp(16px,2vw,31px); font-size:13px; font-weight:700; }
nav a:not(.nav-call) { position:relative; }
nav a:not(.nav-call):after { content:""; height:1px; background:var(--blue); position:absolute; left:0; right:100%; bottom:-6px; transition:.25s; }
nav a:hover:after { right:0; }
.nav-call { background:var(--navy); color:white; padding:11px 19px; border-radius:999px; }
.menu-button { display:none; border:0; background:none; padding:10px; }.menu-button span { width:24px; height:2px; background:var(--navy); display:block; margin:6px; }
.hero { min-height:calc(100vh - 88px); display:grid; grid-template-columns:minmax(430px,.93fr) minmax(500px,1.07fr); background:var(--ice); }
.hero-copy { padding:clamp(70px,9vw,130px) clamp(30px,6.3vw,105px); display:flex; flex-direction:column; justify-content:center; }
.eyebrow { margin:0 0 18px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--blue); font-weight:700; }
h1,h2,h3,p { margin-top:0; }
h1 { margin-bottom:36px; font-size:clamp(44px,5vw,72px); line-height:1; letter-spacing:-.05em; color:var(--navy); font-weight:700; }
h1 em { color:var(--blue); font-style:normal; }
.hero-intro { max-width:620px; font-size:clamp(18px,1.6vw,23px); line-height:1.55; color:#405168; }
.hero-actions { display:flex; align-items:center; gap:27px; margin-top:18px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:34px; min-width:215px; padding:15px 22px; border-radius:999px; font-size:13px; font-weight:700; transition:.2s; border:1px solid transparent; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--blue); color:#fff; }.button-primary:hover { background:#0c55bd; }
.text-link { font-size:13px; font-weight:700; display:flex; gap:18px; }
.institutional-note { margin-top:54px; padding-top:20px; border-top:1px solid var(--line); display:flex; gap:14px; max-width:570px; color:#667689; font-size:12px; line-height:1.5; }
.institutional-note span { flex:none; width:20px; height:20px; border:1px solid #8ba1b8; border-radius:50%; display:grid; place-items:center; font-weight:700; }
.institutional-note p { margin:0; }
.hero-visual { min-height:650px; position:relative; background:var(--navy); }
.site-photo { position:relative; overflow:hidden; min-height:430px; margin:0; background:#d9e3ed; }
.site-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.site-photo:hover img { transform:scale(1.02); }
.site-photo:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(3,17,35,.58)); pointer-events:none; }
.site-photo figcaption { position:absolute; z-index:1; left:26px; bottom:22px; color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; }
.hero-photo { height:100%; min-height:650px; }
.hero-photo img { object-position:52% center; }
.section { padding:clamp(80px,10vw,150px) clamp(24px,7vw,110px); position:relative; }
.section-number { position:absolute; top:45px; right:5vw; font-size:10px; letter-spacing:.16em; color:#9bb0c5; }
.section-heading { max-width:720px; }
h2 { margin-bottom:44px; font-size:clamp(34px,4vw,56px); line-height:1.08; letter-spacing:-.04em; color:var(--navy); font-weight:700; }
.service { display:grid; grid-template-columns:1fr 1fr; column-gap:7vw; }
.service .section-heading { grid-column:1; }.service-copy { grid-column:2; align-self:end; color:var(--ink); max-width:580px; }
.service-copy p,.feature-list p,.sustainability-copy>p:not(.eyebrow),.about-copy>p:not(.eyebrow),.jobs-content>p:not(.eyebrow),.contact-heading>p:last-child { font-size:18px; line-height:1.65; font-weight:400; }
.certification-mark { display:flex; align-items:center; gap:16px; margin-top:30px; }.certification-mark img { width:64px; height:64px; object-fit:contain; flex:none; }.certification-mark span { max-width:210px; color:#627286; font-size:11px; line-height:1.45; letter-spacing:.07em; text-transform:uppercase; font-weight:700; }
.feature-list { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); margin-top:100px; }
.feature-list article { padding:38px 8% 10px 0; border-right:1px solid var(--line); }.feature-list article+article { padding-left:11%; }.feature-list article:last-child { border-right:0; }
.feature-list article>span { color:var(--blue); font-size:10px; font-weight:700; }.feature-list h3 { margin:45px 0 15px; font-size:20px; font-weight:700; }.feature-list p { color:var(--muted); }
.fleet { background:var(--navy); color:#dce7f2; }
.light-heading h2 { color:#fff; max-width:850px; margin-bottom:0; }.fleet .section-number { color:#54708d; }
.stats { display:grid; grid-template-columns:repeat(3,1fr); margin:78px 0 85px; border-top:1px solid #29425e; border-bottom:1px solid #29425e; }
.stats>div { position:relative; padding:43px 8% 35px; border-right:1px solid #29425e; }.stats>div:first-child { padding-left:0; }.stats>div:last-child { border:0; }
.stats strong { display:block; color:#fff; font-size:clamp(62px,7vw,102px); line-height:1; letter-spacing:-.07em; font-weight:700; }.stats strong span { color:#fff; font-size:.45em; }.stats p { max-width:250px; font-size:15px; line-height:1.55; color:#a8b9ca; margin:16px 0 0; }
.fleet-gallery { display:grid; grid-template-columns:1.25fr .75fr; gap:20px; }.fleet-gallery .site-photo:first-child img { object-position:center 35%; }.fleet-gallery .site-photo:last-child img { object-position:48% center; }
.fleet-note { margin:20px 0 0; color:#8097ae; font-size:11px; text-transform:uppercase; letter-spacing:.1em; }
.sustainability { background:var(--ice); display:grid; grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr); gap:8vw; align-items:end; }
.sustainability-copy { max-width:780px; }.sustainability-copy>p:not(.eyebrow) { color:var(--ink); }.sustainability-funding { display:flex; flex-direction:column; align-items:flex-start; gap:12px; padding-bottom:4px; }.sustainability-funding span { color:#758497; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }.sustainability-funding img { display:block; width:min(500px,100%); height:auto; }
.about { display:grid; grid-template-columns:.75fr 1.25fr; gap:10vw; }.about-kicker { align-self:center; color:#d8e4ef; font-size:clamp(50px,7vw,105px); line-height:.83; font-weight:700; letter-spacing:-.07em; }.about-kicker span { color:var(--blue); font-size:.29em; letter-spacing:.05em; text-transform:uppercase; }
.about-copy { max-width:700px; }.about-copy>p:not(.eyebrow) { color:var(--ink); }
.jobs { background:var(--blue); color:#fff; padding:clamp(80px,10vw,145px) clamp(24px,7vw,110px); display:grid; grid-template-columns:1.25fr .75fr; gap:10vw; }
.jobs .eyebrow { color:#c9dcff; }.jobs h2 { color:#fff; max-width:800px; }.jobs-content>p:not(.eyebrow) { max-width:680px; color:#d8e7ff; }.button-light { background:#fff; color:var(--navy); margin-top:28px; }
.job-requirements { border-top:1px solid rgba(255,255,255,.35); padding-top:28px; }.job-requirements>p { font-size:11px; text-transform:uppercase; letter-spacing:.15em; }.job-requirements ul { list-style:none; padding:0; margin:30px 0; }.job-requirements li { padding:18px 0; border-bottom:1px solid rgba(255,255,255,.24); font-size:15px; }.job-requirements li span { display:inline-block; width:42px; color:#c9dcff; font-size:10px; }.job-requirements small { color:#c9dcff; font-size:11px; }
.contact { padding:clamp(80px,10vw,145px) clamp(24px,7vw,110px); display:grid; grid-template-columns:1fr 1fr; gap:9vw; }.contact-heading>p:last-child { color:var(--muted); max-width:530px; }.contact-links { border-top:1px solid var(--line); }.contact-links>a,.contact-links>div { min-height:105px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:90px 1fr auto; align-items:center; gap:20px; }.contact-links span { color:#758497; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }.contact-links strong { font-size:clamp(17px,1.8vw,24px); line-height:1.35; }.contact-links i { color:var(--blue); font-style:normal; font-size:22px; }.contact-links a:hover strong { color:var(--blue); }
.partners { min-height:140px; padding:32px clamp(24px,7vw,110px); border-top:1px solid var(--line); background:var(--ice); display:grid; grid-template-columns:150px 1fr; align-items:center; gap:45px; }.partners .eyebrow { margin:0; }.partner-logos { display:flex; align-items:center; justify-content:center; gap:clamp(34px,5vw,80px); }.partner-logo { width:180px; height:72px; display:flex; align-items:center; justify-content:center; overflow:hidden; border-radius:4px; }.partner-logo img { display:block; width:auto; max-width:100%; filter:grayscale(1); opacity:.62; transition:filter .25s ease,opacity .25s ease,transform .25s ease; }.partner-logo:hover img,.partner-logo:focus-visible img { filter:grayscale(0); opacity:1; transform:translateY(-2px); }.partner-logo:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }.partner-asp img { height:120px; max-width:none; }.partner-goblinstadt img { height:62px; }.partner-steelduck { width:230px; }.partner-steelduck img { width:220px; height:auto; max-width:none; }
footer { background:#04152c; color:#fff; padding:60px clamp(24px,7vw,110px) 35px; display:grid; grid-template-columns:1.3fr .8fr .8fr; gap:60px; }.footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:6px 35px; font-size:12px; }.footer-nav a:hover { color:#75aaff; }footer .brand-logo { width:104px; height:30px; filter:brightness(0) invert(1); }footer p { color:#8ba1b8; font-size:11px; line-height:1.5; }.footer-brand p { margin:14px 0 0; font-size:10px; letter-spacing:.03em; }.footer-meta { display:flex; flex-wrap:wrap; align-content:start; justify-content:flex-end; gap:12px 20px; }.footer-meta p { width:100%; text-align:right; }.footer-meta button { background:none; border:0; padding:0; color:#8ba1b8; font-size:11px; cursor:pointer; }.footer-meta button:hover { color:#fff; }
.modal-backdrop { position:fixed; inset:0; background:rgba(2,16,34,.8); display:grid; place-items:center; z-index:100; padding:20px; backdrop-filter:blur(6px); }.legal-modal { position:relative; background:#fff; width:min(680px,100%); max-height:86vh; overflow:auto; padding:clamp(28px,5vw,65px); box-shadow:0 40px 100px rgba(0,0,0,.3); }.legal-modal h2 { margin-bottom:32px; font-size:40px; }.modal-close { position:absolute; top:20px; right:22px; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:white; cursor:pointer; font-size:25px; line-height:1; }.legal-body { color:var(--muted); font-size:14px; }.legal-note { background:var(--ice); border-left:3px solid var(--blue); padding:14px; font-size:12px; }
@media (max-width:1000px) { nav { position:absolute; top:88px; left:0; right:0; background:#fff; display:none; padding:25px; border-bottom:1px solid var(--line); flex-direction:column; align-items:stretch; }.site-header nav.open { display:flex; }.menu-button { display:block; }.hero { grid-template-columns:1fr; }.hero-copy { min-height:650px; }.hero-visual,.hero-photo { min-height:560px; }.service,.sustainability,.about,.jobs,.contact { grid-template-columns:1fr; }.service-copy { grid-column:1; margin-top:44px; }.feature-list { margin-top:65px; }.stats { grid-template-columns:1fr 1fr 1fr; }.about-kicker { display:none; }.sustainability { gap:48px; }.jobs,.contact { gap:55px; }.partners { grid-template-columns:1fr; gap:18px; }.partner-logos { justify-content:center; gap:20px; } }
@media (max-width:680px) { html { scroll-padding-top:72px; }.site-header { height:72px; }.brand small { display:none; }nav { top:72px; }.hero { min-height:0; }.hero-copy { min-height:auto; padding:70px 24px 60px; }.hero-visual,.hero-photo { min-height:420px; }.hero-actions { align-items:stretch; flex-direction:column; }.button { width:100%; }.institutional-note { margin-top:38px; }.section { padding:85px 24px; }.section-number { top:25px; }.feature-list,.stats,.fleet-gallery { grid-template-columns:1fr; }.feature-list article,.feature-list article+article { padding:27px 0; border-right:0; border-bottom:1px solid var(--line); }.feature-list h3 { margin:20px 0 8px; }.stats>div,.stats>div:first-child { padding:30px 0; border-right:0; border-bottom:1px solid #29425e; }.fleet-gallery .site-photo { min-height:350px; }.sustainability,.about { gap:48px; }.sustainability-funding img { width:min(320px,100%); }.jobs,.contact { padding:85px 24px; }.contact-links>a,.contact-links>div { grid-template-columns:70px 1fr auto; }.contact-links strong { overflow-wrap:anywhere; }.partners { padding:30px 24px 34px; }.partner-logos { flex-wrap:wrap; justify-content:center; gap:18px 22px; }.partner-logo { width:128px; }.partner-steelduck { width:180px; }.partner-steelduck img { width:170px; }footer { grid-template-columns:1fr; padding:55px 24px 30px; gap:35px; }.footer-meta { justify-content:flex-start; }.footer-meta p { text-align:left; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }* { transition:none!important; } }
