* { box-sizing:border-box; }
:root { color-scheme:light; scroll-behavior:smooth; }
body {
  --ink:#14273c; --paper:#fcfcfb; --accent:#15519b; --accent-strong:#173e73; --wash:#f0f4f9;
  --dark:#14273c; --line:#d8e0e7; --muted:#455a6e; --display:system-ui,sans-serif;
  --shell:76rem; --gutter:clamp(1rem,4vw,3.5rem); margin:0; color:var(--ink); background:var(--paper);
  font:400 1rem/1.65 system-ui,sans-serif;
}
img { display:block; max-width:100%; }
a { color:var(--accent); text-underline-offset:.23em; }
a,button,input,textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:3px solid #a35a0b; outline-offset:4px; }
svg { width:1.15em; height:1.15em; flex:none; vertical-align:middle; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--display); line-height:1.08; }
h1 { font-size:clamp(2.85rem,5.1vw,5.35rem); letter-spacing:-.055em; max-width:14ch; }
h2 { font-size:clamp(1.85rem,3.5vw,3.45rem); letter-spacing:-.045em; max-width:21ch; }
h3 { font-size:clamp(1.22rem,1.8vw,1.6rem); letter-spacing:-.023em; }
address { font-style:normal; }
.shell { width:min(var(--shell),calc(100% - 2 * var(--gutter))); margin-inline:auto; }
.skip { position:absolute; z-index:3; top:-4rem; left:1rem; padding:.5rem .9rem; background:#fff; }
.skip:focus { top:.5rem; }
.site-head { border-bottom:1px solid var(--line); background:#fff; }
.mast { min-height:5.65rem; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:1.5rem; }
.logo-link { display:block; }
.brand { width:auto; max-width:min(15.5rem,47vw); height:auto; max-height:3.3rem; object-fit:contain; }
.mast nav { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:.75rem clamp(.85rem,2vw,2.15rem); }
.mast nav a,.header-action { font-size:.87rem; font-weight:670; text-decoration:none; color:var(--ink); }
.mast a:hover,.mast a[aria-current] { text-decoration:underline; }
.header-action { padding:.5rem .85rem; border:1px solid var(--line); display:inline-flex; align-items:center; gap:.55rem; white-space:nowrap; }
.hero-layout { display:grid; grid-template-columns:1.15fr 1fr; gap:clamp(1.75rem,5vw,5rem); align-items:center; padding-block:clamp(2.75rem,6.5vw,6.25rem); }
.hero-copy,.hero-media { min-width:0; }
.eyebrow { color:var(--accent); font-size:.72rem; line-height:1.45; letter-spacing:.15em; text-transform:uppercase; font-weight:780; margin-bottom:.95rem; }
.lead { color:var(--muted); font-size:clamp(1rem,1.5vw,1.24rem); max-width:57ch; line-height:1.58; }
.hero .lead,.page-hero .lead { margin-top:1.2rem; }
.actions { display:flex; align-items:center; flex-wrap:wrap; gap:.9rem 1.35rem; }
.hero .actions { margin-top:1.75rem; }
.button,button:not(.refresh-image) { display:inline-flex; align-items:center; justify-content:center; gap:.65rem; border:1px solid transparent; background:var(--accent); color:white; padding:.72rem 1rem; min-height:2.95rem; text-decoration:none; font:inherit; font-size:.91rem; font-weight:700; cursor:pointer; overflow-wrap:anywhere; }
.button:hover,button:not(.refresh-image):hover { background:var(--accent-strong); }
.text-link { display:inline-flex; align-items:center; gap:.5rem; font-weight:690; overflow-wrap:anywhere; }
.hero-media { position:relative; }
.hero-media img { width:100%; height:auto; aspect-ratio:1.1; object-fit:cover; }
.hero-media figcaption { padding-top:.63rem; font-size:.72rem; color:var(--muted); }
.focus-strip { border-block:1px solid var(--line); background:var(--wash); }
.focus-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.focus-item { padding:1rem 1.1rem; display:grid; gap:.16rem; border-inline-start:1px solid var(--line); }
.focus-item:first-child { border-inline-start:0; padding-inline-start:0; }
.focus-item strong { font-size:.91rem; }
.focus-item span { color:var(--muted); font-size:.82rem; }
.section { padding-block:clamp(2.5rem,6.5vw,5.8rem); }
.section-heading { margin-bottom:clamp(1.25rem,3vw,2.35rem); }
.section-heading .lead { margin-top:.7rem; }
.service-grid,.approach-grid,.office-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.service-card,.approach-card,.office-card { min-width:0; border:1px solid var(--line); padding:clamp(1rem,2.4vw,1.8rem); scroll-margin-top:1rem; }
.service-card h3,.approach-card h3,.office-card h3 { margin-bottom:.55rem; }
.service-card p,.approach-card p,address { font-size:.94rem; color:var(--muted); }
.service-number { display:inline-block; margin-bottom:1rem; color:var(--accent); font-size:.74rem; letter-spacing:.12em; font-variant-numeric:tabular-nums; font-weight:730; }
.section-link { margin-top:1.45rem; }
.feature-band,.contact-band { border-block:1px solid var(--line); background:var(--wash); }
.feature-layout { display:grid; grid-template-columns:1fr auto; gap:1.25rem 2rem; align-items:center; padding-block:clamp(1.7rem,4.5vw,3.8rem); }
.feature-layout .section-heading { margin:0; }
.feature-layout .actions { align-items:flex-start; flex-direction:column; }
.city-list { display:flex; flex-wrap:wrap; gap:.7rem; margin:0; padding:0; list-style:none; }
.city-list a { padding:.58rem .8rem; border:1px solid var(--line); display:inline-flex; align-items:center; gap:.65rem; font-weight:670; text-decoration:none; }
.city-list a:hover { background:var(--wash); text-decoration:underline; }
.page-hero { background:var(--wash); border-bottom:1px solid var(--line); padding-block:clamp(1.7rem,5vw,4rem); }
.page-hero h1 { max-width:20ch; font-size:clamp(2.35rem,5vw,4.3rem); }
.breadcrumbs { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; font-size:.84rem; margin-bottom:1rem; }
.form-layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); gap:clamp(1rem,4vw,3rem); align-items:start; }
.form-panel,.form-aside { padding:clamp(1.05rem,3vw,2.15rem); border:1px solid var(--line); }
.form-aside { background:var(--wash); }
.form-panel h2,.form-aside h2,.report-result h2 { font-size:clamp(1.4rem,3vw,2.1rem); }
.form-panel p,.form-aside p:not(.eyebrow) { margin-block:.55rem .9rem; color:var(--muted); }
.form-aside a { display:flex; margin-top:.6rem; }
.form,.form label { display:grid; gap:.38rem; font-weight:680; }
.form { gap:.95rem; margin-top:1.25rem; }
.form-row,.security-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; align-items:start; }
.form input,.form textarea { width:100%; min-width:0; border:1px solid #8798a7; border-radius:0; background:#fff; color:#14273c; font:inherit; font-weight:400; padding:.55rem .72rem; }
.form textarea { resize:vertical; }
.form button { justify-self:start; }
.security-row img { width:100%; height:auto; max-width:218px; border:1px solid var(--line); }
.refresh-image { border:0; background:none; color:var(--accent); text-decoration:underline; padding:.35rem 0; cursor:pointer; font:inherit; font-size:.81rem; }
.notice { border-inline-start:3px solid var(--accent); background:var(--wash); padding:.8rem 1rem; overflow-wrap:anywhere; }
.report-result { margin-top:1.1rem; }
.report-result dl { display:grid; grid-template-columns:auto 1fr; gap:.4rem 1rem; }
.report-result dt { font-weight:700; }
.report-result dd { margin:0; }
.site-footer { background:var(--dark); color:white; }
.site-footer a { color:inherit; text-decoration:none; overflow-wrap:anywhere; }
.site-footer a:hover { text-decoration:underline; }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:1.4rem; padding-block:2.5rem; }
.footer-grid>div { display:grid; gap:.36rem; align-content:start; }
.footer-grid h2 { font-family:inherit; font-size:.8rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.42rem; }
.footer-grid a,.footer-grid p,.footer-base { font-size:.86rem; }
.footer-brand strong { font-size:1.15rem; }
.footer-brand p { opacity:.8; }
.footer-base { border-top:1px solid #ffffff45; display:flex; justify-content:space-between; gap:1rem; padding-block:1rem; }
@media(max-width:760px) {
  .mast { min-height:auto; grid-template-columns:1fr auto; gap:.7rem; padding-block:.75rem; }
  .mast nav { grid-column:1/-1; grid-row:2; justify-content:flex-start; }
  .hero-layout,.feature-layout,.form-layout { grid-template-columns:1fr; }
  .hero-media img { aspect-ratio:1.55; }
  .service-grid,.approach-grid,.office-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:490px) {
  .service-grid,.approach-grid,.office-grid,.footer-grid,.form-row { grid-template-columns:1fr; }
  .focus-grid { grid-template-columns:1fr; }
  .focus-item,.focus-item:first-child { padding:.6rem 0; border-inline-start:0; }
  .focus-item+.focus-item { border-top:1px solid var(--line); }
  .hero .actions { align-items:flex-start; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { :root { scroll-behavior:auto; } }
