:root { --ink:#18352c; --evergreen:#173f34; --moss:#59705b; --cream:#f5f1e8; --sand:#d9cebb; --line:rgba(24,53,44,.2); }
* { box-sizing:border-box; } html { scroll-behavior:smooth; } body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans", sans-serif; font-size:16px; } a { color:inherit; text-decoration:none; } img { display:block; width:100%; height:100%; object-fit:cover; } .site-header { height:90px; padding:0 5.4vw; display:flex; align-items:center; justify-content:space-between; background:var(--cream); position:relative; z-index:4; } .brand { display:flex; align-items:center; gap:10px; font-size:15px; letter-spacing:.09em; font-weight:600; } .brand i { font-family:"Playfair Display",serif; font-weight:500; letter-spacing:0; } .brand-mark { width:30px; height:34px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; } .main-nav { display:flex; align-items:center; gap:31px; font-size:13px; } .main-nav > a:not(.nav-cta) { opacity:.65; } .main-nav > a.active, .main-nav > a:hover { opacity:1; } .nav-cta { margin-left:14px; padding:12px 16px; border:1px solid var(--ink); } .nav-cta span, .button span { margin-left:14px; } .menu-toggle { display:none; color:var(--ink); background:none; border:0; font:500 12px "DM Mono",monospace; text-transform:uppercase; }
.hero, .page-hero { height:calc(100vh - 90px); min-height:560px; position:relative; color:#fff; overflow:hidden; } .hero > img, .page-hero > img { position:absolute; inset:0; } .hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,20,12,.67),rgba(4,20,12,.1) 65%),linear-gradient(0deg,rgba(4,20,12,.25),transparent 45%); } .hero-copy { position:absolute; left:10.4vw; top:50%; transform:translateY(-44%); } .eyebrow { margin:0 0 27px; font:500 11px "DM Mono",monospace; letter-spacing:.08em; text-transform:uppercase; } .eyebrow.light { color:#e5e6d9; } h1,h2,h3,p { margin-top:0; } h1,h2 { font-family:"Playfair Display",serif; font-weight:500; letter-spacing:-.045em; line-height:.98; } h1 { font-size:clamp(52px,7vw,103px); margin:0 0 39px; } h2 { font-size:clamp(38px,4.55vw,68px); margin:0; } h1 em,h2 em { font-weight:500; } .button { display:inline-block; font-size:13px; padding:15px 18px; transition:transform .2s ease; } .button:hover { transform:translateY(-2px); } .button-light { border:1px solid rgba(255,255,255,.8); color:#fff; } .button-dark { color:var(--cream); background:var(--ink); border:1px solid var(--ink); } .hero-note { position:absolute; right:5.4vw; bottom:43px; margin:0; font-size:12px; line-height:1.6; text-align:right; color:#e5e6d9; }.section-pad { padding:125px 10.4vw; }.intro-grid { display:grid; grid-template-columns:1.28fr .72fr; gap:10vw; align-items:end; }.intro-grid p,.feature-copy p,.pricing article > p:not(.eyebrow):not(.price),.lede { font-size:16px; line-height:1.65; color:#4b6056; }.text-link { display:inline-block; margin-top:24px; border-bottom:1px solid var(--ink); padding-bottom:5px; font-size:13px; }.text-link span { margin-left:15px; }.feature-grid { display:grid; grid-template-columns:1.08fr .92fr; min-height:665px; background:#d4c8b4; }.feature-image { min-height:470px; }.feature-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:80px 10vw 80px 8vw; }.feature-copy h2 { margin-bottom:26px; }.feature-copy p { max-width:335px; }.statement { text-align:center; padding-top:145px; padding-bottom:145px; }.statement .eyebrow { margin-bottom:36px; }.contact { background:var(--evergreen); color:var(--cream); }.contact h2 { margin-bottom:42px; }.contact .eyebrow { color:#c3cbbd; } footer { display:flex; justify-content:space-between; padding:24px 5.4vw; background:#102f27; color:#c9d1c3; font:400 10px "DM Mono",monospace; text-transform:uppercase; letter-spacing:.03em; }
.service-hero { height:620px; min-height:0; }.service-hero .hero-copy { top:55%; }.service-list { padding-top:0; }.service-list article { display:grid; grid-template-columns:70px 1fr 40px; padding:38px 0; border-top:1px solid var(--line); }.service-list article:last-child { border-bottom:1px solid var(--line); }.service-list span { font:400 11px "DM Mono",monospace; }.service-list h3 { margin:0 0 12px; font:500 35px "Playfair Display",serif; letter-spacing:-.025em; }.service-list p { max-width:450px; margin:0; line-height:1.55; color:#4b6056; }.service-arrow { text-align:right; }.image-band { height:520px; }.process { background:#d4c8b4; }.process-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:45px; }.process-grid span { display:block; margin-bottom:70px; font:500 11px "DM Mono",monospace; }.process-grid h3 { font:500 32px "Playfair Display",serif; margin-bottom:13px; }.process-grid p { color:#4b6056; line-height:1.55; max-width:250px; }
.pricing-hero { display:grid; grid-template-columns:1fr 1fr; min-height:540px; }.pricing-hero > div { padding:105px 7vw 90px 10.4vw; display:flex; flex-direction:column; justify-content:center; }.pricing-hero h1 { font-size:clamp(48px,5.3vw,78px); margin-bottom:30px; }.pricing-hero .lede { max-width:400px; margin:0; }.pricing-hero img { min-height:460px; }.pricing { padding-top:112px; }.pricing-grid { display:grid; grid-template-columns:repeat(3,1fr); align-items:stretch; border-top:1px solid var(--line); }.pricing article { padding:44px 32px 47px; border-right:1px solid var(--line); display:flex; flex-direction:column; min-height:420px; }.pricing article:first-child { border-left:1px solid var(--line); }.pricing article h2 { font-size:37px; margin-bottom:27px; }.pricing article .price { font:500 12px "DM Mono",monospace; margin-bottom:24px; }.pricing article .text-link,.pricing article .button { margin-top:auto; align-self:flex-start; }.featured-price { background:var(--evergreen); color:var(--cream); }.featured-price > p:not(.eyebrow):not(.price) { color:#d4ded0!important; }.featured-price .eyebrow { color:#ced9ca; }.featured-price .button { margin-top:auto; }.faq { background:#e5ded1; display:grid; grid-template-columns:.7fr 1.3fr; gap:8vw; }.faq details { border-top:1px solid var(--line); padding:24px 0; }.faq details:last-child { border-bottom:1px solid var(--line); }.faq summary { display:flex; justify-content:space-between; cursor:pointer; list-style:none; font:500 21px "Playfair Display",serif; }.faq summary::-webkit-details-marker { display:none; }.faq summary span { font:400 22px "DM Mono",monospace; }.faq details p { max-width:540px; margin:17px 30px 0 0; color:#4b6056; line-height:1.55; }
@media (max-width:720px) { .site-header { height:74px; padding:0 6vw; }.main-nav { display:none; position:absolute; left:0; right:0; top:74px; padding:24px 6vw; background:var(--cream); flex-direction:column; align-items:flex-start; gap:22px; box-shadow:0 12px 18px rgba(0,0,0,.08); }.main-nav.is-open { display:flex; }.nav-cta { margin-left:0; }.menu-toggle { display:block; }.hero,.page-hero { height:calc(100vh - 74px); min-height:580px; }.hero-copy { left:7vw; right:7vw; }.hero-note { right:7vw; }.section-pad { padding:78px 7vw; }.intro-grid,.feature-grid,.pricing-hero,.faq { grid-template-columns:1fr; gap:35px; }.feature-copy { padding:68px 7vw; min-height:430px; }.statement { padding-top:95px; padding-bottom:95px; }.service-hero { height:500px; min-height:0; }.service-list article { grid-template-columns:35px 1fr 25px; padding:30px 0; }.service-list h3 { font-size:29px; }.image-band { height:340px; }.process-grid,.pricing-grid { grid-template-columns:1fr; }.process-grid { gap:52px; }.process-grid span { margin-bottom:27px; }.pricing-hero > div { padding:85px 7vw 65px; }.pricing-hero img { min-height:355px; }.pricing { padding-top:78px; }.pricing-grid { border-top:1px solid var(--line); }.pricing article,.pricing article:first-child { border-left:1px solid var(--line); border-bottom:1px solid var(--line); min-height:370px; }.pricing article h2 { font-size:40px; }.faq { gap:15px; } footer { flex-direction:column; gap:13px; padding:24px 7vw; }.brand { font-size:13px; } }
