:root { --ink:#20242b; --blue:#009fe3; --blue-deep:#0076b8; --red:#e6001b; --yellow:#ffd500; --paper:#f7f9fa; --line:#dbe3e7; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font:16px/1.55 Arial, Helvetica, sans-serif; }
a { color:inherit; }
.site-header, main, footer { max-width:1180px; margin:auto; }
.site-header { min-height:84px; display:flex; align-items:center; justify-content:space-between; padding:16px 32px; }
.brand { display:inline-flex; align-items:center; text-decoration:none; }
.brand img { display:block; width:184px; height:auto; }
.header-phone { font-weight:bold; text-decoration:none; }
.hero { position:relative; isolation:isolate; min-height:555px; display:flex; flex-direction:column; justify-content:center; overflow:hidden; padding:80px 8.5%; color:white; background:linear-gradient(125deg, var(--blue-deep), var(--blue)); }
.hero::before,.hero::after { position:absolute; z-index:-1; content:""; border-radius:50%; }
.hero::before { width:520px; height:520px; right:-160px; top:-250px; background:var(--yellow); }
.hero::after { width:190px; height:190px; right:20%; bottom:-105px; background:var(--red); }
.eyebrow { margin:0 0 15px; color:var(--red); font-size:12px; font-weight:bold; letter-spacing:.15em; text-transform:uppercase; }
h1,h2,h3,p { margin-top:0; }
h1 { max-width:750px; margin-bottom:20px; font-size:clamp(42px,6.2vw,77px); line-height:1.02; letter-spacing:-.055em; }
h1 em { color:var(--yellow); font-style:normal; }
.hero-copy { max-width:580px; margin-bottom:30px; font-size:19px; }
.actions { display:flex; flex-wrap:wrap; gap:12px; }
.button { padding:13px 20px; border:1px solid white; font-weight:bold; text-decoration:none; }
.button-primary { color:var(--ink); border-color:var(--yellow); background:var(--yellow); }
.button-secondary:hover { background:white; color:var(--ink); }
.intro { max-width:800px; padding:92px 8.5%; }
h2 { margin-bottom:18px; font-size:clamp(30px,4vw,48px); line-height:1.08; letter-spacing:-.04em; }
.intro > p:last-child { color:#4b5760; font-size:19px; }
.services { padding:78px 8.5%; background:white; }
.section-heading { margin-bottom:35px; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.service-grid article { min-height:190px; padding:25px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.service-grid h3 { margin-bottom:10px; font-size:20px; }
.service-grid p { margin:0; color:#4b5760; }
.contact { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; padding:78px 8.5%; color:white; background:var(--ink); }
.contact .eyebrow { color:var(--yellow); }
.contact p { font-size:18px; }
address { font-style:normal; }
address a { text-decoration-color:var(--yellow); text-underline-offset:4px; }
footer { display:flex; justify-content:space-between; gap:20px; padding:24px 32px; color:#4b5760; font-size:14px; }
footer a { text-underline-offset:4px; }
@media (max-width:720px) { .site-header { min-height:70px; padding:14px 20px; } .header-phone { font-size:14px; } .hero { min-height:500px; padding:64px 10%; } .intro,.services,.contact { padding:60px 10%; } .service-grid { grid-template-columns:1fr; } .contact { grid-template-columns:1fr; gap:25px; } footer { align-items:flex-start; flex-direction:column; padding:22px 20px; } }
