@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,600;1,600&display=swap');

:root { --navy:#071b3d; --blue:#0b5f9e; --gold:#bd9512; --green:#668d25; --paper:#f8f8f5; --ink:#14243b; --muted:#607083; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans', sans-serif; line-height:1.6; }
a { color:inherit; text-decoration:none; }
.site-header { align-items:center; display:flex; justify-content:space-between; margin:auto; max-width:1240px; padding:28px 5vw; }
.brand { align-items:center; display:flex; font-size:12px; font-weight:700; gap:13px; letter-spacing:.08em; text-transform:uppercase; }
.brand img { height:42px; object-fit:contain; width:42px; }
.header-link, .text-link { color:var(--blue); font-size:13px; font-weight:700; }
.hero { align-items:center; display:grid; gap:4vw; grid-template-columns:minmax(0,1fr) minmax(310px, .8fr); margin:auto; max-width:1240px; min-height:650px; padding:55px 5vw 100px; }
.eyebrow, .section-label { color:var(--gold); font-size:11px; font-weight:700; letter-spacing:.18em; margin:0 0 26px; text-transform:uppercase; }
h1, h2, h3, p { margin-top:0; }
h1 { color:var(--navy); font-size:clamp(58px,8vw,108px); letter-spacing:-.065em; line-height:.94; margin-bottom:30px; }
h1 em { color:var(--blue); font-family:'Playfair Display', Georgia, serif; font-weight:600; letter-spacing:-.07em; }
.hero-text { color:var(--muted); font-size:18px; max-width:500px; }
.hero-actions { align-items:center; display:flex; flex-wrap:wrap; gap:27px; margin-top:38px; }
.button { display:inline-block; padding:15px 22px; }
.button-primary { background:var(--navy); color:#fff; font-size:13px; font-weight:700; transition:transform .2s, background .2s; }
.button-primary:hover { background:var(--blue); transform:translateY(-2px); }
.button-primary span { color:#ddc45c; font-size:19px; margin-left:15px; vertical-align:-2px; }
.text-link { border-bottom:1px solid #b7c3cd; padding-bottom:4px; }
.hero-mark { height:430px; position:relative; }
.mark-card { align-items:center; background:#fff; border:1px solid #e6e9e7; box-shadow:20px 25px 0 #e9ede9; display:flex; height:315px; justify-content:center; left:13%; position:absolute; top:50px; transform:rotate(-5deg); width:290px; z-index:2; }
.mark-card img { height:275px; object-fit:contain; width:275px; }
.orbit { border:1px solid #c3d5c5; border-radius:50%; position:absolute; }
.orbit-one { height:410px; left:4%; top:0; transform:rotate(25deg); width:350px; }
.orbit-two { border-color:#d8bf57; height:270px; left:20%; top:80px; transform:rotate(-35deg); width:350px; }
.mark-number { bottom:5px; color:var(--gold); font-family:Georgia, serif; font-size:14px; position:absolute; right:8%; }
.section-grid { display:grid; gap:7vw; grid-template-columns:180px minmax(0,740px); margin:auto; max-width:1240px; padding:110px 5vw; }
.section-label { color:var(--blue); margin:5px 0 0; }
h2 { color:var(--navy); font-size:clamp(34px,4.2vw,60px); letter-spacing:-.06em; line-height:1.04; margin-bottom:28px; }
.large-copy { color:var(--muted); font-size:21px; max-width:700px; }
.intro { border-top:1px solid #dce3df; }
.services { border-top:1px solid #dce3df; }
.service-list { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service { border-top:3px solid var(--gold); padding-top:20px; }
.service span { color:var(--gold); font-size:12px; font-weight:700; }
.service h3 { color:var(--navy); font-size:19px; letter-spacing:-.03em; margin:17px 0 10px; }
.service p { color:var(--muted); font-size:14px; }
.contact { background:var(--navy); color:#fff; display:grid; gap:7vw; grid-template-columns:1fr 1fr; padding:105px max(5vw,calc((100vw - 1140px)/2)); }
.contact h2 { color:#fff; max-width:540px; }
.contact .section-label { color:#ddc45c; }
.contact-details { align-self:end; border-top:1px solid #53657c; }
.contact-details a { align-items:center; border-bottom:1px solid #53657c; display:flex; gap:22px; justify-content:space-between; padding:17px 0; }
.contact-details span { color:#b5c3d2; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.contact-details strong { color:#fff; font-size:15px; font-weight:500; text-align:right; }
.site-footer { color:#7d8993; display:flex; font-size:11px; justify-content:space-between; letter-spacing:.06em; max-width:1240px; padding:25px 5vw; text-transform:uppercase; }
@media (max-width:720px) { .site-header { padding-top:20px; } .brand span { display:none; } .hero { display:block; min-height:0; padding-top:65px; } .hero-mark { height:330px; margin-top:40px; } .mark-card { left:17%; top:20px; } .orbit-one { left:3%; transform:scale(.8) rotate(25deg); transform-origin:top left; } .orbit-two { left:15%; transform:scale(.8) rotate(-35deg); transform-origin:top left; } .section-grid, .contact { display:block; padding:75px 7vw; } .section-label { margin-bottom:28px; } .service-list { display:block; } .service { margin-bottom:38px; } .contact-details { margin-top:50px; } .contact-details a { align-items:flex-start; flex-direction:column; gap:4px; } .contact-details strong { text-align:left; } .site-footer { display:block; line-height:2; padding:22px 7vw; } }
