/* CMD / Modern residential. Shared component refinement; no external fonts. */
:root {
  --paper:#faf9f6; --sand:#f0eee8; --white:#fff; --ink:#171b19; --charcoal:#363c37;
  --slate:#626861; --mist:#c9cdc6; --line:#dedfd8; --deep:#202720;
  --brass:#8c6a3e; --brass-deep:#72552f; --brass-soft:#efe5d5; --oak:#d6b891;
  --font-display:Arial,'Helvetica Neue',sans-serif; --font-body:Arial,'Helvetica Neue',sans-serif;
  --radius:9px; --radius-lg:18px; --container:82.5rem; --gutter:clamp(20px,4.15vw,64px);
  --header-h:88px; --step-1:clamp(1.1rem,1rem + .5vw,1.4rem);
  --step-2:clamp(1.55rem,1.2rem + 1.1vw,2.3rem); --step-3:clamp(2.35rem,1.4rem + 3vw,4.15rem);
  --step-4:clamp(3.15rem,1.8rem + 4vw,5.8rem);
}
html {scroll-padding-top:110px} body {background:var(--paper);letter-spacing:-.015em;line-height:1.65}
h1,h2,h3,h4 {font-weight:500;letter-spacing:-.058em;text-wrap:balance;line-height:1.06}
p {text-wrap:pretty} h3 {letter-spacing:-.04em}
.container {width:min(calc(100% - 2 * var(--gutter)),var(--container))}
.section {padding-block:clamp(64px,7vw,108px)} .section--tight {padding-block:36px}
.section-head {margin-bottom:40px;gap:24px} .section-head h2 {margin-bottom:0}
.eyebrow,.plate-meta,.section-number {font-size:11px;letter-spacing:.12em;font-weight:600;text-transform:uppercase}
.eyebrow {color:var(--brass-deep);margin-bottom:20px}
.text-link {font-size:14px;min-height:44px;display:inline-flex;align-items:center;gap:20px;text-underline-offset:6px;letter-spacing:0}
.btn {border-radius:999px;min-height:50px;padding:15px 23px;gap:20px;font-size:14px;letter-spacing:-.01em;font-weight:500}
.btn--sm {min-height:46px;padding:12px 20px}.btn--primary {background:var(--ink);border-color:var(--ink);color:white}
.btn--primary:hover {background:var(--brass-deep);border-color:var(--brass-deep);color:white}
.btn--secondary {border-color:var(--line);background:transparent}.btn--secondary:hover {border-color:var(--ink)}
.photo {border-radius:var(--radius-lg)} .caption {font-size:12px;line-height:1.6;letter-spacing:0}
/* Quiet navigation: never put a heavy navigation bar over the photographs. */
.site-header {background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.site-header__inner {min-height:88px;gap:22px}.brand__logo {height:63px;width:auto}.brand {min-height:76px;min-width:77px}
.nav__list {gap:clamp(18px,1.8vw,30px)}.nav__list a {font-size:13px;font-weight:500}
.site-header__phone {font-size:13px}.site-header__actions {gap:20px}.topbar {display:none}
.menu-btn {border-radius:999px;border-color:var(--line);min-width:80px;background:transparent;font-size:13px}
.mobile-header-phone {display:none;text-decoration:none;font-size:13px;white-space:nowrap}
/* Native forms: all original form attributes, field names and scripts retained. */
.lead-form {background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(24px,3vw,44px);box-shadow:0 12px 40px rgba(25,29,25,.035)}
.lead-form__head {border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:24px}
.lead-form__head h2 {font-size:27px;letter-spacing:-.045em;line-height:1.16;margin:0 0 8px}
.lead-form__steps {font-size:12px;color:var(--slate);margin:0}
.field label {font-size:13px;font-weight:600;letter-spacing:0}.field input,.field select,.field textarea {border:1px solid #818a7b;border-radius:9px;min-height:51px;background:#fff;padding:13px 14px;font-size:16px}
.field input:focus,.field select:focus,.field textarea:focus {border-color:var(--ink);outline:2px solid var(--ink);outline-offset:2px}
.field small,.lead-form__fine {font-size:12px;color:var(--slate)}.lead-form__actions .btn {min-width:155px}
.lead-form__head::before {content:'LET’S TALK ABOUT YOUR PROJECT';font-size:10px;letter-spacing:.12em;color:var(--brass-deep);display:block;margin-bottom:13px;font-weight:600}
.checkbox {line-height:1.6}.lead-form__error {font-size:14px}
/* Page mastheads: bright images, text on paper, no photo-obscuring overlays. */
.photo-hero {margin:22px auto 0;width:min(calc(100% - 32px),1440px);border-radius:22px;overflow:hidden;background:var(--sand);grid-template-columns:5fr 7fr;min-height:540px}
.photo-hero__copy {padding:clamp(28px,4vw,60px)}.photo-hero h1 {font-size:clamp(42px,4.2vw,66px);max-width:13ch;letter-spacing:-.058em}
.photo-hero .lede {font-size:16px;line-height:1.65;max-width:39ch;color:var(--slate)}
.photo-hero__image {min-height:540px}.photo-hero__caption {font-size:11px;line-height:1.7;margin-top:24px;color:var(--slate)}
.photo-hero--reverse {grid-template-columns:7fr 5fr}.photo-masthead {margin:20px auto 0;border-radius:18px;width:min(calc(100% - 32px),1320px)}
.title-band {padding-block:36px}.title-band h1 {max-width:22ch}.lede {font-size:18px;color:var(--slate)}
/* Services: a readable index paired with real work instead of small tokens. */
.service-index a {padding:22px 0;gap:20px;grid-template-columns:24px 1fr 110px 22px;border-color:var(--line)}
.service-index :is(h2,h3) {font-size:clamp(20px,1.8vw,28px);letter-spacing:-.04em;line-height:1.15}
.service-index__image {border-radius:11px;aspect-ratio:1.3}
.service-index__arrow {border:1px solid var(--line);width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:20px;justify-self:end}
.service-index__no {font-size:11px}.service-index a:hover :is(h2,h3) {text-decoration:none;color:var(--brass-deep)}
.service-index--full a {grid-template-columns:45px 1fr 31% 44px;gap:32px;padding:32px 0}
.service-index--full :is(h2,h3) {font-size:clamp(23px,3vw,43px)}
.service-index--full a:nth-child(even) .service-index__image {width:100%}
/* Project gallery: natural orientation and labels sized for actual reading. */
.pcard {gap:16px}.pcard__photo {border-radius:16px}.pcard__kicker {font-size:10px;letter-spacing:.09em;color:var(--slate)}
.pcard__title {font-size:23px;line-height:1.16;margin-top:8px;letter-spacing:-.04em}
.pcard__meta {padding-inline:2px}.pcard__title a {min-height:44px}
.chip {border-radius:999px!important;border:1px solid var(--line)!important;min-height:44px;font-size:13px!important;padding:10px 17px!important;font-weight:500!important}
.chip[aria-pressed=true] {background:var(--ink);border-color:var(--ink)!important}.filters {gap:8px}
.project-editorial-grid {gap:40px 24px}.project-editorial-grid .pcard--house:nth-child(2) {margin-top:0}
.project-editorial-grid .pcard--house:nth-child(3) {grid-column:span 2}.project-editorial-grid .pcard__title {font-size:22px}
/* Process and proof: editorial detail without brochure-like density. */
.process__step {border-color:var(--line);padding:23px 0}.process__step:last-child {border-color:var(--line)}
.process__step h3 {font-size:22px;letter-spacing:-.035em}.process__step p {font-size:13px;max-width:30ch}
.process__n {background:var(--sand);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;padding:0;font-size:10px}
.review blockquote p {letter-spacing:-.04em;font-size:clamp(24px,2.35vw,37px);line-height:1.35}
.review figcaption {font-size:12px;color:inherit}.reviews--large {max-width:64rem}
.faq {border-color:var(--line)}.faq summary {font-size:16px;min-height:72px;padding:23px 0;font-weight:500}
.faq summary::after {border:1px solid var(--line);border-radius:50%;min-width:30px;height:30px;display:grid;place-items:center;font-size:20px}
.faq p {font-size:15px;line-height:1.7}.fine-list li {font-size:15px;line-height:1.65;padding:14px 0;break-inside:avoid}
/* Case studies: never enlarge a 562px portrait into a desktop background. */
.case-cover {width:min(calc(100% - 32px),1280px);height:auto;max-height:none;margin:24px auto 0;border-radius:20px;overflow:hidden;background:var(--sand)}
.case-cover a {display:block;position:relative}.case-cover img {width:100%;height:auto;max-height:760px;object-fit:contain;margin:auto}
.case-cover--portrait {width:min(calc(100% - 32px),850px);padding:24px;background:var(--sand)}
.case-cover--portrait img {max-width:562px;height:auto;max-height:700px;object-fit:contain}
.image-open-label {position:absolute;right:16px;bottom:16px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:999px;padding:10px 15px;font-size:12px;color:var(--ink);display:inline-flex;gap:16px;align-items:center}
.case-title h1 {max-width:20ch;font-size:clamp(36px,3.5vw,54px)}.case-title .lede {font-size:17px;line-height:1.7}
.facts-grid {padding-top:24px;gap:24px}.facts-grid dt {font-size:10px}.facts-grid dd {font-size:13px}
.case-gallery {gap:40px 24px}.case-frame .photo {border-radius:16px}.case-frame--1 {max-width:1040px;margin-inline:auto;width:100%}
.case-frame--1 .photo img {height:auto;max-height:none}.case-observed {gap:9%}.case-observed li {font-size:15px}
.case-story .prose>p:first-child {font-size:21px;line-height:1.65}.case-story .prose>p {font-size:17px;line-height:1.75}
/* Contact */
.contact-section {padding-top:40px}.contact-call {margin-bottom:30px}.contact-call strong {font-size:clamp(25px,2.6vw,39px);font-weight:500}
.contact-copy h1 {font-size:clamp(45px,4vw,62px)}.contact-photo {height:280px;border-radius:16px;overflow:hidden}
.contact-prep h2 {font-size:15px}.contact-prep li,.contact-facts {font-size:13px}.contact-grid {gap:8%;grid-template-columns:5fr 6fr}
/* Footer */
.footer {background:var(--deep);padding-top:64px;color:#d6dcd4}.footer__logo {height:85px;width:auto}
.footer__phone {font-family:var(--font-body);font-size:24px;letter-spacing:-.04em}.footer__brand p {font-size:13px;line-height:1.75}
.footer__col h2 {font:600 11px/1.4 var(--font-body);letter-spacing:.1em}.footer__col a {font-size:13px;min-height:34px;display:flex;align-items:center}
.footer__fine {font-size:12px;color:#c8cfc5;line-height:1.7;max-width:94ch}.footer__bottom {font-size:11px;color:#c8cfc5}
.footer__coverage {font-size:11px;color:#c8cfc5}.footer__legal {margin-top:42px}.mobile-cta {box-shadow:0 -5px 22px rgba(0,0,0,.07)}
.mobile-cta a {font-size:14px;min-height:58px}.mobile-cta__primary {background:var(--ink)!important}
/* Full-size photographs, with link fallback when scripting is off. */
.cmd-lightbox {border:0;padding:18px;border-radius:18px;background:#f8f7f3;color:var(--ink);width:min(94vw,1320px);max-height:94svh;overflow:auto}
.cmd-lightbox::backdrop {background:rgba(12,17,13,.88)}.cmd-lightbox__bar {display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}
.cmd-lightbox button {background:var(--paper);border:1px solid #a6ada4;border-radius:999px;min-width:46px;min-height:46px;padding:10px 16px;cursor:pointer}
.cmd-lightbox__counter {font-size:13px}.cmd-lightbox__image {max-width:100%;max-height:72svh;width:auto;height:auto;object-fit:contain;margin:auto}
.cmd-lightbox__caption {font-size:13px;margin:14px 0 0;max-width:90ch}.cmd-lightbox__actions {display:flex;gap:8px;align-items:center}.cmd-lightbox__original {font-size:13px;min-height:44px;display:inline-flex;align-items:center}
@media(min-width:1024px){.site-header__inner {flex-wrap:nowrap}.nav {display:block}}
@media(max-width:1023px){.site-header__inner {min-height:80px;flex-wrap:wrap}.brand__logo {height:56px}.brand {min-height:72px}.mobile-header-phone {display:inline-flex;min-height:44px;align-items:center}.site-header__actions {gap:12px}.nav {width:100%}.site-header[data-enhanced] .nav {background:var(--paper);max-height:calc(100svh - 140px)}.site-header__cta,.site-header__phone {display:none}.photo-hero,.photo-hero--reverse {grid-template-columns:1fr;min-height:0}.photo-hero__copy {order:1}.photo-hero__image {order:0;height:340px;min-height:0}.photo-hero h1 {max-width:18ch}.contact-grid {grid-template-columns:1fr}.lead-grid {grid-template-columns:1fr}}
@media(max-width:767px){
 html {scroll-padding-top:95px} .site-header {position:sticky}.site-header__inner {min-height:73px}.brand__logo {height:52px}.brand {min-height:68px;min-width:64px}
 .mobile-header-phone {font-size:12px}.menu-btn {min-width:70px;gap:9px;font-size:12px}.site-header__actions {gap:10px}
 .section {padding-block:62px}.section-head {margin-bottom:28px}.eyebrow {font-size:10px;margin-bottom:16px}.btn {font-size:13px;padding:14px 19px;min-height:48px}
 .photo-hero {width:100%;margin-top:0;border-radius:0}.photo-hero__image {height:290px}.photo-hero__copy {padding:30px 22px 34px}.photo-hero h1 {font-size:43px;max-width:16ch}
 .photo-hero .lede {font-size:15px}.photo-hero__caption {font-size:11px}.photo-masthead {width:100%;margin-top:0;border-radius:0}
 .lead-form {padding:24px 20px;border-radius:17px}.lead-form__head h2 {font-size:24px}.field-grid {grid-template-columns:1fr}
 .service-index a {grid-template-columns:20px 1fr 78px 25px;gap:12px;padding:20px 0}.service-index :is(h2,h3) {font-size:20px}.service-index__arrow {width:27px;height:27px;font-size:17px}
 .service-index--full a {grid-template-columns:20px 1fr 28%;gap:12px}.service-index--full .service-index__arrow {display:none}.service-index--full :is(h2,h3) {font-size:22px}
 .service-index--full .service-index__image {aspect-ratio:1}.pcard__title,.project-editorial-grid .pcard__title {font-size:18px}.project-editorial-grid {gap:28px 16px}
 .project-editorial-grid .pcard--house:nth-child(3) {grid-column:1/-1}.pcard__kicker {font-size:9px;line-height:1.6;display:block}
 .process__step {grid-template-columns:34px 1fr;gap:15px}.process__step h3 {font-size:21px}.process__step p {font-size:13px}.process__step>div {display:block}
 .contact-section {padding-top:26px}.contact-photo {margin:24px 0;height:240px;border-radius:14px}.contact-call strong {font-size:29px}.contact-copy h1 {font-size:46px}
 .case-cover {width:100%;border-radius:0;margin-top:0}.case-cover--portrait {padding:20px}.case-cover--portrait img {max-height:510px}
 .case-title h1 {font-size:37px}.case-title .lede {font-size:15px}.facts-grid {gap:20px}.case-frame--3,.case-frame--4 {width:100%}.case-gallery {gap:28px}
 .case-story .prose>p,.case-observed li {font-size:15px}.case-story .prose>p:first-child {font-size:19px}
 .footer {padding-block:50px 30px}.footer__grid {grid-template-columns:1fr 1fr;gap:35px 24px}.footer__brand {grid-column:1/-1}.footer__col a {min-height:44px}.footer__fine {font-size:12px}.footer__bottom {gap:16px;line-height:1.7}
 .cmd-lightbox {padding:12px}.cmd-lightbox__image {max-height:65svh}.cmd-lightbox__original {font-size:11px}.cmd-lightbox__actions {gap:5px}
}
@media(max-width:359px){.mobile-header-phone {font-size:11px}.site-header__actions {gap:6px}.menu-btn {min-width:62px}}
@media(prefers-reduced-motion:no-preference){.photo img,.project-tile img,.modern-hero__photo img {transition:transform .45s ease}.project-tile:hover img {transform:scale(1.02)}.btn,.chip {transition:background-color .18s,color .18s,border-color .18s}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.case-cover:not(.case-cover--portrait){max-width:var(--case-native,1280px)}
.case-observed .photo>a{display:block;height:100%}
/* The unchanged LeadForm owns scoped CSS. Explicit skin specificity overrides style only. */
body[data-cmd-modern] .lead-form{background:#fff;border:1px solid var(--line);border-radius:22px;padding:clamp(24px,3vw,44px);box-shadow:0 12px 40px rgba(25,29,25,.035)}
body[data-cmd-modern] .lead-form__head{padding-bottom:22px;margin-bottom:24px}
body[data-cmd-modern] .lead-form__head h2{font-size:27px;letter-spacing:-.045em;line-height:1.16;margin:0 0 8px}
body[data-cmd-modern] .lead-form__steps{font-size:11px;letter-spacing:.07em;color:var(--slate)}
body[data-cmd-modern] .lead-form .field :is(input,select,textarea){border:1px solid #818a7b;border-radius:9px;min-height:51px;background:#fff;padding:13px 14px;font-size:16px}
body[data-cmd-modern] .lead-form .field :is(input,select,textarea):focus{border-color:var(--ink);outline:2px solid var(--ink);outline-offset:2px}
body[data-cmd-modern] .lead-form .field label{font-size:13px;font-weight:600}
body[data-cmd-modern] .lead-form .field small{font-size:12px}
body[data-cmd-modern] .lead-form .checkbox input{width:20px;height:20px;min-height:20px;padding:0}
@media(max-width:767px){body[data-cmd-modern] .lead-form{padding:24px 20px;border-radius:17px}body[data-cmd-modern] .lead-form__head h2{font-size:24px}body[data-cmd-modern] .lead-form .field-grid{grid-template-columns:1fr}}

.case-frame {max-width:var(--photo-native,1040px)}
.case-frame img {height:auto;max-width:100%}
.case-observed .photo {aspect-ratio:auto}
.case-observed .photo img {height:auto;width:100%;object-fit:contain}

/* Keep low-resolution portrait sources within a portrait frame, not a wide crop. */
.photo-hero__image--portrait {display:grid;place-items:center;padding:24px;background:var(--sand);height:540px}
.photo-hero__image--portrait img {width:auto;max-width:100%;height:490px;max-height:100%;object-fit:contain}
@media(max-width:1023px){.photo-hero__image--portrait {height:340px}.photo-hero__image--portrait img {height:292px}}
@media(max-width:767px){.photo-hero__image--portrait {height:300px;padding:20px}.photo-hero__image--portrait img {height:260px}}

/* Author display rules must never make hidden controls or filtered cards visible. */
[hidden] {display:none!important}
