:root {
  --paper: #f7f5ed;
  --ink: #26291f;
  --muted: #54574b;
  --olive: #4b5636;
  --line: #d9d7c9;
  --tint: #eeede3;
  --serif: Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.6 system-ui, sans-serif; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.08; }
h2 { font-size: clamp(2.25rem, 4.1vw, 4rem); letter-spacing: -.043em; }
h3 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); letter-spacing: -.025em; }
a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
svg { width: 1.1em; height: 1.1em; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 1.45; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; }
.symbols { position: absolute; width: 0; height: 0; overflow: hidden; }
.wrap { width: min(1240px, calc(100% - 112px)); margin-inline: auto; }
.skip { position: absolute; z-index: 2; top: 8px; left: 8px; transform: translateY(-180%); background: white; padding: 8px 12px; }
.skip:focus { transform: none; }
.top { border-bottom: 1px solid var(--line); }
.top-inner { min-height: 87px; display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; align-items: center; gap: 11px; font: 1.8rem/.96 var(--serif); letter-spacing: -.035em; white-space: nowrap; }
.brand small { display: block; margin-top: 7px; font: 650 .58rem/1 system-ui, sans-serif; letter-spacing: .14em; }
.mark { width: 43px; height: 43px; border-radius: 50%; background: #e7e8db; color: var(--olive); display: grid; place-items: center; }
.mark svg { width: 25px; height: 25px; }
nav { display: flex; gap: clamp(16px, 3vw, 42px); align-items: center; font-size: .88rem; font-weight: 520; }
nav a { padding: 8px 0; }
nav a:hover, .text-link:hover, .footer a:hover { text-decoration: underline; text-underline-offset: 4px; }
.button { min-height: 46px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; padding: 11px 19px; border-radius: 4px; font-size: .88rem; font-weight: 660; line-height: 1.4; }
.outline { border: 1px solid #7b836a; color: var(--olive); white-space: nowrap; }
.outline:hover { background: #e7e8db; }
.solid { background: var(--olive); color: white; }
.solid:hover { background: #374227; }
.hero { display: grid; grid-template-columns: 1fr minmax(0, .98fr); align-items: center; gap: clamp(30px, 6vw, 100px); padding-block: 42px 54px; }
.hero-copy { padding-block: 28px; }
.eyebrow { display: flex; gap: 10px; align-items: center; color: var(--olive); font-size: .7rem; font-weight: 720; text-transform: uppercase; letter-spacing: .17em; }
.eyebrow span { width: 25px; border-top: 1px dashed currentColor; }
h1 { font-size: clamp(3.7rem, 7.6vw, 7.6rem); letter-spacing: -.073em; line-height: .91; margin-top: 23px; }
h1 em { display: block; color: var(--olive); font-weight: 400; }
.lead { max-width: 410px; color: var(--muted); font-size: clamp(1rem, 1.35vw, 1.15rem); margin-top: 30px; }
.actions { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; margin-top: 30px; }
.text-link { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; font-size: .88rem; font-weight: 660; }
.hero-art { position: relative; isolation: isolate; overflow: hidden; min-width: 0; border-radius: 5px; background: #c1bba1; aspect-ratio: 1.15; }
.hero-art img { width: 100%; height: 100%; object-fit: cover; object-position: center 53%; display: block; }
.hero-art figcaption { position: absolute; bottom: 17px; left: 17px; padding: 9px 14px; display: flex; gap: 8px; align-items: center; background: var(--paper); border-radius: 3px; font-size: .78rem; font-weight: 620; }
.hero-art figcaption svg { width: 20px; height: 20px; color: var(--olive); }
.services { background: var(--tint); padding-block: 61px 68px; }
.section-head h2, .visit h2, .contact h2 { margin-top: 14px; }
.service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 30px; }
.service-grid article { padding: 24px; border: 1px solid var(--line); border-radius: 4px; background: var(--paper); }
.service-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; background: #e8e9dd; color: var(--olive); margin-bottom: 18px; }
.service-icon svg { width: 25px; height: 25px; }
.service-grid p, .steps p { color: var(--muted); margin-top: 9px; font-size: .93rem; }
.visit { display: grid; grid-template-columns: minmax(0, .84fr) minmax(0, 1fr); gap: clamp(28px, 8vw, 135px); padding-block: 77px; }
.visit aside { max-width: 340px; color: var(--muted); border-left: 2px solid #929a7c; padding-left: 15px; margin-top: 26px; font-size: .9rem; }
.visit aside strong { color: var(--ink); }
.steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.steps li { display: flex; gap: 19px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.steps li > span { color: var(--olive); font: 1rem/1.5 var(--serif); }
.steps h3 { font-size: 1.45rem; }
.steps p { margin-top: 6px; }
.contact { background: #3c472d; color: var(--paper); padding-block: 59px; }
.contact-inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 32px; }
.contact .eyebrow, .contact p { color: #e0e4d5; }
.contact p { margin-top: 17px; }
.contact address { font-style: normal; }
.contact address p { display: flex; gap: 8px; align-items: center; margin-top: 12px; }
.contact-call { color: var(--olive); background: var(--paper); font-size: 1.2rem; min-width: 218px; }
.contact-call:hover { background: #e7e8db; }
.footer { display: flex; justify-content: space-between; gap: 15px; flex-wrap: wrap; padding-block: 20px; color: var(--muted); font-size: .8rem; }
@media (max-width: 1000px) {
  .wrap { width: calc(100% - 64px); }
  .hero { gap: 34px; }
  .hero-art { aspect-ratio: .96; }
}
@media (max-width: 740px) {
  .wrap { width: calc(100% - 36px); }
  .top-inner { gap: 0 12px; flex-wrap: wrap; padding-top: 13px; }
  .top-call { order: 0; padding: 8px 10px; min-height: 42px; }
  nav { order: 1; width: 100%; justify-content: space-between; margin-top: 11px; border-top: 1px solid var(--line); gap: 12px; }
  nav a { min-height: 42px; display: flex; align-items: center; }
  .hero { grid-template-columns: minmax(0, 1fr); padding-block: 30px 32px; gap: 22px; }
  .hero-copy { padding-block: 3px 0; }
  h1 { font-size: clamp(3.3rem, 12vw, 5.6rem); }
  .lead { margin-top: 21px; }
  .actions { margin-top: 21px; gap: 7px 16px; }
  .hero-art { aspect-ratio: 1.18; }
  .services, .visit, .contact { padding-block: 39px; }
  .service-grid { grid-template-columns: minmax(0, 1fr); gap: 11px; margin-top: 22px; }
  .service-grid article { padding: 19px; }
  .service-icon { margin-bottom: 12px; }
  .visit { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
@media (max-width: 375px) {
  .brand { gap: 7px; font-size: 1.55rem; }
  .brand small { font-size: .49rem; }
  .mark { width: 35px; height: 35px; }
  .top-call { font-size: .77rem; }
}
.service-link { color: var(--olive); margin-top: 7px; }
.detail { padding-block: clamp(25px, 5vw, 65px) clamp(39px, 6vw, 74px); }
.detail > .eyebrow { margin-top: 14px; }
.detail .lead { max-width: 535px; }
.trail a { text-decoration: underline; text-underline-offset: 3px; }
.trail span { width: auto; border: 0; }
.related { border-top: 1px solid var(--line); padding-block: 10px 16px; }
