@font-face {
  font-family: 'Geologica';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/geologica-cyrillic.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Geologica';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/assets/fonts/geologica-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* SantexPlumb — one type scale, spacing rhythm and component system. */
:root{--ink:#20383f;--muted:#5e6b6b;--paper:#f6f3ec;--surface:#eeece3;--line:#d9d9cf;--accent:#dcb89d;--copper:#8b6036;--dark:#10272e;--radius:24px;--control-radius:14px;--space:clamp(20px,5vw,80px);--body:1rem;--small:.875rem;--h1:clamp(2.75rem,4.8vw,4.5rem);--h2:clamp(2rem,3.1vw,3rem);--h3:clamp(1.25rem,1.8vw,1.5rem);--section:clamp(64px,7.5vw,112px);--section-radius:0px;--motion-duration:560ms;--motion-ease:cubic-bezier(.22,1,.36,1);--font-family:'Geologica', Arial, sans-serif;}
* {
  box-sizing:border-box
}
:where(.team-grid,.contact-grid,.section-heading,.faq-grid,.service-grid,.steps,.area,.form-row,.overview)>* {
  min-width:0
}
.team-note,.button {
  overflow-wrap:anywhere
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:var(--header-offset,110px)
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-family);
  font-size:var(--body);
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit;
  text-decoration:none
}
button,input,textarea {
  font:inherit
}
button,a,input,textarea,summary {
  touch-action:manipulation
}
button {
  cursor:pointer;
  border:0
}
a,button,input,textarea,summary {
  outline-offset:4px
}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible {
  outline:3px solid #b77c3d
}
p,h1,h2,h3 {
  margin:0
}
h1,h2,h3 {
  font-weight:600;
  line-height:1.14;
  letter-spacing:-.035em;
  overflow-wrap:anywhere
}
h1 {
  font-size:var(--h1)
}
h2 {
  font-size:var(--h2)
}
h3 {
  font-size:var(--h3)
}
p {
  overflow-wrap:anywhere
}
img,svg {
  max-width:100%;
  height:auto
}
.wrap {
  width:min(1320px,calc(100% - var(--space)*2));
  margin-inline:auto
}
.skip {
  position:fixed;
  top:8px;
  left:12px;
  padding:12px 18px;
  background:var(--ink);
  color:white;
  transform:translateY(-160%);
  z-index:100
}
.skip:focus {
  transform:none
}
[hidden] {
  display:none!important
}
.site-header {
  position:sticky;
  top:0;
  z-index:20;
  background:#10272e;
  color:#f6f3ec;
  border-bottom:0
}
.header-inner {
  display:flex;
  align-items:center;
  gap:28px;
  min-height:88px;
  padding-block:16px;
  flex-wrap:wrap;
  row-gap:12px
}
.brand {
  max-width:100%;
  min-width:0;
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-shrink:0
}
.brand img {
  width:40px;
  height:40px
}
.wordmark {
  min-width:0;
  overflow-wrap:anywhere;
  font-size:1.5rem;
  font-weight:600;
  letter-spacing:-.055em;
  line-height:1.1
}
.wordmark-accent {
  color:#dfbfa6
}
.brand-sub {
  display:block;
  font-size:.625rem;
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase;
  margin-top:6px;
  color:#b6c5c1
}
.desktop-nav {
  display:flex;
  gap:24px;
  align-items:center;
  margin-left:auto;
  font-size:var(--small)
}
.desktop-nav a {
  padding:10px 0;
  color:#d8e0dc;
  transition:color .18s
}
.desktop-nav a:hover {
  color:var(--accent)
}
.languages {
  display:flex;
  gap:2px;
  align-items:center;
  margin-left:auto
}
.desktop-nav+.languages {
  margin-left:0
}
.languages a {
  padding:8px;
  border-radius:var(--control-radius);
  font-size:.8125rem;
  color:#c8d4d0;
  line-height:1.4;
  transition:background .18s,color .18s
}
.languages a[aria-current] {
  background:#ffffff12;
  color:#fff;
  font-weight:700
}
.languages a:not([aria-current]):hover {
  color:var(--accent)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:52px;
  padding:14px 22px;
  max-width:100%;
  border:1px solid transparent;
  border-radius:var(--control-radius);
  background:var(--accent);
  color:#142d32;
  font-size:.9375rem;
  font-weight:600;
  line-height:1.4;
  text-align:center;
  transition:background .18s,box-shadow .18s
}
.button:hover {
  background:#e9cdb7;
  box-shadow:0 6px 22px #0002
}
.button .arrow {
  font-size:1.25rem;
  line-height:1;
  font-family:Arial,sans-serif;
  font-variant-emoji:text
}
.header-cta {
  min-height:46px;
  padding:11px 16px;
  font-size:var(--small)
}
.menu-button {
  display:none;
  background:transparent;
  color:#f6f3ec;
  padding:10px 0;
  font-size:var(--small);
  font-weight:600;
  white-space:nowrap
}
.mobile-nav {
  background:#10272e;
  border-top:0;
  padding:16px 0 24px;
  max-height:65dvh;
  overflow-y:auto
}
.mobile-nav a {
  display:block;
  padding:12px 0;
  font-size:1.125rem;
  color:#f6f3ec
}
.mobile-nav .button {
  margin-top:12px;
  width:100%
}
.eyebrow {
  font-size:.75rem;
  font-weight:600;
  letter-spacing:.14em;
  line-height:1.6;
  color:var(--copper)
}
.hero-main {
  position:relative;
  isolation:isolate
}
.hero {
  border-radius:0 0 var(--section-radius) var(--section-radius);
  overflow:clip;
  position:relative;
  background:#101f26;
  color:#f6f3ec;
  isolation:isolate
}
.hero-photo {
  position:absolute;
  inset:0;
  left:50%;
  right:auto;
  transform:translateX(-50%);
  width:min(100%,1672px);
  mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  z-index:-3;
  display:block
}
.hero-photo img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:75% 48%
}
.hero-shade {
  position:absolute;
  inset:0;
  z-index:-2;
  background:linear-gradient(90deg,#101f26f5 0%,#101f26eb 25%,#101f26b5 43%,#101f2618 68%,#101f2600 100%),linear-gradient(0deg,#101f2690,transparent 24%)
}
.hero-grid {
  position:relative;
  display:flex;
  align-items:center;
  min-height:680px
}
.hero-copy {
  width:60%;
  max-width:700px;
  padding:76px 0 90px
}
.hero .eyebrow {
  color:#e6c7a3;
  display:flex;
  gap:10px;
  align-items:center;
  margin-bottom:28px
}
.dot {
  display:inline-block;
  width:7px;
  height:7px;
  background:var(--accent);
  border-radius:50%;
  flex-shrink:0
}
.hero h1 {
  font-weight:600;
  line-height:1.06;
  letter-spacing:-.045em
}
.hero h1 .second {
  color:#dfbfa6
}
.hero-intro {
  font-size:1.0625rem;
  line-height:1.75;
  max-width:470px;
  color:#d0d9d4;
  margin:28px 0 32px
}
.hero-actions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:16px
}
.hero-actions .button {
  width:100%;
  max-width:none;
  min-height:58px
}
.hero-tags {
  display:flex;
  gap:10px 22px;
  flex-wrap:wrap;
  margin-top:40px;
  color:#bbc9c1;
  font-size:.8125rem
}
.hero-tags span {
  display:flex;
  align-items:center;
  gap:8px
}
.hero-tags span:before {
  content:'';
  width:4px;
  height:4px;
  background:#d3a776;
  border-radius:50%
}
.hero-bottom {
  background:var(--dark);
  border-top:0
}
.overview {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  padding:28px 0
}
.overview div+div {
  padding-left:0;
  border:0
}
.overview small {
  display:block;
  color:#bdccc5;
  font-size:1rem;
  margin-bottom:8px
}
.overview strong {
  font-size:1.125rem;
  line-height:1.5;
  font-weight:400;
  color:#f0f0e7;
  overflow-wrap:anywhere
}
.section {
  padding-block:var(--section)
}
.section-heading {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:64px;
  align-items:end;
  margin:20px 0 48px
}
.section-heading p {
  color:var(--muted);
  max-width:420px
}
.service-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:24px
}
.service {
  display:grid;
  grid-template-columns:44px 1fr;
  gap:20px;
  padding:32px;
  border:0;
  border-radius:var(--radius);
  background:#eeece5
}
.service-icon {
  width:44px;
  height:44px;
  padding:10px;
  background:#e9e4d8;
  color:#8c6239;
  border-radius:var(--control-radius)
}
.service p {
  margin-top:14px;
  color:var(--muted);
  max-width:470px
}
.service small {
  display:block;
  margin-top:20px;
  font-size:var(--small);
  color:#72796d
}
.team-section {
  border-radius:var(--section-radius);
  background:linear-gradient(125deg,#ebe9df,#e3e7de)
}
.team-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px;
  align-items:center
}
.team-copy h2 {
  margin:20px 0 28px
}
.team-copy p {
  margin-top:18px;
  color:var(--muted);
  max-width:520px
}
.team-note {
  background:#15373b;
  color:#edf0e7;
  padding:40px;
  border-radius:var(--radius);
  box-shadow:0 20px 50px #183a3412
}
.large-mark {
  width:60px;
  height:60px;
  margin-bottom:36px
}
.team-note blockquote {
  margin:0 0 28px;
  font-size:clamp(1.5rem,2.4vw,2rem);
  line-height:1.35;
  letter-spacing:-.025em;
  max-width:430px
}
.team-note ul {
  list-style:none;
  margin:0;
  padding:0
}
.team-note li {
  font-size:var(--small);
  padding:14px 0;
  border:0;
  display:flex;
  gap:12px;
  color:#d1ded3
}
.team-note li:before {
  content:'↗';
  color:var(--accent);
  font-variant-emoji:text
}
.process-title {
  max-width:850px;
  margin:20px 0 48px
}
.steps {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:32px;
  list-style:none;
  padding:0;
  margin:0
}
.step-number {
  display:flex;
  justify-content:space-between;
  border:0;
  padding:0 0 20px;
  font-size:var(--small);
  color:var(--copper)
}
.step-number:after {
  content:'→'
}
.steps h3 {
  font-size:1.25rem;
  line-height:1.3
}
.steps p {
  font-size:.9375rem;
  color:var(--muted);
  margin-top:14px
}
.area {
  display:grid;
  grid-template-columns:1fr 1.1fr;
  align-items:center;
  gap:48px;
  margin-top:80px;
  padding:44px;
  background:#e8ebe2;
  border-radius:var(--radius)
}
.area h2 {
  margin:18px 0 24px
}
.area p {
  color:var(--muted);
  max-width:440px;
  margin-bottom:24px
}
.area figure {
  margin:0
}
.faq-section {
  padding-top:0
}
.faq-grid {
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:80px
}
.faq-grid h2 {
  margin-top:20px
}
.faq-list {
  border:0
}
details {
  border:0;
  margin-bottom:8px
}
summary {
  list-style:none;
  cursor:pointer;
  padding:24px 34px 24px 0;
  position:relative;
  font-size:1.0625rem;
  line-height:1.5
}
summary::-webkit-details-marker {
  display:none
}
summary:after {
  content:'+';
  position:absolute;
  right:0;
  top:23px;
  font-size:1.375rem;
  color:var(--copper)
}
details[open] summary:after {
  content:'−'
}
details p {
  padding:0 28px 24px 0;
  color:var(--muted)
}
.contact-section {
  border-radius:var(--section-radius) var(--section-radius) 0 0;
  background:radial-gradient(ellipse at 10% 10%,#21463f 0%,transparent 65%),#10272e;
  color:#f2f2e9;
  padding-block:var(--section)
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:72px;
  align-items:start
}
.contact-section .eyebrow {
  color:#dfb588
}
.contact-copy h2 {
  margin:20px 0 26px
}
.contact-intro {
  color:#c4d3c9;
  max-width:470px
}
.contact-panel {
  margin-top:40px
}
.contact-panel h3 {
  font-size:1.125rem;
  font-weight:600;
  letter-spacing:-.02em;
  line-height:1.45;
  margin-bottom:24px
}
.channels {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  background:transparent;
  border:0;
  border-radius:var(--radius)
}
.channel {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 20px;
  align-items:center;
  gap:16px;
  min-width:0;
  min-height:112px;
  padding:22px 24px;
  background:#193a42;
  border-radius:var(--control-radius);
  color:#f6f3ec;
  transition:background .18s
}
.channel-icon {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  background:#dcb89d12;
  border-radius:12px;
  color:var(--accent)
}
.channel-icon svg {
  width:26px;
  height:26px;
  stroke-width:1.8
}
.channel-copy {
  min-width:0
}
.channel strong {
  display:block;
  font-size:1.125rem;
  font-weight:650;
  letter-spacing:-.025em;
  line-height:1.35;
  overflow-wrap:anywhere
}
.channel-value {
  display:block;
  font-size:1rem;
  font-weight:550;
  color:#d4e0da;
  line-height:1.5;
  margin-top:6px;
  letter-spacing:-.015em;
  overflow-wrap:anywhere
}
.channel>.arrow {
  width:18px;
  height:18px;
  color:var(--accent)
}
.contact-panel .channels {
  grid-template-columns:1fr
}
.channel:hover {
  background:#234a50
}
.channel[aria-disabled] {
  opacity:.7
}
.contact-note {
  font-size:var(--small);
  color:#c3d3c7;
  margin-top:20px
}
.form-panel {
  background:var(--paper);
  padding:36px;
  border:0;
  border-radius:var(--radius);
  color:var(--ink);
  box-shadow:0 20px 65px #0002
}
.form-panel>.eyebrow {
  color:var(--copper);
  font-size:.6875rem;
  letter-spacing:.12em;
  margin-bottom:16px
}
.form-panel h3 {
  font-size:clamp(1.5rem,2.2vw,2rem);
  font-weight:650;
  margin-bottom:32px;
  line-height:1.18
}
.form-panel .form-row {
  grid-template-columns:1fr;
  gap:0
}
.notice {
  padding:14px 16px;
  margin-bottom:24px;
  background:#ede3d0;
  border-left:3px solid #a4763e;
  color:#654b29;
  font-size:var(--small)
}
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px
}
.field {
  margin-bottom:24px
}
.field label {
  display:block;
  font-size:.9375rem;
  font-weight:600;
  letter-spacing:-.015em;
  margin-bottom:10px;
  line-height:1.5
}
input,textarea {
  display:block;
  width:100%;
  min-width:0;
  padding:16px 18px;
  border:1px solid #cbd1c8;
  border-radius:var(--control-radius);
  background:#eeeee6;
  color:var(--ink);
  font-size:1rem;
  font-weight:500;
  line-height:1.5;
  transition:border-color .18s,background .18s
}
input {
  min-height:58px
}
textarea {
  min-height:144px;
  resize:vertical
}
::placeholder {
  color:#697875;
  font-weight:400;
  opacity:1
}
input:focus,textarea:focus {
  border-color:#497163;
  background:#fff
}
input[aria-invalid=true],textarea[aria-invalid=true] {
  border-color:#ab3e32
}
.field-error {
  display:block;
  margin-top:6px;
  font-size:var(--small);
  line-height:1.5;
  color:#a33429
}
.field-error:empty {
  display:none
}
.consent {
  font-weight:500;
  display:flex;
  align-items:flex-start;
  gap:12px;
  font-size:.875rem;
  line-height:1.65;
  margin:0;
  min-height:44px;
  padding-block:8px;
  cursor:pointer
}
.consent input {
  appearance:none;
  width:22px;
  height:22px;
  min-height:22px;
  flex-shrink:0;
  margin:1px 0 0;
  padding:0;
  border:1.5px solid #9baea4;
  border-radius:6px;
  background:transparent;
  cursor:pointer;
  display:grid;
  place-items:center
}
.consent input:checked {
  background:var(--ink);
  border-color:var(--ink)
}
.consent input:checked:after {
  content:"";
  width:6px;
  height:11px;
  border:solid var(--paper);
  border-width:0 2px 2px 0;
  transform:translateY(-1px) rotate(45deg)
}
.form-actions {
  display:grid;
  gap:0;
  margin-top:4px
}
.cf-turnstile {
  margin:0;
  min-height:0;
  max-width:100%
}
.cf-turnstile:has(iframe[style*="visibility: visible"]) {
  margin-top:20px
}
.form-submit {
  width:100%;
  margin-top:24px;
  min-height:56px
}
.button:disabled,.button[aria-disabled=true] {
  background:#dbe1d6;
  color:#4e6257;
  box-shadow:none;
  cursor:not-allowed
}
.form-bottom {
  display:flex;
  justify-content:center;
  margin-top:18px;
  font-size:.8125rem;
  line-height:1.6;
  color:var(--muted)
}
.privacy-button {
  max-width:100%;
  overflow-wrap:anywhere;
  background:none;
  padding:6px 12px;
  color:inherit;
  font-weight:500;
  text-decoration:none;
  border-radius:8px
}
.privacy-button:hover {
  color:var(--ink);
  background:#20383f08
}
.form-status {
  margin-top:16px;
  font-size:var(--small);
  color:#a33429;
  overflow-wrap:anywhere
}
.form-status:empty {
  display:none
}
.form-status.pending {
  color:#715021;
  background:#eee4cf;
  padding:14px;
  border-radius:var(--control-radius)
}
.form-status.success {
  color:#205c3b
}
.trap {
  position:absolute;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden
}
.footer {
  background:var(--dark);
  color:#dce5da;
  padding:36px 0
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:24px
}
.footer .wordmark {
  font-size:1.375rem
}
.footer p,.footer .top {
  font-size:.8125rem;
  color:#b6c7bd
}
.footer .brand-sub {
  font-size:.625rem;
  letter-spacing:.08em
}
dialog {
  width:min(560px,calc(100% - 32px));
  max-height:calc(100dvh - 32px);
  overflow-y:auto;
  padding:32px;
  border:1px solid #ded6c6;
  border-radius:var(--radius);
  background:var(--paper);
  color:var(--ink);
  box-shadow:0 32px 100px #0005
}
dialog::backdrop {
  background:#061b23b8;
  backdrop-filter:blur(4px)
}
dialog h2 {
  font-size:2rem;
  margin:12px 32px 20px 0
}
dialog p {
  font-size:1rem;
  color:var(--muted)
}
.dialog-close {
  margin-left:auto;
  display:block;
  width:44px;
  min-height:44px;
  background:#e8e8df;
  color:var(--ink);
  font-size:1.5rem;
  border-radius:var(--control-radius)
}
#contact-dialog .eyebrow {
  margin-top:12px
}
#contact-dialog .channels {
  margin:28px 0 24px
}
#contact-dialog .channel {
  grid-template-columns:28px minmax(0,1fr);
  gap:12px;
  padding:20px 16px;
  min-height:104px
}
#contact-dialog .channel-icon {
  width:28px;
  height:32px;
  background:none
}
#contact-dialog .channel-icon svg {
  width:24px;
  height:24px
}
#contact-dialog .channel>.arrow {
  display:none
}
#contact-dialog .channel strong {
  font-size:1.0625rem
}
#contact-dialog .channel-value {
  font-size:.9375rem
}
#contact-dialog .contact-form-link {
  display:flex;
  width:100%;
  min-height:56px
}
#contact-dialog h2 {
  margin-right:0
}
@media(max-width:1200px) {
  .header-inner {
    gap:20px
  }
  .desktop-nav {
    gap:20px
  }
  .header-cta {
    display:none
  }
  .contact-grid,.team-grid,.faq-grid {
    gap:48px
  }
  .section-heading {
    gap:40px
  }
}
@media(max-width:900px) {
  .desktop-nav {
    display:none
  }
  .desktop-nav+.languages {
    margin-left:auto
  }
  .menu-button {
    display:block
  }
  .header-inner {
    min-height:80px
  }
  .hero-copy {
    width:73%;
    padding-block:64px 88px
  }
  .hero-grid {
    min-height:620px
  }
  .hero-shade {
    background:linear-gradient(90deg,#101f26f2,#101f26c9 40%,#101f2635 100%)
  }
  .overview div+div {
    padding-left:0
  }
  .section-heading {
    grid-template-columns:1.1fr .9fr
  }
  .team-grid,.faq-grid,.contact-grid {
    gap:32px
  }
  .steps {
    grid-template-columns:1fr 1fr;
    gap:32px
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0
  }
  .form-panel {
    padding:28px
  }
  .area {
    padding:32px;
    gap:28px
  }
}
@media(max-width:650px) {
  :root {
    --h1:clamp(2.5rem,10vw,3.5rem);
    --h2:clamp(1.875rem,7.7vw,2.5rem);
    --h3:1.375rem
  }
  .header-inner {
    gap:12px;
    min-height:76px;
    padding-block:14px
  }
  .brand img {
    width:34px;
    height:34px
  }
  .wordmark {
    font-size:1.25rem
  }
  .site-header .brand-sub {
    display:none
  }
  .languages a {
    font-size:.8125rem;
    padding:8px 7px
  }
  .menu-button {
    font-size:.875rem
  }
  .menu-button span {
    display:none
  }
  .hero-grid {
    display:block;
    min-height:0
  }
  .hero-copy {
    width:100%;
    max-width:none;
    padding:44px 0 320px
  }
  .hero .eyebrow {
    font-size:.75rem;
    letter-spacing:.09em;
    margin-bottom:24px
  }
  .hero h1 {
    line-height:1.12
  }
  .hero-intro {
    font-size:1rem;
    margin:24px 0 28px;
    max-width:100%
  }
  .hero-actions {
    grid-template-columns:1fr;
    gap:18px
  }
  .hero-actions .button {
    width:100%;
    max-width:none;
    flex:1 1 100%
  }
  .hero-tags {
    margin-top:28px;
    gap:8px 16px;
    font-size:.8125rem
  }
  .hero-photo {
    top:auto;
    bottom:0;
    height:450px;
    width:100%
  }
  .hero-photo img {
    object-position:80% 50%
  }
  .hero-shade {
    background:linear-gradient(180deg,#101f26 0%,#101f26 43%,#101f26f5 52%,#101f2600 70%,#101f2633 90%,#101f26 100%)
  }
  .overview {
    grid-template-columns:1fr;
    gap:16px;
    padding:24px 0
  }
  .overview div {
    display:grid;
    grid-template-columns:1fr 1.5fr;
    gap:20px;
    align-items:baseline
  }
  .overview div+div {
    padding-left:0;
    border:0
  }
  .overview small {
    font-size:.9375rem;
    margin:0
  }
  .overview strong {
    text-align:right;
    font-size:1rem
  }
  .section-heading {
    display:block;
    margin:20px 0 32px
  }
  .section-heading p {
    margin-top:24px;
    max-width:100%
  }
  .service-grid,.team-grid,.area,.faq-grid,.contact-grid {
    grid-template-columns:1fr
  }
  .service {
    padding:28px 24px;
    gap:16px;
    grid-template-columns:40px 1fr
  }
  .service-icon {
    width:40px;
    height:40px;
    padding:9px
  }
  .service small {
    font-size:.8125rem
  }
  .team-grid,.contact-grid {
    gap:36px
  }
  .team-note {
    padding:28px
  }
  .large-mark {
    margin-bottom:28px;
    width:52px;
    height:52px
  }
  .team-note blockquote {
    font-size:1.625rem
  }
  .process-title {
    margin-bottom:32px
  }
  .steps {
    gap:28px
  }
  .steps p {
    font-size:1rem
  }
  .area {
    margin-top:56px;
    padding:28px 24px
  }
  .faq-grid {
    gap:32px
  }
  summary {
    font-size:1rem;
    padding-block:22px
  }
  .contact-panel {
    margin-top:32px
  }
  .channels {
    grid-template-columns:1fr
  }
  .channel {
    padding:20px 16px
  }
  .form-panel {
    padding:28px 24px
  }
  .form-panel h3 {
    font-size:1.5rem
  }
  .footer-inner {
    gap:24px
  }
  .footer .brand {
    width:100%
  }
  .footer .brand-sub {
    font-size:.625rem
  }
  dialog {
    padding:24px
  }
  dialog h2 {
    font-size:1.75rem
  }
  #contact-dialog .channels {
    grid-template-columns:1fr
  }
}
@media(max-width:380px) {
  .site-header .brand {
    width:100%
  }
  .header-inner .languages {
    margin-left:0
  }
  .header-inner .menu-button {
    margin-left:auto
  }
  .header-inner {
    row-gap:10px
  }
  .header-inner .wordmark {
    font-size:1.375rem
  }
  .steps,.channels {
    grid-template-columns:1fr
  }
  .hero-copy {
    padding-bottom:300px
  }
  .hero-photo {
    height:420px
  }
  .overview div {
    grid-template-columns:1fr 1.5fr;
    gap:12px
  }
  .form-panel {
    padding:24px 20px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    transition:none!important;
    animation:none!important
  }
}
@media print {
  .site-header {
    position:static
  }
  .hero-photo,.hero-shade,.hero-image-credit,.hero-bottom,.contact-section,.menu-button,.languages,.header-cta {
    display:none
  }
  .hero {
    background:white;
    color:var(--ink)
  }
  .hero-copy {
    padding:24px 0;
    width:100%
  }
  .hero h1 .second,.hero-intro,.hero-tags {
    color:var(--muted)
  }
  .team-grid,.faq-grid {
    display:block
  }
  .section {
    padding:32px 0
  }
}
/* Motion is progressive enhancement: content stays visible without JS. */
@media(prefers-reduced-motion:no-preference) {
  .reveal-ready {
    transition:opacity var(--motion-duration) var(--motion-ease),transform var(--motion-duration) var(--motion-ease);
    transition-delay:var(--reveal-delay,0ms)
  }
  .reveal-ready:not(.is-visible) {
    opacity:0;
    transform:translateY(20px)
  }
}
.arrow {
  display:block;
  width:20px;
  height:20px;
  flex-shrink:0
}
.button .arrow {
  width:20px;
  height:20px
}
.hero .hero-actions .button {
  background:var(--accent);
  color:#142d32;
  border:1px solid transparent
}
.hero .hero-actions .button:hover {
  background:#e9cdb7
}
.faq-list {
  border:0
}
.overview div {
  min-width:0
}
.service>div {
  min-width:0
}
.area .button {
  width:100%;
  margin-top:8px
}
.steps>li {
  padding:24px;
  background:#eeece5;
  border-radius:var(--radius)
}
@media(max-width:1672px) {
  .hero-photo {
    mask-image:none
  }
}
.overview small {
  overflow-wrap:anywhere
}
@media(max-width:650px) {
  .steps {
    grid-template-columns:1fr
  }
}
/* Align actions with their containing grid; keep keyboard targets visible during reveals. */
@media(min-width:651px) {
  .channels {
    grid-auto-rows:1fr
  }
}
.reveal-ready:focus-within {
  opacity:1!important;
  transform:none!important;
  transition:none!important
}
/* Geographic service map: vector shorelines stay sharp at every resolution. */
.area picture,.area picture img {
  display:block;
  width:100%
}
.area {
  grid-template-columns:.9fr 1.2fr;
  gap:32px
}
.area figure {
  min-width:0
}
@media(max-width:650px) {
  .area {
    grid-template-columns:1fr
  }
  .area figure picture {
    width:calc(100% + 48px);
    max-width:none;
    margin-inline:-24px
  }
}
@media(min-width:651px) and (max-width:1100px) {
  .area {
    grid-template-columns:1fr
  }
  .area>div>p {
    max-width:none
  }
  .area figure {
    width:min(100%,700px);
    margin-inline:auto
  }
}
@media(max-width:650px) {
  .channel {
    grid-template-columns:40px minmax(0,1fr) 18px;
    gap:12px;
    padding:22px 18px;
    min-height:112px
  }
  .channel-icon {
    width:40px;
    height:44px
  }
  .channel-value {
    font-size:1rem
  }
  .form-panel {
    padding:30px 24px
  }
  .form-panel h3 {
    font-size:1.625rem
  }
  .form-panel>.eyebrow {
    font-size:.625rem;
    letter-spacing:.1em
  }
}
@media(max-width:380px) {
  .channel {
    gap:10px;
    padding:20px 16px
  }
  .channel-value {
    font-size:.9375rem
  }
  .form-panel {
    padding:28px 20px
  }
  input,textarea {
    padding:14px 16px
  }
}
@media(prefers-reduced-motion:no-preference) {
  @keyframes hero-enter {
    from {
      opacity:0;
      transform:translateY(14px)
    }
    to {
      opacity:1;
      transform:none
    }
  }
  .hero-copy>.eyebrow,.hero-copy>h1,.hero-intro,.hero-actions,.hero-tags {
    animation:hero-enter 700ms var(--motion-ease) both
  }
  .hero-copy>h1 {
    animation-delay:60ms
  }
  .hero-intro {
    animation-delay:120ms
  }
  .hero-actions {
    animation-delay:180ms
  }
  .hero-tags {
    animation-delay:230ms
  }
}
@media(max-width:650px) {
  :root {
    --section-radius:0px
  }
  .hero+#services {
    padding-top:56px
  }
  .hero-bottom .overview {
    padding-block:28px
  }
  .form-actions {
    margin-top:0
  }
  .form-panel {
    padding-bottom:24px
  }
}
@media(forced-colors:active) {
  .consent input {
    appearance:auto
  }
}
.consent input[aria-invalid=true] {
  border-color:#a33429
}
/* Finish the photograph on the same solid surface as the overview strip. */
.hero-main:after {
  content: '';
  position: absolute;
  inset: auto 0 0;
  height: 64px;
  background: linear-gradient(transparent, var(--dark));
  z-index: -1;
  pointer-events: none;
}
/* Language changes share one composition; reserve space for the longest translation. */
.languages a { inline-size:34px; flex:none; text-align:center; }
.header-cta { inline-size:232px; }
.hero .eyebrow { min-block-size:1.6em; }
.hero-actions .button { min-block-size:72px; }
@media(min-width:1101px) { .hero-actions .button { min-block-size:58px; } }
@media(min-width:651px) and (max-width:1100px) {
  .overview small { min-block-size:3.3em; }
  .overview strong { display:block; min-block-size:3em; }
}
@media(max-width:650px) {
  .header-inner { column-gap:8px; }
  .menu-button { min-inline-size:48px; text-align:right; }
  .hero .eyebrow { min-block-size:3.2em; }
  .hero h1 { min-block-size:3.36em; }
  .hero-intro { min-block-size:7em; }
  .hero-tags { min-block-size:80px; }
  .hero-actions .button { min-block-size:58px; }
  .overview div { min-block-size:48px; }
}
@media(max-width:380px) { .hero-intro { min-block-size:8.75em; } }
html.locale-updating { overflow-anchor:none; scroll-behavior:auto; }
@media(min-width:901px) { .header-inner { min-block-size:96px; } .header-cta { min-block-size:64px; } }
@media(max-width:650px) { .overview div { min-block-size:52px; } }
@media(min-width:651px) {
  .hero h1 { inline-size:calc(100% + 120px); max-inline-size:calc(100vw - var(--space)*2); }
}
.form-panel h3 { min-block-size:2.36em; }
.field label[for="location"] { min-block-size:3em; }
