:root {
  --ink: #0a0c09;
  --ink-soft: #11140f;
  --ink-card: #151914;
  --olive: #72785e;
  --sage: #a7ad8d;
  --sand: #d9d1bf;
  --paper: #ede9df;
  --white: #f8f6f0;
  --line: rgba(237, 233, 223, .16);
  --line-dark: rgba(10, 12, 9, .16);
  --muted: #a4a69f;
  --serif: "Newsreader", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --display: "Manrope", Arial, sans-serif;
  --ease: cubic-bezier(.22, 1, .36, 1);
  --shell: min(1380px, calc(100vw - 10vw));
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }
body { background: var(--ink); color: var(--paper); font-family: var(--sans); font-weight: 300; overflow-x: hidden; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
::selection { background: var(--sage); color: var(--ink); }

.skip-link { background: var(--white); color: var(--ink); left: 1rem; padding: .8rem 1rem; position: fixed; top: -100%; z-index: 5000; }
.skip-link:focus { top: 1rem; }
.section-shell { margin-inline: auto; width: var(--shell); }
.section { padding: 9rem 0; }
.section-pad { padding: 10rem 0; }
.reveal { opacity: 0; transform: translateY(32px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.hero .reveal { opacity: 1; transform: none; }

.site-header { align-items: center; display: flex; height: 104px; justify-content: space-between; left: 0; padding: 0 5vw; position: fixed; top: 0; transition: background .5s, height .5s, border-color .5s; width: 100%; z-index: 1000; }
.site-header.scrolled { backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); background: rgba(10, 12, 9, .84); border-bottom: 1px solid var(--line); height: 78px; }
.brand { align-items: center; display: inline-flex; gap: .9rem; position: relative; z-index: 1100; }
.brand-mark { align-items: center; border: 1px solid rgba(237, 233, 223, .58); border-radius: 50%; display: flex; height: 45px; justify-content: center; position: relative; width: 45px; }
.brand-mark::after { border-bottom: 1px solid rgba(237, 233, 223, .55); border-radius: 50%; bottom: 7px; content: ""; height: 10px; left: 8px; position: absolute; width: 27px; }
.brand-mark span { font-family: var(--serif); font-size: .78rem; letter-spacing: -.04em; }
.brand-copy { font-size: .67rem; letter-spacing: .25em; white-space: nowrap; }
.brand-copy strong { font-family: var(--display); font-size: 1.15rem; letter-spacing: -.06em; margin-right: .35rem; }
.desktop-nav { display: flex; gap: clamp(1.3rem, 2.2vw, 2.8rem); left: 50%; position: absolute; transform: translateX(-50%); }
.desktop-nav a { color: rgba(248, 246, 240, .8); font-size: .72rem; letter-spacing: .08em; position: relative; text-transform: uppercase; }
.desktop-nav a::after { background: var(--paper); bottom: -.7rem; content: ""; height: 1px; left: 0; position: absolute; transform: scaleX(0); transform-origin: right; transition: transform .4s var(--ease); width: 100%; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-actions { align-items: center; display: flex; gap: 2rem; }
.header-phone { font-size: .78rem; font-weight: 500; }
.header-phone span { color: var(--muted); font-size: .64rem; letter-spacing: .1em; margin-right: .5rem; text-transform: uppercase; }
.menu-toggle { align-items: center; background: transparent; border: 0; cursor: pointer; display: none; flex-direction: column; gap: 7px; height: 42px; justify-content: center; position: relative; width: 42px; z-index: 1100; }
.menu-toggle span { background: var(--paper); height: 1px; transition: transform .4s var(--ease); width: 27px; }
.menu-toggle.active span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle.active span:last-child { transform: translateY(-4px) rotate(-45deg); }

.mobile-menu { align-items: center; background: rgba(8, 10, 7, .98); display: flex; inset: 0; opacity: 0; padding: 130px 8vw 5vw; pointer-events: none; position: fixed; transition: opacity .5s var(--ease), visibility .5s; visibility: hidden; z-index: 900; }
.mobile-menu.active { opacity: 1; pointer-events: auto; visibility: visible; }
.mobile-menu-glow { background: radial-gradient(circle, rgba(114,120,94,.2), transparent 65%); height: 70vw; position: absolute; right: -20vw; top: -20vw; width: 70vw; }
.mobile-menu nav { display: flex; flex-direction: column; position: relative; width: min(680px, 100%); }
.mobile-menu nav a { border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(2.5rem, 7vw, 5rem); font-weight: 300; line-height: 1; padding: .7rem 0; transform: translateY(30px); transition: color .3s, transform .6s var(--ease); }
.mobile-menu.active nav a { transform: translateY(0); }
.mobile-menu nav a:nth-child(2) { transition-delay: .05s; }.mobile-menu nav a:nth-child(3) { transition-delay: .1s; }.mobile-menu nav a:nth-child(4) { transition-delay: .15s; }.mobile-menu nav a:nth-child(5) { transition-delay: .2s; }.mobile-menu nav a:nth-child(6) { transition-delay: .25s; }
.mobile-menu nav a:hover { color: var(--sage); }
.mobile-menu nav span { color: var(--sage); display: inline-block; font-family: var(--sans); font-size: .6rem; letter-spacing: .1em; width: 3rem; }
.mobile-menu-footer { bottom: 5vw; display: flex; flex-direction: column; gap: .4rem; position: absolute; right: 8vw; text-align: right; }
.mobile-menu-footer a { color: var(--muted); font-size: .78rem; }

.hero { align-items: flex-end; display: flex; min-height: 100svh; overflow: hidden; padding: 12rem 5vw 3.2rem; position: relative; }
.hero-image { height: 100%; inset: 0; object-fit: cover; object-position: center; position: absolute; width: 100%; animation: heroZoom 18s ease-out forwards; }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
.hero-shade { background: linear-gradient(90deg, rgba(4,6,4,.86) 0%, rgba(5,7,4,.52) 44%, rgba(5,7,4,.12) 72%), linear-gradient(0deg, rgba(4,6,4,.9) 0%, transparent 43%), linear-gradient(180deg, rgba(4,6,4,.58), transparent 30%); inset: 0; position: absolute; }
.hero-grain { background-image: radial-gradient(rgba(255,255,255,.16) .5px, transparent .5px), radial-gradient(rgba(0,0,0,.18) .5px, transparent .5px); background-position: 0 0, 3px 3px; background-size: 6px 6px; inset: 0; opacity: .1; pointer-events: none; position: absolute; }
.hero-content { max-width: 930px; padding-bottom: 7.5rem; position: relative; z-index: 2; }
.eyebrow { align-items: center; color: var(--sand); display: flex; font-size: .66rem; font-weight: 500; gap: 1rem; letter-spacing: .19em; margin-bottom: 2rem; text-transform: uppercase; }
.eyebrow::before { background: var(--sage); content: ""; height: 1px; width: 42px; }
.eyebrow.dark { color: #4d5144; }
.hero h1 { font-family: var(--display); font-size: clamp(3.5rem, 7.15vw, 8.4rem); font-weight: 400; letter-spacing: -.075em; line-height: .88; }
.hero h1 em, .display-heading em, .featured-copy h2 em { color: var(--sand); font-family: var(--serif); font-weight: 300; letter-spacing: -.04em; }
.hero h1 em { font-size: 1.08em; }
.hero-lede { color: rgba(248,246,240,.77); font-size: clamp(.95rem, 1.2vw, 1.15rem); line-height: 1.7; margin: 2.2rem 0 2.6rem; max-width: 590px; }
.hero-actions { align-items: center; display: flex; gap: 2.2rem; }
.button { align-items: center; border: 1px solid transparent; display: inline-flex; font-size: .71rem; font-weight: 500; gap: 2.7rem; justify-content: center; letter-spacing: .08em; padding: 1.15rem 1.4rem; text-transform: uppercase; transition: background .4s, color .4s, border-color .4s, transform .4s var(--ease); }
.button:hover { transform: translateY(-3px); }
.button-primary { background: var(--paper); color: var(--ink); }
.button-primary:hover { background: var(--sage); }
.button-dark { background: var(--ink); color: var(--paper); }
.button-dark:hover { background: var(--olive); }
.text-link, .arrow-link { align-items: center; display: inline-flex; font-size: .72rem; font-weight: 500; gap: 1rem; letter-spacing: .08em; text-transform: uppercase; }
.text-link span, .arrow-link span { transition: transform .35s var(--ease); }
.text-link:hover span, .arrow-link:hover span { transform: translate(3px, -3px); }
.hero-side-note { border-left: 1px solid rgba(255,255,255,.35); padding-left: 1rem; position: absolute; right: 5vw; top: 43%; z-index: 2; }
.hero-side-note span { color: var(--muted); display: block; font-size: .58rem; letter-spacing: .13em; margin-bottom: .3rem; text-transform: uppercase; }
.hero-side-note strong { font-family: var(--serif); font-size: 1.2rem; font-weight: 300; line-height: 1.1; }
.hero-bottom { align-items: flex-end; border-top: 1px solid var(--line); bottom: 3.2rem; display: grid; grid-template-columns: repeat(3, 150px) 1fr; left: 5vw; padding-top: 1.3rem; position: absolute; right: 5vw; z-index: 2; }
.hero-stat strong { display: block; font-family: var(--serif); font-size: 1rem; font-weight: 300; }
.hero-stat span { color: var(--muted); display: block; font-size: .6rem; letter-spacing: .06em; margin-top: .15rem; text-transform: uppercase; }
.scroll-cue { align-items: center; color: var(--muted); display: flex; font-size: .58rem; gap: .7rem; justify-self: end; letter-spacing: .12em; text-transform: uppercase; }
.scroll-cue span { border: 1px solid rgba(255,255,255,.3); border-radius: 50%; height: 25px; position: relative; width: 25px; }
.scroll-cue span::after { animation: scrollDot 1.8s infinite; background: var(--paper); border-radius: 50%; content: ""; height: 3px; left: 10px; position: absolute; top: 6px; width: 3px; }
@keyframes scrollDot { 50% { transform: translateY(8px); opacity: .3; } }

.intro { background: linear-gradient(145deg, #0a0c09 25%, #12160f 100%); }
.intro-grid { display: grid; gap: 8vw; grid-template-columns: 1fr 2.35fr; }
.section-kicker { align-items: baseline; color: var(--muted); display: flex; font-size: .65rem; gap: 1rem; letter-spacing: .12em; padding-top: .55rem; text-transform: uppercase; }
.section-kicker span { color: var(--sage); font-family: var(--serif); font-size: .9rem; letter-spacing: 0; }
.display-heading { font-family: var(--display); font-size: clamp(2.7rem, 5vw, 5.9rem); font-weight: 400; letter-spacing: -.065em; line-height: .98; }
.intro-copy .display-heading { margin-bottom: 3.2rem; }
.lead { font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 2.1rem); font-weight: 300; line-height: 1.4; }
.intro-copy .lead { max-width: 870px; }
.body-copy { color: var(--muted); font-size: .96rem; line-height: 1.8; max-width: 640px; }
.intro-copy .body-copy { margin: 2rem 0 2.5rem 25%; }
.arrow-link { border-bottom: 1px solid var(--line); margin-left: 25%; padding-bottom: .7rem; }

.featured-project { background: var(--paper); color: var(--ink); }
.featured-grid { align-items: stretch; display: grid; grid-template-columns: 1.2fr .8fr; min-height: 720px; }
.featured-visual { min-height: 720px; overflow: hidden; position: relative; }
.featured-visual img { height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); width: 100%; }
.featured-visual:hover img { transform: scale(1.025); }
.image-tag { background: var(--ink); bottom: 0; color: var(--paper); left: 0; padding: 1.3rem 1.6rem; position: absolute; }
.image-tag span { color: var(--muted); display: block; font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.image-tag strong { display: block; font-family: var(--serif); font-size: 1.15rem; font-weight: 300; margin-top: .2rem; }
.featured-copy { display: flex; flex-direction: column; justify-content: center; padding: 7vw; }
.featured-copy h2 { font-family: var(--display); font-size: clamp(3rem, 4.2vw, 5.3rem); font-weight: 400; letter-spacing: -.065em; line-height: .95; }
.featured-copy h2 em { color: #72785e; }
.featured-copy > p:not(.eyebrow) { color: #67695f; line-height: 1.8; margin: 2rem 0 2.7rem; }
.feature-points { border-top: 1px solid var(--line-dark); }
.feature-points > div { display: grid; gap: 1rem; grid-template-columns: 25px 1fr; padding: 1.1rem 0; position: relative; }
.feature-points > div + div { border-top: 1px solid var(--line-dark); }
.feature-points span { color: var(--olive); font-family: var(--serif); font-size: .75rem; grid-row: span 2; }
.feature-points strong { font-size: .83rem; font-weight: 500; }
.feature-points p { color: #77796e; font-size: .75rem; line-height: 1.5; }

.services { background: var(--ink); }
.services-head { display: grid; grid-template-columns: .65fr 1.5fr .65fr; margin-bottom: 6rem; }
.services-head .body-copy { align-self: end; }
.service-list { border-top: 1px solid var(--line); }
.service-card { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 2rem; grid-template-columns: 40px 80px 1fr 50px; min-height: 155px; padding: 2.2rem 1.2rem; transition: background .45s, padding .45s var(--ease); }
.service-card:hover { background: rgba(167,173,141,.07); padding-left: 2rem; }
.service-number { color: #666b5d; font-family: var(--serif); font-size: .78rem; }
.service-icon { align-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--sage); display: flex; font-family: var(--serif); font-size: 2rem; height: 62px; justify-content: center; width: 62px; }
.service-card > div:nth-child(3) { align-items: center; display: grid; grid-template-columns: minmax(250px, .8fr) 1.2fr; }
.service-card h3 { font-family: var(--serif); font-size: clamp(1.7rem, 2.7vw, 3rem); font-weight: 300; }
.service-card p { color: var(--muted); line-height: 1.65; max-width: 520px; }
.service-card > a { align-items: center; border: 1px solid var(--line); border-radius: 50%; display: flex; height: 46px; justify-content: center; transition: background .3s, color .3s; width: 46px; }
.service-card > a:hover { background: var(--paper); color: var(--ink); }

.about { background: var(--sand); color: var(--ink); overflow: hidden; }
.about-grid { align-items: center; display: grid; gap: 9vw; grid-template-columns: .9fr 1.1fr; }
.about-copy .display-heading { margin: 2rem 0 2.5rem; }
.about-copy .display-heading em { color: #666c56; }
.about-copy .lead { max-width: 540px; }
.about-copy .body-copy { color: #67695f; margin: 1.5rem 0 2.2rem; }
.about-values { border-top: 1px solid var(--line-dark); display: grid; grid-template-columns: 1fr 1fr; margin-bottom: 2.5rem; }
.about-values span { border-bottom: 1px solid var(--line-dark); font-size: .74rem; padding: 1rem .2rem; }
.about-values span:nth-child(odd) { margin-right: 1.5rem; }
.about-visual { min-height: 720px; position: relative; }
.about-visual::before { border: 1px solid rgba(10,12,9,.35); content: ""; inset: 2.5rem -2.5rem -2.5rem 2.5rem; position: absolute; }
.about-visual img { height: 720px; object-fit: cover; position: relative; width: 100%; }
.about-badge { align-items: center; background: var(--ink); border-radius: 50%; bottom: -50px; color: var(--paper); display: flex; flex-direction: column; height: 170px; justify-content: center; left: -70px; position: absolute; text-align: center; width: 170px; }
.about-badge strong { font-family: var(--serif); font-size: 2.4rem; font-weight: 300; }
.about-badge span { color: var(--muted); font-size: .55rem; letter-spacing: .1em; text-transform: uppercase; }

.portfolio { background: linear-gradient(150deg, #0a0c09, #10140e 70%); }
.portfolio-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 5rem; }
.portfolio-heading .section-kicker { margin-bottom: 2rem; }
.portfolio-heading .arrow-link { margin-left: 0; }
.portfolio-grid { display: grid; gap: 1.25rem; grid-template-columns: 1.3fr .7fr; }
.project { height: 430px; overflow: hidden; position: relative; }
.project-large { height: 720px; }
.project-tall { grid-row: span 2; height: 100%; }
.project img { height: 100%; object-fit: cover; transition: transform 1s var(--ease); width: 100%; }
.project::after { background: linear-gradient(0deg, rgba(0,0,0,.78), transparent 50%); content: ""; inset: 0; position: absolute; }
.project:hover img { transform: scale(1.04); }
.project figcaption { bottom: 0; left: 0; padding: 2rem; position: absolute; right: 0; z-index: 2; }
.project figcaption span { color: var(--sand); display: block; font-size: .59rem; letter-spacing: .13em; text-transform: uppercase; }
.project figcaption strong { display: block; font-family: var(--serif); font-size: 1.65rem; font-weight: 300; margin-top: .35rem; }
.portfolio-note { color: #6d7166; font-size: .63rem; letter-spacing: .05em; margin-top: 1.2rem; }

.process { background: var(--paper); color: var(--ink); }
.process-intro { display: grid; grid-template-columns: .6fr 1.3fr .7fr; margin-bottom: 6rem; }
.process-intro .display-heading em { color: var(--olive); }
.process-intro .body-copy { align-self: end; color: #6e7167; }
.process-steps { border-top: 1px solid var(--line-dark); list-style: none; }
.process-steps li { border-bottom: 1px solid var(--line-dark); display: grid; gap: 3rem; grid-template-columns: 100px 1fr; padding: 2rem 0; }
.process-steps li > span { color: var(--olive); font-family: var(--serif); font-size: .8rem; }
.process-steps li > div { display: grid; grid-template-columns: 1fr 1fr; }
.process-steps strong { font-family: var(--serif); font-size: clamp(1.8rem, 3vw, 3.3rem); font-weight: 300; }
.process-steps p { color: #6e7167; line-height: 1.7; max-width: 520px; }

.quote-section { align-items: center; display: flex; min-height: 780px; overflow: hidden; padding: 8vw; position: relative; }
.quote-section > img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.quote-overlay { background: linear-gradient(90deg, rgba(4,6,4,.86), rgba(4,6,4,.3)), linear-gradient(0deg, rgba(4,6,4,.55), transparent); inset: 0; position: absolute; }
.quote-content { max-width: 930px; position: relative; }
.quote-mark { color: var(--sage); display: block; font-family: var(--serif); font-size: 6rem; height: 4rem; line-height: 1; }
.quote-content blockquote { font-family: var(--serif); font-size: clamp(2.3rem, 4.7vw, 5.7rem); font-weight: 300; letter-spacing: -.03em; line-height: 1.03; }
.quote-content p { color: var(--sand); font-size: .63rem; letter-spacing: .14em; margin-top: 2.5rem; text-transform: uppercase; }

.testimonials { background: var(--ink); }
.testimonial-layout { display: grid; gap: 8vw; grid-template-columns: .8fr 1.2fr; }
.testimonial-layout .display-heading { margin-top: 2rem; }
.rating { margin-top: 2rem; }
.rating span { color: var(--sage); display: block; letter-spacing: .25em; }
.rating small { color: var(--muted); display: block; font-size: .65rem; margin-top: .6rem; }
.testimonial-slider { border-top: 1px solid var(--line); min-height: 460px; padding-top: 3rem; position: relative; }
.testimonial { display: none; }
.testimonial.active { animation: testimonialIn .5s var(--ease); display: block; }
@keyframes testimonialIn { from { opacity: 0; transform: translateY(15px); } }
.testimonial > p { font-family: var(--serif); font-size: clamp(1.7rem, 2.8vw, 3.1rem); line-height: 1.35; }
.testimonial footer { border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin-top: 3rem; padding-top: 1.3rem; }
.testimonial footer strong { font-size: .72rem; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.testimonial footer span { color: var(--muted); font-size: .7rem; }
.slider-controls { align-items: center; bottom: 0; display: flex; gap: 1.5rem; justify-content: flex-end; position: absolute; right: 0; }
.slider-controls button { background: transparent; border: 1px solid var(--line); border-radius: 50%; cursor: pointer; height: 45px; transition: background .3s, color .3s; width: 45px; }
.slider-controls button:hover { background: var(--paper); color: var(--ink); }
.slider-controls span { color: var(--muted); font-family: var(--serif); font-size: .75rem; }
.slider-controls strong { color: var(--paper); font-weight: 300; }

.areas { background: #11140f; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); }
.areas-grid { display: grid; gap: 10vw; grid-template-columns: 1fr 1fr; }
.areas .display-heading { margin: 2rem 0; }
.areas .body-copy { margin-bottom: 2rem; }
.areas .arrow-link { margin-left: 0; }
.area-list { display: grid; grid-template-columns: 1fr 1fr; }
.area-list span { align-items: center; border-bottom: 1px solid var(--line); display: flex; font-family: var(--serif); font-size: clamp(1.4rem, 2vw, 2.2rem); min-height: 100px; }
.area-list span:nth-child(odd) { margin-right: 2rem; }

.faq { background: var(--paper); color: var(--ink); }
.faq-grid { display: grid; gap: 10vw; grid-template-columns: .8fr 1.2fr; }
.faq .display-heading { margin-top: 2rem; }
.faq .display-heading em { color: var(--olive); }
.accordion { border-top: 1px solid var(--line-dark); }
.accordion details { border-bottom: 1px solid var(--line-dark); }
.accordion summary { cursor: pointer; display: flex; font-family: var(--serif); font-size: clamp(1.25rem, 2vw, 1.8rem); justify-content: space-between; list-style: none; padding: 1.7rem 0; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary span { font-family: var(--sans); font-size: 1.2rem; font-weight: 300; transition: transform .3s; }
.accordion details[open] summary span { transform: rotate(45deg); }
.accordion details p { color: #6e7167; line-height: 1.7; max-width: 650px; padding: 0 3rem 1.8rem 0; }

.contact { background: #080a07; overflow: hidden; padding: 11rem 0; position: relative; }
.contact-glow { background: radial-gradient(circle, rgba(114,120,94,.18), transparent 65%); height: 900px; left: -450px; position: absolute; top: -300px; width: 900px; }
.contact-grid { display: grid; gap: 10vw; grid-template-columns: .9fr 1.1fr; position: relative; }
.contact-copy .display-heading { margin-bottom: 2rem; }
.contact-copy .lead { color: var(--muted); max-width: 530px; }
.contact-direct { border-top: 1px solid var(--line); display: flex; flex-direction: column; margin-top: 4rem; }
.contact-direct a { border-bottom: 1px solid var(--line); display: flex; flex-direction: column; padding: 1.1rem 0; }
.contact-direct small { color: var(--muted); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-direct strong { font-family: var(--serif); font-size: clamp(1.1rem, 1.8vw, 1.8rem); font-weight: 300; margin-top: .25rem; }
.contact-form { background: #11140f; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 1.7rem; padding: clamp(1.5rem, 4vw, 4rem); }
.field-row { display: grid; gap: 1.5rem; grid-template-columns: 1fr 1fr; }
.contact-form label { display: flex; flex-direction: column; gap: .6rem; }
.contact-form label span { color: var(--sand); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-form input, .contact-form textarea, .contact-form select { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--paper); outline: none; padding: .3rem 0 .9rem; transition: border-color .3s; width: 100%; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color: var(--sage); }
.contact-form select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--sage) 50%), linear-gradient(135deg, var(--sage) 50%, transparent 50%); background-position: calc(100% - 8px) calc(50% - 2px), calc(100% - 3px) calc(50% - 2px); background-repeat: no-repeat; background-size: 5px 5px; }
.contact-form select option { background: var(--ink); }
.contact-form textarea { resize: vertical; }
.contact-form ::placeholder { color: #63675c; }
.contact-form .button { align-self: flex-start; border: 0; cursor: pointer; margin-top: .5rem; }
.form-note { color: #666b60; font-size: .62rem; line-height: 1.5; }

.site-footer { background: #050604; padding: 5rem 0 2rem; }
.footer-top { align-items: center; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr 1fr 1fr; padding-bottom: 2.3rem; }
.footer-top > p { color: var(--muted); font-family: var(--serif); font-size: 1.1rem; text-align: center; }
.back-top { font-size: .62rem; justify-self: end; letter-spacing: .1em; text-transform: uppercase; }
.footer-main { display: grid; gap: 3rem; grid-template-columns: .75fr 1.25fr 1fr 1fr; padding: 4rem 0; }
.footer-main > div { align-items: flex-start; display: flex; flex-direction: column; gap: .7rem; }
.footer-main span { color: #63675c; font-size: .58rem; letter-spacing: .14em; margin-bottom: .4rem; text-transform: uppercase; }
.footer-main a, .footer-main p { color: var(--muted); font-size: .76rem; line-height: 1.7; }
.footer-main a:hover { color: var(--paper); }
.footer-cta a { border-bottom: 1px solid var(--line); color: var(--paper); display: flex; font-family: var(--serif); font-size: 1.3rem; justify-content: space-between; padding-bottom: .6rem; width: 100%; }
.footer-cta b { font-weight: 300; }
.footer-bottom { border-top: 1px solid var(--line); color: #55594f; display: flex; font-size: .59rem; justify-content: space-between; letter-spacing: .06em; padding-top: 1.6rem; text-transform: uppercase; }
.floating-call { align-items: center; background: var(--sage); bottom: 1.2rem; color: var(--ink); display: none; font-size: .65rem; font-weight: 600; justify-content: space-between; left: 1rem; letter-spacing: .08em; padding: 1rem 1.2rem; position: fixed; right: 1rem; text-transform: uppercase; z-index: 800; }

@media (max-width: 1100px) {
  :root { --shell: min(1380px, calc(100vw - 8vw)); }
  .desktop-nav { display: none; }
  .menu-toggle { display: flex; }
  .featured-copy { padding: 5vw; }
  .services-head, .process-intro { gap: 2rem; grid-template-columns: .45fr 1.3fr .7fr; }
  .service-card > div:nth-child(3) { gap: 1rem; }
  .about-grid { gap: 6vw; }
}

@media (max-width: 820px) {
  .section { padding: 6rem 0; }
  .section-pad { padding: 7rem 0; }
  .site-header { height: 82px; padding-inline: 4vw; }
  .header-phone { display: none; }
  .brand-copy { font-size: .58rem; }
  .brand-copy strong { font-size: 1rem; }
  .hero { min-height: 900px; padding-inline: 4vw; }
  .hero-content { padding-bottom: 12rem; }
  .hero-side-note { display: none; }
  .hero-bottom { bottom: 2rem; grid-template-columns: repeat(3, 1fr); left: 4vw; right: 4vw; }
  .scroll-cue { display: none; }
  .intro-grid, .featured-grid, .about-grid, .testimonial-layout, .areas-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; }
  .intro-grid { gap: 3rem; }
  .intro-copy .body-copy, .intro-copy .arrow-link { margin-left: 0; }
  .featured-grid { min-height: 0; }
  .featured-visual { min-height: 580px; }
  .featured-copy { padding: 5rem 0 0; }
  .services-head, .process-intro { grid-template-columns: 1fr; }
  .services-head { margin-bottom: 3rem; }
  .services-head .body-copy, .process-intro .body-copy { margin-top: 1rem; }
  .service-card { grid-template-columns: 30px 55px 1fr 40px; padding-inline: 0; }
  .service-icon { height: 48px; width: 48px; }
  .service-card > div:nth-child(3) { display: block; }
  .service-card p { font-size: .78rem; margin-top: .5rem; }
  .about-grid { gap: 5rem; }
  .about-visual { min-height: 620px; }
  .about-visual img { height: 620px; }
  .about-badge { bottom: -35px; left: 30px; }
  .portfolio-heading { align-items: flex-start; flex-direction: column; gap: 2rem; }
  .portfolio-grid { grid-template-columns: 1fr 1fr; }
  .project-large { grid-column: span 2; height: 580px; }
  .project-tall { grid-row: auto; height: 430px; }
  .process-intro { margin-bottom: 3rem; }
  .process-steps li > div { gap: 2rem; }
  .quote-section { min-height: 650px; padding: 6vw; }
  .testimonial-layout { gap: 4rem; }
  .area-list { margin-top: 2rem; }
  .faq-grid { gap: 4rem; }
  .contact-grid { gap: 5rem; }
  .footer-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 560px) {
  :root { --shell: calc(100vw - 2rem); }
  html { scroll-padding-top: 75px; }
  body { padding-bottom: 72px; }
  .section { padding: 5.5rem 0; }
  .section-pad { padding: 6rem 0; }
  .site-header { padding-inline: 1rem; }
  .brand-mark { height: 40px; width: 40px; }
  .mobile-menu { align-items: flex-start; padding: 115px 1rem 7rem; }
  .mobile-menu nav a { font-size: 2.7rem; padding: .65rem 0; }
  .mobile-menu-footer { bottom: 2rem; left: 1rem; right: auto; text-align: left; }
  .hero { min-height: 800px; padding: 8rem 1rem 1.5rem; }
  .hero-image { object-position: 62% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(4,6,4,.78), rgba(5,7,4,.25)), linear-gradient(0deg, rgba(4,6,4,.94), transparent 60%), linear-gradient(180deg, rgba(4,6,4,.65), transparent 30%); }
  .hero-content { padding-bottom: 11rem; }
  .eyebrow { margin-bottom: 1.5rem; }
  .hero h1 { font-size: clamp(3.3rem, 16vw, 5.2rem); }
  .hero-lede { font-size: .88rem; line-height: 1.6; margin: 1.5rem 0 2rem; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 1.4rem; }
  .hero-bottom { bottom: 9rem; gap: .6rem; left: 1rem; padding-top: .9rem; right: 1rem; }
  .hero-stat strong { font-size: .84rem; }
  .hero-stat span { font-size: .5rem; line-height: 1.3; }
  .display-heading { font-size: clamp(2.65rem, 13vw, 4rem); }
  .intro-copy .display-heading { margin-bottom: 2rem; }
  .intro-copy .body-copy { margin-top: 1.5rem; }
  .featured-visual { min-height: 460px; }
  .featured-copy { padding-top: 4rem; }
  .featured-copy h2 { font-size: 3.3rem; }
  .service-card { align-items: start; gap: .8rem; grid-template-columns: 24px 42px 1fr; padding: 1.7rem 0; }
  .service-card > a { display: none; }
  .service-icon { font-size: 1.5rem; height: 38px; width: 38px; }
  .service-card h3 { font-size: 1.75rem; }
  .about-values { grid-template-columns: 1fr; }
  .about-values span:nth-child(odd) { margin-right: 0; }
  .about-visual, .about-visual img { height: 510px; min-height: 510px; }
  .about-visual::before { inset: 1rem -1rem -1rem 1rem; }
  .about-badge { bottom: -35px; height: 135px; left: 20px; width: 135px; }
  .portfolio-grid { display: block; }
  .project, .project-large, .project-tall { height: 470px; margin-bottom: 1rem; }
  .project figcaption { padding: 1.3rem; }
  .process-steps li { gap: 1rem; grid-template-columns: 45px 1fr; padding: 1.5rem 0; }
  .process-steps li > div { display: block; }
  .process-steps p { font-size: .78rem; margin-top: .5rem; }
  .quote-section { min-height: 580px; padding: 1rem; }
  .quote-content blockquote { font-size: 2.45rem; }
  .testimonial-slider { min-height: 500px; }
  .testimonial footer { align-items: flex-start; flex-direction: column; gap: .4rem; }
  .area-list { grid-template-columns: 1fr; }
  .area-list span { min-height: 72px; }
  .area-list span:nth-child(odd) { margin-right: 0; }
  .accordion summary { gap: 1rem; }
  .contact { padding: 7rem 0; }
  .field-row { grid-template-columns: 1fr; }
  .contact-form { gap: 1.4rem; padding: 1.3rem; }
  .contact-form .button { width: 100%; }
  .footer-top { gap: 1.5rem; grid-template-columns: 1fr auto; }
  .footer-top > p { grid-column: span 2; grid-row: 2; text-align: left; }
  .footer-main { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: .6rem; }
  .floating-call { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
