:root {
    --paper: #f3f0e8;
    --paper-light: #fbfaf6;
    --ink: #171815;
    --muted: #5e625b;
    --line: #d7d1c5;
    --brass: #b88247;
    --brass-light: #d7ae78;
    --white: #fff;
    --shadow: 0 18px 50px rgba(23, 24, 21, 0.12);
    --radius: 4px;
    --container: 1240px;
    --font-heading: "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
    --font-body: Inter, "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font-family: var(--font-body);
    font-size: 1rem;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
    font-family: var(--font-heading);
    line-height: 1.03;
    letter-spacing: -0.035em;
}
h1 { font-size: clamp(3.4rem, 7vw, 7.4rem); }
h2 { font-size: clamp(2.35rem, 4.5vw, 4.8rem); }
h3 { font-size: 1.45rem; }

.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.section { padding-block: clamp(5rem, 9vw, 9rem); }
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.skip-link {
    position: fixed;
    z-index: 2000;
    top: 12px;
    left: 12px;
    padding: .7rem 1rem;
    color: var(--white);
    background: var(--ink);
    transform: translateY(-150%);
}
.skip-link:focus { transform: none; }
:focus-visible { outline: 3px solid var(--brass); outline-offset: 4px; }

.eyebrow {
    margin-bottom: 1.2rem;
    color: var(--brass);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1.2;
    text-transform: uppercase;
}
.button-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: .85rem 1.25rem;
    border: 1px solid transparent;
    border-radius: var(--radius);
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .035em;
    line-height: 1.2;
    text-decoration: none;
    text-transform: uppercase;
    transition: transform .2s ease, background-color .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button--primary { color: var(--ink); background: var(--brass-light); }
