/* Shared editorial system. Loaded after page-specific styles on every route. */
:root {
  --page-gutter: clamp(24px, 4.4vw, 80px);
  --page-width: 1360px;
  --section-space: clamp(64px, 7.5vw, 112px);
  --ink: #0b0a07;
  --paper: #f4f0e8;
  --bone: #ede8de;
  --muted-ink: #655e53;
  --muted-paper: #c9c3b8;
  --rule-ink: rgba(11,10,7,.2);
  --rule-paper: rgba(244,240,232,.22);
}
/* Each destination owns its header offset; do not add it twice on the root. */
html { scroll-padding-top: 0; scroll-behavior: auto; }
body { font-size: 16px; line-height: 1.6; }
::selection { color: var(--paper); background: #554e43; }
h1, h2, h3 { text-wrap: balance; }
p, blockquote { text-wrap: pretty; }
main { overflow-wrap: break-word; }
img { height: auto; }
a, button, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button, input, select, textarea { font: inherit; }
:where(main section[id], main header[id]) { scroll-margin-top: calc(var(--site-header-height, 94px) + 28px); }

/* Content is visible without scripts. Motion is an optional enhancement. */
.reveal, .fade-up, .hp-reveal, .ni-reveal, .np-reveal, .ss-reveal {
  opacity: 1; transform: none; transition: none;
}
.nav { padding-inline: var(--page-gutter); }
.nav-link { font-size: 14px; }
.nav-brand { font-size: clamp(17px, 1.5vw, 22px); letter-spacing: .12em; }
.nav-cta-btn { min-width: 108px; border-radius: 0; }
.nav-links { gap: clamp(20px, 2vw, 30px); }
.mobile-menu { padding: 0; justify-content: flex-start; align-items: flex-start; }
.mobile-menu-inner { width: min(100%, 800px); max-height: none; margin: auto; padding: 120px var(--page-gutter) 40px; text-align: left; }
.mobile-menu-link { font-size: clamp(28px, 5.5vw, 44px); line-height: 1.25; padding: 10px 0; margin: 0; }
.mobile-menu-footer { border-top: 1px solid var(--rule-paper); padding-top: 24px; margin-top: 30px; }
.mobile-menu-footer a { display: inline-flex; min-height: 44px; align-items: center; font-size: 16px; color: var(--bone); }

/* One geometry for primary actions; understated text links stay text links. */
:is(.btn-primary, .btn-dark, .btn, .btn-pill-fill, .btn-bordered-pill, .swp-btn, .ss-btn, .np-btn, .bp-btn, .sp-btn-light, .cta-scene-btn, .aff-cta-btn, .cta-submit, .btn-submit, .lead-form-submit) {
  min-height: 50px; border-radius: 0; font-size: 14px; font-weight: 500;
  letter-spacing: .02em; text-transform: none; line-height: 1.45;
}
:is(.hp-link, .sw-all, .sw-view, .ss-textlink, .np-link, .ni-hero-cta, .ni-cta-link) {
  font-size: 14px; letter-spacing: .035em; text-transform: none; line-height: 1.6;
  min-height: 44px; display: inline-flex; align-items: center; gap: 12px;
}
:is(.hero-pill-eyebrow, .start-here-eyebrow, .method-eyebrow, .sw-eyebrow, .hp-eyebrow, .swp-eyebrow, .ss-eyebrow, .ss-label, .ni-eyebrow, .ni-intro-label, .np-eyebrow, .np-sect-label, .portrait-label, .story-label, .family-story-label, .press-scene-label, .calc-hero-eyebrow, .calc-section-label, .bp-eyebrow, .sp-eyebrow, .vendors-label) {
  font-size: 12px; font-weight: 500; letter-spacing: .16em; line-height: 1.6;
}
.container, .ss-wrap, .np-wrap { max-width: calc(var(--page-width) + var(--page-gutter) * 2); padding-inline: var(--page-gutter); }
.hp-wrap, .sw-inner, .swp-assignment-inner, .ni-featured-inner, .ni-intro-inner { max-width: var(--page-width); }
.footer {
  padding: 68px var(--page-gutter) 26px; border-top: 1px solid var(--rule-paper);
}
.footer-grid, .footer-bar { max-width: var(--page-width); margin-inline: auto; }
.footer-grid { grid-template-columns: 1.5fr 1fr 1.1fr 1.2fr; gap: clamp(24px, 4vw, 64px); }
.footer-brand { font-size: 24px; letter-spacing: -.015em; text-transform: none; line-height: 1.2; margin-bottom: 24px; }
.footer-address { font-size: 14px; line-height: 1.8; color: var(--muted-paper); }
.footer-col-label { color: #b5aea1; font-size: 12px; letter-spacing: .12em; margin-bottom: 16px; }
.footer-col a { font-size: 14px; min-height: 36px; color: var(--bone); overflow-wrap: anywhere; }
.footer-col a:hover { text-decoration: underline; text-underline-offset: 5px; }
.footer-bar { gap: 20px; margin-top: 52px; padding-top: 24px; flex-wrap: wrap; }
.footer-bar span { font-size: 12px; color: var(--muted-paper); }
.footer-bar span:last-child { font-family: var(--serif); font-size: 18px; color: var(--paper); }
.footer-credits { max-width: var(--page-width); margin: 24px auto 0; padding-top: 18px; border-top: 1px solid var(--rule-paper); color: var(--muted-paper); font-size: 12px; line-height: 1.75; overflow-wrap: anywhere; }
.footer-credits p { margin: 0; }
.footer-credits p + p { margin-top: 6px; }
.footer-credits .footer-credits-label { margin-bottom: 10px; font-weight: 500; }
.footer-credits a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Homepage: deliberate changes of scale, with the property image in command. */
.home-page .hero { min-height: min(900px, 100svh); }
.home-page .hero-content { padding-inline: var(--page-gutter); }
.home-page .hero-headline { max-width: 14ch; font-size: clamp(48px, 7.2vw, 104px); line-height: 1.02; }
.home-page .hero-sub { max-width: 55ch; font-size: 18px; }
.start-here { padding: var(--section-space) var(--page-gutter); grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(40px, 8vw, 120px); }
.start-here-h2, .method-h2, .sw-h2, .hp-h2 { font-size: clamp(34px, 4.2vw, 62px); line-height: 1.08; }
.start-here-body { font-size: 17px; max-width: 39ch; line-height: 1.75; }
.start-here-paths { border-top: 1px solid var(--rule-ink); }
.start-here-path { border: 0; border-bottom: 1px solid var(--rule-ink); border-radius: 0; padding: 22px 0; margin: 0; gap: 20px; }
.start-here-path-text { font-family: var(--serif); font-size: clamp(20px, 1.85vw, 27px); font-weight: 400; line-height: 1.4; }
.start-here-path:hover { padding-inline: 14px; background: rgba(11,10,7,.025); }
.start-here-path { transition: padding .25s ease, background .25s ease; }
.sw { padding: var(--section-space) var(--page-gutter); }
.sw-head { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 8px 9%; max-width: none; margin-bottom: 42px; }
.sw-eyebrow { grid-column: 1 / -1; margin-bottom: 12px; }
.sw-h2 { margin: 0; }
.sw-rule { display: none; }
.sw-intro { margin: 0; max-width: 47ch; font-size: 17px; }
.sw-module { grid-template-columns: 27% 48% 25%; border-color: var(--rule-ink); }
.sw-info { padding: 32px 28px; }
.sw-figure { min-height: 480px; }
.sw-meta, .sw-press { font-size: 12px; letter-spacing: .1em; line-height: 1.6; }
.sw-address { font-size: clamp(28px, 2.6vw, 40px); line-height: 1.1; }
.sw-rep, .sw-note { font-size: 16px; line-height: 1.65; }
.sw-note--highlight { font-size: clamp(23px, 2.1vw, 30px); line-height: 1.3; }
.sw-price { font-size: 23px; }
.sw-item { grid-template-columns: 48px minmax(0, 1fr); padding: 22px 18px; gap: 12px; flex: 1; }
.sw-thumb { width: 48px; height: 54px; }
.sw-item-address { font-size: 17px; line-height: 1.3; }
.sw-item-meta { font-size: 11px; letter-spacing: .06em; line-height: 1.5; }
.sw-item-price { font-size: 14px; }
.sw-item-arrow { display: none; }
.sw-item[aria-current="true"] { background: var(--bone); box-shadow: inset 3px 0 0 var(--ink); }
.sw-image-caption { font-size: 12px; }
.sw-story dt { font-size: 12px; }
.hp-hood { grid-template-columns: 1.12fr 1fr; min-height: 630px; }
.hp-hood-media img { filter: saturate(.8); }
.hp-hood-copy { padding: 64px var(--page-gutter); }
.hp-body { font-size: 17px; line-height: 1.75; }
.hp-hood-now { display: flex; flex-wrap: wrap; gap: 14px 24px; font-size: 15px; }
.hp-hood-now span { flex-basis: 100%; font-size: 12px; margin: 0; }
.hp-hood-now a + a { margin: 0; }
.hp-seller { padding: var(--section-space) var(--page-gutter) 64px; }
.hp-seller .hp-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 0 9%; }
.hp-seller .hp-eyebrow { grid-column: 1 / -1; }
.hp-seller .hp-h2 { grid-column: 1; grid-row: span 2; font-size: clamp(32px, 3.5vw, 50px); }
.hp-pillars { display: block; border: 0; margin: 0 0 32px; }
.hp-pillars > div, .hp-pillars > div + div { border: 0; border-top: 1px solid var(--rule-ink); padding: 20px 0 24px; }
.hp-pillars h3 { font-size: 28px; }
.hp-pillars p { font-size: 16px; }
.hp-seller .hp-link { grid-column: 2; justify-self: start; }
.method-section { padding: 64px var(--page-gutter) var(--section-space); grid-template-columns: 1fr; gap: 36px; background: var(--paper); }
.method-section .method-h2 { font-size: clamp(32px, 3.3vw, 46px); }
.method-grid { border-top: 1px solid var(--rule-ink); padding-top: 30px; }
.method-step { padding-inline: 28px; }
.method-step-num { font-size: 12px; margin-bottom: 16px; }
.method-step-name { font: 400 26px/1.2 var(--serif); text-transform: none; letter-spacing: -.01em; }
.method-step-copy { font-size: 16px; line-height: 1.7; max-width: 25ch; }
.hp-principle { padding: 0; display: grid; grid-template-columns: .85fr 1.15fr; text-align: left; }
.hp-principle-portrait { width: 100%; height: 100%; max-height: 760px; object-fit: cover; object-position: center 20%; filter: grayscale(1); }
.hp-principle-inner { padding: var(--section-space) var(--page-gutter); align-self: center; margin: 0; }
.hp-principle-quote { font-size: clamp(36px, 4.3vw, 62px); margin-left: 0; max-width: 17ch; }
.hp-principle .hp-body { margin-left: 0; }
.hp-principle-cite { font-size: 12px; letter-spacing: .1em; }
.home-page .testimonials { padding: var(--section-space) var(--page-gutter); }
.testimonials-heading, .testimonials-grid { max-width: var(--page-width); }
.testimonials-heading { font-size: clamp(34px, 4.2vw, 62px); margin-bottom: 44px; }
.testimonials-grid { gap: 36px 7%; }
.testimonial-card:nth-child(n) { border-top: 1px solid var(--rule-ink); padding-top: 28px; }
.testimonial-card:first-child .testimonial-text { font-size: clamp(25px, 2.5vw, 36px); }
.testimonial-text { font-style: normal; font-size: 20px; }
.testimonial-name { font-size: 14px; }
.testimonial-role { font-size: 13px; }
.hp-recog { padding: 64px var(--page-gutter); }
.hp-press li { font-size: 12px; line-height: 1.8; }
.hp-press a { display: inline-block; padding-block: 6px; }

/* Forms feel like part of the same site, with quiet, readable fields. */
.cta-form-section { padding: var(--section-space) 0; }
.cta-form-inner { max-width: calc(var(--page-width) + var(--page-gutter) * 2); padding-inline: var(--page-gutter); gap: clamp(40px, 8vw, 112px); }
.cta-form-heading { font-size: clamp(36px, 4.3vw, 62px); }
.cta-form-sub { font-size: 17px; max-width: 43ch; }
.cta-form-right { border: 0; border-top: 1px solid var(--rule-ink); background: transparent; padding: 28px 0 0; }
.cta-form-group { gap: 10px; margin-bottom: 20px; }
.cta-input { border-color: rgba(11,10,7,.28); background: rgba(255,255,255,.42); font-size: 16px; min-height: 50px; }
.cta-input::placeholder { color: #736c61; }
.cta-input-label, .form-label, .lead-form-label { font-size: 13px; line-height: 1.5; letter-spacing: .015em; text-transform: none; }
.cta-form-label, .cta-form-detail-label { font-size: 12px; }
.cta-form-detail-value { font-size: 17px; line-height: 1.65; }
.cta-textarea { min-height: 120px; resize: vertical; }
.cta-form-privacy { font-size: 13px; text-align: left; }
.cta-form-row { gap: 20px; }
.page-contact .contact-page { background: var(--paper); padding: calc(var(--site-header-height, 94px) + 58px) 0 90px; }
.page-contact .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 104px); }
.page-contact .contact-heading { color: var(--ink); font-size: clamp(40px, 4.9vw, 70px); line-height: 1.07; margin-bottom: 24px; }
.page-contact .contact-heading em { color: inherit; }
.page-contact .contact-left .label, .page-contact .contact-detail-label { color: var(--muted-ink); font-size: 12px; }
.page-contact .contact-intro { color: #4f493f; font-size: 17px; max-width: 40ch; margin-bottom: 44px; }
.page-contact .contact-detail-value { color: var(--ink); font-size: 18px; font-weight: 400; }
.page-contact .contact-detail-value:hover { color: var(--muted-ink); }
.page-contact .contact-form { background: var(--ink); border: 0; padding: clamp(26px, 3.5vw, 48px); }
.contact-form .form-label { color: var(--bone); }
.contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea, select) { font-family: var(--font); font-size: 16px; min-height: 48px; padding: 12px 0; }
.contact-form select { padding-right: 32px; }
.contact-form option { color: var(--ink); background: var(--paper); }
.contact-form textarea { min-height: 100px; resize: vertical; }
.page-contact .form-success { color: var(--paper); background: var(--ink); padding: 48px 32px; }

