:root {
  --black: #090909;
  --black-soft: #11110f;
  --white: #f7f7f3;
  --paper: #efeee8;
  --ink: #10100f;
  --gray: #a7a69f;
  --line-dark: rgba(255, 255, 255, .18);
  --line-light: rgba(16, 16, 15, .2);
  --gutter: clamp(22px, 4.5vw, 76px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; background: var(--black); color: var(--white); font-family: Inter, "Helvetica Neue", Arial, sans-serif; font-size: 16px; letter-spacing: 0; }
body.menu-open, body.dialog-open { overflow: hidden; }
button, select { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: auto; } /* never stretch photos */

.page-intro { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; background: var(--black); transition: opacity .75s ease, visibility .75s ease; }
.page-intro img { width: min(390px, 62vw); }
body.loaded .page-intro { opacity: 0; visibility: hidden; }

.site-header { position: fixed; z-index: 40; inset: 0 0 auto; height: 86px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 var(--gutter); border-bottom: 1px solid transparent; transition: height .3s ease, background .3s ease, border-color .3s ease; }
.site-header.scrolled { height: 70px; background: rgba(9, 9, 9, .92); border-color: rgba(255,255,255,.11); backdrop-filter: blur(16px); }
.header-brand { width: clamp(168px, 16vw, 215px); }
.desktop-nav { display: flex; gap: clamp(20px, 2.6vw, 40px); }
.desktop-nav a, .header-phone { position: relative; color: rgba(255,255,255,.78); font-size: 12px; }
.desktop-nav a::after { position: absolute; content: ""; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--white); transition: right .25s ease; }
.desktop-nav a:hover::after { right: 0; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 22px; }
.header-book { min-width: 76px; height: 39px; display: inline-flex; align-items: center; justify-content: center; padding: 0 18px; border: 1px solid rgba(255,255,255,.62); background: transparent; transition: background .2s ease, color .2s ease; }
.header-book:hover { background: var(--white); color: var(--black); }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 11px 6px; border: 0; background: none; }
.menu-toggle span { display: block; width: 30px; height: 1px; margin: 7px 0; background: white; transition: transform .25s ease; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

.mobile-menu { position: fixed; z-index: 35; inset: 0; display: none; flex-direction: column; justify-content: center; padding: 104px var(--gutter) 32px; background: var(--black); transform: translateY(-102%); transition: transform .45s cubic-bezier(.22,.8,.2,1); }
.mobile-menu.open { transform: translateY(0); }
.mobile-menu nav { display: grid; gap: 14px; }
.mobile-menu nav a, .mobile-menu nav button { width: fit-content; padding: 0; border: 0; background: none; font-size: clamp(32px, 9vw, 56px); font-weight: 450; text-align: left; }
.mobile-menu-foot { display: flex; justify-content: space-between; gap: 30px; margin-top: auto; color: var(--gray); font-size: 12px; }
.mobile-menu-foot p { margin: 0; }

.hero { position: relative; min-height: 92svh; overflow: hidden; }
.hero-image { position: absolute; inset: -5%; background: #262c23 url("../milk-honey/55.webp") center 52% / cover no-repeat; will-change: transform; }
.hero-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, rgba(0,0,0,.5) 38%, rgba(0,0,0,.04) 72%), linear-gradient(0deg, rgba(0,0,0,.48), transparent 43%); }
.hero-copy { position: absolute; z-index: 1; left: var(--gutter); bottom: clamp(72px, 10vh, 116px); width: min(715px, calc(100vw - 44px)); }
.overline, .section-label { text-transform: uppercase; font-size: 10px; letter-spacing: .15em; }
.overline { margin: 0 0 19px; }
.hero h1 { max-width: 720px; margin: 0; font-size: clamp(50px, 6.7vw, 104px); line-height: .91; font-weight: 470; }
.hero h1 em, .standard-lead em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.hero-support { max-width: 520px; margin: 24px 0 0; color: rgba(255,255,255,.78); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 28px; margin-top: 30px; }
.button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; padding: 0 24px; border: 1px solid currentColor; background: transparent; font-weight: 600; font-size: 12px; transition: background .2s ease, color .2s ease; }
.button-light { background: var(--white); color: var(--black); border-color: var(--white); }
.button-light:hover { background: transparent; color: var(--white); }
.button-dark { background: var(--ink); color: var(--white); border-color: var(--ink); }
.button-dark:hover { background: transparent; color: var(--ink); }
.arrow-link { display: inline-flex; align-items: center; gap: 18px; padding: 0 0 7px; border: 0; border-bottom: 1px solid rgba(16,16,15,.45); background: transparent; font-size: 12px; }
.arrow-link-light { color: white; border-color: rgba(255,255,255,.55); }
.arrow-link span { transition: transform .2s ease; }
.arrow-link:hover span { transform: translate(3px, -3px); }
.hero-credit { position: absolute; right: var(--gutter); bottom: 27px; margin: 0; color: rgba(255,255,255,.55); text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }
.hero-scroll { position: absolute; left: 50%; bottom: 18px; width: 1px; height: 42px; overflow: hidden; background: rgba(255,255,255,.28); }
.hero-scroll span { position: absolute; inset: 0; background: white; animation: scrollCue 2s ease-in-out infinite; }

