:root {
  --green:#183b33; --dark:#142d27; --ink:#1c3029; --muted:#5e6d65;
  --paper:#f8faf7; --sage:#e5eee7; --gold:#e1c879; --line:#cbd6cd;
  --sans:'DM Sans',Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; font-family:var(--sans); color:var(--ink); background:var(--paper); font-size:16px; line-height:1.65; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; }
img { display:block; max-width:100%; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.045em; }
h2 { font-size:clamp(34px,3.3vw,46px); font-weight:500; margin-bottom:24px; }
h3 { font-size:25px; font-weight:500; margin-bottom:14px; }
a,button,summary { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
.shell { width:min(1760px,calc(100% - 120px)); margin-inline:auto; }
.container { width:min(1320px,calc(100% - 120px)); margin-inline:auto; }
.section-space { padding-block:96px; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:11px; line-height:1.6; font-weight:600; margin-bottom:23px; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:38px; padding:14px 23px; min-height:56px; font-size:14px; font-weight:600; border:1px solid transparent; border-radius:3px; transition:background .18s; }
.button span { font-size:24px; line-height:1; }
.button-gold { background:var(--gold); color:var(--dark); }
.button-gold:hover { background:#efda9a; }
.button-dark { background:var(--green); color:white; }
.button-dark:hover { background:#294e42; }
.text-link { display:inline-flex; align-items:center; gap:23px; padding-block:7px; font-size:13px; font-weight:500; border-bottom:1px solid #8b9c8e; }
.text-link span { font-size:20px; }
.text-link:hover { border-color:currentColor; }
.skip-link { position:fixed; top:-100px; left:20px; z-index:10; background:white; color:var(--dark); padding:12px 18px; }
.skip-link:focus { top:15px; }

/* The full wordmark sits over the photography, rather than in a separate masthead. */
.site-header { position:absolute; inset:0 0 auto; z-index:3; color:#fff; }
.nav-wrap { display:flex; justify-content:space-between; align-items:center; gap:35px; min-height:132px; border-bottom:1px solid #ffffff30; }
.brand { display:inline-flex; flex-shrink:0; }
.brand-name { display:block; font-size:46px; line-height:1; font-weight:600; letter-spacing:-.055em; }
.brand-descriptor { display:block; margin-top:12px; font-size:11px; font-weight:500; line-height:1.2; letter-spacing:.32em; text-transform:uppercase; }
nav { display:flex; align-items:center; gap:36px; font-size:14px; font-weight:500; }
nav>a { padding-block:13px; }
nav>a:not(.nav-cta):hover { text-decoration:underline; text-underline-offset:6px; }
.nav-cta { display:flex; gap:35px; align-items:center; padding:10px 21px; color:var(--dark); background:var(--gold); border-radius:3px; }
.nav-cta span { font-size:23px; }
.nav-cta:hover { background:#efda9a; }
.menu-toggle { display:none; }

.hero { position:relative; display:flex; align-items:center; min-height:clamp(700px,92svh,880px); padding-block:210px 142px; background:#26392f; color:#fff; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 35%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(9,20,16,.82),rgba(9,20,16,.5)42%,rgba(9,20,16,.12)76%),linear-gradient(0deg,rgba(8,18,14,.55),transparent 32%,rgba(8,18,14,.52)); }
.hero-content { position:relative; z-index:1; }
.hero .eyebrow { color:#e0e8df; margin-bottom:22px; }
h1 { font-size:clamp(48px,4.6vw,68px); font-weight:500; letter-spacing:-.055em; margin-bottom:24px; }
.hero-description { max-width:435px; font-size:18px; line-height:1.65; color:#f0f2ec; margin-bottom:28px; }
.hero-bottom { position:absolute; z-index:1; bottom:34px; left:0; right:0; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.hero-bottom>p { font-size:12px; color:#edf1e8; margin:0; }
.hero-bottom>p>span { margin-inline:18px; color:#bbcabd; }
.hero-bottom>a { display:inline-flex; align-items:center; gap:15px; font-size:12px; }
.circle-arrow { display:grid; place-items:center; border:1px solid #ffffff70; width:44px; height:44px; border-radius:50%; font-size:22px; transition:background .18s; }
.hero-bottom>a:hover .circle-arrow { background:#ffffff20; }

.services { background:#f0f5f1; }
.services-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:110px; align-items:start; }
.services-intro h2 { max-width:480px; }
.section-description { color:var(--muted); font-size:16px; max-width:400px; margin-bottom:0; }
.service-photo { width:100%; height:auto; aspect-ratio:1.55; object-fit:cover; margin-top:35px; border-radius:3px; }
.service-list { border-top:1px solid #b4c4b8; }
.service-item { display:grid; grid-template-columns:27px 1fr; gap:24px; padding-block:28px; border-bottom:1px solid #c5d2c8; }
.service-number { font-size:11px; font-weight:500; color:#637568; padding-top:5px; }
.service-item p { color:#56695c; font-size:15px; line-height:1.75; margin-bottom:13px; max-width:480px; }
.service-item .text-link { font-size:12px; border-bottom:0; padding:4px 0; }
.service-item .text-link:hover { text-decoration:underline; text-underline-offset:5px; }

.about { background:var(--green); color:#f7faf2; }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:110px; }
.about .eyebrow { color:#c2d1c2; }
.about h2 { max-width:500px; margin-bottom:0; }
.about-copy { padding-top:4px; }
.owner-intro { font-size:23px; font-weight:500; letter-spacing:-.025em; margin-bottom:16px; }
.about-copy>p:not(.owner-intro) { font-size:16px; color:#d9e3d6; line-height:1.8; margin-bottom:17px; max-width:510px; }
.about .text-link { color:var(--gold); border-color:#9ba87a; }
.process { display:grid; grid-template-columns:repeat(3,1fr); gap:42px; border-top:1px solid #ffffff35; margin:56px 0 0; padding:34px 0 0; list-style:none; }
.process li { display:grid; grid-template-columns:25px 1fr; gap:17px; }
.step-number { font-size:11px; color:#c7d2bd; padding-top:5px; }
.process h3 { font-size:17px; font-weight:500; letter-spacing:-.02em; line-height:1.4; margin-bottom:10px; }
.process p { font-size:13px; color:#cbd8c9; line-height:1.75; margin-bottom:0; }

.questions { background:var(--paper); }
.questions-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:110px; }
.faq-list { border-top:1px solid var(--line); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:25px; padding-block:23px; font-size:15px; font-weight:500; list-style:none; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-symbol { position:relative; display:block; flex-shrink:0; width:16px; height:16px; }
.faq-symbol::before,.faq-symbol::after { content:''; position:absolute; left:1px; top:7px; width:14px; height:1px; background:currentColor; }
.faq-symbol::after { transform:rotate(90deg); }
details[open] .faq-symbol::after { transform:rotate(0); }
.faq-list details>p { font-size:14px; line-height:1.8; color:var(--muted); margin:0; padding:0 30px 23px 0; }

.contact { background:var(--gold); padding-block:72px 60px; }
.contact-grid { display:flex; align-items:center; justify-content:space-between; gap:65px; }
.contact .eyebrow { margin-bottom:18px; }
.contact h2 { font-size:clamp(36px,4vw,52px); margin-bottom:18px; }
.contact-grid>div>p:not(.eyebrow):not(.copy-status) { font-size:16px; margin:0; }
.contact-actions { flex:0 0 330px; }
.contact-actions>.button { display:flex; }
.email-row { display:flex; align-items:center; justify-content:space-between; gap:9px; margin-top:13px; font-size:13px; }
.email-row>a { text-decoration:underline; text-underline-offset:5px; text-decoration-color:#8c855d; overflow-wrap:anywhere; }
.email-row button { border:0; padding:12px; min-width:44px; min-height:44px; cursor:pointer; background:transparent; }
.email-row button:hover { background:#193d3410; }
.email-row svg { display:block; width:18px; height:18px; }
.copy-status { min-height:22px; font-size:12px; margin:2px 0 0; }
.site-footer { background:var(--dark); color:#f2f7ed; padding-block:48px 25px; }
.footer-top { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-bottom:33px; }
.site-footer .brand-name { font-size:35px; }
.site-footer .brand-descriptor { font-size:9px; margin-top:10px; }
.footer-back { display:inline-flex; align-items:center; gap:18px; font-size:12px; min-height:44px; }
.footer-back span { font-size:20px; }
.footer-bottom { display:flex; justify-content:space-between; gap:30px; border-top:1px solid #ffffff25; padding-top:21px; }
.footer-bottom p { font-size:11px; color:#c1cfc2; margin:0; }

@media (min-width:1600px) {
  .hero-content { padding-left:0; }
  .hero { padding-top:235px; padding-bottom:155px; }
}
@media (max-width:1100px) {
  .shell,.container { width:calc(100% - 80px); }
  .brand-name { font-size:39px; }
  nav { gap:25px; }
  .services-grid,.about-grid,.questions-grid { gap:65px; }
  h2 { font-size:38px; }
  .process { gap:25px; }
  .process li { gap:12px; grid-template-columns:20px 1fr; }
  .hero-image { object-position:57% center; }
}
@media (max-width:820px) {
  .shell,.container { width:calc(100% - 48px); }
  .section-space { padding-block:68px; }
  .nav-wrap { min-height:110px; gap:0; flex-wrap:wrap; padding-block:23px; }
  .brand-name { font-size:34px; }
  .brand-descriptor { font-size:9px; margin-top:10px; }
  .js .menu-toggle { display:inline-flex; align-items:center; gap:12px; border:1px solid #ffffff80; background:#16362b70; padding:10px 13px; min-height:44px; font-size:12px; cursor:pointer; }
  nav { width:100%; justify-content:space-between; padding-top:20px; gap:18px; }
  .js nav { display:none; }
  .js nav.is-open { display:flex; background:var(--dark); padding:18px; margin-top:18px; border:1px solid #ffffff25; }
  .nav-cta { padding:9px 14px; gap:15px; }
  .hero { min-height:730px; padding-block:195px 135px; }
  h1 { font-size:54px; }
  .hero-description { font-size:17px; max-width:390px; }
  .hero-image { object-position:61% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(9,20,16,.76),rgba(9,20,16,.42)65%,rgba(9,20,16,.18)),linear-gradient(0deg,rgba(8,18,14,.55),transparent 38%); }
  .hero-bottom>p { font-size:10px; }
  .hero-bottom>p>span { margin-inline:10px; }
  .explore-label { display:none; }
  .services-grid { gap:42px; grid-template-columns:.9fr 1.1fr; }
  h2 { font-size:34px; }
  h3 { font-size:22px; }
  .service-item { gap:17px; padding-block:24px; grid-template-columns:20px 1fr; }
  .service-item p { font-size:14px; }
  .service-photo { aspect-ratio:.95; margin-top:28px; }
  .section-description { font-size:14px; }
  .about-grid,.questions-grid { gap:45px; }
  .owner-intro { font-size:21px; }
  .about-copy>p:not(.owner-intro) { font-size:15px; }
  .process { margin-top:40px; padding-top:28px; gap:25px; }
  .process li { display:block; }
  .step-number { display:block; margin-bottom:12px; }
  .process h3 { font-size:16px; }
  .process p { font-size:12px; }
  .contact-grid { gap:40px; }
  .contact-actions { flex-basis:290px; }
  .contact h2 { font-size:39px; }
  .contact-grid>div>p:not(.eyebrow):not(.copy-status) { font-size:14px; }
}
@media (max-width:600px) {
  .shell,.container { width:calc(100% - 40px); }
  .nav-wrap { min-height:104px; padding-block:22px; }
  .brand-name { font-size:30px; letter-spacing:-.055em; }
  .brand-descriptor { font-size:9px; letter-spacing:.28em; margin-top:9px; }
  .js .menu-toggle { padding:9px 11px; gap:10px; }
  nav { font-size:12px; flex-wrap:wrap; gap:8px 16px; }
  .js nav.is-open { padding:13px; }
  .nav-cta { padding:8px 12px; gap:14px; }
  .hero { min-height:730px; padding-block:210px 150px; align-items:flex-start; }
  .hero-image { object-position:66% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(9,20,16,.72),rgba(9,20,16,.4)),linear-gradient(0deg,rgba(8,18,14,.64),transparent 50%,rgba(8,18,14,.35)); }
  .hero .eyebrow { font-size:9px; letter-spacing:.1em; margin-bottom:22px; }
  h1 { font-size:clamp(39px,11vw,58px); line-height:1.09; margin-bottom:23px; }
  .hero-description { max-width:350px; font-size:16px; line-height:1.7; margin-bottom:29px; }
  .hero .button { font-size:12px; padding-inline:18px; gap:24px; }
  .hero-bottom { bottom:28px; align-items:end; gap:15px; }
  .hero-bottom>p { font-size:10px; line-height:1.9; max-width:245px; }
  .hero-bottom>p>span { margin-inline:7px; }
  .circle-arrow { width:41px; height:41px; font-size:20px; }
  .section-space { padding-block:56px; }
  .eyebrow { font-size:9px; letter-spacing:.12em; margin-bottom:21px; }
  h2 { font-size:35px; }
  .services-grid { grid-template-columns:1fr; gap:34px; }
  .services-intro h2 { max-width:none; }
  .section-description { font-size:15px; max-width:440px; }
  .service-photo { aspect-ratio:1.65; margin-top:27px; }
  .service-item { grid-template-columns:22px 1fr; gap:18px; padding-block:26px; }
  h3 { font-size:24px; }
  .service-item p { font-size:15px; }
  .service-item .text-link { font-size:13px; }
  .about-grid,.questions-grid { grid-template-columns:1fr; gap:30px; }
  .about h2 { font-size:34px; }
  .about-copy { padding:0; }
  .about-copy>p:not(.owner-intro) { font-size:15px; }
  .owner-intro { font-size:22px; }
  .process { grid-template-columns:1fr; gap:25px; margin-top:36px; padding-top:30px; }
  .process li { display:grid; grid-template-columns:23px 1fr; gap:16px; }
  .step-number { margin:0; padding-top:4px; }
  .process h3 { font-size:17px; margin-bottom:8px; }
  .process p { font-size:13px; }
  .questions-grid h2 { margin-bottom:0; }
  .faq-list summary { font-size:15px; padding-block:23px; gap:16px; }
  .faq-list details>p { font-size:14px; padding-right:15px; }
  .contact { padding-block:50px 36px; }
  .contact-grid { display:block; }
  .contact h2 { font-size:38px; }
  .contact-actions { max-width:370px; margin-top:28px; }
  .contact-grid>div>p:not(.eyebrow):not(.copy-status) { font-size:15px; }
  .site-footer { padding-block:35px 24px; }
  .site-footer .brand-name { font-size:30px; }
  .footer-top { align-items:start; gap:20px; padding-bottom:28px; }
  .footer-back { font-size:0; gap:0; }
  .footer-back span { font-size:25px; }
  .footer-bottom { flex-direction:column; gap:10px; }
  .footer-bottom p { font-size:10px; }
}
@media (max-width:360px) {
  .shell,.container { width:calc(100% - 32px); }
  .brand-name { font-size:26px; }
  .brand-descriptor { font-size:8px; }
  .js .menu-toggle { font-size:11px; gap:7px; padding:9px; }
  h1 { font-size:39px; }
  .hero .button { gap:19px; font-size:11px; padding-inline:15px; }
  .hero { min-height:720px; padding-top:190px; }
  .hero-bottom>p { max-width:215px; font-size:9px; }
  h2,.about h2 { font-size:31px; }
  h3 { font-size:21px; }
  .contact h2 { font-size:33px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { transition:none!important; }
}