.button--primary:hover { background: #e2bd8d; }
.button--ghost { border-color: var(--ink); background: transparent; }
.button--ghost:hover { color: var(--paper); background: var(--ink); }
.button--light { color: var(--ink); background: var(--paper-light); }
.button--light:hover { background: var(--brass-light); }
.text-link {
    display: inline-block;
    color: var(--ink);
    font-weight: 800;
    text-underline-offset: .3em;
}
.text-link:hover { color: var(--brass); }

/* Header */
.site-header {
    position: sticky;
    z-index: 1000;
    top: 0;
    border-bottom: 1px solid rgba(23, 24, 21, .12);
    background: rgba(243, 240, 232, .96);
    backdrop-filter: blur(14px);
}
.nav-shell { display: flex; min-height: 84px; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .75rem; color: var(--ink); text-decoration: none; }
.brand img { width: 50px; height: 50px; }
.brand-copy { display: grid; line-height: 1; text-transform: uppercase; }
.brand-copy strong { font-family: var(--font-heading); font-size: 1.52rem; letter-spacing: .04em; }
.brand-copy small { margin-top: .3rem; color: var(--muted); font-size: .64rem; font-weight: 800; letter-spacing: .13em; }
.main-nav { display: flex; align-items: center; gap: clamp(.65rem, 1.6vw, 1.5rem); }
.main-nav > a {
    padding-block: .4rem;
    color: #30332e;
    font-size: .79rem;
    font-weight: 750;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}
.main-nav > a:hover, .main-nav > a[aria-current="page"] { color: var(--brass); }
.main-nav .nav-cta { padding: .72rem .9rem; color: var(--paper-light); background: var(--ink); }
.main-nav .nav-cta:hover, .main-nav .nav-cta[aria-current="page"] { color: var(--ink); background: var(--brass-light); }
.menu-toggle { display: none; width: 46px; height: 42px; padding: 9px; border: 0; background: transparent; }
.menu-toggle > span:not(.sr-only) { display: block; height: 2px; margin: 5px 0; background: currentColor; }

/* Homepage */
.home-hero { display: grid; min-height: calc(100vh - 84px); grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr); background: var(--paper-light); }
.home-hero__image {
    min-height: 680px;
    background: linear-gradient(90deg, transparent 70%, rgba(251, 250, 246, .2)), url("../images/home-exterior-1600.webp") center / cover no-repeat;
}
.home-hero__panel {
    position: relative;
    display: flex;
    overflow: hidden;
    padding: clamp(3rem, 6vw, 7rem);
    flex-direction: column;
    justify-content: center;
    background-color: var(--paper-light);
    background-image: url("../images/paper_texture.svg");
}
.home-hero__panel::after {
    position: absolute;
    right: -10%;
    bottom: -17%;
    width: 80%;
    height: 55%;
    background: url("../images/blueprint_sketch.svg") center / contain no-repeat;
    content: "";
    opacity: .13;
    pointer-events: none;
}
.home-hero__panel > * { position: relative; z-index: 1; }
.home-hero h1 { max-width: 680px; margin-bottom: 1.75rem; text-transform: uppercase; }
.home-hero__panel > p:not(.eyebrow) { max-width: 570px; margin-bottom: 2rem; color: var(--muted); font-size: 1.08rem; }
.proof-strip { color: var(--paper-light); background: var(--ink); }
.proof-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.proof-grid > div { display: flex; min-height: 150px; padding: 2rem; align-items: center; gap: 1.1rem; border-right: 1px solid #3c3e38; }
.proof-grid > div:last-child { border-right: 0; }
.proof-grid strong { color: var(--brass-light); font-family: var(--font-heading); font-size: 3rem; line-height: 1; }
.proof-grid span { max-width: 145px; color: #d9d8d2; font-size: .78rem; font-weight: 700; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; }
.section-heading { display: grid; margin-bottom: clamp(2.5rem, 5vw, 5rem); align-items: end; gap: 3rem; grid-template-columns: 1.3fr .7fr; }
.section-heading h2 { max-width: 780px; margin-bottom: 0; }
.section-heading > p { max-width: 520px; margin-bottom: .35rem; color: var(--muted); font-size: 1.07rem; }
.sector-grid { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); }
.sector-card {
    position: relative;
    display: block;
    min-height: 490px;
    overflow: hidden;
    color: var(--white);
    background: var(--ink);
    box-shadow: var(--shadow);
    text-decoration: none;
}
.sector-card:nth-child(3) { grid-column: 1 / -1; min-height: 340px; }
.sector-card picture, .sector-card img { width: 100%; height: 100%; }
.sector-card img { object-fit: cover; transition: transform .55s ease; }
.sector-card:hover img { transform: scale(1.025); }
.sector-card::after { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, rgba(13, 14, 12, .86)); content: ""; }
.sector-card__body { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; display: grid; padding: 2rem; gap: .45rem; }
.sector-card__body small { color: var(--brass-light); font-weight: 800; letter-spacing: .15em; }
.sector-card__body strong { font-family: var(--font-heading); font-size: 2.8rem; letter-spacing: -.02em; line-height: 1; text-transform: uppercase; }
.sector-card__body > span { color: #e7e6e1; }
.sector-card--blueprint {
    background-color: #22241f;
    background-image: linear-gradient(90deg, rgba(23,24,21,.1), rgba(23,24,21,.82)), url("../images/blueprint_sketch.svg"), url("../images/paper_texture.svg");
    background-position: center, center right, center;
    background-repeat: no-repeat, no-repeat, repeat;
    background-size: cover, 75%, 400px;
}
.sector-card--blueprint::after { display: none; }
.split-feature { display: grid; grid-template-columns: 1fr 1fr; background: var(--paper-light); }
.split-feature--reverse .split-feature__image { order: 2; }
.split-feature__image picture, .split-feature__image img { width: 100%; height: 100%; }
.split-feature__image img { min-height: 650px; object-fit: cover; }
.split-feature__content { display: flex; padding: clamp(4rem, 8vw, 8rem); flex-direction: column; justify-content: center; }
.split-feature__content h2 { margin-bottom: 1.5rem; }
.split-feature__content > p:not(.eyebrow) { max-width: 620px; color: var(--muted); font-size: 1.08rem; }
.process-list { display: grid; margin: 2rem 0 2.5rem; padding: 0; gap: 0; list-style: none; }
.process-list li { display: grid; padding: 1.25rem 0; gap: 1rem; grid-template-columns: 44px 1fr; border-top: 1px solid var(--line); }
.process-list li:last-child { border-bottom: 1px solid var(--line); }
.process-list li > span { color: var(--brass); font-size: .78rem; font-weight: 800; }
.process-list strong { display: block; margin-bottom: .25rem; }
.process-list p { margin: 0; color: var(--muted); }
.about-teaser { display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: 1.2fr .8fr; }
.about-teaser h2 { margin-bottom: 0; }
.about-teaser > div:last-child { align-self: end; }
.about-teaser > div:last-child p { margin-bottom: 1.5rem; color: var(--muted); font-size: 1.12rem; }
.cta-band { padding-block: clamp(5rem, 9vw, 8rem); color: var(--paper-light); background: var(--ink); }
.cta-band .eyebrow { color: var(--brass-light); }
.cta-band h2 { margin-bottom: 2rem; color: var(--paper-light); }
.phone-link { color: var(--paper-light); font-family: var(--font-heading); font-size: 1.45rem; font-weight: 800; text-underline-offset: .3em; }

/* Interior pages */
.page-hero { position: relative; display: flex; min-height: 640px; align-items: center; overflow: hidden; }
.page-hero__content { position: relative; z-index: 2; padding-block: 6rem; }
.page-hero__content h1 { max-width: 980px; margin-bottom: 1.5rem; text-transform: uppercase; }
.page-hero__content > p:not(.eyebrow) { max-width: 650px; margin-bottom: 2rem; font-size: 1.12rem; }
.page-hero--photo { color: var(--white); background-size: cover; background-position: center; }
.page-hero--photo::after { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(16,17,15,.86), rgba(16,17,15,.25)); content: ""; }
.page-hero--photo h1 { color: var(--white); }
.page-hero--residential { background-image: url("../images/residential-kitchen-1600.webp"); }
.page-hero--showroom { background-image: url("../images/gallery-kitchen-1600.webp"); }
.page-hero--dark { color: var(--paper-light); background: var(--ink); }
.page-hero--dark::after { position: absolute; inset: 0; background: url("../images/paper_texture.svg"); content: ""; opacity: .08; }
.page-hero--dark h1 { color: var(--paper-light); }
.page-hero--gallery {
    min-height: 580px;
    background-color: var(--ink);
    background-image: linear-gradient(90deg, rgba(12,13,11,.9) 0%, rgba(12,13,11,.58) 48%, rgba(12,13,11,.18) 100%), url("../images/work-emily-kitchen-1600.webp");
    background-position: center;
    background-size: cover;
}
.page-hero--gallery::after { opacity: .11; }
.page-hero--blueprint {
    color: var(--paper-light);
    background-color: #22241f;
    background-image: linear-gradient(90deg, rgba(23,24,21,.35), rgba(23,24,21,.88)), url("../images/blueprint_sketch.svg"), url("../images/paper_texture.svg");
    background-position: center, center right, center;
    background-repeat: no-repeat, no-repeat, repeat;
    background-size: cover, min(75%, 1050px), 400px;
}
.page-hero--blueprint h1 { color: var(--paper-light); }
.page-hero--light { min-height: 580px; background-color: var(--paper-light); background-image: url("../images/paper_texture.svg"); }
.page-hero--compact { min-height: 440px; }
.intro-grid { display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: 1.1fr .9fr; }
.intro-grid h2 { margin-bottom: 0; }
.intro-grid > div:last-child { align-self: end; color: var(--muted); font-size: 1.18rem; }
.service-grid-section, .selection-band { padding-block: 1px; background: var(--paper-light); }
.service-grid, .selection-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.service-grid article, .selection-grid article { min-height: 290px; padding: clamp(2rem, 4vw, 4rem); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.service-grid article:nth-child(even), .selection-grid article:nth-child(even) { border-right: 0; }
.service-grid article > span, .selection-grid article > span, .step-grid li > span { display: block; margin-bottom: 3rem; color: var(--brass); font-size: .76rem; font-weight: 800; letter-spacing: .14em; }
.service-grid article h2, .selection-grid article h2 { font-size: 2.1rem; text-transform: uppercase; }
.service-grid article p, .selection-grid article p { max-width: 490px; margin: 0; color: var(--muted); }
.service-grid-section--dark { color: var(--paper-light); background: var(--ink); }
.service-grid-section--dark article { border-color: #393b35; }
.service-grid-section--dark article h2 { color: var(--paper-light); }
.service-grid-section--dark article p { color: #c9c8c2; }
.gallery-grid { display: grid; gap: 1rem; grid-template-columns: 1.35fr .65fr; }
.gallery-grid figure { position: relative; min-height: 360px; margin: 0; overflow: hidden; background: #ddd; }
.gallery-grid__wide { grid-row: span 2; }
.gallery-grid picture, .gallery-grid img { width: 100%; height: 100%; }
.gallery-grid img { min-height: 360px; object-fit: cover; }
.gallery-grid figcaption { position: absolute; right: 1rem; bottom: 1rem; padding: .5rem .7rem; color: var(--paper-light); background: rgba(23,24,21,.84); font-size: .74rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.work-preview__grid {
    display: grid;
    grid-auto-rows: 245px;
    gap: .75rem;
    grid-template-columns: repeat(3, 1fr);
}
.work-preview__grid a { display: block; overflow: hidden; background: #d8d4cb; }
.work-preview__grid a:first-child { grid-row: span 2; }
.work-preview__grid a:nth-child(5) { grid-column: span 2; }
.work-preview__grid picture, .work-preview__grid img { width: 100%; height: 100%; }
.work-preview__grid img { object-fit: cover; transition: transform .45s ease, filter .45s ease; }
.work-preview__grid a:hover img { filter: saturate(1.04); transform: scale(1.025); }
.work-preview__action { display: flex; margin-top: 2rem; justify-content: center; }
.section-heading--gallery { margin-bottom: 3rem; }
.work-gallery {
    display: grid;
    grid-auto-flow: dense;
    grid-auto-rows: 210px;
    gap: .8rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.work-gallery__item {
    position: relative;
    display: block;
    min-width: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #d8d4cb;
    cursor: zoom-in;
}
.work-gallery__item:nth-child(12n + 1),
.work-gallery__item:nth-child(12n + 8) { grid-column: span 2; grid-row: span 2; }
.work-gallery__item:nth-child(12n + 5),
.work-gallery__item:nth-child(12n + 11) { grid-column: span 2; }
.work-gallery__item picture, .work-gallery__item img { width: 100%; height: 100%; }
.work-gallery__item img { object-fit: cover; transition: filter .35s ease, transform .5s ease; }
.work-gallery__item::after {
    position: absolute;
    inset: 0;
    border: 0 solid rgba(215,174,120,.8);
    background: linear-gradient(180deg, transparent 68%, rgba(10,11,9,.16));
    content: "";
    transition: border-width .2s ease, background-color .2s ease;
    pointer-events: none;
}
.work-gallery__item:hover img { filter: saturate(1.04) contrast(1.02); transform: scale(1.025); }
.work-gallery__item:hover::after, .work-gallery__item:focus-visible::after { border-width: 5px; }
.gallery-lightbox {
    width: 100vw;
    max-width: none;
    height: 100vh;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--paper-light);
    background: rgba(12, 13, 11, .97);
}
.gallery-lightbox::backdrop { background: rgba(12, 13, 11, .92); }
.gallery-lightbox__frame { position: relative; display: grid; width: 100%; height: 100%; place-items: center; }
.gallery-lightbox__frame > img { width: auto; max-width: calc(100vw - 180px); height: auto; max-height: calc(100vh - 80px); object-fit: contain; }
.gallery-lightbox__close,
.gallery-lightbox__nav {
    position: absolute;
    z-index: 2;
    display: grid;
    width: 52px;
    height: 52px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 50%;
    color: var(--paper-light);
    background: rgba(12,13,11,.62);
    cursor: pointer;
    line-height: 1;
    transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}
.gallery-lightbox__close:hover,
.gallery-lightbox__nav:hover { border-color: var(--brass-light); color: var(--ink); background: var(--brass-light); }
.gallery-lightbox__close { top: 24px; right: 24px; font-size: 2rem; }
.gallery-lightbox__nav { top: 50%; font-size: 1.65rem; transform: translateY(-50%); }
.gallery-lightbox__nav--previous { left: 24px; }
.gallery-lightbox__nav--next { right: 24px; }
.project-feature, .story-feature { display: grid; grid-template-columns: 1.08fr .92fr; background: var(--paper-light); }
.project-feature__image picture, .project-feature__image img, .story-feature__image picture, .story-feature__image img { width: 100%; height: 100%; }
.project-feature__image img, .story-feature__image img { min-height: 650px; object-fit: cover; }
.project-feature__content, .story-feature__content { display: flex; padding: clamp(4rem, 8vw, 8rem); flex-direction: column; justify-content: center; }
.project-feature__content h2, .story-feature__content h2 { margin-bottom: 1.5rem; }
.project-feature__content > p:not(.eyebrow), .story-feature__content > p:not(.eyebrow) { color: var(--muted); }
.check-list { display: grid; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.check-list li { padding: .9rem 0 .9rem 1.8rem; border-top: 1px solid var(--line); background: linear-gradient(var(--brass), var(--brass)) left center / 10px 2px no-repeat; font-weight: 700; }
.check-list li:last-child { border-bottom: 1px solid var(--line); }
.step-grid { display: grid; margin: 0; padding: 0; gap: 1rem; grid-template-columns: repeat(3, 1fr); list-style: none; }
.step-grid li, .callout-grid article { padding: clamp(2rem, 4vw, 3.5rem); border: 1px solid var(--line); background: rgba(255,255,255,.24); }
.step-grid li > span { margin-bottom: 4rem; }
.step-grid h3, .callout-grid h3 { text-transform: uppercase; }
.step-grid p, .callout-grid p { margin-bottom: 0; color: var(--muted); }
.callout-grid { display: grid; gap: 1rem; grid-template-columns: repeat(3, 1fr); }
.hours-list { margin: 2rem 0; }
.hours-list > div { display: flex; max-width: 560px; padding: .7rem 0; justify-content: space-between; gap: 2rem; border-top: 1px solid var(--line); }
.hours-list > div:last-child { border-bottom: 1px solid var(--line); }
.hours-list dt { font-weight: 800; }
.hours-list dd { margin: 0; color: var(--muted); text-align: right; }

/* Contact */
.contact-layout { display: grid; gap: clamp(3rem, 8vw, 8rem); grid-template-columns: .8fr 1.2fr; }
.contact-details h2 { margin-bottom: 2.5rem; }
.contact-method { padding: 1.2rem 0; border-top: 1px solid var(--line); }
.contact-method > span { display: block; margin-bottom: .3rem; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.contact-method > a, .contact-method address { color: var(--ink); font-size: 1.08rem; font-style: normal; font-weight: 700; text-decoration-thickness: 1px; text-underline-offset: .25em; }
.form-panel { padding: clamp(2rem, 5vw, 4rem); background: var(--paper-light); box-shadow: var(--shadow); }
.form-panel h2 { margin-bottom: .5rem; font-size: clamp(2.2rem, 4vw, 3.8rem); }
.form-panel > p { margin-bottom: 2rem; color: var(--muted); }
.field-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.form-group { margin-bottom: 1.25rem; }
.form-group label { display: block; margin-bottom: .4rem; font-size: .82rem; font-weight: 800; }
.form-group input, .form-group select, .form-group textarea {
    width: 100%;
    padding: .85rem 1rem;
    border: 1px solid #aaa79f;
    border-radius: 0;
    color: var(--ink);
    background: var(--white);
}
.form-group textarea { resize: vertical; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--brass); outline: 3px solid rgba(184, 130, 71, .25); outline-offset: 0; }
.form-group small { display: block; margin-top: .35rem; color: var(--muted); }
.contact-form .button { width: 100%; border: 0; cursor: pointer; }
.form-note { margin: 1rem 0 0; color: var(--muted); font-size: .78rem; }
.honeypot { position: absolute; left: -10000px; }
.form-status { margin-bottom: 1.5rem; padding: 1rem; border-left: 4px solid var(--brass); background: #f0eadf; }
.form-status[data-state="success"] { border-color: #39714a; background: #e8f2ea; }
.form-status[data-state="error"], .form-status[data-state="invalid"] { border-color: #a64432; background: #f6e8e4; }
.prose { max-width: 820px; }
.prose h2 { margin-top: 3rem; font-size: 2rem; }
.prose p { color: var(--muted); }

/* Footer */
.site-footer { padding-top: 5rem; color: #d0cfc8; background: #11120f; }
.footer-grid { display: grid; padding-bottom: 4rem; gap: 3rem; grid-template-columns: 1.5fr repeat(3, 1fr); }
.footer-brand { display: flex; gap: 1rem; }
.footer-brand img { width: 58px; height: 58px; flex: 0 0 auto; }
.footer-brand strong { color: var(--white); }
.footer-brand p { margin: .5rem 0 0; color: #9f9f98; }
.site-footer h2 { margin-bottom: 1.25rem; color: var(--brass-light); font-family: var(--font-body); font-size: .75rem; letter-spacing: .13em; text-transform: uppercase; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin-bottom: .45rem; }
.site-footer a { color: #e5e4df; text-underline-offset: .25em; }
.site-footer address { margin-bottom: 1rem; font-style: normal; }
.site-footer p { font-size: .9rem; }
.site-footer .text-link { color: var(--brass-light); }
.footer-bottom { display: flex; padding-block: 1.4rem; justify-content: space-between; gap: 1rem; border-top: 1px solid #34362f; }
.footer-bottom p { margin: 0; }
.footer-bottom a { font-size: .85rem; }

/* Fall direct-mail campaign */
.fall-campaign { background: #f1ede4; }
.campaign-header {
    position: relative;
    z-index: 5;
    color: var(--paper-light);
    background: #151815;
    border-bottom: 1px solid rgba(215, 174, 120, .35);
}
.campaign-header__inner { display: flex; min-height: 96px; align-items: center; justify-content: space-between; gap: 2rem; }
.campaign-brand { display: inline-flex; align-items: center; gap: .9rem; color: var(--paper-light); text-decoration: none; text-transform: uppercase; }
.campaign-brand img { width: 58px; height: 58px; }
.campaign-brand span { display: grid; line-height: 1; }
.campaign-brand strong { font-family: var(--font-heading); font-size: 1.45rem; letter-spacing: .025em; }
.campaign-brand small { margin-top: .32rem; color: #d6d3ca; font-size: .68rem; font-weight: 800; letter-spacing: .16em; }
.campaign-call { display: grid; color: var(--paper-light); font-family: var(--font-heading); font-size: 1.15rem; font-weight: 800; line-height: 1.2; text-align: right; text-decoration-color: var(--brass-light); text-underline-offset: .24em; }
.campaign-call span { margin-bottom: .22rem; color: var(--brass-light); font-family: var(--font-body); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; }
.fall-hero { display: grid; min-height: min(790px, calc(100vh - 96px)); grid-template-columns: minmax(420px, .78fr) minmax(0, 1.22fr); background: #151815; }
.fall-hero__copy { display: flex; padding: clamp(3.5rem, 5.5vw, 6.8rem) clamp(2rem, 5vw, 6.4rem); flex-direction: column; justify-content: center; color: var(--paper-light); }
.fall-hero__copy .eyebrow { color: var(--brass-light); }
.fall-hero h1 { max-width: 700px; margin-bottom: 2rem; color: var(--paper-light); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.8rem, 6.2vw, 7.1rem); font-weight: 700; letter-spacing: -.045em; line-height: .88; text-transform: uppercase; }
.fall-hero__lead { max-width: 560px; margin-bottom: 2rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(1.45rem, 2.2vw, 2.1rem); font-style: italic; line-height: 1.25; }
.fall-service-line { margin-bottom: 2.1rem; color: #d2d0c8; font-size: .9rem; font-weight: 650; letter-spacing: .035em; line-height: 1.75; }
.fall-service-line span { margin-inline: .42rem; color: var(--brass-light); }
.fall-hero__copy .button-row { gap: 1.25rem 1.5rem; }
.fall-text-link { color: var(--paper-light); font-size: .82rem; font-weight: 800; letter-spacing: .05em; text-decoration-color: var(--brass-light); text-transform: uppercase; text-underline-offset: .28em; }
.fall-hero__image, .fall-hero__image img { width: 100%; height: 100%; }
.fall-hero__image { position: relative; overflow: hidden; border-left: 1px solid var(--brass); }
.fall-hero__image img { min-height: 680px; object-fit: cover; object-position: center; }
.fall-intro { padding-block: clamp(4rem, 7vw, 7rem); color: var(--paper-light); background: #1f231f; text-align: center; }
.fall-intro .container { max-width: 1050px; }
.fall-intro .eyebrow { color: var(--brass-light); }
.fall-intro h2 { margin-bottom: 1rem; color: var(--paper-light); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 6vw, 6rem); text-transform: uppercase; }
.fall-intro p:last-child { max-width: 850px; margin: 0 auto; color: #d1d2cc; font-size: 1.12rem; }
.fall-video-section { padding-block: clamp(5rem, 9vw, 9rem); background: #e8e2d7; }
.fall-video-layout { display: grid; align-items: center; gap: clamp(3rem, 5vw, 5rem); grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.fall-video-copy { min-width: 0; }
.fall-video-copy h2 { margin-bottom: 1.5rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2rem, 3.2vw, 3.6rem); letter-spacing: -.025em; line-height: .98; text-transform: uppercase; }
.fall-video-copy > p:not(.eyebrow) { max-width: 570px; color: var(--muted); font-size: 1.08rem; }
.fall-video-details { display: grid; margin: 2rem 0 2.5rem; padding: 0; list-style: none; }
.fall-video-details li { padding: .72rem 0 .72rem 1.7rem; border-top: 1px solid #c8c0b3; background: linear-gradient(var(--brass), var(--brass)) left center / 10px 2px no-repeat; font-weight: 750; }
.fall-video-details li:last-child { border-bottom: 1px solid #c8c0b3; }
.fall-video-frame { min-width: 0; width: 100%; justify-self: center; }
.fall-video-frame video { display: block; width: 100%; aspect-ratio: 16 / 9; border: 1px solid var(--brass); background: #11130f; box-shadow: 24px 28px 0 #151815; object-fit: contain; }
.fall-video-frame > p { margin: 2.3rem 0 0; color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.fall-section-heading { display: grid; margin-bottom: clamp(2.5rem, 5vw, 5rem); align-items: end; gap: 3rem; grid-template-columns: 1.2fr .8fr; }
.fall-section-heading h2, .fall-work__copy h2 { margin-bottom: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.8rem, 5vw, 5rem); text-transform: uppercase; }
.fall-section-heading > p { max-width: 490px; margin: 0 0 .4rem; color: var(--muted); font-size: 1.06rem; }
.fall-before-after { display: grid; gap: .85rem; grid-template-columns: 1fr 1fr; }
.fall-before-after figure { position: relative; min-width: 0; height: clamp(360px, 43vw, 620px); margin: 0; overflow: hidden; background: #d8d4cb; }
.fall-before-after picture, .fall-before-after img { width: 100%; height: 100%; }
.fall-before-after img { object-fit: cover; }
.fall-before-after figure:first-child img { object-position: center; }
.fall-before-after figcaption { position: absolute; top: 1.25rem; left: 1.25rem; min-width: 92px; padding: .7rem 1rem; color: var(--paper-light); background: rgba(21,24,21,.93); font-size: .76rem; font-weight: 850; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.fall-before-after figure:last-child figcaption { color: var(--ink); background: var(--brass-light); }
.fall-process { padding-block: clamp(5rem, 8vw, 8rem); color: var(--paper-light); background: #151815; }
.fall-process > .container { display: grid; gap: clamp(3rem, 7vw, 7rem); grid-template-columns: .8fr 1.2fr; }
.fall-process__heading .eyebrow { color: var(--brass-light); }
.fall-process__heading h2 { margin-bottom: 0; color: var(--paper-light); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 5vw, 5.2rem); text-transform: uppercase; }
.fall-process__steps { margin: 0; padding: 0; list-style: none; }
.fall-process__steps li { display: grid; padding: 1.55rem 0; gap: 1.2rem; grid-template-columns: 48px 1fr; border-top: 1px solid #3d413b; }
.fall-process__steps li:last-child { border-bottom: 1px solid #3d413b; }
.fall-process__steps > li > span { color: var(--brass-light); font-size: .78rem; font-weight: 850; }
.fall-process__steps h3 { margin-bottom: .35rem; color: var(--paper-light); font-size: 1.7rem; text-transform: uppercase; }
.fall-process__steps p { max-width: 580px; margin: 0; color: #c4c5bf; }
.fall-work { display: grid; gap: clamp(3rem, 7vw, 7rem); grid-template-columns: .65fr 1.35fr; }
.fall-work__copy { align-self: center; }
.fall-work__copy h2 { margin-bottom: 1.5rem; }
.fall-work__copy > p:not(.eyebrow) { color: var(--muted); }
.fall-work__grid { display: grid; min-height: 630px; gap: .8rem; grid-template-columns: 1.08fr .92fr; }
.fall-work__grid picture, .fall-work__grid img { width: 100%; height: 100%; }
.fall-work__grid img { object-fit: cover; }
.fall-work__bath { margin-top: 4rem; }
.fall-consultation { display: grid; grid-template-columns: .9fr 1.1fr; background: #1f231f; }
.fall-consultation__message { display: flex; padding: clamp(4rem, 7vw, 8rem); flex-direction: column; justify-content: center; color: var(--paper-light); }
.fall-consultation__message .eyebrow { color: var(--brass-light); }
.fall-consultation__message h2 { margin-bottom: 1.5rem; color: var(--paper-light); font-family: Georgia, "Times New Roman", serif; font-size: clamp(3rem, 5vw, 5.5rem); text-transform: uppercase; }
.fall-consultation__message > p:not(.eyebrow) { max-width: 590px; color: #d0d1ca; font-size: 1.08rem; }
.fall-contact-card { display: grid; margin-top: 2.5rem; padding-top: 1.6rem; border-top: 1px solid #4a4e47; }
.fall-contact-card span { margin-bottom: .35rem; color: var(--brass-light); font-size: .7rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.fall-contact-card a { color: var(--paper-light); font-family: var(--font-heading); font-size: 2rem; font-weight: 800; text-underline-offset: .25em; }
.fall-contact-card small { margin-top: .3rem; color: #b8bab3; }
.fall-form-panel { padding: clamp(3rem, 6vw, 7rem); background: var(--paper-light); }
.fall-form-panel > h2 { margin-bottom: .6rem; font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.5rem, 4vw, 4.4rem); text-transform: uppercase; }
.fall-form-panel > p { margin-bottom: 2rem; color: var(--muted); }
.fall-form-panel .contact-form .button { width: 100%; border: 0; cursor: pointer; }
.campaign-footer { padding-top: 3.5rem; color: #cbc9c1; background: #11130f; }
.campaign-footer__inner { display: grid; padding-bottom: 2.5rem; gap: 2rem; grid-template-columns: 1.4fr .8fr .9fr; }
.campaign-footer p { margin: 0; font-size: .86rem; }
.campaign-footer strong { color: var(--paper-light); }
.campaign-footer a { color: var(--paper-light); text-underline-offset: .25em; }
.campaign-footer__bottom { display: flex; padding-block: 1.2rem; justify-content: space-between; gap: 1rem; border-top: 1px solid #34362f; color: #999b95; font-size: .78rem; }

@media (max-width: 1050px) {
    .menu-toggle { display: block; cursor: pointer; }
    .main-nav {
        position: absolute;
        top: 100%;
        right: 0;
        left: 0;
        display: none;
        padding: 1rem 20px 1.5rem;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        border-bottom: 1px solid var(--line);
        background: var(--paper-light);
        box-shadow: 0 18px 30px rgba(23,24,21,.12);
    }
    .main-nav[data-open="true"] { display: flex; }
    .main-nav > a { padding: .8rem 0; border-bottom: 1px solid var(--line); }
    .main-nav .nav-cta { margin-top: 1rem; padding: .9rem 1rem; border: 0; text-align: center; }
    .home-hero { min-height: auto; grid-template-columns: 1fr; }
    .home-hero__image { min-height: 56vw; }
    .home-hero__panel { min-height: 600px; }
    .project-feature, .story-feature { grid-template-columns: 1fr; }
    .project-feature__image img, .story-feature__image img { min-height: 55vw; }
    .footer-grid { grid-template-columns: repeat(2, 1fr); }
    .fall-hero { min-height: auto; grid-template-columns: 1fr; }
    .fall-hero__copy { min-height: 680px; }
    .fall-hero__image { height: min(78vw, 720px); border-top: 1px solid var(--brass); border-left: 0; }
    .fall-hero__image img { min-height: 0; }
    .fall-work { grid-template-columns: .8fr 1.2fr; }
    .fall-consultation { grid-template-columns: 1fr; }
    .fall-video-layout { grid-template-columns: .85fr 1.15fr; }
}

@media (max-width: 760px) {
    .container { width: min(calc(100% - 28px), var(--container)); }
    .section-heading, .intro-grid, .about-teaser, .contact-layout { grid-template-columns: 1fr; gap: 1.5rem; }
    .proof-grid { grid-template-columns: 1fr; }
    .proof-grid > div { min-height: 110px; border-right: 0; border-bottom: 1px solid #3c3e38; }
    .proof-grid > div:last-child { border-bottom: 0; }
    .sector-grid { grid-template-columns: 1fr; }
    .sector-card, .sector-card:nth-child(3) { min-height: 400px; grid-column: auto; }
    .split-feature { grid-template-columns: 1fr; }
    .split-feature--reverse .split-feature__image { order: 0; }
    .split-feature__image img { min-height: 62vw; }
    .service-grid, .selection-grid { grid-template-columns: 1fr; }
    .service-grid article, .selection-grid article { min-height: 0; border-right: 0; }
    .gallery-grid { grid-template-columns: 1fr; }
    .gallery-grid__wide { grid-row: auto; }
    .work-preview__grid { grid-auto-rows: 210px; grid-template-columns: repeat(2, 1fr); }
    .work-preview__grid a:first-child { grid-row: span 2; }
    .work-preview__grid a:nth-child(5) { grid-column: span 1; }
    .work-gallery { grid-auto-rows: 180px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gallery-lightbox__frame > img { max-width: calc(100vw - 28px); max-height: calc(100vh - 130px); }
    .gallery-lightbox__close { top: 14px; right: 14px; }
    .gallery-lightbox__nav { top: auto; bottom: 18px; transform: none; }
    .gallery-lightbox__nav--previous { left: calc(50% - 66px); }
    .gallery-lightbox__nav--next { right: calc(50% - 66px); }
    .step-grid, .callout-grid { grid-template-columns: 1fr; }
    .field-grid { grid-template-columns: 1fr; gap: 0; }
    .footer-grid { grid-template-columns: 1fr; }
    .footer-bottom { flex-direction: column; }
    .page-hero { min-height: 560px; }
    .page-hero--compact { min-height: 420px; }
    .campaign-header__inner { min-height: 82px; }
    .campaign-brand img { width: 48px; height: 48px; }
    .campaign-brand strong { font-size: 1.12rem; }
    .campaign-brand small { font-size: .58rem; }
    .campaign-call span { display: none; }
    .campaign-call { font-size: .92rem; }
    .fall-hero__copy { min-height: 610px; }
    .fall-hero h1 { font-size: clamp(3.55rem, 15vw, 5.5rem); }
    .fall-hero__image { height: 82vw; min-height: 430px; }
    .fall-section-heading, .fall-process > .container, .fall-work, .fall-video-layout { grid-template-columns: 1fr; gap: 2.5rem; }
    .fall-video-copy { max-width: 640px; }
    .fall-video-frame { width: min(86vw, 500px); margin-top: 1rem; }
    .fall-video-frame video { box-shadow: 15px 18px 0 #151815; }
    .fall-before-after { grid-template-columns: 1fr; }
    .fall-before-after figure { height: min(80vw, 500px); }
    .fall-work__grid { min-height: 620px; }
    .fall-work__bath { margin-top: 0; }
    .campaign-footer__inner { grid-template-columns: 1fr; }
    .campaign-footer__bottom { flex-direction: column; }
}

@media (max-width: 480px) {
    .brand-copy strong { font-size: 1.2rem; }
    .brand-copy small { max-width: 180px; font-size: .55rem; }
    .brand img { width: 43px; height: 43px; }
    .home-hero__image { min-height: 72vw; }
    .home-hero__panel { min-height: 540px; padding: 3rem 1.25rem; }
    .button-row { align-items: stretch; flex-direction: column; }
    .button-row .button { width: 100%; }
    .work-preview__grid { grid-auto-rows: 250px; grid-template-columns: 1fr; }
    .work-preview__grid a:first-child { grid-row: auto; }
    .work-gallery { display: block; }
    .work-gallery__item { width: 100%; height: min(82vw, 430px); margin-bottom: .75rem; }
    .phone-link { text-align: center; }
    .hours-list > div { align-items: flex-start; flex-direction: column; gap: .2rem; }
    .hours-list dd { text-align: left; }
    .campaign-header__inner { gap: 1rem; }
    .campaign-brand small { display: none; }
    .campaign-call { max-width: 110px; font-family: var(--font-body); font-size: .78rem; text-align: right; }
    .fall-hero__copy { min-height: 570px; padding: 3.5rem 1.25rem; }
    .fall-hero__lead { font-size: 1.35rem; }
    .fall-service-line br { display: none; }
    .fall-hero__copy .button-row { align-items: flex-start; }
    .fall-hero__copy .button { width: 100%; }
    .fall-work__grid { display: block; min-height: 0; }
    .fall-work__grid picture { display: block; height: 88vw; margin-bottom: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