.light-section { background: var(--paper); color: var(--ink); }
.dark-section { background: var(--black); color: var(--white); }
.work-intro, .standard, .signature, .assets-section, .process, .booking-close { padding: clamp(88px, 11vw, 170px) var(--gutter); }
.section-label { display: flex; gap: 18px; color: #6c6b66; }
.section-label span { color: #aaa9a3; }
.statement-grid { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(245px, .55fr); align-items: end; gap: 9vw; margin-top: 46px; }
.display-serif { max-width: 1050px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(43px, 6.4vw, 96px); line-height: .98; font-weight: 400; }
.statement-side p { margin: 0 0 36px; color: #575650; line-height: 1.7; }

.portfolio-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 38px); padding: 0 var(--gutter) clamp(110px, 14vw, 210px); }
.portfolio-item { margin: 0; }
.image-shell { overflow: hidden; background: #d8d7d0; }
.portfolio-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.portfolio-item:hover img { transform: scale(1.018); }
.portfolio-item figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 10px; color: #65645f; text-transform: uppercase; font-size: 9px; letter-spacing: .08em; }
.portfolio-main { grid-column: 1 / 9; }
.portfolio-main .image-shell { aspect-ratio: 1.46; }
.portfolio-pool { grid-column: 9 / 13; margin-top: 11vw; }
.portfolio-pool .image-shell { aspect-ratio: .71; }
.portfolio-bedroom { grid-column: 1 / 5; margin-top: 1vw; }
.portfolio-bedroom .image-shell { aspect-ratio: .82; }
.portfolio-game { grid-column: 5 / 13; margin-top: 9vw; }
.portfolio-game .image-shell { aspect-ratio: 1.45; }
.portfolio-close { grid-column: 8 / 13; margin-top: 4vw; }
.portfolio-close p { max-width: 440px; color: #575650; line-height: 1.65; }

.standard .section-label { color: #777670; }
.standard-lead { max-width: 1040px; margin: clamp(64px, 8vw, 108px) 0 clamp(72px, 8vw, 112px); font-size: clamp(54px, 7.1vw, 112px); line-height: .91; font-weight: 450; }
.standard-lines { border-top: 1px solid var(--line-dark); }
.standard-line { display: grid; grid-template-columns: 54px minmax(230px, .7fr) 1fr; gap: 28px; align-items: center; min-height: 112px; border-bottom: 1px solid var(--line-dark); }
.standard-line > span { color: #61615d; font-size: 10px; }
.standard-line strong { font-size: clamp(20px, 2vw, 28px); font-weight: 480; }
.standard-line p { max-width: 560px; margin: 0; color: var(--gray); line-height: 1.55; }

.signature-heading { max-width: 1100px; }
.signature-name { margin: 50px 0 10px; font-family: Georgia, "Times New Roman", serif; font-size: clamp(24px, 3vw, 42px); font-style: italic; }
.signature-heading h2 { max-width: 1050px; margin: 0; font-size: clamp(51px, 7.3vw, 112px); line-height: .9; font-weight: 470; }
.signature-layout { display: grid; grid-template-columns: 1.18fr .82fr; gap: clamp(44px, 7vw, 110px); align-items: start; margin-top: clamp(70px, 9vw, 130px); }
.signature-image { aspect-ratio: 1.16; overflow: hidden; }
.signature-image img { height: 100%; object-fit: cover; }
.offer-copy { margin: 0 0 42px; color: #4f4e49; font-size: 18px; line-height: 1.65; }
.included-list { margin: 0; padding: 0; border-top: 1px solid var(--line-light); list-style: none; }
.included-list li { display: grid; grid-template-columns: 74px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line-light); line-height: 1.45; }
.included-list span { color: #73726c; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-tool { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: end; margin-top: 42px; padding: 28px 0; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.price-tool label, .dialog-content label { display: block; margin-bottom: 11px; color: #66655f; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-tool select, .dialog-content select { width: 100%; min-height: 44px; padding: 0 36px 0 0; border: 0; border-radius: 0; border-bottom: 1px solid #85847d; background: transparent; color: var(--ink); }
.price-result { text-align: right; }
.price-result span { display: block; margin-bottom: 4px; color: #66655f; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.price-result strong { font-size: clamp(35px, 4vw, 56px); font-weight: 480; }
.scale-note { margin: 14px 0 32px; color: #74736d; font-size: 11px; }

.story-section { display: grid; grid-template-columns: 1.12fr .88fr; min-height: 850px; }
.story-visual { position: relative; min-height: 750px; overflow: hidden; }
.story-visual img { height: 100%; object-fit: cover; }
.story-visual p { position: absolute; left: 24px; bottom: 20px; margin: 0; color: rgba(255,255,255,.76); text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }
.story-content { display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 8vw, 130px) var(--gutter); }
.story-content h2 { margin: 48px 0 20px; font-size: clamp(42px, 5vw, 78px); line-height: .97; font-weight: 470; }
.story-intro { max-width: 430px; margin: 0 0 48px; color: var(--gray); line-height: 1.65; }
.enhancement-list { border-top: 1px solid var(--line-dark); }
.enhancement-list button, .enhancement-list a { width: 100%; display: grid; grid-template-columns: 1fr auto 20px; gap: 20px; align-items: center; min-height: 82px; padding: 0; border: 0; border-bottom: 1px solid var(--line-dark); background: transparent; color: inherit; text-align: left; }
.enhancement-list button:hover, .enhancement-list a:hover { padding-left: 10px; background: rgba(255,255,255,.035); }
.enhancement-list span { display: grid; gap: 7px; }
.enhancement-list b { font-size: 17px; font-weight: 500; }
.enhancement-list small { color: #85847f; }
.enhancement-list strong { font-size: 18px; font-weight: 470; }
.enhancement-list i, .asset-rows i { font-style: normal; transition: transform .2s ease; }
.enhancement-list button:hover i, .enhancement-list a:hover i, .asset-rows button:hover i, .asset-rows a:hover i { transform: translate(3px, -3px); }
.pairing-note { color: #777670; font-size: 11px; }

.assets-heading { display: grid; grid-template-columns: 1fr minmax(240px, .42fr); gap: 8vw; align-items: end; margin: 46px 0 70px; }
.assets-heading h2 { max-width: 800px; margin: 0; font-size: clamp(43px, 5vw, 74px); line-height: .98; font-weight: 470; }
.assets-heading p { margin: 0; color: #575650; line-height: 1.65; }
.asset-rows { border-top: 1px solid var(--line-light); }
.asset-rows button, .asset-rows a { width: 100%; display: grid; grid-template-columns: 1fr 1fr auto 24px; gap: 22px; align-items: center; min-height: 88px; padding: 0; border: 0; border-bottom: 1px solid var(--line-light); background: transparent; color: var(--ink); text-align: left; text-decoration: none; transition: padding .2s ease, background .2s ease; }
.asset-rows button:hover, .asset-rows a:hover { padding: 0 12px; background: rgba(0,0,0,.035); }
.asset-rows button > span, .asset-rows a > span { font-size: 20px; }
.asset-rows small { color: #686761; }
.asset-rows strong { font-size: 19px; font-weight: 500; }

.process .section-label { color: #777670; }
.process-head { display: grid; grid-template-columns: 1.25fr .45fr; gap: 8vw; align-items: end; margin: 50px 0 clamp(80px, 10vw, 145px); }
.process-head h2 { margin: 0; font-size: clamp(55px, 8vw, 120px); line-height: .9; font-weight: 470; }
.process-head p { margin: 0; color: var(--gray); line-height: 1.65; }
.process-arc { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 4vw, 70px); padding-top: 83px; }
.arc-line { position: absolute; top: 0; left: 3%; width: 94%; height: 155px; border: 1px solid rgba(255,255,255,.26); border-bottom: 0; border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.process-step { position: relative; background: var(--black); padding-top: 12px; }
.process-step::before { position: absolute; content: ""; top: -8px; left: 0; width: 7px; height: 7px; border-radius: 50%; background: var(--white); }
.process-step span { color: #6d6c67; font-size: 10px; }
.process-step strong { display: block; margin: 20px 0 13px; font-size: 25px; font-weight: 480; }
.process-step p { margin: 0; color: var(--gray); font-size: 13px; line-height: 1.6; }
.staging-note { max-width: 760px; margin: clamp(75px, 9vw, 130px) 0 0 auto; padding-top: 22px; border-top: 1px solid var(--line-dark); color: var(--gray); line-height: 1.65; }
.staging-note span { display: block; margin-bottom: 9px; color: var(--white); text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }

.manager-section { position: relative; min-height: 82svh; overflow: hidden; }
.manager-image { position: absolute; inset: 0; background: #24221e url("../milk-honey/4.webp") center 48% / cover no-repeat; }
.manager-wash { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.33) 58%, rgba(0,0,0,.08)); }
.manager-copy { position: absolute; left: var(--gutter); top: 50%; width: min(900px, calc(100% - (var(--gutter) * 2))); transform: translateY(-50%); }
.manager-copy h2 { max-width: 900px; margin: 0; font-size: clamp(49px, 6.5vw, 96px); line-height: .92; font-weight: 470; }
.manager-copy > p:not(.overline) { max-width: 470px; margin: 28px 0 34px; color: rgba(255,255,255,.78); line-height: 1.6; }

.authorship { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 760px; }
.authorship-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(80px, 10vw, 155px) var(--gutter); }
.authorship-copy blockquote { margin: 68px 0 25px; color: #6a6963; font-family: Georgia, "Times New Roman", serif; font-size: clamp(22px, 2.4vw, 36px); font-style: italic; }
.authorship-copy h2 { max-width: 650px; margin: 0; font-size: clamp(39px, 4.7vw, 72px); line-height: .98; font-weight: 470; }
.authorship-copy > p { max-width: 530px; margin: 28px 0 38px; color: #575650; line-height: 1.7; }
.authorship-copy .arrow-link { width: fit-content; }
.authorship-image { min-height: 650px; overflow: hidden; }
.authorship-image img { height: 100%; object-fit: cover; }

.booking-close { min-height: 650px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.booking-close h2 { max-width: 1080px; margin: 0 0 44px; font-size: clamp(52px, 7vw, 104px); line-height: .92; font-weight: 470; }
.closing-signature { width: clamp(190px, 19vw, 285px); height: auto; margin-top: 28px; opacity: .72; }

footer { padding: clamp(70px, 8vw, 120px) var(--gutter) 30px; border-top: 1px solid var(--line-dark); background: var(--black-soft); }
.footer-brand { display: flex; justify-content: space-between; align-items: flex-end; padding-bottom: 55px; border-bottom: 1px solid var(--line-dark); }
.footer-brand img { width: clamp(225px, 30vw, 450px); }
.footer-brand a { font-size: clamp(19px, 2vw, 28px); }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 45px; padding: 44px 0 70px; color: var(--gray); font-size: 12px; line-height: 1.7; }
.footer-grid p { margin: 0; }
.footer-grid small { color: #6c6b66; }
.footer-grid nav { display: grid; gap: 7px; }
.footer-grid a { color: var(--white); }
.footer-legal { display: flex; justify-content: space-between; color: #5f5e59; text-transform: uppercase; font-size: 9px; letter-spacing: .1em; }

.booking-dialog { position: relative; width: min(720px, calc(100vw - 30px)); max-height: calc(100svh - 30px); margin: auto; padding: 0; border: 1px solid #383834; border-radius: 0; background: var(--black); color: var(--white); }
.booking-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(9px); }
.dialog-close { position: absolute; z-index: 2; top: 12px; right: 14px; width: 44px; height: 44px; border: 0; background: transparent; font-size: 31px; font-weight: 200; }
.dialog-content { padding: clamp(50px, 7vw, 84px); }
.dialog-content h2 { margin: 0 0 17px; font-size: clamp(39px, 6vw, 67px); line-height: .95; font-weight: 470; }
.dialog-content > p { color: var(--gray); line-height: 1.6; }
.dialog-content label { margin-top: 36px; color: var(--gray); }
.dialog-content select { min-height: 52px; color: var(--white); border-color: #72716c; }
.dialog-content option { background: var(--black); color: white; }
.dialog-continue { width: 100%; gap: 16px; margin-top: 28px; }
.dialog-help { margin: 24px 0 0; font-size: 12px; }
.dialog-help a { color: var(--white); border-bottom: 1px solid #777; }

.booking-router { width: 100vw; max-width: none; height: 100svh; max-height: none; margin: 0; padding: 0; border: 0; background: var(--black); color: var(--white); }
.booking-router::backdrop { background: var(--black); }
.router-close { position: fixed; z-index: 3; top: 22px; right: 24px; width: 48px; height: 48px; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.18); color: white; font-size: 31px; font-weight: 200; }
.router-heading { position: absolute; z-index: 2; top: 28px; left: 50%; transform: translateX(-50%); white-space: nowrap; }
.router-heading .overline { margin: 0; color: rgba(255,255,255,.7); }
.router-grid { display: grid; grid-template-columns: 1fr 1fr; height: 100%; }
.router-choice { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; min-width: 0; padding: clamp(70px, 8vw, 128px) var(--gutter); border: 0; border-radius: 0; color: inherit; text-align: left; overflow: hidden; }
.router-choice::before { position: absolute; content: ""; inset: 0; transition: transform .7s cubic-bezier(.2,.75,.2,1); }
.router-choice:hover::before { transform: scale(1.018); }
.router-choice > * { position: relative; z-index: 1; }
.router-choice span { text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.router-choice strong { max-width: 620px; margin: 22px 0; font-size: clamp(43px, 5vw, 78px); line-height: .95; font-weight: 470; }
.router-choice p { max-width: 430px; margin: 0 0 34px; line-height: 1.6; }
.router-choice b { display: inline-flex; gap: 18px; padding-bottom: 8px; border-bottom: 1px solid currentColor; font-size: 12px; }
.router-choice i { font-style: normal; }
.router-housefly { background: #f2f1eb; color: #111; }
.router-housefly::before { background: linear-gradient(160deg, rgba(255,255,255,.72), transparent 55%); }
.router-housefly p { color: #5d5c56; }
.router-capone { background: #181916; }
.router-capone::before { background: linear-gradient(0deg, rgba(0,0,0,.78), rgba(0,0,0,.15)), url("../milk-honey/55.webp") center / cover no-repeat; }
.router-capone p { color: rgba(255,255,255,.76); }

/* Interior pages */
.page-hero { position: relative; min-height: 76svh; display: flex; align-items: flex-end; overflow: hidden; background: #171714; }
.page-hero-media, .page-hero-wash { position: absolute; inset: 0; }
.page-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.page-hero-wash { background: linear-gradient(90deg, rgba(0,0,0,.8), rgba(0,0,0,.3) 58%, rgba(0,0,0,.08)), linear-gradient(0deg, rgba(0,0,0,.58), transparent 48%); }
.page-hero-content { position: relative; z-index: 1; width: 100%; padding: 150px var(--gutter) clamp(62px, 8vw, 110px); }
.page-hero-content h1 { max-width: 1080px; margin: 0; font-size: clamp(55px, 8.2vw, 126px); line-height: .88; font-weight: 470; }
.page-hero-content h1 em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.page-hero-content > p:not(.overline) { max-width: 560px; margin: 28px 0 0; color: rgba(255,255,255,.78); font-size: clamp(15px, 1.4vw, 18px); line-height: 1.65; }
.page-hero-credit { position: absolute; z-index: 1; right: var(--gutter); bottom: 28px; margin: 0; color: rgba(255,255,255,.56); text-transform: uppercase; font-size: 9px; letter-spacing: .11em; }
.page-section { padding: clamp(90px, 11vw, 170px) var(--gutter); }
.page-section.light-section + .page-section.light-section { padding-top: 0; }
.intro-pair { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); gap: 9vw; align-items: end; }
.intro-pair h2 { max-width: 950px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(44px, 6.2vw, 92px); line-height: .98; font-weight: 400; }
.intro-pair > div > p { margin: 0 0 34px; color: #575650; line-height: 1.7; }
.dark-section .intro-pair > div > p { color: var(--gray); }
.eyebrow-line { display: flex; gap: 18px; margin-bottom: 44px; color: #777670; text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.eyebrow-line span { color: #aaa9a3; }
.project-index { background: var(--paper); color: var(--ink); }
.project-row { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(35px, 6vw, 100px); align-items: center; padding: clamp(45px, 6vw, 90px) 0; border-top: 1px solid var(--line-light); }
.project-row:last-child { border-bottom: 1px solid var(--line-light); }
.project-row:nth-child(even) .project-media { order: 2; }
.project-media { position: relative; aspect-ratio: 1.43; overflow: hidden; }
.project-media img { height: 100%; object-fit: cover; transition: transform .8s cubic-bezier(.2,.75,.2,1); }
.project-row:hover .project-media img { transform: scale(1.015); }
.project-copy .overline { color: #73726c; }
.project-copy h2 { margin: 0 0 20px; font-size: clamp(43px, 5.7vw, 82px); line-height: .94; font-weight: 470; }
.project-copy p { max-width: 470px; margin: 0 0 32px; color: #575650; line-height: 1.65; }
.project-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line-dark); border-bottom: 1px solid var(--line-dark); }
.project-meta div { min-height: 108px; padding: 26px; border-right: 1px solid var(--line-dark); }
.project-meta div:last-child { border-right: 0; }
.project-meta span { display: block; margin-bottom: 12px; color: #777670; text-transform: uppercase; font-size: 9px; letter-spacing: .11em; }
.project-meta strong { font-size: 17px; font-weight: 470; }
.project-statement { max-width: 1080px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6.3vw, 94px); line-height: .98; font-weight: 400; }
.gallery-mosaic { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(15px, 2vw, 30px); padding: 0 var(--gutter) clamp(90px, 11vw, 170px); background: var(--paper); }
.gallery-mosaic figure { margin: 0; overflow: hidden; }
.gallery-mosaic img { height: 100%; object-fit: cover; }
.gallery-mosaic .g-wide { grid-column: span 8; aspect-ratio: 1.5; }
.gallery-mosaic .g-tall { grid-column: span 4; aspect-ratio: .72; }
.gallery-mosaic .g-half { grid-column: span 6; aspect-ratio: 1.2; }
.gallery-mosaic .g-full { grid-column: 1 / -1; aspect-ratio: 1.8; }
.gallery-mosaic .offset { margin-top: 9vw; }
.story-chapter { padding: clamp(90px, 11vw, 170px) var(--gutter); }
.story-chapter-head { display: grid; grid-template-columns: minmax(140px, .35fr) minmax(0, 1.65fr); gap: clamp(45px, 8vw, 130px); align-items: start; margin-bottom: clamp(60px, 8vw, 120px); }
.story-chapter-index { margin: 9px 0 0; color: #777670; text-transform: uppercase; font-size: 10px; letter-spacing: .13em; }
.story-chapter-head h2 { max-width: 980px; margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(43px, 6vw, 88px); line-height: .97; font-weight: 400; }
.story-chapter-head div > p { max-width: 650px; margin: 32px 0 0; color: #575650; font-size: 17px; line-height: 1.72; }
.dark-section .story-chapter-head div > p { color: var(--gray); }
.story-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(15px, 2vw, 30px); align-items: start; }
.story-gallery figure { margin: 0; overflow: hidden; }
.story-gallery img { height: 100%; object-fit: cover; }
.story-eight { grid-column: span 8; aspect-ratio: 3 / 2; }
.story-four { grid-column: span 4; aspect-ratio: 3 / 2; }
.story-six { grid-column: span 6; aspect-ratio: 3 / 2; }
.story-full { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
.story-offset { margin-top: 8vw !important; }
.story-offset-small { margin-top: 4vw !important; }
.next-story { padding: 0 var(--gutter); }
.next-story a { display: flex; justify-content: space-between; align-items: center; gap: 30px; min-height: 170px; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); color: var(--ink); }
.next-story span { display: flex; flex-direction: column; gap: 12px; }
.next-story small { color: #777670; text-transform: uppercase; font-size: 9px; letter-spacing: .12em; }
.next-story strong { font-size: clamp(28px, 4vw, 54px); font-weight: 470; }
.next-story i { font-size: 28px; font-style: normal; transition: transform .25s ease; }
.next-story a:hover i { transform: translate(4px, -4px); }
.film-pair { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(24px, 4vw, 64px); align-items: start; }
.film-panel { border-top: 1px solid var(--line-dark); padding-top: 18px; }
.film-panel header { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.film-panel h3 { margin: 0; font-size: clamp(25px, 3vw, 42px); font-weight: 470; }
.film-panel header span { color: var(--gray); font-size: 12px; }
.video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; background: #1b1b19; }
.video-frame.vertical { max-width: 420px; aspect-ratio: 9 / 16; margin-left: auto; }
.video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.service-intro { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(300px, .9fr); gap: clamp(50px, 9vw, 140px); align-items: start; }
.service-intro h2 { margin: 0; font-size: clamp(49px, 6.5vw, 98px); line-height: .94; font-weight: 470; }
.service-intro-copy p { color: #575650; font-size: 17px; line-height: 1.7; }
.service-intro-copy p:first-child { margin-top: 0; }
.dark-section .service-intro-copy p { color: var(--gray); }
.feature-rows { margin-top: clamp(65px, 8vw, 110px); border-top: 1px solid var(--line-light); }
.dark-section .feature-rows { border-color: var(--line-dark); }
.feature-row { display: grid; grid-template-columns: 50px minmax(230px, .65fr) 1fr; gap: 28px; align-items: start; padding: 30px 0; border-bottom: 1px solid var(--line-light); }
.dark-section .feature-row { border-color: var(--line-dark); }
.feature-row > span { color: #777670; font-size: 10px; }
.feature-row h3 { margin: 0; font-size: clamp(21px, 2.2vw, 30px); font-weight: 480; }
.feature-row p { max-width: 620px; margin: 0; color: #575650; line-height: 1.65; }
.dark-section .feature-row p { color: var(--gray); }
.pricing-board { display: grid; grid-template-columns: minmax(0, .85fr) minmax(320px, 1.15fr); gap: clamp(48px, 8vw, 120px); align-items: start; }
.pricing-board h2 { max-width: 650px; margin: 0; font-size: clamp(47px, 6.3vw, 92px); line-height: .94; font-weight: 470; }
.pricing-board .signature-offer { max-width: 620px; }
.enhancement-board { border-top: 1px solid var(--line-dark); }
.enhancement-board article { display: grid; grid-template-columns: 1fr minmax(280px, .65fr) auto; gap: 28px; align-items: center; min-height: 116px; border-bottom: 1px solid var(--line-dark); }
.enhancement-board h3 { margin: 0; font-size: clamp(21px, 2.4vw, 32px); font-weight: 480; }
.enhancement-board p { margin: 0; color: var(--gray); line-height: 1.55; }
.enhancement-board strong { font-size: clamp(23px, 2.5vw, 34px); font-weight: 470; white-space: nowrap; }
.utility-board { border-top: 1px solid var(--line-light); }
.utility-board article { display: grid; grid-template-columns: 1fr 1fr auto; gap: 24px; align-items: center; min-height: 88px; border-bottom: 1px solid var(--line-light); }
.utility-board h3 { margin: 0; font-size: 20px; font-weight: 500; }
.utility-board p { margin: 0; color: #686761; }
.utility-board strong { font-size: 19px; font-weight: 500; white-space: nowrap; }
.manager-lead { max-width: 1050px; margin: 0; font-size: clamp(52px, 7.5vw, 112px); line-height: .91; font-weight: 470; }
.manager-lead em { font-family: Georgia, "Times New Roman", serif; font-weight: 400; }
.manager-path { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: clamp(75px, 9vw, 130px); border-top: 1px solid var(--line-dark); }
.manager-path article { min-height: 260px; padding: 30px clamp(20px, 3vw, 45px) 30px 0; border-right: 1px solid var(--line-dark); }
.manager-path article + article { padding-left: clamp(20px, 3vw, 45px); }
.manager-path article:last-child { border-right: 0; }
.manager-path span { color: #777670; font-size: 10px; }
.manager-path h3 { margin: 55px 0 18px; font-size: 25px; font-weight: 480; }
.manager-path p { margin: 0; color: var(--gray); line-height: 1.65; }
.quote-band { display: grid; grid-template-columns: 1fr .42fr; gap: 8vw; align-items: end; }
.quote-band blockquote { margin: 0; font-family: Georgia, "Times New Roman", serif; font-size: clamp(42px, 6.2vw, 92px); line-height: .98; }
.quote-band p { margin: 0; color: var(--gray); line-height: 1.7; }
.city-sections { border-top: 1px solid var(--line-light); }
.city-section { display: grid; grid-template-columns: 220px 1fr; gap: clamp(35px, 8vw, 130px); padding: 48px 0; border-bottom: 1px solid var(--line-light); }
.city-section h3 { margin: 0; font-size: 24px; font-weight: 500; }
.city-section p { max-width: 760px; margin: 0; color: #575650; line-height: 1.7; }
.faq-list { border-top: 1px solid var(--line-light); }
.faq-list details { border-bottom: 1px solid var(--line-light); }
.faq-list summary { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; min-height: 84px; cursor: pointer; font-size: clamp(18px, 2vw, 25px); list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; color: #777670; font-size: 25px; font-weight: 300; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 780px; margin: -4px 0 28px; color: #575650; line-height: 1.7; }
.book-page { min-height: 100svh; display: grid; grid-template-columns: 1fr 1fr; background: var(--black); }
.book-choice { position: relative; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(110px, 10vw, 160px) var(--gutter) clamp(65px, 8vw, 110px); overflow: hidden; }
.book-choice > * { position: relative; z-index: 1; }
.book-choice h1, .book-choice h2 { max-width: 650px; margin: 16px 0 22px; font-size: clamp(48px, 6.2vw, 92px); line-height: .92; font-weight: 470; }
.book-choice p { max-width: 450px; margin: 0 0 34px; line-height: 1.65; }
.book-housefly { background: var(--paper); color: var(--ink); }
.book-housefly p { color: #575650; }
.book-capone { color: white; }
.book-capone::before { position: absolute; content: ""; inset: 0; background: linear-gradient(0deg, rgba(0,0,0,.82), rgba(0,0,0,.16)), url("../milk-honey/55.webp") center / cover no-repeat; }
.book-back { position: fixed; z-index: 3; top: 24px; left: var(--gutter); color: white; font-size: 12px; }
.book-page-mark { position: fixed; z-index: 3; top: 22px; left: 50%; width: 190px; transform: translateX(-50%); }
.not-found { min-height: 100svh; display: grid; place-items: center; padding: 100px var(--gutter); text-align: center; }
.not-found strong { display: block; color: #5e5d58; font-size: clamp(90px, 18vw, 260px); line-height: .8; font-weight: 450; }
.not-found h1 { margin: 35px 0 18px; font-size: clamp(38px, 5vw, 70px); font-weight: 470; }
.not-found p { max-width: 500px; margin: 0 auto 35px; color: var(--gray); line-height: 1.65; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .85s ease, transform .85s cubic-bezier(.2,.75,.2,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.intro-reveal { opacity: 0; transform: translateY(19px); }
body.loaded .intro-reveal { opacity: 1; transform: translateY(0); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.75,.2,1); }
body.loaded .intro-reveal:nth-child(2) { transition-delay: .12s; }
body.loaded .intro-reveal:nth-child(3) { transition-delay: .22s; }
body.loaded .intro-reveal:nth-child(4) { transition-delay: .32s; }
body.loaded .intro-reveal:nth-child(5) { transition-delay: .42s; }
@keyframes scrollCue { 0% { transform: translateY(-100%); } 55%, 100% { transform: translateY(100%); } }

@media (max-width: 1050px) {
  .desktop-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .menu-toggle, .mobile-menu { display: flex; }
  .header-phone, .header-book { display: none; }
  .signature-layout { grid-template-columns: 1fr; }
  .signature-image { aspect-ratio: 1.55; }
  .story-section { grid-template-columns: 1fr; }
  .story-visual { min-height: 62svh; }
  .story-content { min-height: 720px; }
  .authorship { grid-template-columns: 1fr; }
  .authorship-image { min-height: 60svh; }
  .project-row { grid-template-columns: 1fr; }
  .project-row:nth-child(even) .project-media { order: 0; }
  .film-pair { grid-template-columns: 1fr; }
  .video-frame.vertical { margin: 0; }
  .service-intro, .pricing-board { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .site-header { height: 72px; }
  .header-brand { width: 176px; }
  .hero { min-height: 93svh; }
  .hero-image { background-position: 59% center; }
  .hero-wash { background: linear-gradient(0deg, rgba(0,0,0,.84), rgba(0,0,0,.2) 72%, rgba(0,0,0,.35)); }
  .hero-copy { bottom: 62px; }
  .hero h1 { font-size: clamp(46px, 13.8vw, 72px); }
  .hero-support { max-width: 390px; font-size: 14px; }
  .hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }
  .hero-actions .button { width: 100%; }
  .hero-credit, .hero-scroll { display: none; }
  .statement-grid, .assets-heading, .process-head { grid-template-columns: 1fr; gap: 30px; }
  .portfolio-grid { grid-template-columns: 1fr; }
  .portfolio-main, .portfolio-pool, .portfolio-bedroom, .portfolio-game, .portfolio-close { grid-column: 1; margin-top: 18px; }
  .portfolio-main .image-shell, .portfolio-game .image-shell { aspect-ratio: 1.05; }
  .portfolio-pool .image-shell, .portfolio-bedroom .image-shell { aspect-ratio: .83; }
  .standard-line { grid-template-columns: 35px 1fr; padding: 26px 0; }
  .standard-line p { grid-column: 2; }
  .signature-heading h2 { font-size: clamp(47px, 14vw, 76px); }
  .signature-image { aspect-ratio: .92; }
  .price-tool { grid-template-columns: 1fr; }
  .price-result { display: flex; justify-content: space-between; align-items: end; text-align: left; }
  .asset-rows button, .asset-rows a { grid-template-columns: 1fr auto 18px; padding: 20px 0; }
  .asset-rows small { grid-column: 1; grid-row: 2; }
  .asset-rows strong { grid-column: 2; grid-row: 1 / 3; }
  .asset-rows i { grid-column: 3; grid-row: 1 / 3; }
  .process-arc { grid-template-columns: 1fr 1fr; gap: 52px 24px; padding-top: 0; }
  .arc-line { display: none; }
  .process-step { padding-top: 18px; border-top: 1px solid var(--line-dark); }
  .process-step::before { top: -4px; }
  .manager-section { min-height: 720px; }
  .manager-image { background-position: 58% center; }
  .manager-wash { background: linear-gradient(0deg, rgba(0,0,0,.84), rgba(0,0,0,.2) 78%); }
  .manager-copy { top: auto; bottom: 70px; transform: none; width: calc(100% - 44px); }
  .manager-copy h2 { font-size: clamp(47px, 13vw, 74px); }
  .router-heading { top: 24px; left: var(--gutter); transform: none; }
  .router-grid { grid-template-columns: 1fr; }
  .router-choice { min-height: 50svh; padding-top: 64px; padding-bottom: 42px; }
  .router-choice strong { margin: 13px 0; font-size: clamp(34px, 9vw, 52px); }
  .router-choice p { margin-bottom: 21px; font-size: 13px; }
  .router-housefly { justify-content: flex-end; }
  .router-capone { justify-content: center; }
  .footer-brand { align-items: flex-start; flex-direction: column; gap: 30px; }
  .footer-grid { grid-template-columns: 1fr; }
  .page-hero { min-height: 72svh; }
  .page-hero-content h1 { font-size: clamp(48px, 13vw, 76px); }
  .page-hero-credit { display: none; }
  .intro-pair { grid-template-columns: 1fr; gap: 34px; }
  .project-meta { grid-template-columns: 1fr 1fr; }
  .project-meta div:nth-child(2) { border-right: 0; }
  .project-meta div:nth-child(-n+2) { border-bottom: 1px solid var(--line-dark); }
  .gallery-mosaic { grid-template-columns: 1fr; }
  .gallery-mosaic .g-wide, .gallery-mosaic .g-tall, .gallery-mosaic .g-half, .gallery-mosaic .g-full { grid-column: 1; aspect-ratio: 1.05; }
  .gallery-mosaic .g-tall { aspect-ratio: .82; }
  .gallery-mosaic .offset { margin-top: 0; }
  .story-chapter-head { grid-template-columns: 1fr; gap: 26px; }
  .story-gallery { grid-template-columns: 1fr; }
  .story-eight, .story-four, .story-six, .story-full { grid-column: 1; aspect-ratio: 1.05; }
  .story-four { aspect-ratio: .84; }
  .story-offset, .story-offset-small { margin-top: 0 !important; }
  .next-story a { min-height: 140px; }
  .feature-row { grid-template-columns: 34px 1fr; }
  .feature-row p { grid-column: 2; }
  .enhancement-board article { grid-template-columns: 1fr auto; padding: 24px 0; }
  .enhancement-board p { grid-column: 1; }
  .enhancement-board strong { grid-column: 2; grid-row: 1 / 3; }
  .utility-board article { grid-template-columns: 1fr auto; padding: 22px 0; }
  .utility-board p { grid-column: 1; }
  .utility-board strong { grid-column: 2; grid-row: 1 / 3; }
  .manager-path { grid-template-columns: 1fr; }
  .manager-path article, .manager-path article + article { min-height: 0; padding: 28px 0 38px; border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .manager-path h3 { margin-top: 25px; }
  .quote-band { grid-template-columns: 1fr; gap: 35px; }
  .city-section { grid-template-columns: 1fr; gap: 18px; }
  .book-page { grid-template-columns: 1fr; }
  .book-choice { min-height: 56svh; }
  .book-page-mark { left: auto; right: var(--gutter); width: 165px; transform: none; }
}

@media (max-width: 440px) {
  .mobile-menu-foot { flex-direction: column; }
  .display-serif { font-size: 42px; }
  .standard-lead { font-size: 58px; }
  .enhancement-list button, .enhancement-list a { grid-template-columns: 1fr auto 16px; gap: 10px; }
  .enhancement-list small { max-width: 190px; }
  .asset-rows button > span, .asset-rows a > span { font-size: 17px; }
  .asset-rows strong { font-size: 16px; }
  .process-arc { grid-template-columns: 1fr; }
  .booking-close h2 { font-size: 53px; }
  .project-meta { grid-template-columns: 1fr; }
  .project-meta div { border-right: 0; border-bottom: 1px solid var(--line-dark); }
  .project-meta div:last-child { border-bottom: 0; }
  .enhancement-board article, .utility-board article { grid-template-columns: 1fr; }
  .enhancement-board p, .enhancement-board strong, .utility-board p, .utility-board strong { grid-column: 1; grid-row: auto; }
  .book-choice { min-height: 62svh; }
  .book-page-mark { display: none; }
}


/* Wave 2 Collections / Photography Archive cards */
.collections-hub .hero-support,
.collections-hub .hero-support strong { color: rgba(247,247,243,.82); font-size: clamp(15px, 1.5vw, 18px); line-height: 1.55; font-weight: 400; }
.collections-hub .hero-support strong { color: var(--white); font-weight: 500; }
.arrow-link-light { border-bottom-color: rgba(247,247,243,.45); color: var(--white); }
.archive-card { margin: 0; background: transparent; color: var(--ink); }
/* Archive cards must stay visible; reveal IO was leaving most cards opacity 0 */
.archive-card.reveal { opacity: 1; transform: none; }
.archive-card-grid { align-items: start; }
.archive-card__link {
  display: flex;
  flex-direction: column;
  gap: 16px;
  height: auto;
  color: inherit;
}
/* Landscape-first media: Capone photos are ~3:2. Never stretch. Cover crops only. */
.archive-card__media,
.archive-card__media.image-shell {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #d8d6ce;
}
.archive-card__media img,
.archive-card__media .wp-post-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}
.archive-card__placeholder {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background:
    linear-gradient(135deg, rgba(16,16,15,.06) 0%, rgba(16,16,15,.14) 100%),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 10px,
      rgba(16,16,15,.04) 10px,
      rgba(16,16,15,.04) 11px
    );
}

.archive-card__body { display: grid; gap: 8px; align-content: start; }
.archive-badge {
  display: inline-flex;
  width: fit-content;
  margin: 0;
  padding: 5px 9px;
  border: 1px solid var(--line-light);
  color: #66655f;
  text-transform: uppercase;
  font-size: 9px;
  letter-spacing: .12em;
  font-weight: 500;
}
.archive-card__title {
  margin: 4px 0 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 2.4vw, 30px);
  line-height: 1.15;
  font-weight: 400;
}
.archive-card__date {
  margin: 0;
  color: #66655f;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: .1em;
}
.archive-card__excerpt {
  margin: 4px 0 8px;
  color: #3d3d38;
  font-size: 15px;
  line-height: 1.55;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.archive-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
}
.archive-pagination a,
.archive-pagination span {
  color: var(--ink);
  font-size: 12px;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.single-post .entry-content > *:first-child { margin-top: 0; }
.single-post .entry-content img { height: auto; }
.single-post .entry-content p { line-height: 1.65; }

@media (max-width: 760px) {
  .archive-card-grid { grid-template-columns: 1fr !important; }
}

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

/* --- 0.2.6 Property story gallery: landscape, aligned, no beige gaps --- */
.story-gallery {
  align-items: start;
}
.story-gallery figure {
  position: relative;
  overflow: hidden;
  background: transparent;
  margin: 0;
}
.story-gallery img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center center;
}
/* Landscape-first frames (Capone photos are ~3:2). No portrait slots. */
.story-eight { grid-column: span 8; aspect-ratio: 3 / 2; }
.story-four { grid-column: span 4; aspect-ratio: 3 / 2; }
.story-six { grid-column: span 6; aspect-ratio: 3 / 2; }
.story-full { grid-column: 1 / -1; aspect-ratio: 3 / 2; }
/* Kill intentional stagger that reads as broken alignment */
body.page-property-story .story-offset,
body.page-property-story .story-offset-small,
.property-story-locked .story-offset,
.property-story-locked .story-offset-small {
  margin-top: 0 !important;
}
.page-hero-media {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.page-hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 760px) {
  .story-eight, .story-four, .story-six, .story-full {
    grid-column: 1;
    aspect-ratio: 3 / 2;
  }
}

body.page-property-story .film-panel header span {
  white-space: nowrap;
}

/* --- 0.2.7 Property story full-bleed photo hero (Brad mockup) --- */
.property-story-hero {
  min-height: 92svh;
  background: #0a0a0a;
}
.property-story-hero .page-hero-media,
.property-story-hero .page-hero-wash {
  position: absolute;
  inset: 0;
}
.property-story-hero .page-hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 45%;
}
.property-story-hero .page-hero-wash {
  background:
    linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.28) 42%, rgba(0,0,0,.18) 100%),
    linear-gradient(90deg, rgba(0,0,0,.45) 0%, rgba(0,0,0,.12) 55%, transparent 100%);
}
.property-story-hero__content {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  width: 100%;
  min-height: 92svh;
  padding: 150px var(--gutter) clamp(48px, 7vw, 88px);
}
.property-story-hero__content h1 {
  max-width: 14ch;
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(52px, 8vw, 110px);
  line-height: .9;
  font-weight: 400;
  letter-spacing: .01em;
}
.property-story-hero__content h1 em {
  font-style: italic;
  font-weight: 400;
}
.property-story-hero__location {
  margin: 18px 0 0;
  color: rgba(255,255,255,.88);
  text-transform: uppercase;
  font-size: clamp(11px, 1.1vw, 13px);
  letter-spacing: .18em;
  font-weight: 500;
}
@media (max-width: 760px) {
  .property-story-hero,
  .property-story-hero__content {
    min-height: 78svh;
  }
  .property-story-hero__content h1 {
    font-size: clamp(44px, 14vw, 72px);
  }
}

/* --- 0.2.8 Previous showcase only (newest first). Class name next-story kept for layout. --- */
.previous-story small { letter-spacing: .16em; }

/* --- 0.2.9 Forrest House editorial story: native aspect, no crop. --- */
/* Scoped to .property-story-editorial so Milk & Honey cover frames stay intact. */

.property-story-editorial .story-editorial-hero {
  position: relative;
  width: 100%;
  height: auto;
  min-height: 0;
  overflow: hidden;
  background: #0a0a0a;
}
.property-story-editorial .story-editorial-hero__img {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: unset;
  object-position: unset;
}
.property-story-editorial .story-editorial-hero__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(0deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.12) 38%, rgba(0,0,0,.16) 100%);
  pointer-events: none;
}
.property-story-editorial .story-editorial-hero__title {
  position: absolute;
  left: var(--gutter);
  right: var(--gutter);
  bottom: clamp(36px, 6vw, 96px);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.property-story-editorial .story-editorial-hero__title h1 {
  max-width: 12ch;
  margin: 0;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(54px, 7.2vw, 118px);
  line-height: .79;
  font-weight: 400;
  letter-spacing: 0;
}
.property-story-editorial .story-editorial-hero__title p {
  margin: 22px 0 0;
  color: rgba(255,255,255,.92);
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: .24em;
  font-weight: 500;
}

.property-story-editorial .story-editorial-opening {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
  gap: clamp(40px, 10vw, 120px);
  align-items: start;
  padding: clamp(92px, 12vw, 150px) var(--gutter) clamp(80px, 11vw, 140px);
}
.property-story-editorial .story-editorial-opening__kicker,
.property-story-editorial .story-chapter-head--editorial .story-chapter-index {
  margin: 0 0 14px;
  color: #777670;
  text-transform: uppercase;
  font-size: 10px;
  letter-spacing: .22em;
}
.property-story-editorial .story-editorial-opening h2 {
  max-width: 850px;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(40px, 5.4vw, 82px);
  line-height: .98;
  font-weight: 400;
}
.property-story-editorial .story-editorial-opening .article-copy p,
.property-story-editorial .story-chapter-head--editorial .article-copy p {
  max-width: 590px;
  margin: 0 0 18px;
  font-size: 15px;
  line-height: 1.76;
}
.property-story-editorial .story-editorial-opening .article-copy p:last-child,
.property-story-editorial .story-chapter-head--editorial .article-copy p:last-child {
  margin-bottom: 0;
}
.property-story-editorial .light-section .article-copy p,
.property-story-editorial .story-editorial-opening .article-copy p {
  color: #64635e;
}
.property-story-editorial .dark-section .story-chapter-head--editorial .article-copy p,
.property-story-editorial .dark-section .story-chapter-head--editorial .story-chapter-index {
  color: #aaa8a0;
}

.property-story-editorial .story-chapter-head--editorial {
  display: grid;
  grid-template-columns: minmax(150px, .43fr) minmax(280px, .82fr) minmax(260px, .75fr);
  gap: clamp(24px, 4vw, 64px);
  align-items: start;
  max-width: 1320px;
  margin-bottom: clamp(48px, 7vw, 88px);
}
.property-story-editorial .story-chapter-head--editorial h2 {
  max-width: none;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(34px, 4.2vw, 64px);
  line-height: 1.02;
  font-weight: 400;
}
.property-story-editorial .story-chapter-head--editorial .article-copy {
  margin-top: 0;
}

.property-story-editorial .story-editorial-gallery {
  display: grid;
  gap: clamp(18px, 3.2vw, 46px);
  width: min(1180px, 100%);
  margin: 0 auto;
}
.property-story-editorial .story-editorial-pair,
.property-story-editorial .story-editorial-triptych {
  display: grid;
  align-items: start;
  width: 100%;
}
.property-story-editorial .story-editorial-pair {
  grid-template-columns: 1fr 1fr;
  gap: clamp(12px, 1.5vw, 20px);
}
.property-story-editorial .story-editorial-triptych {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 16px);
}
.property-story-editorial .story-editorial-gallery figure {
  position: static;
  margin: 0;
  overflow: visible;
  height: auto;
  aspect-ratio: auto;
  background: transparent;
}
.property-story-editorial .story-editorial-gallery img,
.property-story-editorial .story-editorial-hero__img {
  position: static;
  inset: auto;
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: unset;
  object-position: unset;
}
.property-story-editorial .story-editorial-narrow {
  width: 62%;
  max-width: 62%;
}
.property-story-editorial .story-editorial-pullquote {
  max-width: 810px;
  margin: clamp(8px, 1vw, 16px) auto;
  padding: clamp(48px, 7vw, 92px) 5vw;
  border-top: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3.6vw, 56px);
  line-height: 1.08;
  font-weight: 400;
  text-align: center;
}
.property-story-editorial .story-editorial-closing {
  max-width: 820px;
  margin: clamp(72px, 10vw, 115px) auto 0;
  padding: 0;
  text-align: center;
}
.property-story-editorial .story-editorial-closing p {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(28px, 3.8vw, 52px);
  line-height: 1.12;
  font-weight: 400;
}

@media (max-width: 820px) {
  .property-story-editorial .story-editorial-hero__title h1 {
    font-size: clamp(44px, 14vw, 68px);
  }
  .property-story-editorial .story-editorial-opening,
  .property-story-editorial .story-chapter-head--editorial {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .property-story-editorial .story-editorial-pair,
  .property-story-editorial .story-editorial-triptych {
    grid-template-columns: 1fr;
  }
  .property-story-editorial .story-editorial-narrow {
    width: 100%;
    max-width: 100%;
  }
  .property-story-editorial .story-editorial-pullquote {
    padding: 48px 8px;
  }
}

/* --- 0.2.12 Work index: do not inherit story-hero height or hidden reveal --- */
.work-index-hero {
  position: relative;
  min-height: 0;
  display: block;
  overflow: visible;
  background: var(--black);
  color: var(--white);
  padding: 140px var(--gutter) 72px;
}
.work-index-hero h1 {
  color: var(--white);
  margin: 28px 0 0;
  max-width: 12ch;
}
.post-type-archive-property_story .page-hero {
  min-height: 0;
}
.project-list .project-row,
.project-row.reveal {
  opacity: 1;
  transform: none;
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr);
  gap: 32px;
  color: inherit;
  align-items: center;
}
.project-media.image-shell,
.project-row .project-media {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #d8d6ce;
}
.project-media img,
.project-media .wp-post-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
@media (max-width: 760px) {
  .project-list .project-row,
  .project-row.reveal {
    grid-template-columns: 1fr;
  }
}

/* --- 0.2.14 Milk & Honey v2: cropped photo hero only. Forrest House editorial hero stays native. --- */
.property-story-editorial .property-story-hero--crop,
.property-story-editorial .property-story-hero--crop .property-story-hero__content {
  min-height: 72svh;
}
.property-story-editorial .property-story-hero--crop .page-hero-media,
.property-story-editorial .property-story-hero--crop .page-hero-wash {
  position: absolute;
  inset: 0;
  overflow: hidden;
}
.property-story-editorial .property-story-hero--crop .page-hero-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  /* Keep glass wall, deck, and sunset. Not a top crop. */
  object-position: 28% 46%;
}
.property-story-editorial .story-editorial-subchapter {
  margin-top: clamp(88px, 10vw, 120px);
}
.property-story-editorial .story-editorial-subchapter .story-chapter-head--editorial {
  margin-bottom: clamp(48px, 7vw, 88px);
}
.property-story-editorial .story-editorial-subchapter .story-chapter-head--editorial h3 {
  max-width: none;
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(30px, 3.6vw, 58px);
  line-height: 1.02;
  font-weight: 400;
}
@media (max-width: 760px) {
  .property-story-editorial .property-story-hero--crop,
  .property-story-editorial .property-story-hero--crop .property-story-hero__content {
    min-height: 70svh;
  }
  .property-story-editorial .property-story-hero--crop .page-hero-media img {
    object-position: 16% 44%;
  }
}
