:root { --canvas:#fcfcfb; --paper:#efefeb; --ink:#14181d; --body:#565f6b; --hair:#e5e5e1; --blue:#1b63b6; --night:#112943; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--canvas); color:var(--ink); font-family:"Instrument Sans",system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
a:focus-visible { outline:2px solid var(--blue); outline-offset:4px; }
.wrap { width:min(1160px,calc(100% - 48px)); margin-inline:auto; }
.eyebrow { margin:0; color:var(--blue); font-size:11px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.display { max-width:11ch; margin:22px 0 0; font-size:clamp(50px,6.7vw,86px); font-weight:600; letter-spacing:-.055em; line-height:.94; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:0 26px; border-radius:999px; background:var(--ink); color:#fff; font-size:13px; font-weight:600; transition:background .2s ease,transform .2s ease; }
.button:hover { background:var(--blue); transform:translateY(-1px); }
.button-blue { background:var(--blue); }

.site-nav { position:sticky; top:0; z-index:20; border-bottom:1px solid var(--hair); background:rgba(252,252,251,.94); backdrop-filter:blur(10px); }
.nav-inner { height:80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand img { width:210px; height:auto; }
.nav-links { display:flex; align-items:center; gap:23px; color:var(--body); font-size:13px; font-weight:500; }
.nav-links a:hover,.phone:hover { color:var(--blue); }
.nav-actions { display:flex; align-items:center; gap:16px; }
.phone { font-size:13px; font-weight:600; white-space:nowrap; }

.hero { padding:64px 0 76px; background:var(--paper); }
.hero-grid { display:grid; grid-template-columns:.94fr 1.06fr; gap:68px; align-items:center; }
.hero-sub { max-width:55ch; margin:28px 0 0; color:var(--body); font-size:19px; line-height:1.7; }
.hero-note { max-width:55ch; margin:22px 0 0; padding-left:20px; border-left:3px solid var(--blue); color:var(--ink); font-size:15px; line-height:1.7; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:20px; margin-top:31px; }
.hero-phone { color:var(--body); font-size:14px; font-weight:600; }
.hero-photo { position:relative; min-height:650px; margin:0; overflow:hidden; background:#a6a19b; }
.hero-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-photo figcaption { position:absolute; left:0; bottom:0; width:min(390px,82%); padding:23px 26px; background:var(--night); color:rgba(255,255,255,.78); font-size:13px; line-height:1.58; }

.services h2,.service-map h2,.cta h2 { margin:18px 0 0; font-size:clamp(39px,4.8vw,61px); font-weight:600; letter-spacing:-.043em; line-height:1; }

.services { padding:110px 0 118px; background:var(--night); color:#fff; }
.services .eyebrow { color:#75b8f4; }
.services-head { display:grid; grid-template-columns:.46fr 1.54fr; gap:70px; }
.services h2 { max-width:16ch; }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:72px; border-top:1px solid rgba(255,255,255,.2); }
.service-grid a { min-height:285px; padding:34px 34px 38px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.service-grid a:not(:nth-child(3n+1)) { padding-left:34px; border-left:1px solid rgba(255,255,255,.2); }
.service-grid span { color:#75b8f4; font-size:10px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; }
.service-grid h3 { max-width:18ch; margin:48px 0 18px; font-size:25px; font-weight:600; letter-spacing:-.03em; line-height:1.22; }
.service-grid p { max-width:34ch; margin:0; color:rgba(255,255,255,.63); font-size:14px; line-height:1.72; }
.service-grid a:hover h3 { color:#75b8f4; }

.service-map { padding:108px 0; }
.map-shell { position:relative; min-height:520px; overflow:hidden; background:#d8d8d2; }
.map-shell iframe { display:block; width:100%; height:520px; border:0; background:#d8d8d2; filter:grayscale(1) contrast(.9); }
.map-panel { position:absolute; left:0; bottom:0; width:min(420px,82%); padding:34px 36px; background:var(--night); color:#fff; }
.map-panel .eyebrow { color:#75b8f4; }
.map-panel h2 { max-width:12ch; font-size:clamp(32px,3.6vw,46px); }
.map-panel > p:last-child { margin:20px 0 0; color:rgba(255,255,255,.9); font-size:14px; line-height:1.7; }

.cta { padding:96px 0; background:var(--paper); border-top:1px solid var(--hair); }
.cta-grid { display:grid; grid-template-columns:1fr auto; gap:58px; align-items:end; }
.cta h2 { max-width:16ch; }
.cta p:last-child { max-width:58ch; margin:22px 0 0; color:var(--body); font-size:16px; line-height:1.72; }

.site-footer { padding:64px 0 34px; background:var(--ink); color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:60px; }
.footer-brand { width:240px; filter:brightness(0) invert(1); }
.footer-copy { max-width:36ch; margin:24px 0 0; color:rgba(255,255,255,.58); font-size:13px; line-height:1.7; }
.footer-title { margin:0 0 18px; color:rgba(255,255,255,.46); font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.footer-links { display:grid; gap:12px; font-size:14px; }
.footer-links a:hover { color:#75b8f4; }
.legal { margin-top:54px; padding-top:26px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.44); font-size:11px; line-height:1.7; }

@media (max-width:1080px) { .nav-links { display:none; } }
@media (max-width:960px) {
  .hero-grid,.services-head { grid-template-columns:1fr; gap:44px; }
  .hero-photo { max-width:760px; min-height:560px; }
  .service-grid { grid-template-columns:1fr 1fr; }
  .service-grid a,.service-grid a:not(:nth-child(3n+1)) { padding:32px 30px; border-left:0; }
  .service-grid a:nth-child(even) { border-left:1px solid rgba(255,255,255,.2); }
}
@media (max-width:700px) {
  .wrap { width:min(100% - 32px,1160px); }
  .site-nav .phone { display:none; }
  .brand img { width:180px; }
  .nav-inner { height:72px; }
  .nav-actions .button { min-height:42px; padding:0 16px; }
  .hero { padding:48px 0 58px; }
  .display { font-size:clamp(43px,12.5vw,64px); }
  .hero-photo { min-height:460px; }
  .services,.service-map,.cta { padding:78px 0; }
  .service-grid,.cta-grid,.footer-grid { grid-template-columns:1fr; }
  .service-grid a,.service-grid a:not(:nth-child(3n+1)),.service-grid a:nth-child(even) { min-height:0; padding:30px 0 34px; border-left:0; }
  .service-grid h3 { margin-top:28px; }
  .map-shell { min-height:0; }
  .map-shell iframe { height:360px; }
  .map-panel { position:static; width:100%; }
  .footer-grid { gap:40px; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