/* Portfolio: a publication opening and direct navigation to each assignment. */
.swp-hero { background: var(--paper); padding: calc(var(--site-header-height, 94px) + 64px) var(--page-gutter) 56px; }
.swp-hero-inner { max-width: var(--page-width); display: grid; grid-template-columns: 1.2fr 1fr; gap: 16px 7%; align-items: end; }
.swp-eyebrow { color: var(--muted-ink); grid-column: 1 / -1; margin: 0; }
.swp-h1 { font-size: clamp(48px, 7vw, 104px); color: var(--ink); margin: 0; }
.swp-sub { color: #4f493f; font-size: 17px; max-width: 48ch; }
.work-directory { background: var(--paper); color: var(--ink); padding: 0 var(--page-gutter); }
.work-directory-inner { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); max-width: var(--page-width); margin: auto; border-block: 1px solid var(--rule-ink); }
.work-directory a { display: flex; flex-direction: column; justify-content: center; padding: 20px 20px 20px 0; gap: 7px; font-size: 15px; line-height: 1.45; }
.work-directory a + a { border-left: 1px solid var(--rule-ink); padding-left: 24px; }
.work-directory a span { font-size: 12px; color: var(--muted-ink); }
.work-directory a:hover { background: var(--bone); }
.swp-assignment { padding: var(--section-space) var(--page-gutter); }
.swp-assignment-media img { aspect-ratio: 5/4; }
.swp-assignment-body { padding: 0; }
.swp-feature-meta, .swp-feature-press { font-size: 12px; letter-spacing: .1em; }
.swp-assignment-rep, .swp-feature-note, .swp-feature-tenants { font-size: 16px; line-height: 1.75; }
.swp-assignment .swp-feature-address { font-size: clamp(32px, 4vw, 56px); }
.swp-feature-price { font-size: 28px; }
.swp-cta, .bp-cta, .sp-cta, .aff-cta { padding: var(--section-space) var(--page-gutter); }
.swp-cta-h2, .bp-cta-h2, .sp-cta-h2, .aff-cta-h { font-size: clamp(34px, 4vw, 58px); }

