:root {
  color-scheme: light;
  --paper:#f5f7fa; --ink:#090e17; --accent:#c9dfff;
  --mist:#e6eef9; --muted:#41536c; --line:#7c8b9e; --number:#315582;
  --gutter:clamp(1rem, 4.5vw, 5rem); --radius:1.75rem;
  font: 100%/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*,*::before,*::after { box-sizing:border-box; }
body { margin:0; background:var(--paper); color:var(--ink); }
a { color:inherit; text-underline-offset:.22em; }
a:hover { text-decoration-thickness:.15em; }
a:focus-visible { outline:3px solid var(--number); outline-offset:4px; border-radius:3px; }
.hero a:focus-visible { outline-color:var(--accent); }
img { display:block; max-width:100%; }
h1,h2,h3,p,ul,ol,dl,dd { margin:0; }
h1,h2,h3 { line-height:1.05; letter-spacing:-.052em; font-weight:800; }
address { font-style:normal; }
.wrap { width:min(100% - 2 * var(--gutter), 87rem); margin-inline:auto; }
.skip { position:absolute; z-index:2; inset-block-start:.75rem; inset-inline-start:1rem; background:var(--accent); color:var(--ink); padding:.75rem 1rem; transform:translateY(-160%); }
.skip:focus { transform:none; }
.header { --header-space:clamp(.85rem,1.35vw,1.25rem); min-height:5.625rem; display:flex; align-items:center; justify-content:space-between; gap:clamp(1rem,3vw,3.5rem); padding-block:var(--header-space); border-bottom:1px solid var(--line); }
.brand { display:inline-flex; align-items:center; flex:none; max-width:100%; min-height:2.75rem; text-decoration:none; }
.brand-filter { position:absolute; }
.brand img { width:clamp(10rem,15vw,13.5rem); height:auto; filter:url(#brand-ink); }
.nav { display:flex; align-items:center; flex-wrap:wrap; gap:clamp(.8rem,3vw,3.5rem); margin-inline-start:auto; }
.nav a,.legal-nav a { display:inline-flex; min-height:2.75rem; align-items:center; text-decoration:none; font-weight:650; }
.nav a { position:relative; font-size:clamp(1rem,1.5vw,1.35rem); }
.nav a:hover::after,.nav [aria-current=page]::after { position:absolute; content:""; inset: auto 0 .06rem; height:.2rem; background:var(--number); }
.arrow { width:1.04em; height:1.04em; flex:none; vertical-align:-.14em; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:.5em; max-width:100%; min-height:2.85rem; padding:.64em .95em; border:2px solid transparent; border-radius:.65rem; font-size:clamp(1rem,1.55vw,1.45rem); font-weight:700; line-height:1.25; text-decoration:none; }
.button--outline { border-color:var(--ink); font-size:clamp(.94rem,1.32vw,1.22rem); }
.button--outline:hover { background:var(--mist); }
.button--accent { color:var(--ink); background:var(--accent); }
.button--accent:hover { background:#e0ecff; }
.button--quiet { color:#fff; padding-inline:.32em; }
.button--quiet:hover { text-decoration:underline; }
.button--dark { background:var(--ink); color:#fff; }
.button--dark:hover { background:#264466; }
.hero { width:min(100% - 2 * clamp(.5rem,1.3vw,1.4rem), 98rem); margin:1.375rem auto 0; display:grid; grid-template-columns:54% 46%; border-radius:var(--radius); overflow:hidden; background:var(--ink); color:#fff; }
.hero-copy { padding:clamp(2rem,4.2vw,4.4rem) clamp(1.45rem,2.5vw,2.6rem) clamp(2.5rem,4.9vw,5rem) clamp(1.45rem,6vw,6rem); }
.hero h1 { font-size:clamp(3.5rem,6.85vw,6.85rem); line-height:.9; letter-spacing:-.067em; }
.hero h1 span { display:block; }
.hero-kicker { margin-bottom:clamp(.65rem,1.2vw,1.05rem); color:var(--accent); font-size:clamp(1.08rem,1.5vw,1.4rem); font-weight:750; line-height:1.25; }
.hero h1 + p { max-width:41ch; margin-top:clamp(1.3rem,2.28vw,2.28rem); font-size:clamp(1.1rem,1.88vw,1.84rem); line-height:1.34; }
.hero-actions { display:flex; flex-wrap:wrap; gap:clamp(.5rem,2vw,2.1rem); margin-top:clamp(1.25rem,2.55vw,2.5rem); }
.hero-art { position:relative; min-width:0; min-height:100%; }
.hero-art img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:55% 50%; }
.services { padding-block:clamp(3.3rem,5.2vw,5.15rem) clamp(2.4rem,4vw,3.85rem); }
.section-head { display:grid; grid-template-columns:1fr 1fr; gap:1rem 4vw; align-items:center; padding-bottom:clamp(1.6rem,3.25vw,3.4rem); }
.section-head h2 { font-size:clamp(2.35rem,4.3vw,4.35rem); }
.section-head p { font-size:clamp(1.12rem,1.66vw,1.67rem); line-height:1.35; }
.service-list { list-style:none; padding:0; }
.service-row { border-top:1px solid var(--line); display:grid; grid-template-columns:clamp(2.35rem,5.5vw,5.5rem) minmax(0, .95fr) minmax(0, 1.05fr); align-items:baseline; column-gap:clamp(.7rem,2vw,2.2rem); padding:clamp(1.25rem,1.75vw,1.75rem) 0; }
.service-num { color:var(--number); font-weight:750; font-size:clamp(1.05rem,2vw,1.9rem); font-variant-numeric:tabular-nums; }
.service-row h2,.service-row h3 { font-size:clamp(1.36rem,2.6vw,2.45rem); }
.service-row p { font-size:clamp(1.03rem,1.55vw,1.43rem); line-height:1.45; }
.service-row a { text-decoration-color:var(--number); text-decoration-thickness:.085em; }
.band { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1.15rem 2rem; padding:clamp(1.5rem,3vw,3.2rem); background:var(--mist); border-radius:var(--radius); margin-bottom:clamp(2rem,4vw,3.65rem); }
.band h2 { font-size:clamp(1.85rem,3vw,3.05rem); }
.band p { margin-top:.55rem; font-size:clamp(1rem,1.45vw,1.36rem); }
.footer { margin-top:auto; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:.55rem 1.5rem; border-top:1px solid var(--line); padding:1.15rem 0 1.5rem; }
.footer .brand img { width:clamp(7.5rem,10vw,9.5rem); }
.legal-nav { display:flex; flex-wrap:wrap; gap:clamp(1rem,2.6vw,2.7rem); }
.legal-nav a:hover,.legal-nav [aria-current=page] { text-decoration:underline; }
.detail { padding-block:clamp(2.75rem,7.7vw,7.2rem) clamp(2.6rem,5.5vw,5.3rem); }
.detail-head { padding-bottom:clamp(1.7rem,3.2vw,3.1rem); border-bottom:1px solid var(--line); margin-bottom:clamp(1.8rem,4.25vw,4.4rem); }
.detail h1 { font-size:clamp(2.65rem,7.75vw,7.3rem); overflow-wrap:anywhere; }
.detail-kicker { margin-bottom:clamp(.55rem,1.3vw,1.1rem); font-size:clamp(1rem,1.4vw,1.25rem); font-weight:700; color:var(--muted); }
.detail-head h1 + p { margin-top:1.2rem; font-size:clamp(1.2rem,2.65vw,2.5rem); line-height:1.32; max-width:55ch; }
.contact-grid { display:grid; grid-template-columns:1fr 1.05fr; align-items:stretch; gap:1.4rem clamp(1.5rem,4vw,4.2rem); }
.contact-grid h2 { font-size:clamp(1.55rem,3.2vw,3.25rem); margin-bottom:clamp(.85rem,1.55vw,1.6rem); }
.contact-grid .address { background:var(--mist); border-radius:.25rem; padding:clamp(1.35rem,3vw,3.1rem) clamp(1.35rem,4vw,4rem); }
.contact-grid .address h2 { font-size:clamp(1.55rem,2.7vw,2.65rem); }
.contact-grid address { font-size:clamp(1.15rem,2vw,2rem); line-height:1.38; }
.contact-links { display:grid; gap:.6rem; justify-items:start; }
.contact-links a { min-height:2.75rem; align-content:center; font-weight:750; font-size:clamp(1.1rem,2.65vw,2.55rem); line-height:1.3; letter-spacing:-.035em; text-decoration-color:var(--number); text-decoration-thickness:.095em; overflow-wrap:anywhere; max-width:100%; }
.prose { max-width:72ch; font-size:clamp(1.05rem,1.4vw,1.25rem); overflow-wrap:anywhere; }
.prose h2 { font-size:clamp(1.35rem,2.4vw,2.3rem); margin-top:1.85em; margin-bottom:.55em; }
.prose h2:first-child { margin-top:0; }
.prose p+p,.prose address+p,.prose ul+p { margin-top:.85em; }
.prose ul { padding-left:1.4em; }
.prose li+li { margin-top:.4em; }
.prose .button { margin-top:1.5rem; }
.detail .band { margin-top:2.2rem; margin-bottom:0; }
@media (max-width:58rem) {
  .header .button { display:none; }
  .hero h1 { font-size:clamp(3.25rem,8vw,5.5rem); }
  .hero-copy { padding-inline:clamp(1.3rem,4vw,3rem); }
}
@media (max-width:43rem) {
  :root { --radius:1.25rem; }
  .header { flex-wrap:wrap; gap:0; padding-block:0; border-bottom:0; }
  .header .brand { flex:1 1 100%; padding-block:var(--header-space); border-bottom:1px solid var(--line); }
  .header .nav { width:100%; margin:0; gap:clamp(1rem,7vw,2rem); }
  .hero { grid-template-columns:1fr; margin-top:.75rem; }
  .hero-copy { padding:clamp(1.35rem,5.5vw,2rem); }
  .hero h1 { font-size:clamp(3.15rem,10vw,5rem); }
  .hero h1 + p { max-width:42ch; }
  .hero-art { min-height:0; aspect-ratio:1.95; }
  .section-head,.contact-grid { grid-template-columns:1fr; }
  .service-row { grid-template-columns:2rem minmax(0,1fr); row-gap:.45rem; }
  .service-row p { grid-column:2; }
  .detail h1 { letter-spacing:-.045em; }
}
@media (forced-colors:active) {
  .button { border-color:ButtonText; }
  .nav a[aria-current=page] { text-decoration:underline; }
}
@media print {
  .header .nav,.header .button,.hero-art,.hero-actions,.skip { display:none; }
  body,.hero,.band,.address { background:#fff!important; color:#000!important; }
  .hero { display:block; }
  .hero-copy { padding:1rem; }
  a { color:#000!important; }
}
