:root { --navy:#082f42; --blue:#087d9c; --sky:#dff2f5; --ice:#f4f9f9; --orange:#f29a36; --white:#fff; --text:#173743; --line:#d5e2e5; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--text); background:var(--white); font-family:"DM Sans",Arial,sans-serif; line-height:1.6; }
a { color:inherit; }
.skip-link { position:absolute; z-index:100; top:-100px; left:12px; padding:12px 18px; color:#fff; background:var(--navy); font-weight:800; text-decoration:none; transition:top .2s ease; }
.skip-link:focus { top:12px; }
.sticky-call { display:none; }
@media (max-width:720px) { .sticky-call { position:fixed; z-index:30; left:14px; right:14px; bottom:14px; padding:15px; display:block; text-align:center; color:#fff; background:var(--orange); box-shadow:0 8px 24px rgba(4,44,59,.3); font-weight:800; text-decoration:none; } }
.topbar { min-height:41px; padding:8px max(28px,calc((100% - 1180px)/2)); display:flex; justify-content:space-between; align-items:center; gap:20px; background:var(--navy); color:#dcecf0; font-size:12px; font-weight:700; letter-spacing:.035em; }.topbar a { color:#fff; text-decoration:none; }
.site-header { max-width:1180px; margin:auto; min-height:100px; padding:12px 30px; display:flex; align-items:center; justify-content:space-between; }.logo { display:flex; align-items:center; text-decoration:none; }.logo img { display:block; width:275px; height:75px; object-fit:cover; object-position:center; border-radius:2px; }
.site-header nav { display:flex; align-items:center; gap:27px; } .site-header nav a { font-size:14px; font-weight:700; text-decoration:none; } .nav-cta { padding:10px 15px; color:#fff; background:var(--orange); }.menu-button { display:none; border:0; background:none; color:var(--navy); font:inherit; font-weight:700; }
.hero { position:relative; overflow:hidden; min-height:520px; padding:100px max(30px,calc((100% - 1120px)/2)) 85px; display:flex; align-items:center; color:#fff; background:linear-gradient(112deg,rgba(4,42,59,.98) 0%,rgba(6,67,87,.94) 56%,rgba(11,114,137,.88) 100%); }.hero-video { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; }.hero::before { content:""; position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(4,35,48,.91) 0%,rgba(4,47,62,.78) 54%,rgba(4,47,62,.36) 100%); }.hero::after { content:""; position:absolute; z-index:1; right:-110px; top:-150px; width:600px; height:600px; border:85px solid rgba(255,255,255,.06); border-radius:50%; }.hero-copy { position:relative; z-index:2; max-width:730px; }.eyebrow { margin:0 0 12px; color:var(--orange); font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; } h1,h2 { margin:0 0 20px; font-family:"Playfair Display",Georgia,serif; line-height:1.08; letter-spacing:-.035em; } h1 { max-width:740px; font-size:clamp(49px,6.2vw,78px); } h2 { font-size:clamp(35px,4vw,51px); } h3 { margin:0 0 10px; font-size:20px; }.intro { max-width:630px; margin:0; color:#e0eef0; font-size:18px; }.service-area { margin:17px 0 0; color:#fff; font-size:15px; }.hero-actions { display:flex; flex-wrap:wrap; gap:13px; margin-top:30px; }.button { display:inline-block; padding:14px 21px; border:1px solid transparent; border-radius:0; font:inherit; font-weight:800; text-decoration:none; cursor:pointer; }.button-primary { color:#fff; background:var(--orange); }.button-primary:hover { background:#d77e1c; }.button-outline { border-color:#a4c5cc; color:#fff; }.button-outline:hover { background:rgba(255,255,255,.1); }
.service-links { position:relative; z-index:2; max-width:1120px; margin:-34px auto 0; display:grid; grid-template-columns:repeat(5,1fr); box-shadow:0 9px 30px rgba(4,44,59,.16); }.service-links a { min-height:94px; padding:22px 15px; display:flex; align-items:center; gap:9px; background:#fff; border-right:1px solid var(--line); color:var(--navy); font-size:13px; font-weight:800; text-decoration:none; }.service-links a:last-child { border:0; }.service-links a:hover { background:var(--sky); }.service-links span { color:var(--orange); font-size:11px; }.service-links b { margin-left:auto; color:var(--blue); font-size:19px; }
.services { padding:112px max(30px,calc((100% - 1120px)/2)) 92px; background:var(--ice); }.section-heading { display:flex; align-items:end; justify-content:space-between; gap:50px; }.section-heading h2 { max-width:670px; }.service-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:18px; margin-top:35px; }.service-grid article { min-height:240px; padding:28px 20px; background:#fff; border-top:4px solid transparent; box-shadow:0 3px 12px rgba(11,51,64,.06); }.service-grid article:hover { border-top-color:var(--orange); transform:translateY(-3px); }.service-grid p { margin:0; font-size:14px; }.service-icon { width:44px; height:44px; margin-bottom:27px; display:grid; place-items:center; color:#fff; background:var(--blue); font-size:23px; }
.result-grid { display:grid; grid-template-columns:1.06fr 1fr 1fr; grid-template-rows:255px 255px; gap:18px; margin-top:38px; }.service-results { margin-bottom:38px; }.result-card { position:relative; min-width:0; margin:0; overflow:hidden; background:var(--navy); }.result-card-tall { grid-row:span 2; }.result-card img { width:100%; height:100%; display:block; object-fit:cover; transition:transform .35s ease; }.result-card:hover img { transform:scale(1.04); }.result-card figcaption { position:absolute; left:0; right:0; bottom:0; padding:30px 18px 15px; color:#fff; background:linear-gradient(transparent,rgba(0,22,30,.8)); font-size:14px; font-weight:800; }
.about { max-width:1060px; margin:auto; padding:105px 30px; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:90px; }.about-facts { min-height:315px; padding:38px; display:flex; flex-direction:column; justify-content:space-between; background:var(--navy); color:#fff; border-bottom:10px solid var(--orange); }.about-facts span { font-family:"Playfair Display",serif; font-size:82px; line-height:1; }.about-facts p { margin:0; font-size:18px; font-weight:700; }.about > div:last-child { max-width:590px; }.about > div:last-child > p:not(.eyebrow) { font-size:17px; }.check-list { margin:25px 0; padding:0; list-style:none; }.check-list li { margin:10px 0; font-weight:700; }.check-list li::before { content:"✓"; display:inline-grid; width:22px; height:22px; margin-right:10px; place-items:center; color:#fff; background:var(--blue); font-size:13px; }.text-link { display:inline-block; color:var(--navy); font-weight:800; text-decoration:none; border-bottom:2px solid var(--orange); }.text-link span { color:var(--blue); }
.contact { display:grid; grid-template-columns:1fr .86fr; gap:80px; padding:88px max(30px,calc((100% - 1120px)/2)); background:var(--navy); color:#fff; }.contact .eyebrow { color:#91d9e4; }.contact h2 { max-width:550px; }.contact > div > p:not(.eyebrow) { max-width:540px; color:#d6e6e9; }.contact-details { display:flex; flex-direction:column; gap:7px; margin-top:28px; }.contact-details a { color:#fff; font-size:17px; font-weight:800; text-decoration:none; } form { padding:30px; background:#fff; color:var(--text); box-shadow:12px 12px 0 var(--orange); } label { display:block; margin-bottom:14px; font-size:12px; font-weight:800; letter-spacing:.025em; } input,textarea,select { display:block; width:100%; margin-top:5px; padding:11px; border:1px solid #bed2d6; border-radius:0; color:var(--text); background:#fbfdfd; font:inherit; } textarea { resize:vertical; } form .button { width:100%; margin-top:2px; } form .button:disabled { opacity:.7; cursor:progress; } .form-status { margin:14px 0 0; padding:12px 14px; font-size:13px; font-weight:700; } .form-status-success { color:#0d5c2e; background:#e3f5e9; } .form-status-error { color:#7a1e1e; background:#fbe6e6; }
footer { max-width:1180px; margin:auto; padding:28px 30px; display:flex; justify-content:space-between; align-items:center; } footer .logo img { width:205px; height:58px; } .footer-details { display:flex; flex-direction:column; align-items:flex-end; gap:5px; } footer p { margin:0; color:#557276; font-size:12px; } .footer-details > a { color:var(--blue); font-size:13px; font-weight:800; text-decoration:none; }.legal-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:5px 11px; }.legal-links a,.legal-links button { padding:0; border:0; color:#557276; background:none; font:inherit; font-size:11px; text-decoration:underline; cursor:pointer; }
.cookie-banner { position:fixed; z-index:20; right:22px; bottom:22px; max-width:420px; padding:22px; box-shadow:0 12px 35px rgba(4,44,59,.28); color:var(--navy); background:#fff; border-left:5px solid var(--orange); }.cookie-banner p { margin:0; font-size:14px; }.cookie-banner a { color:var(--blue); font-weight:800; }.cookie-banner div { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }.cookie-choice { padding:10px 13px; border:1px solid var(--blue); color:var(--blue); background:#fff; font:inherit; font-size:13px; font-weight:800; cursor:pointer; }.cookie-all { border-color:var(--blue); color:#fff; background:var(--blue); }
@media (max-width:900px) { .service-grid { grid-template-columns:repeat(2,1fr); }.service-links { margin-left:20px; margin-right:20px; grid-template-columns:repeat(2,1fr); }.result-grid { grid-template-columns:repeat(2,1fr); grid-template-rows:280px 280px; }.result-card-tall { grid-row:span 1; }.about { gap:55px; }.contact { gap:45px; } }
@media (max-width:720px) { .topbar { padding:8px 20px; }.topbar div { display:none; }.topbar a { margin:auto; }.site-header { min-height:86px; padding:10px 20px; }.logo img { width:205px; height:58px; }.menu-button { display:block; } .site-header nav { display:none; position:absolute; z-index:5; top:127px; left:0; right:0; padding:20px; flex-direction:column; align-items:flex-start; background:#fff; box-shadow:0 9px 20px #173d4522; } .site-header nav.open { display:flex; }.hero { min-height:500px; padding:70px 20px 65px; }.hero::after { right:-250px; top:-75px; }.intro { font-size:16px; }.service-links { margin:-21px 20px 0; grid-template-columns:1fr; }.service-links a { min-height:68px; padding:16px; }.services { padding:78px 20px 62px; }.section-heading { display:block; }.service-grid,.result-grid { grid-template-columns:1fr; }.service-grid article { min-height:0; }.result-grid { grid-template-rows:300px; gap:14px; margin-top:28px; }.service-results { margin-bottom:30px; }.result-card,.result-card-tall { min-height:300px; grid-row:span 1; }.about { grid-template-columns:1fr; gap:42px; padding:75px 28px; }.about-facts { min-height:190px; }.contact { display:block; padding:72px 20px; }.contact form { margin-top:35px; box-shadow:8px 8px 0 var(--orange); } footer { padding:23px 20px; } footer .logo img { width:155px; height:44px; } .footer-details { align-items:flex-end; } footer p { max-width:210px; text-align:right; }.legal-links { justify-content:flex-end; }.cookie-banner { right:14px; bottom:82px; left:14px; max-width:none; } }