/* About: Matthew is present in the first view; family photography stays intact. */
.page-about .scene-hero { background: var(--paper); display: grid; grid-template-columns: 1.05fr 1fr; align-items: stretch; min-height: 0; padding-top: var(--site-header-height, 94px); }
.page-about .scene-hero-content { padding: 76px var(--page-gutter); display: flex; flex-direction: column; justify-content: center; }
.page-about .scene-hero .hero-eyebrow { color: var(--muted-ink); font-size: 12px; }
.page-about .scene-hero .hero-eyebrow::after { background: var(--rule-ink); }
.page-about .hero-h1 { color: var(--ink); font-size: clamp(52px, 7.4vw, 108px); line-height: 1.04; }
.about-hero-portrait { width: 100%; height: min(690px, 74vw); object-fit: cover; object-position: center 20%; filter: grayscale(1); }
.page-about .scene-portrait { display: block; min-height: 0; }
.page-about .scene-portrait-text { padding: var(--section-space) var(--page-gutter); max-width: calc(var(--page-width) + var(--page-gutter) * 2); margin: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 0 9%; }
.portrait-label { grid-column: 1 / -1; }
.portrait-lead { grid-row: span 2; font-size: clamp(30px, 3.4vw, 48px); line-height: 1.25; }
.portrait-body { font-size: 17px; line-height: 1.8; max-width: 55ch; }
.scene-family { padding: var(--section-space) var(--page-gutter); }
.family-story-inner { max-width: 1160px; grid-template-columns: 1fr minmax(0, 340px); }
.family-story-inner blockquote { font-size: clamp(36px, 4.7vw, 66px); }
.scene-story { padding: var(--section-space) var(--page-gutter); align-items: flex-start; }
.scene-story > * { width: min(100%, 740px); margin-inline: auto; }
.story-text, .story-range { font-size: 17px; line-height: 1.8; max-width: 740px; }
.scene-press { padding: 68px var(--page-gutter); }
.press-scene-row { gap: 20px 48px; }
.press-scene-item { padding-block: 12px; font-size: 20px; }
.scene-cta { padding: var(--section-space) var(--page-gutter); }
.cta-scene-h { font-size: clamp(36px, 4.2vw, 62px); font-weight: 400; }
.stat-block-label { font-size: 12px; color: var(--muted-paper); }

/* Seller strategy and local guides share the same reading rhythm. */
.ss-hero { min-height: 0; padding: calc(var(--site-header-height, 94px) + 64px) 0 68px; }
.ss-hero h1 { max-width: 23ch; font-size: clamp(36px, 5.4vw, 78px); line-height: 1.09; }
.ss-hero-grain { background: none; }
.ss-hero-grain::after { display: none; }
.ss-hero .section-nav { margin-top: 32px; gap: 12px 36px; }
.section-nav a { font-size: 14px; min-height: 44px; display: inline-flex; align-items: center; }
.ss-band { padding-block: var(--section-space); }
.ss-h2 { font-size: clamp(34px, 4.2vw, 60px); }
.ss-body, .ss-list p, .ss-deal-out { font-size: 17px; line-height: 1.75; }
.ss-deal-type, .ss-deal-src { font-size: 12px; line-height: 1.6; }
.ss-proof-grid { gap: clamp(28px, 4vw, 64px); }
.ss-deal h3 { font-size: 26px; }
.ss-deal h3 a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.ss-list h3 { font-size: 26px; }
.ss-presentation-image img { max-height: 720px; object-fit: cover; object-position: center; }
.ni-hero-inner { max-width: calc(var(--page-width) + var(--page-gutter) * 2); padding-inline: var(--page-gutter); }
.ni-hero { min-height: 80svh; padding-top: calc(var(--site-header-height, 94px) + 60px); }
.ni-hero h1 { font-size: clamp(48px, 7.7vw, 110px); line-height: 1.02; }
.ni-intro, .ni-featured { padding-inline: var(--page-gutter); padding-block: var(--section-space); }
.ni-hero-sub, .np-hero-sub { font-size: 18px; color: #e6e0d6; }
.ni-card { border: 0; }
.ni-card--second { margin-top: 88px; }
.ni-card-body { padding: 32px; }
.ni-quicklinks a { min-height: 44px; }
.np-hero { min-height: 78svh; padding-top: calc(var(--site-header-height, 94px) + 60px); }
.np-hero-veil { background: linear-gradient(90deg,rgba(11,10,7,.48),rgba(11,10,7,.02) 75%), linear-gradient(0deg,rgba(11,10,7,.92),rgba(11,10,7,.4) 45%,rgba(11,10,7,.08)); }
.np-hero .np-eyebrow { color: #e6e0d6; }
.np-hero h1 { font-size: clamp(58px, 8vw, 116px); line-height: 1.03; }
.np-back { font-size: 13px; color: var(--bone); min-height: 44px; }
.np-band { padding-block: var(--section-space); }
.np-h2 { font-size: clamp(34px, 4vw, 58px); }
.np-body, .np-places p, .np-resources p, .np-amenity-list p { font-size: 17px; line-height: 1.8; }
.np-section-nav { padding-inline: var(--page-gutter); gap: 28px; box-shadow: none; background: var(--paper); }
.np-section-nav a { font-size: 14px; }
.np-section-nav a[aria-current="location"] { border-bottom-color: var(--ink); }
.np-section-nav + section, .page-guide section[id] { scroll-margin-top: calc(var(--site-header-height, 94px) + 88px); }
.np-place-photo { top: calc(var(--site-header-height, 94px) + 92px); }
.np-place-address { font-size: 13px; }
.np-places .np-link, .np-resources .np-link, .np-amenity-list .np-link { font-size: 14px; letter-spacing: .02em; text-transform: none; }

/* Practical pages: bring the task forward, keep controls clear. */
.calc-hero { padding: calc(var(--site-header-height, 94px) + 50px) var(--page-gutter) 42px; }
.calc-hero-h1 { font-size: clamp(38px, 4.6vw, 66px); max-width: 1000px; line-height: 1.08; }
.calc-hero-eyebrow { margin-bottom: 18px; }
.calc-hero-sub { font-size: 17px; max-width: 62ch; margin-top: 18px; color: var(--muted-paper); }
.calc-hero .section-nav { margin-top: 20px; }
.calc-section { padding: 64px var(--page-gutter); }
.calc-section-head { margin-bottom: 34px; }
.calc-section-h { font-size: clamp(32px, 3.2vw, 46px); }
.calc-section-sub, .explainer-block p, .dti-block p, .cta-band-copy, .faq-a-inner { font-size: 17px; line-height: 1.75; }
.calc-grid { gap: 36px; }
.calc-form-card { background: transparent; border-color: var(--rule-ink); }
.calc-input, .calc-select { min-height: 50px; font-size: 16px; background-color: rgba(255,255,255,.55); border-color: rgba(11,10,7,.28); }
.calc-label { gap: 16px; flex-wrap: wrap; }
.calc-label-text, .calc-summary-label { font-size: 13px; text-transform: none; letter-spacing: .02em; }
.calc-range { height: 6px; margin-top: 18px; margin-bottom: 8px; }
.calc-range::-webkit-slider-thumb { width: 26px; height: 26px; }
.calc-range::-moz-range-thumb { width: 26px; height: 26px; }
.calc-results { top: calc(var(--site-header-height, 94px) + 24px); }
.calc-results-label { font-size: 12px; letter-spacing: .12em; }
.calc-breakdown-label, .calc-breakdown-value { font-size: 15px; }
.calc-summary-card { background: transparent; border-color: var(--rule-ink); }
.calc-summary-value { font-size: 26px; }
.amort-toggle, .amort-tab { min-height: 44px; font-size: 14px; letter-spacing: .02em; text-transform: none; }
.explainer, .cta-band, .faq-section { padding: var(--section-space) var(--page-gutter); }
.lead-form-input { min-height: 50px; font-size: 16px; }
.faq-inner { max-width: 1060px; }
.faq-head { text-align: left; }
.faq-q { font-size: clamp(20px, 2vw, 27px); padding-block: 28px; }
.bp-hero, .sp-hero, .vendors-hero { padding: calc(var(--site-header-height, 94px) + 64px) var(--page-gutter) 64px; }
.bp-h1, .sp-hero-h1, .vendors-heading { font-size: clamp(44px, 6.4vw, 88px); line-height: 1.05; }
.bp-sub, .sp-hero-copy, .vendors-sub { font-size: 17px; line-height: 1.75; }
.bp-steps-section, .sp-timeline, .sp-check { padding: var(--section-space) var(--page-gutter); }
.bp-step-copy, .sp-step-summary, .sp-detail-list li, .sp-check-copy, .sp-check-text { font-size: 16px; line-height: 1.75; }
.bp-step-title, .sp-step-title { font-size: 26px; }
.sp-check-item { min-height: 48px; }
.sp-check-box { width: 20px; height: 20px; margin-top: 4px; }
.sp-check-btn { font-size: 13px; text-transform: none; letter-spacing: .02em; min-height: 44px; }
.vendor-category, .vendor-disclaimer { max-width: calc(1200px + var(--page-gutter) * 2); padding-inline: var(--page-gutter); }
.vendor-grid { gap: 0 32px; grid-template-columns: repeat(2,minmax(0,1fr)); }
.vendor-card { background: transparent; border: 0; border-top: 1px solid var(--rule-paper); border-radius: 0; padding: 28px 0; }
.vendor-card:hover { background: transparent; }
.vendor-name { font-size: 26px; }
.vendor-company { font-size: 16px; }
.vendor-specialty { font-size: 12px; letter-spacing: .08em; }
.vendor-contact { font-size: 15px; min-height: 36px; display: inline-flex; align-items: center; overflow-wrap: anywhere; }

@media (min-width: 1600px) {
  :root { --page-gutter: max(72px, calc((100vw - 1440px) / 2)); }
}
@media (max-width: 1100px) {
  .sw-module { grid-template-columns: 1fr 1fr; }
  .sw-figure { grid-column: 1 / -1; grid-row: 1; min-height: 460px; }
  .sw-info { border-right: 0; }
  .sw-index { grid-column: 2; grid-row: 2; }
  .sw-item { grid-template-columns: 48px minmax(0,1fr); }
  .page-contact .contact-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
  .footer-grid { grid-template-columns: 1.2fr 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .start-here, .hp-seller .hp-wrap, .hp-hood { grid-template-columns: 1fr; gap: 36px; }
  .hp-seller .hp-h2, .hp-seller .hp-link, .hp-seller .hp-eyebrow { grid-column: auto; grid-row: auto; }
  .hp-hood { gap: 0; }
  .hp-hood-media { min-height: 420px; }
  .hp-hood-copy { padding-block: 64px; }
  .page-contact .contact-grid { grid-template-columns: 1fr; }
  .contact-left { max-width: 650px; }
  .contact-details { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 28px; }
  .contact-details > div:last-child { grid-column: 1 / -1; }
  .swp-hero-inner { grid-template-columns: 1fr; gap: 22px; }
  .swp-sub { max-width: 55ch; }
  .ni-card--second { margin-top: 44px; }
  .page-about .scene-portrait-text { gap: 0 6%; }
  .page-about .hero-h1 { font-size: clamp(50px, 7.4vw, 78px); }
}
@media (max-width: 768px) {
  .home-page .hero-headline { font-size: clamp(44px, 9.6vw, 70px); }
  .home-page .hero-sub { font-size: 17px; }
  .home-page .hero-content { padding-top: 150px; }
  .sw-head { grid-template-columns: 1fr; gap: 16px; }
  .sw-eyebrow { margin: 0; }
  .sw-module { display: flex; flex-direction: column; }
  .sw-figure { min-height: 0; height: auto; aspect-ratio: 4/3; width: 100%; order: 1; }
  .sw-info { order: 2; padding: 28px 24px; }
  .sw-index { order: 4; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border-top: 1px solid var(--rule-ink); }
  .sw-index::before { grid-column: 1 / -1; font-size: 12px; letter-spacing: .1em; padding: 24px 20px 12px; }
  .sw-item { display: flex; flex-direction: column; align-items: flex-start; padding: 20px; gap: 12px; border-bottom: 1px solid var(--rule-ink); }
  .sw-item:nth-child(2n) { border-left: 1px solid var(--rule-ink); }
  .sw-thumb { width: 100%; height: 88px; object-fit: cover; }
  .sw-item-address { font-size: 17px; }
  .sw-item[aria-current="true"] { box-shadow: inset 0 -3px 0 var(--ink); }
  .sw-address { font-size: 34px; }
  .sw-note { max-width: 40ch; }
  .sw-note--highlight { font-size: 28px; }
  .sw-view { margin-top: 16px; }
  .method-grid { grid-template-columns: 1fr 1fr; gap: 32px 0; }
  .method-step:nth-child(3) { border-left: 0; padding-left: 0; }
  .method-step { padding-inline: 20px; }
  .hp-principle { grid-template-columns: 1fr; }
  .hp-principle-portrait { max-height: 560px; height: auto; aspect-ratio: 4/5; object-position: center 20%; }
  .hp-principle-inner { padding-block: 64px; }
  .home-page .testimonials { padding: var(--section-space) var(--page-gutter) !important; }
  .home-page .testimonials-grid { gap: 36px !important; }
  .home-page .testimonial-card .testimonial-text { font-size: 21px; line-height: 1.6; }
  .home-page .testimonial-card:first-child .testimonial-text { font-size: 28px; }
  .work-directory-inner { grid-template-columns: 1fr 1fr; }
  .work-directory a { padding: 18px 12px; font-size: 14px; }
  .work-directory a + a { padding-left: 16px; }
  .work-directory a:nth-child(3) { border-left: 0; }
  .work-directory a:nth-child(n+3) { border-top: 1px solid var(--rule-ink); }
  .swp-assignment-media img { aspect-ratio: 4/3; }
  .swp-assignment-inner { grid-template-columns: 1fr; }
  .page-about .scene-hero { grid-template-columns: 1fr; }
  .page-about .scene-hero-content { padding-block: 64px; }
  .page-about .hero-h1 { font-size: clamp(56px, 13vw, 92px); }
  .about-hero-portrait { height: auto; max-height: 650px; aspect-ratio: 4/5; }
  .page-about .scene-portrait-text { grid-template-columns: 1fr; }
  .portrait-label, .portrait-lead { grid-column: auto; grid-row: auto; }
  .portrait-lead { font-size: 32px; }
  .family-story-inner { grid-template-columns: 1fr; }
  .family-story-photo { justify-self: center; }
  .ni-card--second { margin-top: 0; }
  .ni-hero { min-height: 76svh; }
  .np-hero { min-height: 76svh; }
  .np-hero-sub, .ni-hero-sub { font-size: 17px; }
  .np-place-photo { position: static; }
  .calc-row { grid-template-columns: 1fr 1fr; }
  .calc-results { position: static; }
  .bp-step-title, .sp-step-title { font-size: 23px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 1 / -1; }
  .footer-col a { min-height: 44px; }
  .footer { padding-top: 52px; }
  .vendor-grid { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .sw-item { padding: 16px 12px; }
  .sw-item-address { font-size: 16px; }
  .sw-thumb { height: 72px; }
  .sw-address { font-size: 30px; }
  .method-grid { grid-template-columns: 1fr; }
  .method-step, .method-step:first-child, .method-step:nth-child(3) { padding: 0; border: 0; }
  .method-step-copy { max-width: 35ch; }
  .contact-details, .calc-row { grid-template-columns: 1fr; }
  .contact-details > div:last-child { grid-column: auto; }
}
@media (prefers-reduced-motion: reduce) {
  .reveal, .fade-up, .hp-reveal, .ni-reveal, .np-reveal, .ss-reveal { opacity: 1; transform: none; }
  .start-here-path:hover { padding-inline: 0; }
}
@media print {
  .work-directory, .np-section-nav { display: none; }
  .sp-check { padding: 0; }
}
