/* Peak Modular. v0.4 — cinematic build of the 21 Oct brief.
   Layout: film-led full-bleed bands, hairlines not boxes, oversized Fraunces, restrained GSAP motion. */
:root {
  color-scheme: light;
  --limestone: #f4efe6;
  --sand: #e8dece;
  --ground-2: #ebe3d6;
  --charcoal: #24211d;
  --night: #1b1916;
  --driftwood: #665d52;
  --jarrah: #6e2f22;
  --geographe: #1d6670;
  --peppermint: #4b6846;
  --banksia: #d9943a;      /* fills only, never text */
  --rule: #cfc3b0;
  --on-dark: #f4efe6;
  --on-dark-soft: #cfc5b4;
  --serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1320px;
  --g: 32px;
  --head: 88px;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--limestone); color: var(--charcoal); font: 400 19px/1.65 var(--sans); }
img, video { max-width: 100%; display: block; }
a { color: inherit; }
:focus-visible { outline: 2px solid var(--geographe); outline-offset: 4px; }
.on-dark :focus-visible { outline-color: var(--on-dark); }
h1, h2, h3, p, blockquote { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 380; letter-spacing: -0.02em; text-wrap: balance; font-variation-settings: "opsz" 144, "SOFT" 50; }
section[id] { scroll-margin-top: var(--head); }
[hidden] { display: none !important; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: max(var(--g), env(safe-area-inset-left, 0px)); padding-right: max(var(--g), env(safe-area-inset-right, 0px)); }
.label { font: 600 14px/1.4 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; }
.caps { font-family: var(--serif); text-transform: uppercase; letter-spacing: 0.2em; }
.num { font-variant-numeric: tabular-nums lining-nums; }
.check { background: #f3dfbd; color: var(--charcoal); padding: 0 4px; border-radius: 2px; font-size: 0.85em; }
.mask { display: block; overflow: hidden; padding-bottom: 0.08em; }
.mask > span { display: block; }

/* Film grain on dark bands */
.grain { position: relative; isolation: isolate; }
.grain::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0.035; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* Buttons and links */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 56px; padding: 0 30px; border-radius: 999px; font: 600 17px/1 var(--sans); letter-spacing: 0.02em; text-decoration: none; border: 1px solid transparent; cursor: pointer; transition: background 0.35s, color 0.35s, border-color 0.35s; }
.btn-light { background: var(--on-dark); color: var(--charcoal); }
.btn-light:hover { background: #fff; }
.btn-action { background: var(--geographe); color: var(--on-dark); }
.btn-action:hover { background: #16525a; }
.btn-outline { border-color: currentColor; color: inherit; background: transparent; }
.btn-outline:hover { background: var(--on-dark); color: var(--charcoal); border-color: var(--on-dark); }
.link-arrow { position: relative; display: inline-flex; align-items: center; gap: 10px; min-height: 48px; font-weight: 600; text-decoration: none; }
.link-arrow::before { content: ""; position: absolute; left: 0; right: 0; bottom: 8px; height: 1px; background: currentColor; transform-origin: left; transition: transform 0.4s; }
.link-arrow:hover::before { transform: scaleX(0.35); }
.link-arrow::after { content: "→"; transition: transform 0.35s; }
.link-arrow:hover::after { transform: translateX(5px); }

/* Header */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 40; background: var(--night); }
.site-header { position: fixed; top: env(safe-area-inset-top, 0px); left: 0; right: 0; z-index: 30; color: var(--on-dark); transition: background 0.4s, color 0.4s, box-shadow 0.4s; }
.site-header.solid { background: var(--limestone); color: var(--charcoal); box-shadow: 0 1px 0 var(--rule); }
.site-header .wrap { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--head); }
.logo { font-family: var(--serif); font-weight: 500; font-size: 27px; letter-spacing: -0.01em; text-decoration: none; white-space: nowrap; }
.nav { display: flex; gap: 32px; font-size: 16px; font-weight: 500; }
.nav a { text-decoration: none; }
.nav a:hover { text-decoration: underline; text-underline-offset: 6px; }
.head-right { display: flex; align-items: center; gap: 20px; }
.head-phone { text-decoration: none; font-weight: 600; font-size: 17px; white-space: nowrap; line-height: 1.25; }
.head-phone small { display: block; font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.8; }
.head-cta { min-height: 46px; padding: 0 22px; font-size: 15px; }
.site-header.solid .head-cta { background: var(--geographe); color: var(--on-dark); border-color: var(--geographe); }
.menu-btn { display: none; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid currentColor; background: transparent; color: inherit; font: 600 16px var(--sans); cursor: pointer; }
.menu-panel { position: fixed; inset: 0; z-index: 50; background: var(--limestone); color: var(--charcoal); padding: calc(env(safe-area-inset-top, 0px) + 20px) max(var(--g), env(safe-area-inset-right, 0px)) 32px max(var(--g), env(safe-area-inset-left, 0px)); display: flex; flex-direction: column; overflow-y: auto; }
.menu-close { align-self: flex-end; min-height: 48px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--charcoal); background: transparent; font: 600 16px var(--sans); color: var(--charcoal); cursor: pointer; margin-bottom: 16px; }
.menu-panel a { font-family: var(--serif); font-size: 34px; text-decoration: none; padding: 12px 0; border-bottom: 1px solid var(--rule); }
.menu-panel .menu-call { margin-top: 28px; font-family: var(--sans); font-size: 20px; font-weight: 600; border: 0; }

/* Hero */
.hero { min-height: 940px; display: flex; align-items: flex-end; color: var(--on-dark); background: var(--night); overflow: hidden; }
.film { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero .film { object-position: 60% 62%; }
.hero .scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(27,25,22,0.55) 0%, rgba(27,25,22,0) 22%, rgba(27,25,22,0) 40%, rgba(27,25,22,0.84) 100%), linear-gradient(90deg, rgba(27,25,22,0.55) 0%, rgba(27,25,22,0.12) 52%, rgba(27,25,22,0) 72%); }
.hero .wrap { position: relative; z-index: 3; width: 100%; padding-bottom: 88px; display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: 40px; align-items: end; }
.hero h1 { font-size: clamp(56px, 8.4vw, 132px); line-height: 0.96; letter-spacing: -0.035em; font-weight: 400; }
.hero-side { display: flex; flex-direction: column; gap: 22px; padding-bottom: 12px; }
.hero-side p { max-width: 34ch; }
.hero-side .price { font-family: var(--serif); font-size: 27px; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.caption { position: absolute; z-index: 3; right: max(var(--g), env(safe-area-inset-right, 0px)); font-size: 13px; letter-spacing: 0.06em; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 4px 10px; border-radius: 3px; }
.hero .caption { top: 108px; }

/* Stats strip */
.stats { border-bottom: 1px solid var(--rule); }
.stats .wrap { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat { padding: 44px 24px 40px 0; display: flex; flex-direction: column; gap: 6px; }
.stat + .stat { padding-left: 28px; border-left: 1px solid var(--rule); }
.stat strong { font-family: var(--serif); font-weight: 360; font-size: clamp(36px, 3.6vw, 54px); line-height: 1.05; letter-spacing: -0.02em; }
.stat > span { font-size: 17px; color: var(--driftwood); }

/* Mission */
.mission { padding-block: 150px 110px; }
.mission .wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 48px; }
.mission .label { color: var(--jarrah); padding-top: 14px; }
.mission p.big { font-family: var(--serif); font-weight: 360; font-size: clamp(32px, 3.6vw, 54px); line-height: 1.2; letter-spacing: -0.018em; }
.mission p.big em { font-style: italic; color: var(--jarrah); }

/* Pillars */
.pillars { padding-block: 0 140px; }
.pillars .wrap { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.pillar { border-top: 1px solid var(--charcoal); padding-top: 24px; display: flex; flex-direction: column; gap: 12px; }
.pillar .label { color: var(--jarrah); }
.pillar h3 { font-size: clamp(30px, 2.6vw, 40px); line-height: 1.1; }
.pillar p { color: var(--driftwood); max-width: 32ch; }

/* Story: sticky, scrubbed on desktop */
.story { position: relative; background: var(--night); color: var(--on-dark); }
.story-stage { position: relative; height: 92vh; min-height: 640px; overflow: hidden; }
.story .film { object-position: 50% 50%; }
.story .scrim { position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at 30% 55%, rgba(27,25,22,0.62) 0%, rgba(27,25,22,0.25) 55%, rgba(27,25,22,0.1) 100%); }
.beats { position: absolute; inset: 0; z-index: 3; display: flex; flex-direction: column; justify-content: center; gap: 28px; }
.beat { max-width: 16ch; font-family: var(--serif); font-weight: 380; font-size: clamp(38px, 5vw, 76px); line-height: 1.04; letter-spacing: -0.025em; }
.beat.small { max-width: 26ch; font-size: clamp(24px, 2.4vw, 34px); line-height: 1.3; }
.story .caption { bottom: 20px; }
.story.is-scrub { height: 320vh; }
.story.is-scrub .story-stage { position: sticky; top: 0; height: 100vh; }
.story.is-scrub .beats { display: block; }
.story.is-scrub .beat { position: absolute; top: 50%; transform: translateY(-50%); opacity: 0; }

/* Featured homes */
.feature { padding-block: 140px 120px; }
.feature-row { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 72px; align-items: center; }
.feature-row.flip { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.feature-row.flip .feature-img { order: 2; }
.feature-row + .feature-row { margin-top: 140px; }
.feature-img { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; max-width: 100%; }
.feature-img img { width: 100%; height: 116%; object-fit: cover; will-change: transform; }
.feature-img .tag { position: absolute; z-index: 2; left: 16px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.feature-text { display: flex; flex-direction: column; gap: 22px; }
.feature-text .label { color: var(--jarrah); }
.feature-text h2 { font-size: clamp(40px, 4.6vw, 68px); line-height: 1.02; }
.feature-text h2 .caps { display: block; font-family: var(--serif); font-size: 16px; letter-spacing: 0.3em; margin-bottom: 18px; color: var(--driftwood); font-weight: 500; }
.specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin: 0; }
.specs div { padding: 16px 0; }
.specs dt { font-size: 13px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--driftwood); }
.specs dd { margin: 2px 0 0; font-family: var(--serif); font-size: 26px; }
.feature-price { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 16px; }
.feature-price .amount { font-family: var(--serif); font-size: 34px; }
.feature-price .amount small { font-family: var(--sans); font-size: 16px; font-weight: 600; margin-left: 6px; }

/* Range */
.range { background: var(--ground-2); padding-block: 120px; }
.range-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 48px; }
.range-head h2 { font-size: clamp(38px, 4.4vw, 64px); }
.range-head p { color: var(--driftwood); max-width: 40ch; }
.range-list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--charcoal); }
.range-list a { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 4fr) minmax(0, 2fr) minmax(0, 2fr) 40px; gap: 24px; align-items: center; padding: 28px 8px; border-bottom: 1px solid var(--rule); text-decoration: none; transition: background 0.35s, padding 0.35s; }
.range-list a:hover { background: var(--limestone); padding-left: 22px; }
.range-list .name { font-family: var(--serif); font-size: 22px; letter-spacing: 0.2em; text-transform: uppercase; }
.range-list .use { color: var(--driftwood); font-size: 17px; }
.range-list .meta { font-size: 17px; }
.range-list .p { font-family: var(--serif); font-size: 22px; text-align: right; }
.range-list .p small { font-family: var(--sans); font-size: 14px; font-weight: 600; }
.range-list .go { text-align: right; color: var(--geographe); font-size: 22px; }
.range-note { margin-top: 28px; font-size: 16px; color: var(--driftwood); }

/* Included */
.included { padding-block: 130px; }
.included .wrap { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 48px; }
.included .label { color: var(--jarrah); padding-top: 8px; }
.included h2 { font-size: clamp(38px, 4.4vw, 64px); margin-bottom: 40px; }
.inc-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; border-top: 1px solid var(--charcoal); padding-top: 28px; }
.inc-cols h3 { font-size: 28px; margin-bottom: 14px; }
.inc-cols ul { margin: 0; padding: 0; list-style: none; }
.inc-cols li { padding: 10px 0; border-bottom: 1px solid var(--rule); }
.inc-cols .muted li { color: var(--driftwood); }

/* Process */
.process { border-top: 1px solid var(--rule); padding-block: 130px; }
.process-head { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 48px; margin-bottom: 64px; }
.process-head .label { color: var(--jarrah); padding-top: 16px; }
.process-head h2 { font-size: clamp(38px, 4.4vw, 64px); }
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.steps li { border-top: 1px solid var(--charcoal); padding: 22px 22px 0 0; display: flex; flex-direction: column; gap: 10px; }
.steps .n { font: 600 14px/1 var(--sans); letter-spacing: 0.16em; color: var(--jarrah); }
.steps strong { font-family: var(--serif); font-weight: 400; font-size: 24px; line-height: 1.2; }
.steps span:last-child { font-size: 17px; color: var(--driftwood); }
.made-with { margin-top: 96px; padding-top: 28px; border-top: 1px solid var(--rule); display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 48px; font-size: 17px; }
.made-with .label { color: var(--driftwood); }
.made-with p + p { margin-top: 8px; }

/* Enquire */
.enquire { background: var(--night); color: var(--on-dark); padding-block: 140px; }
.enquire > .wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 96px; position: relative; z-index: 3; }
.enquire h2 { font-size: clamp(46px, 5.6vw, 88px); line-height: 0.98; }
.enquire .lead { margin-top: 28px; color: var(--on-dark-soft); max-width: 38ch; }
.contact-list { margin-top: 44px; display: flex; flex-direction: column; gap: 18px; }
.contact-list div { border-top: 1px solid #3a352f; padding-top: 14px; }
.contact-list .label { color: var(--on-dark-soft); display: block; margin-bottom: 4px; }
.contact-list a, .contact-list .v { font-family: var(--serif); font-size: 26px; text-decoration: none; }
.contact-list .note { display: block; font-size: 15px; color: var(--on-dark-soft); margin-top: 2px; }
form.enquiry { display: flex; flex-direction: column; gap: 30px; }
form.enquiry fieldset { border: 0; padding: 0; margin: 0; }
form.enquiry legend, .f label { font: 600 17px/1.4 var(--sans); color: var(--on-dark); margin-bottom: 10px; display: block; }
.pills { display: flex; flex-wrap: wrap; gap: 10px; }
.pills label { position: relative; }
.pills input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pills span { display: inline-flex; align-items: center; min-height: 54px; padding: 0 20px; border: 1px solid #7a7166; border-radius: 999px; font-size: 17px; transition: background 0.2s, color 0.2s, border-color 0.2s; }
.pills input:checked + span { background: var(--on-dark); color: var(--charcoal); border-color: var(--on-dark); }
.pills input:focus-visible + span { outline: 2px solid var(--on-dark); outline-offset: 3px; }
.f-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; }
.f input, .f select { width: 100%; background: #26231f; border: 1px solid #7a7166; color: var(--on-dark); font: 400 20px var(--sans); min-height: 58px; padding: 6px 16px; border-radius: 6px; }
.f select option { color: var(--charcoal); }
.f input::placeholder { color: #9a9083; }
.f input:focus, .f select:focus { outline: 2px solid var(--on-dark); outline-offset: 2px; border-color: var(--on-dark); }
.form-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.form-foot p { font-size: 16px; color: var(--on-dark-soft); max-width: 36ch; }
.confirm h3 { font-size: 44px; margin-bottom: 14px; }
.confirm p { color: var(--on-dark-soft); }
.faq-block { margin-top: 120px; display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 72px; position: relative; z-index: 3; }
.faq-block h2 { font-size: clamp(38px, 4.4vw, 64px); }
.faq-list { border-top: 1px solid var(--on-dark-soft); }
.faq-list details { border-bottom: 1px solid #3a352f; }
.faq-list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 24px; padding: 24px 0; font-family: var(--serif); font-size: 25px; line-height: 1.3; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; font-family: var(--sans); font-weight: 300; font-size: 30px; line-height: 1; color: var(--banksia); transition: transform 0.35s; }
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list .ans { overflow: hidden; }
.faq-list .ans p { padding: 0 48px 26px 0; color: var(--on-dark-soft); }

/* Final CTA */
.final { min-height: 820px; display: flex; align-items: center; color: var(--on-dark); background: var(--night); overflow: hidden; }
.final .film { object-position: 30% 40%; }
.final .scrim { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(27,25,22,0.78) 0%, rgba(27,25,22,0.35) 55%, rgba(27,25,22,0.15) 100%); }
.final .wrap { position: relative; z-index: 3; width: 100%; display: flex; flex-direction: column; gap: 32px; align-items: flex-start; }
.final h2 { font-size: clamp(52px, 7.4vw, 116px); line-height: 0.96; max-width: 12ch; letter-spacing: -0.03em; }
.final .actions { display: flex; flex-wrap: wrap; gap: 14px; }
.final .caption { bottom: 20px; }

/* Footer */
.site-footer { background: var(--night); color: var(--on-dark-soft); padding-block: 110px 40px; font-size: 16px; overflow: hidden; border-top: 1px solid #2c2823; }
.foot-grid { display: grid; grid-template-columns: minmax(0, 6fr) repeat(3, minmax(0, 2fr)); gap: 40px; position: relative; z-index: 3; }
.foot-slogan { font-family: var(--serif); font-style: italic; font-weight: 340; font-size: clamp(40px, 4.4vw, 64px); line-height: 1.02; color: var(--on-dark); }
.foot-grid nav { display: flex; flex-direction: column; gap: 8px; }
.foot-grid .label { color: var(--on-dark-soft); margin-bottom: 6px; display: block; }
.foot-grid a { color: var(--on-dark); text-decoration: none; }
.foot-grid a:hover { text-decoration: underline; }
.wordmark { position: relative; z-index: 3; margin-top: 100px; font-family: var(--serif); font-weight: 300; font-size: clamp(64px, 15.5vw, 236px); line-height: 0.85; letter-spacing: -0.045em; color: var(--on-dark); white-space: nowrap; }
.legal { position: relative; z-index: 3; margin-top: 36px; padding-top: 20px; border-top: 1px solid #3a352f; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px 32px; font-size: 14px; }

/* Featured work (hidden until real projects exist) */
.work { padding-block: 120px; border-top: 1px solid var(--rule); }

@media (prefers-reduced-motion: reduce) {
  .btn, .link-arrow::before, .link-arrow::after, .range-list a, .site-header, .faq-list summary::after { transition: none; }
}

/* Tablet */
@media (max-width: 1080px) {
  .nav, .head-cta { display: none; }
  .menu-btn { display: inline-flex; align-items: center; }
  .hero .wrap, .feature-row, .feature-row.flip, .enquire > .wrap, .faq-block { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .feature-row.flip .feature-img { order: 0; }
  .pillars .wrap { grid-template-columns: minmax(0, 1fr); }
  .stats .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat:nth-child(3) { padding-left: 0; border-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .range-list a { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) minmax(0, 2fr) 32px; }
  .range-list .use { display: none; }
  .foot-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .foot-grid > div:first-child { grid-column: 1 / -1; }
}

/* Phone */
@media (max-width: 720px) {
  :root { --g: 20px; --head: 68px; }
  body { font-size: 18px; }
  .logo { font-size: 23px; }
  .head-phone small { display: none; }
  .head-phone { font-size: 15px; }
  .head-right { gap: 10px; }
  .hero { min-height: 0; display: block; }
  .hero .film { position: relative; height: 420px; }
  .hero .scrim { bottom: auto; height: 420px; background: linear-gradient(180deg, rgba(27,25,22,0.6) 0%, rgba(27,25,22,0) 30%, rgba(27,25,22,0) 68%, rgba(27,25,22,0.92) 100%); }
  .hero .wrap { padding-bottom: 56px; gap: 26px; margin-top: -92px; }
  .hero h1 { font-size: 52px; }
  .hero-actions .btn { width: 100%; }
  .hero .caption { top: 84px; font-size: 11px; }
  .stats .wrap, .pillars .wrap, .mission .wrap, .process-head, .made-with, .included .wrap, .inc-cols { grid-template-columns: minmax(0, 1fr); }
  .stat, .stat + .stat { padding: 22px 0; border-left: 0; border-top: 1px solid var(--rule); }
  .stat:first-child { border-top: 0; }
  .mission { padding-block: 96px 72px; }
  .mission .wrap, .included .wrap { gap: 18px; }
  .mission .label, .included .label, .process-head .label { padding-top: 0; }
  .pillars { padding-block: 0 88px; }
  .story-stage { height: auto; min-height: 0; }
  .story .film { position: relative; height: 60vh; min-height: 380px; }
  .story .scrim { bottom: auto; height: 60vh; min-height: 380px; background: linear-gradient(180deg, rgba(27,25,22,0) 60%, rgba(27,25,22,0.95) 100%); }
  .beats { position: relative; inset: auto; padding-block: 40px 64px; gap: 20px; }
  .beat { font-size: 40px; }
  .story .caption { top: 16px; bottom: auto; font-size: 11px; }
  .feature { padding-block: 96px; }
  .feature-row + .feature-row { margin-top: 96px; }
  .specs dd { font-size: 22px; }
  .range, .included, .process, .enquire { padding-block: 88px; }
  .range-list a { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; padding: 22px 0; }
  .range-list a:hover { padding-left: 0; }
  .range-list .meta { grid-column: 1; grid-row: 2; color: var(--driftwood); }
  .range-list .p { grid-row: 1 / span 2; grid-column: 2; align-self: center; }
  .range-list .go { display: none; }
  .steps { grid-template-columns: minmax(0, 1fr); }
  .f-grid { grid-template-columns: minmax(0, 1fr); }
  .faq-block { margin-top: 88px; }
  .faq-list summary { font-size: 21px; }
  .faq-list .ans p { padding-right: 0; }
  .final { min-height: 600px; }
  .final .actions .btn { width: 100%; }
  .foot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wordmark { margin-top: 64px; }
}

/* v0.5 additions -------------------------------------------------------- */
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
html.large-text { zoom: 1.14; }

/* Larger text toggle */
.text-size { display: inline-flex; align-items: baseline; justify-content: center; gap: 1px; min-width: 48px; min-height: 46px; padding: 0 10px; border: 1px solid currentColor; border-radius: 999px; background: transparent; color: inherit; font: 600 15px/1 var(--serif); cursor: pointer; }
.text-size .big { font-size: 21px; }
.text-size[aria-pressed="true"] { background: currentColor; }
.text-size[aria-pressed="true"] span { color: var(--night); }
.site-header.solid .text-size[aria-pressed="true"] span { color: var(--limestone); }
.menu-textsize { margin-top: 12px; align-self: flex-start; min-height: 52px; padding: 0 22px; border-radius: 999px; border: 1px solid var(--charcoal); background: transparent; font: 600 18px var(--sans); color: var(--charcoal); cursor: pointer; }
.menu-textsize[aria-pressed="true"] { background: var(--charcoal); color: var(--limestone); }

/* Find your home */
.finder { background: var(--sand); padding-block: 130px; }
.finder .wrap { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 56px; }
.finder-head .label { color: var(--jarrah); display: block; margin-bottom: 14px; }
.finder-head h2 { font-size: clamp(38px, 4.2vw, 60px); line-height: 1.04; }
.finder-body { display: flex; flex-direction: column; gap: 30px; }
.fq { border: 0; margin: 0; padding: 0; }
.fq legend { font: 600 18px/1.4 var(--sans); margin-bottom: 12px; }
.pills.light span { border-color: var(--driftwood); color: var(--charcoal); background: transparent; }
.pills.light input:checked + span { background: var(--charcoal); color: var(--limestone); border-color: var(--charcoal); }
.pills.light input:focus-visible + span { outline: 2px solid var(--geographe); outline-offset: 3px; }
.finder-result { border-top: 1px solid var(--charcoal); padding-top: 26px; min-height: 120px; }
.finder-empty { color: var(--driftwood); }
.result-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 32px; align-items: end; }
.result-card .label { color: var(--jarrah); grid-column: 1 / -1; }
.result-card h3 { font-size: clamp(36px, 3.6vw, 52px); line-height: 1; }
.result-card h3 .caps { display: block; font-size: 15px; letter-spacing: 0.3em; color: var(--driftwood); margin-bottom: 12px; }
.result-card p { grid-column: 1; color: var(--driftwood); max-width: 46ch; }
.result-card .amount { font-family: var(--serif); font-size: 32px; grid-column: 2; grid-row: 2; text-align: right; }
.result-card .amount small { font-family: var(--sans); font-size: 15px; font-weight: 600; margin-left: 4px; }
.result-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; margin-top: 10px; }

/* Home detail sheet */
.sheet { width: min(1120px, calc(100% - 32px)); max-height: calc(100% - 32px); padding: 0; border: 0; border-radius: 8px; background: var(--limestone); color: var(--charcoal); overflow: auto; }
.sheet::backdrop { background: rgba(27, 25, 22, 0.72); }
.sheet-inner { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); position: relative; }
.sheet-close { position: absolute; top: 14px; right: 14px; z-index: 2; min-height: 46px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--charcoal); background: var(--limestone); color: var(--charcoal); font: 600 16px var(--sans); cursor: pointer; }
.sheet-media { position: relative; min-height: 100%; background: var(--sand); }
.sheet-media img { width: 100%; height: 100%; object-fit: cover; }
.sheet-media .tag { position: absolute; left: 14px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.sheet-media .ph { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 20px; font-size: 16px; color: var(--driftwood); }
.sheet-text { padding: 56px 48px 44px; display: flex; flex-direction: column; gap: 18px; }
.sheet-text .label { color: var(--jarrah); }
.sheet-text h2 { font-size: clamp(40px, 4vw, 60px); line-height: 1; padding-right: 90px; }
.sheet-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; padding-top: 8px; }
.sheet-cols h3 { font-family: var(--sans); font-weight: 600; font-size: 14px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--jarrah); margin-bottom: 8px; }
.sheet-cols p { font-size: 16px; color: var(--driftwood); line-height: 1.55; }
.sheet-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 6px; }

/* Chosen home on the form */
.chosen { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 17px; color: var(--on-dark); background: #26231f; border: 1px solid #7a7166; border-radius: 6px; padding: 12px 16px; }
.chosen button { margin-left: auto; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--on-dark-soft); background: transparent; color: var(--on-dark); font: 600 15px var(--sans); cursor: pointer; }
.contact-list .note a { color: var(--on-dark); }

/* Phone action bar */
.action-bar { display: none; }

@media (max-width: 1080px) {
  .finder .wrap { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .sheet-inner { grid-template-columns: minmax(0, 1fr); }
  .sheet-media { min-height: 260px; aspect-ratio: 16 / 9; }
  .sheet-cols { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}
@media (max-width: 720px) {
  .text-size { display: none; }
  .finder { padding-block: 88px; }
  .result-card { grid-template-columns: minmax(0, 1fr); }
  .result-card .amount { grid-column: 1; grid-row: auto; text-align: left; }
  .sheet { width: 100%; max-width: 100%; max-height: 100%; height: 100%; border-radius: 0; }
  .sheet-text { padding: 32px 20px 120px; }
  .sheet-text h2 { padding-right: 0; }
  .action-bar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; gap: 10px; padding: 10px max(var(--g), env(safe-area-inset-right, 0px)) calc(10px + env(safe-area-inset-bottom, 0px)) max(var(--g), env(safe-area-inset-left, 0px)); background: var(--limestone); box-shadow: 0 -1px 0 var(--rule); }
  .action-bar .btn { flex: 1; min-height: 52px; }
  .action-bar .btn-outline { color: var(--charcoal); }
  .site-footer { padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
}
#sheet-specs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 720px) { #sheet-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Ex-display offer */
.offer { background: var(--jarrah); color: var(--on-dark); padding-block: 110px; }
.offer .wrap { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); gap: 64px; align-items: center; }
.offer-img { position: relative; display: block; aspect-ratio: 5 / 4; overflow: hidden; max-width: 100%; }
.offer-img img { width: 100%; height: 100%; object-fit: cover; }
.offer-img .tag { position: absolute; left: 16px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.offer-text { display: flex; flex-direction: column; gap: 20px; }
.offer-text .label { color: #f1d9b0; }
.offer-text h2 { font-size: clamp(42px, 4.8vw, 72px); line-height: 1; }
.offer-text p { color: #f0e2d2; max-width: 44ch; }
.offer .specs { border-color: rgba(244,239,230,0.35); }
.offer .specs dt { color: #e6cfb8; }
.offer .feature-price { justify-content: flex-start; }
.offer-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; }
.offer .check { color: var(--charcoal); }
@media (max-width: 1080px) { .offer .wrap { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 720px) { .offer { padding-block: 72px; } .offer-actions .btn { width: 100%; } }

/* v0.7 multi-page components ------------------------------------------- */
body.page .site-header { background: var(--limestone); color: var(--charcoal); box-shadow: 0 1px 0 var(--rule); }
body.page .site-header .head-cta { background: var(--geographe); color: var(--on-dark); border-color: var(--geographe); }
body.page main { padding-top: calc(var(--head) + env(safe-area-inset-top, 0px)); }
.nav a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 2px; }
.menu-panel a[aria-current="page"] { color: var(--jarrah); }

/* Page heading (inner pages) */
.page-head { padding-block: 72px 56px; border-bottom: 1px solid var(--rule); }
.page-head .crumbs { font-size: 16px; color: var(--driftwood); margin-bottom: 18px; }
.page-head .crumbs a { color: var(--driftwood); }
.page-head h1 { font-size: clamp(48px, 6.4vw, 100px); line-height: 0.98; letter-spacing: -0.03em; max-width: 14ch; }
.page-head p.lead { margin-top: 22px; font-size: 21px; color: var(--driftwood); max-width: 48ch; }
.section { padding-block: 110px; }
.section + .section { border-top: 1px solid var(--rule); }
.section-head { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 9fr); gap: 48px; margin-bottom: 48px; }
.section-head .label { color: var(--jarrah); padding-top: 14px; }
.section-head h2 { font-size: clamp(36px, 4.2vw, 60px); line-height: 1.04; }
.section-head p { margin-top: 14px; color: var(--driftwood); max-width: 52ch; }
.sec-body { margin-left: calc(25% + 12px); }

/* Three doors */
.doors { padding-block: 110px; }
.doors h2 { font-size: clamp(36px, 4.2vw, 60px); margin-bottom: 40px; }
.door-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.door { display: flex; flex-direction: column; gap: 12px; min-height: 260px; padding: 32px; border: 1px solid var(--charcoal); border-radius: 6px; text-decoration: none; transition: background 0.35s, color 0.35s; }
.door:hover { background: var(--charcoal); color: var(--limestone); }
.door .n { font: 600 14px/1 var(--sans); letter-spacing: 0.16em; text-transform: uppercase; color: var(--jarrah); }
.door:hover .n { color: #f1d9b0; }
.door strong { font-family: var(--serif); font-weight: 400; font-size: 32px; line-height: 1.1; }
.door span.d { flex-grow: 1; color: var(--driftwood); }
.door:hover span.d { color: var(--sand); }
.door .go { font-weight: 600; }
.door .go::after { content: " →"; }

/* Home cards (Homes page and home teaser) */
.cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 56px 28px; }
.cards.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card { display: flex; flex-direction: column; gap: 12px; text-decoration: none; }
.card-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sand); max-width: 100%; }
.card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.card:hover .card-img img { transform: scale(1.03); }
.card-img .tag { position: absolute; left: 12px; bottom: 12px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.card-img .ph { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 16px; color: var(--driftwood); font-size: 16px; }
.card .caps { font-size: 15px; letter-spacing: 0.26em; color: var(--driftwood); }
.card h3 { font-size: clamp(28px, 2.4vw, 36px); line-height: 1.1; }
.card p { color: var(--driftwood); font-size: 17px; flex-grow: 1; }
.card .foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-top: 1px solid var(--rule); padding-top: 12px; font-weight: 600; }
.card .foot .p { font-family: var(--serif); font-weight: 400; font-size: 22px; }
.card .foot .p small { font-family: var(--sans); font-size: 14px; font-weight: 600; }
.card .foot .go { color: var(--geographe); align-self: center; }
.card .foot .go::after { content: " →"; }
.see-all { margin-top: 48px; }

/* Model page */
.model-hero { padding-block: 40px 96px; }
.model-hero .wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.model-hero .mh-img { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--sand); max-width: 100%; }
.model-hero .mh-img img { width: 100%; height: 100%; object-fit: cover; }
.model-hero .mh-img .tag { position: absolute; left: 14px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.model-hero .mh-img .ph { position: absolute; inset: 0; display: flex; align-items: flex-end; padding: 20px; color: var(--driftwood); }
.mh-text { display: flex; flex-direction: column; gap: 18px; }
.mh-text .crumbs { font-size: 16px; color: var(--driftwood); }
.mh-text .crumbs a { color: var(--driftwood); }
.mh-text .label { color: var(--jarrah); }
.mh-text h1 { font-size: clamp(48px, 5vw, 80px); line-height: 0.98; }
.mh-text .line { font-size: 21px; }
.mh-text .specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mh-text .amount { font-family: var(--serif); font-size: 40px; }
.mh-text .amount small { font-family: var(--sans); font-size: 17px; font-weight: 600; margin-left: 6px; }
.mh-text .note { font-size: 16px; color: var(--driftwood); }
.mh-actions { display: flex; flex-direction: column; gap: 12px; }
.mh-actions .btn { width: 100%; }
.info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; }
.info-grid h3 { font-size: 26px; margin-bottom: 10px; }
.info-grid p, .info-grid li { color: var(--driftwood); }
.info-grid ul { margin: 0; padding: 0; list-style: none; }
.info-grid li { padding: 8px 0; border-bottom: 1px solid var(--rule); }
.info-grid .more { margin-top: 14px; }
.family { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.family a { display: flex; flex-direction: column; gap: 6px; padding: 28px; border: 1px solid var(--rule); border-radius: 6px; text-decoration: none; }
.family a:hover { border-color: var(--charcoal); }
.family strong { font-family: var(--serif); font-weight: 400; font-size: 28px; }
.family span { color: var(--driftwood); }

/* Faq on light pages */
.faq-list.light { border-top: 1px solid var(--charcoal); }
.faq-list.light details { border-bottom: 1px solid var(--rule); }
.faq-list.light .ans p { color: var(--driftwood); }
.faq-list.light summary::after { color: var(--jarrah); }

/* Price table */
.price-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
.price-table th, .price-table td { text-align: left; padding: 18px 12px 18px 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.price-table thead th { font: 600 14px/1.4 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--driftwood); border-bottom: 1px solid var(--charcoal); }
.price-table td.name a { font-family: var(--serif); font-size: 22px; letter-spacing: 0.16em; text-transform: uppercase; text-decoration: none; }
.price-table td.p { font-family: var(--serif); font-size: 22px; text-align: right; white-space: nowrap; }
.price-table th.p { text-align: right; }
.table-wrap { overflow-x: auto; }

/* Builder paths */
.paths { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.path { padding: 32px; background: var(--sand); border-radius: 6px; display: flex; flex-direction: column; gap: 10px; }
.path strong { font-family: var(--serif); font-weight: 400; font-size: 28px; }
.path .label { color: var(--jarrah); }
.path p { color: var(--driftwood); }

/* Light CTA band */
.cta-band { background: var(--charcoal); color: var(--on-dark); padding-block: 96px; }
.cta-band .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px; }
.cta-band h2 { font-size: clamp(38px, 4.6vw, 68px); max-width: 16ch; line-height: 1.02; }
.cta-band .actions { display: flex; flex-wrap: wrap; gap: 14px; }

/* Enquire page */
.next-steps { list-style: none; margin: 0 0 8px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.next-steps li { border-top: 1px solid var(--charcoal); padding-top: 18px; display: flex; flex-direction: column; gap: 6px; }
.next-steps .n { font: 600 14px/1 var(--sans); letter-spacing: 0.16em; color: var(--jarrah); }
.next-steps strong { font-family: var(--serif); font-weight: 400; font-size: 24px; }
.next-steps span:last-child { color: var(--driftwood); font-size: 17px; }

/* About */
.about-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.portrait { aspect-ratio: 4 / 5; background: var(--sand); border-radius: 6px; display: flex; align-items: flex-end; padding: 20px; color: var(--driftwood); max-width: 100%; }
.about-grid p.big { font-family: var(--serif); font-weight: 360; font-size: clamp(28px, 3vw, 42px); line-height: 1.25; }
.about-grid p + p { margin-top: 18px; }
.facts-list { list-style: none; margin: 28px 0 0; padding: 0; border-top: 1px solid var(--charcoal); }
.facts-list li { padding: 14px 0; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 16px; }
.facts-list strong { font-weight: 600; }

@media (max-width: 1080px) {
  .door-grid, .cards, .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .model-hero .wrap, .about-grid { grid-template-columns: minmax(0, 1fr); }
  .sec-body { margin-left: 0; }
}
@media (max-width: 720px) {
  .page-head { padding-block: 48px 40px; }
  .page-head h1 { font-size: 48px; }
  .section, .doors { padding-block: 72px; }
  .section-head { grid-template-columns: minmax(0, 1fr); gap: 12px; margin-bottom: 32px; }
  .section-head .label { padding-top: 0; }
  .door-grid, .cards, .cards.two, .info-grid, .family, .paths, .next-steps { grid-template-columns: minmax(0, 1fr); }
  .door { min-height: 0; }
  .model-hero { padding-block: 24px 64px; }
  .price-table td.name a { font-size: 18px; letter-spacing: 0.1em; }
  .price-table td.p { font-size: 19px; }
  .facts-list li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .cta-band .actions .btn { width: 100%; }
}

/* ---------- v0.8: flow, desire and calmer details ---------- */
.text-size { font: 600 15px/1 var(--sans); padding: 0 16px; gap: 0; }
.text-size[aria-pressed="true"] { background: var(--limestone); color: var(--night); border-color: var(--limestone); }
.site-header.solid .text-size[aria-pressed="true"] { background: var(--charcoal); color: var(--limestone); border-color: var(--charcoal); }

/* Placeholders stay findable but stop shouting */
.check { background: transparent; color: inherit; padding: 0 2px; border-radius: 0; border-bottom: 1px dashed currentColor; opacity: 0.7; font-size: 0.8em; }
.offer .check { color: inherit; }

/* The life: the desire moment between proof and the homes */
.life { background: var(--sand); padding-block: 120px; }
.life .wrap { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 72px; align-items: center; }
.life-img { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 4px; }
.life-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.life-text { display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.life-text .label { color: var(--jarrah); }
.life-text h2 { font-size: clamp(40px, 4.6vw, 68px); line-height: 1.02; letter-spacing: -0.025em; max-width: 12ch; }
.life .big, .picture .big { font-family: var(--serif); font-weight: 360; font-size: clamp(24px, 2.2vw, 32px); line-height: 1.3; letter-spacing: -0.01em; }
.life-text p { max-width: 38ch; }
.life-text p:not(.big) { color: var(--driftwood); }

.homes-more { display: flex; flex-wrap: wrap; gap: 20px 32px; align-items: center; margin-top: 56px; }

/* Picture it (model pages) */
.picture { padding-block: 100px 20px; }
.picture .wrap { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; align-items: baseline; }
.picture .label { color: var(--jarrah); }
.picture .big { font-size: clamp(28px, 3vw, 44px); max-width: 30ch; }

/* Final call: one clear ask, then quiet routes for the undecided */
.final-lead { font-size: 22px; line-height: 1.5; max-width: 34ch; color: var(--sand); }
.routes { list-style: none; margin: 8px 0 0; padding: 22px 0 0; border-top: 1px solid rgba(244,239,230,0.3); display: flex; flex-wrap: wrap; gap: 14px 36px; }
.routes a { color: var(--on-dark); text-underline-offset: 5px; }
.routes a::after { content: " →"; }

/* Enquire: what they get */
.you-get { list-style: none; margin: 8px 0 28px; padding: 0; display: grid; gap: 10px; }
.you-get li { position: relative; padding-left: 30px; }
.you-get li::before { content: ""; position: absolute; left: 2px; top: 0.55em; width: 14px; height: 8px; border-left: 2px solid #f1d9b0; border-bottom: 2px solid #f1d9b0; transform: rotate(-45deg); }
.more-links { margin-top: 18px; }

/* Phone action bar: waits until the visitor has passed the home hero */
@media (max-width: 720px) {
  .action-bar { transition: transform 0.35s ease; }
  body:not(.page) .action-bar { transform: translateY(110%); }
  body:not(.page) .action-bar.show { transform: none; }
}

@media (max-width: 1080px) {
  .life .wrap { grid-template-columns: 1fr; gap: 40px; }
  .picture .wrap { grid-template-columns: 1fr; gap: 14px; }
}
@media (max-width: 720px) {
  .life { padding-block: 72px; }
  .life-text h2 { font-size: 40px; }
  .picture { padding-block: 64px 0; }
  .homes-more { flex-direction: column; align-items: stretch; }
  .homes-more .btn { width: 100%; }
  .final-lead { font-size: 19px; }
  .routes { flex-direction: column; gap: 16px; }
}
@media (prefers-reduced-motion: reduce) { .action-bar { transition: none; } }
.life-img .tag { position: absolute; left: 16px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.55); padding: 3px 9px; border-radius: 3px; }
.text-size { align-items: center; }
.offer-slim { padding-block: 72px; }
.offer-slim .wrap { display: block; }
.offer-slim .offer-text { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 12px 64px; align-items: end; }
.offer-slim .offer-text > .label, .offer-slim h2, .offer-slim .offer-text > p { grid-column: 1; }
.offer-slim .feature-price, .offer-slim .offer-actions { grid-column: 2; }
.offer-slim .feature-price { grid-row: 2; }
.offer-slim .offer-actions { grid-row: 3; }
@media (max-width: 1080px) { .offer-slim .offer-text { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; } }
/* v0.9 minimal home */
.final .film { object-position: 70% 55%; }
@media (max-width: 720px) {
  .stats .wrap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat { padding: 26px 12px 24px 0; }
  .stat + .stat { padding-left: 14px; }
  .stat:nth-child(3) { padding-left: 0; border-left: 0; }
  .stat:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .stat strong { font-size: 28px; }
  .stat > span { font-size: 15px; }
}
/* v0.10 range + Ridge editions */
.site-footer .label.sub { margin-top: 18px; }
.editions .family a { gap: 8px; }
.editions .ed-price { color: var(--charcoal); font-family: var(--serif); font-size: 22px; margin-top: 6px; }
@media (max-width: 720px) { .editions .family { grid-template-columns: minmax(0, 1fr); } }

/* ================= v0.11: landing + one page per home ================= */
.mh-text .specs.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Split hero: real photo, calm text, one clear action */
.hero-split { padding-block: 40px 80px; }
.hero-split .wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: center; }
.hs-text { display: flex; flex-direction: column; gap: 24px; align-items: flex-start; }
.hs-text h1 { font-size: clamp(52px, 6.2vw, 96px); line-height: 0.98; letter-spacing: -0.03em; max-width: 9ch; }
.hs-text .sub { font-size: 21px; line-height: 1.5; color: var(--driftwood); max-width: 32ch; }
.hs-text .price { font-family: var(--serif); font-size: 30px; }
.hs-text .price small { font: 600 15px var(--sans); }
.hs-photo { position: relative; margin: 0; aspect-ratio: 16 / 11; overflow: hidden; border-radius: 4px; }
.hs-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; display: block; }
.hs-photo figcaption, .enq-photo figcaption { position: absolute; left: 14px; bottom: 14px; font-size: 13px; color: var(--on-dark); background: rgba(27,25,22,0.6); padding: 3px 9px; border-radius: 3px; }

/* Ridge editions on the landing page */
.editions-head { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 40px; align-items: baseline; margin: 88px 0 32px; padding-top: 40px; border-top: 1px solid var(--rule); }
.editions-head .label { color: var(--jarrah); }
.editions-head p { color: var(--driftwood); max-width: 52ch; }

/* How it works: real delivery video + four steps */
.how { padding-block: 110px; background: var(--sand); }
.how-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; align-items: start; }
.how-video { margin: 0; }
.how-video video { width: 100%; aspect-ratio: 16 / 9; display: block; background: var(--night); border-radius: 4px; }
.how-video figcaption { margin-top: 12px; font-size: 16px; color: var(--driftwood); }
.how-steps { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--charcoal); }
.how-steps li { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 4px 12px; padding: 20px 0; border-bottom: 1px solid var(--rule); }
.how-steps .n { grid-row: span 2; font: 600 14px/1.9 var(--sans); letter-spacing: 0.14em; color: var(--jarrah); }
.how-steps strong { font-family: var(--serif); font-weight: 400; font-size: 25px; line-height: 1.2; }
.how-steps span:not(.n) { color: var(--driftwood); }
.suppliers { margin-top: 40px; font-size: 16px; color: var(--driftwood); }

/* Enquire: photo of a real client beside the form */
.enq-side { display: flex; flex-direction: column; }
.enq-photo { position: relative; margin: 36px 0 0; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 4px; }
.enq-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 35%; display: block; }
.f.full { grid-column: 1 / -1; }
.f textarea { width: 100%; background: #26231f; border: 1px solid #7a7166; color: var(--on-dark); font: 400 19px/1.45 var(--sans); padding: 14px 16px; border-radius: 6px; resize: vertical; }
.f textarea::placeholder { color: #9a9083; }
.f textarea:focus { outline: 2px solid var(--on-dark); outline-offset: 2px; border-color: var(--on-dark); }
.f .opt { font-weight: 400; color: var(--on-dark-soft); }
form.enquiry > .f-grid:first-of-type { margin-bottom: 28px; }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form-error { color: #f1d9b0 !important; }
.info-grid .more.small { font-size: 15px; }

/* Phone: one full-width Enquire button, after the hero on the landing page */
.action-bar.one .btn { flex: 1; }
@media (max-width: 720px) {
  body.landing .action-bar { transform: translateY(110%); }
  body.landing .action-bar.show { transform: none; }
}

@media (max-width: 1080px) {
  .hero-split .wrap, .how-grid { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .hs-text h1 { max-width: 12ch; }
  .editions-head { grid-template-columns: minmax(0, 1fr); gap: 10px; }
}
@media (max-width: 720px) {
  .hero-split { padding-block: 20px 48px; }
  .hs-text h1 { font-size: 48px; }
  .hs-text .sub { font-size: 19px; }
  .hero-actions .btn { width: 100%; }
  .how { padding-block: 72px; }
  .mh-text .specs.three dd { font-size: 22px; }
  .enq-photo { display: none; }
}
.section-head h2 + .faq-list { margin-top: 32px; }
/* v0.12: classic landing restored */
body.landing .site-header .head-cta { border-color: currentColor; }
.site-header.solid .head-cta, body.page .site-header .head-cta { background: var(--geographe); color: var(--on-dark); border-color: var(--geographe); }
.site-header:not(.solid) .head-cta { background: transparent; color: inherit; }
.editions-head { margin-top: 88px; }

/* ================= v0.14: proof, trust and a stronger form ================= */
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--charcoal); color: var(--limestone); padding: 12px 18px; border-radius: 6px; }
.skip:focus { left: 12px; }

/* The Arrival: real delivery film, classic dark band */
.arrival { background: var(--night); color: var(--on-dark); padding-block: 120px; position: relative; }
.arrival .wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: center; position: relative; z-index: 3; }
.arrival-video { margin: 0; }
.arrival-video video { width: 100%; aspect-ratio: 16 / 9; display: block; background: #000; border-radius: 4px; object-fit: cover; }
.arrival-text { display: flex; flex-direction: column; gap: 22px; }
.arrival-text .label { color: #e6cfb8; }
.arrival-text h2 { font-size: clamp(38px, 4.2vw, 62px); line-height: 1.02; letter-spacing: -0.025em; }
.arrival-text p { color: var(--on-dark-soft); max-width: 40ch; }
.proof { list-style: none; margin: 8px 0 0; padding: 0; border-top: 1px solid rgba(244,239,230,0.25); }
.proof li { padding: 14px 0; border-bottom: 1px solid rgba(244,239,230,0.25); font-size: 17px; }
.proof span { display: block; font: 600 13px/1.6 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: #e6cfb8; }

/* Thank-you: what happens next */
.next-up { margin: 18px 0 0; padding-left: 22px; display: grid; gap: 14px; color: var(--on-dark-soft); }
.next-up strong { color: var(--on-dark); font-weight: 600; }
.mh-actions { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; }

@media (max-width: 1080px) { .arrival .wrap { grid-template-columns: minmax(0, 1fr); gap: 36px; } }
@media (max-width: 720px) { .arrival { padding-block: 72px; } .mh-actions .btn { width: 100%; } }

/* v0.15: floor plans */
.plan { margin: 0; background: #fff; border: 1px solid var(--rule); border-radius: 4px; padding: clamp(14px, 3vw, 40px); }
.plan a { display: block; cursor: zoom-in; }
.plan img { width: 100%; height: auto; display: block; }
.plan figcaption { margin-top: 18px; font-size: 16px; color: var(--driftwood); }
.plan-sec .section-head p { max-width: 56ch; }
.mh-text .specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plan img { max-width: 1040px; max-height: 760px; width: auto; margin: 0 auto; }

/* v0.16: cleaner landing */
.editions-line { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--rule); color: var(--driftwood); max-width: 70ch; }
.editions-line .label { display: block; color: var(--jarrah); margin-bottom: 8px; }
.editions-line a { color: var(--charcoal); font-weight: 600; }
.feature-price .incl { font: 600 15px var(--sans); color: #f1d9b0; }
.more-fields { border-top: 1px solid #4a443d; padding-top: 18px; }
.more-fields summary { cursor: pointer; font: 600 17px/1.4 var(--sans); color: var(--on-dark); min-height: 44px; display: flex; align-items: center; gap: 8px; }
.more-fields summary::after { content: "+"; margin-left: auto; font-weight: 400; font-size: 22px; }
.more-fields[open] summary::after { content: "–"; }
.more-fields > .f-grid { margin-top: 18px; }
.enquire .lead { margin-bottom: 8px; }
.arrival-text p + p { margin-top: -6px; }

/* v0.18: the real Peak logo */
.logo { display: inline-flex; align-items: center; line-height: 0; }
.logo svg { height: 34px; width: auto; display: block; }
.foot-logo svg { width: min(340px, 100%); height: auto; display: block; color: var(--on-dark); }
.wordmark { font-size: 0; line-height: 0; letter-spacing: 0; }
.wordmark svg { width: 100%; height: auto; display: block; color: var(--on-dark); opacity: 0.96; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (max-width: 720px) { .logo svg { height: 28px; } }

/* v0.18: floor plans readable on phones (pan sideways at a legible size) */
.hint-phone { display: none; }
@media (max-width: 720px) {
  .plan { padding: 0; overflow: hidden; }
  .plan-pan { overflow-x: auto; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; padding: 14px; position: relative;
    background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)) left / 24px 100% no-repeat local, linear-gradient(270deg, #fff 30%, rgba(255,255,255,0)) right / 24px 100% no-repeat local,
                radial-gradient(farthest-side at 0 50%, rgba(0,0,0,0.18), transparent) left / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, rgba(0,0,0,0.18), transparent) right / 12px 100% no-repeat scroll; }
  .plan img { max-width: none; max-height: none; margin: 0; }
  .plan-ridge img { width: 900px; }
  .plan-cape img { width: 640px; }
  .plan-headland img { width: 1120px; }
  .plan-point img { width: 1000px; }
  .plan figcaption { padding: 0 16px 16px; margin-top: 4px; }
  .hint-wide { display: none; }
  .hint-phone { display: inline; font-weight: 600; color: var(--charcoal); }
}
.site-footer .legal { margin-top: 72px; }

/* v0.20: pull the images back so the whole home and its setting show */
.card-img { aspect-ratio: 7 / 5; }
.card-img img { object-position: 50% 55%; }
.card:hover .card-img img { transform: scale(1.02); }
.model-hero .mh-img { aspect-ratio: auto; }
.model-hero .mh-img img { height: auto; display: block; }
.offer-img { aspect-ratio: auto; }
.offer-img img { height: auto; display: block; }
.hero .film { object-position: 50% 58%; }
.final .film { object-position: 62% 60%; }
@media (max-width: 720px) {
  .hero .film { height: auto; aspect-ratio: 1800 / 1292; }
  .hero .scrim { height: auto; aspect-ratio: 1800 / 1292; }
  .hero .wrap { margin-top: -64px; }
  .final { min-height: 0; display: block; padding-bottom: 56px; }
  .final .film { position: relative; height: auto; aspect-ratio: 1470 / 1072; }
  .final .scrim { bottom: auto; height: auto; aspect-ratio: 1470 / 1072; background: linear-gradient(180deg, rgba(27,25,22,0) 50%, rgba(27,25,22,0.96) 100%); }
  .final .wrap { margin-top: -56px; }
  .final .caption { top: 12px; bottom: auto; }
}

/* v0.21: hero and closing band follow the image's shape, so the whole home stays in frame at every width */
@media (min-width: 721px) {
  .hero { min-height: 0; height: min(71.8vw, 100svh); max-height: 1080px; }
  .hero .film { object-position: 50% 62%; }
  .final { min-height: 0; height: min(72.9vw, 100svh); max-height: 980px; }
}

/* v0.21: private display viewing page */
.viewing-head .label { color: var(--jarrah); display: block; margin-bottom: 14px; }
.viewing-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.viewing-info h2 { font-size: clamp(34px, 3.4vw, 48px); margin-bottom: 20px; }
.proof.light { border-color: var(--rule); }
.proof.light li { border-color: var(--rule); }
.proof.light span { color: var(--jarrah); }
.small-note { margin-top: 20px; font-size: 16px; color: var(--driftwood); }
.acuity { width: 100%; height: 820px; border: 1px solid var(--rule); border-radius: 4px; background: #fff; }
.cal-fallback { margin-top: 12px; font-size: 16px; color: var(--driftwood); }
.cal-placeholder { min-height: 520px; border: 1px dashed var(--rule); border-radius: 4px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 32px; color: var(--driftwood); }
.cal-placeholder strong { font-family: var(--serif); font-weight: 400; font-size: 28px; color: var(--charcoal); }
@media (max-width: 1080px) { .viewing-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; } }

/* v0.23: recovered from the current site */
.editions-line + .editions-line { margin-top: 18px; padding-top: 0; border-top: 0; }
.suppliers-line { font-size: 15px; color: #cbbfae; border-top: 1px solid rgba(244,239,230,0.2); padding-top: 14px; }
.info-grid ul.ideal { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.info-grid ul.ideal li { border: 1px solid var(--rule); border-radius: 999px; padding: 5px 12px; font-size: 15px; color: var(--charcoal); border-bottom: 1px solid var(--rule); }

/* v0.24: commercial page */
.comm-head .label { color: var(--jarrah); display: block; margin-bottom: 14px; }
.comm-head h1 { max-width: 16ch; }
.comm-head .hero-actions { margin-top: 28px; }
.comm-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
.comm-grid .label { color: var(--jarrah); }
.info-grid ul.ideal.big, ul.ideal.big { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
ul.ideal.big li { border: 1px solid var(--rule); border-radius: 999px; padding: 9px 16px; font-size: 17px; }
@media (max-width: 900px) { .comm-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; } }

/* v0.25: feeling first */
.slogan-line { font-family: var(--serif); font-style: italic; font-size: 21px; line-height: 1.4; color: var(--on-dark); }
.final-lead { max-width: 30ch; }

/* v0.25: plans fit the screen on phones; tap opens full size for pinch-zoom */
@media (max-width: 720px) {
  .plan { padding: 12px; overflow: visible; }
  .plan-pan { overflow: visible; padding: 0; background: none; }
  .plan img, .plan-ridge img, .plan-cape img, .plan-headland img, .plan-point img { width: 100%; max-width: 100%; height: auto; max-height: none; }
  .plan figcaption { padding: 0 4px 4px; }
}

/* ---- Price your home (package picker) ---- */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mh-text .amount small.pre { margin: 0 8px 0 0; }
.packages { background: var(--sand); }
.pkg-grid { border: 0; margin: 0; padding: 0; min-width: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pkg { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 26px 24px; background: var(--limestone); border: 1.5px solid var(--rule); border-radius: 4px; cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; }
.pkg:hover { border-color: var(--driftwood); }
.pkg input { position: absolute; opacity: 0; pointer-events: none; }
.pkg:has(input:checked) { border-color: var(--geographe); box-shadow: 0 0 0 1.5px var(--geographe); }
.pkg:has(input:focus-visible) { outline: 2px solid var(--geographe); outline-offset: 3px; }
.pkg-name { font: 600 14px/1.4 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--jarrah); }
.pkg-line { font-family: var(--serif); font-size: 22px; line-height: 1.25; }
.pkg-price { font-family: var(--serif); font-size: 34px; margin-top: 14px; }
.pkg-price small { font-family: var(--sans); font-size: 15px; font-weight: 600; margin-left: 6px; }
.pkg-ex { font-size: 15px; color: var(--driftwood); }
.pkg-total { margin-top: 28px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; border-top: 1px solid var(--rule); }
.pkg-total p { margin: 6px 0 0; }
.pkg-total strong { font-family: var(--serif); font-weight: 400; font-size: 34px; }
.pkg-total .soft { color: var(--driftwood); }
.pkg-total .small { font-size: 15px; max-width: 640px; }
@media (max-width: 820px) {
  .pkg-grid { grid-template-columns: 1fr; gap: 12px; }
  .pkg { padding: 20px; }
  .pkg-price { font-size: 30px; margin-top: 6px; }
  .pkg-total .btn { width: 100%; }
}

/* ---- Compare the homes ---- */
.compare-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare { width: 100%; border-collapse: collapse; min-width: 720px; font-size: 17px; }
.compare th, .compare td { text-align: left; padding: 16px 14px; border-bottom: 1px solid var(--rule); vertical-align: top; }
.compare thead th { font: 600 13px/1.4 var(--sans); letter-spacing: 0.14em; text-transform: uppercase; color: var(--driftwood); }
.compare tbody th a { font-family: var(--serif); font-size: 22px; color: var(--charcoal); text-decoration: none; }
.compare tbody th a:hover { text-decoration: underline; }
.compare td.num { font-family: var(--serif); font-size: 21px; white-space: nowrap; }
.compare td:last-child { color: var(--driftwood); max-width: 320px; }
.compare tr.here { background: var(--sand); }
.compare .you { display: block; font: 600 12px/1.4 var(--sans); letter-spacing: 0.12em; text-transform: uppercase; color: var(--geographe); margin-top: 4px; }
.pkg-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.print-link { background: none; border: 0; padding: 0; cursor: pointer; font: inherit; font-size: 16px; color: var(--charcoal); }
@media (max-width: 820px) { .pkg-actions { width: 100%; align-items: stretch; } .print-link { text-align: center; } }

/* ---- Print: a clean one-home factsheet ---- */
@media print {
  @page { size: A4; margin: 14mm; }
  body { background: #fff !important; color: #000; font-size: 11pt; }
  header, nav, footer, .site-header, .menu-panel, .action-bar, .skip, video, .arrival, .enquire, #enquire, .faq-list, [aria-label="Questions"], [aria-label="Same design"], .picture, .mh-actions, .pkg-actions, .hint-phone, .hint-wide, .offer { display: none !important; }
  .reveal, .mask span { opacity: 1 !important; transform: none !important; }
  .wrap { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; }
  .compare-sec, .info-grid .more:not(.small), .crumbs, .info-grid > div:first-child, .pkg-total .small { display: none !important; }
  html, body, main { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
  .info-grid { grid-template-columns: 1fr 1fr !important; }
  .section, .model-hero, .packages { padding: 4mm 0 !important; background: #fff !important; }
  .pkg-grid, .compare, .plan, .info-grid > div, .plan-sec { break-inside: avoid; }
  .section-head { break-after: avoid; }
  .mh-img img { max-height: 80mm; object-fit: cover; }
  .pkg-grid { grid-template-columns: repeat(3, 1fr) !important; }
  .pkg { border: 1px solid #999 !important; box-shadow: none !important; padding: 4mm !important; }
  .plan img { max-height: 85mm; width: auto; margin: 0 auto; display: block; }
  .model-hero .wrap { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 8mm !important; align-items: start; }
  .mh-text { gap: 2.5mm !important; }
  .mh-text h1 { font-size: 30pt !important; }
  .mh-text .specs { gap: 2mm !important; }
  .section-head { display: block !important; margin-bottom: 4mm !important; }
  .section-head h2 { font-size: 18pt !important; margin: 1mm 0 !important; }
  .pkg-total { margin-top: 4mm !important; padding-top: 3mm !important; }
  .pkg-price { font-size: 18pt !important; margin-top: 2mm !important; }
  .pkg-line { font-size: 12pt !important; }
  .info-grid { gap: 6mm !important; }
  .info-grid li { padding: 1mm 0 !important; }
  .ideal { display: none !important; }
  .compare th, .compare td { padding: 2mm !important; }
  .compare tbody th a { font-size: 12pt !important; }
  .compare td.num { font-size: 12pt !important; }
  .compare { min-width: 0; font-size: 9.5pt; }
  .compare-scroll { overflow: visible; }
  a { color: #000; text-decoration: none; }
  main::after { content: "Peak Modular · info@peakmodular.com.au · www.peakmodular.com.au · 36 Fairlawn Rd, Busselton WA 6280 (viewings by booking only) · From Our Backyard to Yours"; display: block; margin-top: 8mm; font-size: 9pt; color: #444; border-top: 1px solid #999; padding-top: 3mm; }
}

/* ---- Privacy ---- */
.priv-list { max-width: 980px; }
.priv-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 32px; padding: 28px 0; border-bottom: 1px solid var(--rule); }
.priv-row:first-child { border-top: 1px solid var(--rule); }
.priv-row h2 { font-size: 24px; line-height: 1.25; }
.priv-row p { color: var(--driftwood); margin: 0; max-width: 62ch; }
.priv-row a { color: var(--charcoal); }
.priv-date { margin-top: 28px; font-size: 15px; color: var(--driftwood); }
.form-foot p a, .legal a { color: inherit; }
@media (max-width: 820px) { .priv-row { grid-template-columns: 1fr; gap: 8px; padding: 22px 0; } .priv-row h2 { font-size: 21px; } }

/* ---- Hero v2: The Ridge on the hill, text stacked on the left ---- */
.hero .film { object-position: 62% 88%; }
@media (min-width: 1081px) {
  .hero .wrap { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); }
  .hero .wrap > h1, .hero .wrap > .hero-side { grid-column: 1; }
  .hero .scrim { background: linear-gradient(180deg, rgba(27,25,22,0.45) 0%, rgba(27,25,22,0) 20%, rgba(27,25,22,0) 50%, rgba(27,25,22,0.7) 100%), linear-gradient(90deg, rgba(27,25,22,0.6) 0%, rgba(27,25,22,0.2) 45%, rgba(27,25,22,0) 60%); }
}
@media (max-width: 1080px) { .hero .film { object-position: 72% 85%; } }

.print-note { font-size: 15px; color: var(--driftwood); max-width: 40ch; text-align: right; margin: 0; }
@media (max-width: 820px) { .print-note { text-align: center; max-width: none; } }

/* ---- Guides ---- */
.guide-head h1 { max-width: 18ch; }
.g-meta { margin-top: 14px; font-size: 15px; color: var(--driftwood); }
.g-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 8fr); gap: 56px; align-items: start; }
.g-toc { position: sticky; top: calc(var(--head) + 24px); }
.g-toc .label { color: var(--jarrah); }
.g-toc ol { margin: 14px 0 0; padding-left: 20px; display: grid; gap: 10px; font-size: 16px; }
.g-toc a { color: var(--charcoal); }
.g-body { max-width: 760px; }
.g-sec { padding: 8px 0 36px; border-bottom: 1px solid var(--rule); margin-bottom: 36px; }
.g-sec:last-child { border-bottom: 0; }
.g-sec h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.15; margin-bottom: 16px; }
.g-sec p { color: var(--driftwood); margin: 0 0 14px; max-width: 64ch; }
.g-sec p strong { color: var(--charcoal); }
.g-sec a { color: var(--charcoal); }
.g-table { min-width: 620px; margin: 6px 0 10px; }
.g-small { font-size: 15px; }
.g-sources ul { margin: 0 0 14px; padding-left: 20px; display: grid; gap: 8px; }
.g-note { font-size: 15px; }
@media (max-width: 1080px) { .g-grid { grid-template-columns: 1fr; gap: 24px; } .g-toc { position: static; } }
.g-toc ol { list-style: none; padding-left: 0; }

/* ---- Compare tables: whole row is tappable; on phones each home becomes a simple card (no sideways scrolling) ---- */
.compare tbody tr { position: relative; }
.compare tbody th a::after { content: ""; position: absolute; inset: 0; }
.compare tbody tr:hover { background: rgba(232, 222, 206, 0.6); }
.compare tbody tr.here:hover { background: var(--sand); }
@media (max-width: 820px) {
  .compare-scroll { overflow: visible; }
  .compare, .g-table { min-width: 0; display: block; }
  .compare thead { display: none; }
  .compare tbody { display: grid; gap: 12px; }
  .compare tbody tr { display: grid; grid-template-columns: max-content max-content 1fr; grid-template-areas: "name name price" "rooms size size" "best best best";
    column-gap: 10px; row-gap: 6px; padding: 18px 20px; background: var(--limestone); border: 1px solid var(--rule); border-radius: 6px; }
  .compare tbody tr.here { background: var(--sand); border-color: var(--geographe); }
  .compare th, .compare td { border: 0; padding: 0; }
  .compare tbody th { grid-area: name; }
  .compare tbody th a { font-size: 24px; }
  .compare tbody th a::before { content: "›"; position: absolute; right: 18px; bottom: 14px; font-family: var(--sans); font-size: 26px; color: var(--geographe); }
  .compare tbody td:nth-of-type(1) { grid-area: rooms; font-size: 18px; color: var(--charcoal); }
  .compare tbody td:nth-of-type(2) { grid-area: size; font-size: 18px; color: var(--charcoal); }
  .compare tbody td:nth-of-type(2)::before { content: "·"; margin-right: 10px; color: var(--driftwood); }
  .compare tbody td.num { grid-area: price; justify-self: end; font-size: 24px; }
  .compare tbody td:last-child { grid-area: best; font-size: 17px; max-width: none; padding-right: 26px; }
  .compare .you { margin-top: 2px; }
  /* Guide price table: three labelled prices per home */
  .g-table tbody tr { grid-template-columns: max-content max-content 1fr; grid-template-areas: "name name name" "rooms size size" "p1 p1 p1" "p2 p2 p2" "p3 p3 p3"; }
  .g-table tbody td.num { justify-self: stretch; display: flex; justify-content: space-between; align-items: baseline; font-size: 21px; padding-top: 6px; border-top: 1px solid var(--rule); color: var(--charcoal); }
  .g-table tbody td.num::before { content: attr(data-label); font-family: var(--sans); font-size: 16px; color: var(--driftwood); }
  .g-table tbody td.p1 { grid-area: p1; margin-top: 4px; } .g-table tbody td.p2 { grid-area: p2; } .g-table tbody td.p3 { grid-area: p3; padding-right: 0; }
  .g-table tbody th a::before { display: none; }
}

/* ---- Made in Busselton band (model pages) ---- */
.made { background: var(--charcoal); color: var(--on-dark); padding-block: 88px; }
.made-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 64px; align-items: center; }
.made-film { margin: 0; max-width: 360px; justify-self: end; width: 100%; }
.made-film video { width: 100%; aspect-ratio: 9 / 16; object-fit: cover; border-radius: 6px; display: block; background: #111; }
.made-film figcaption { margin-top: 10px; font-size: 14px; color: var(--on-dark-soft); }
.made-text .label { color: var(--banksia); }
.made-text h2 { font-size: clamp(34px, 4vw, 56px); line-height: 1.05; margin: 12px 0 18px; color: var(--on-dark); }
.made-text p { color: var(--on-dark-soft); max-width: 46ch; font-size: 19px; }
.made-text .slogan-line { font-family: var(--serif); font-style: italic; color: var(--on-dark); margin-top: 18px; }
@media (max-width: 820px) {
  .made { padding-block: 56px; }
  .made-grid { grid-template-columns: 1fr; gap: 28px; }
  .made-film { justify-self: center; max-width: 300px; }
}
@media print { .made { display: none !important; } }

/* ---- Acknowledgement of Country (footer) ---- */
.ack { margin: 40px 0 0; padding-top: 28px; border-top: 1px solid rgba(244, 239, 230, 0.14); max-width: 760px; font-size: 15px; line-height: 1.6; color: var(--on-dark-soft); }
.ack .label { display: block; margin-bottom: 8px; color: var(--on-dark); font-size: 13px; }

/* Ex-display Cape: the saving shown plainly, side by side with the same package new. */
#ex-display .wrap { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px 72px; align-items: center; }
#ex-display .offer-text { display: flex; flex-direction: column; align-items: flex-start; gap: 18px; }
#ex-display .offer-actions { margin-top: 8px; }
.exd-compare { border-top: 1px solid rgba(244,239,230,0.35); }
.exd-row { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 0; border-bottom: 1px solid rgba(244,239,230,0.35); color: #f0e2d2; font-size: 17px; }
.exd-row .num { font-family: var(--serif); font-size: 26px; white-space: nowrap; }
.exd-this { color: var(--on-dark); font-weight: 600; }
.exd-this .num { font-size: 34px; }
.exd-save { color: #f1d9b0; font-weight: 600; border-bottom: 0; }
.exd-save .num { font-size: 30px; color: #f1d9b0; }
.exd-note { margin-top: 10px; font-size: 14px; line-height: 1.5; color: #e6cfb8; max-width: 52ch; }
@media (max-width: 1080px) { #ex-display .wrap { grid-template-columns: minmax(0, 1fr); gap: 32px; } }
@media (max-width: 720px) { .exd-row { font-size: 15px; } .exd-row .num { font-size: 22px; } .exd-this .num { font-size: 28px; } .exd-save .num { font-size: 25px; } }

/* Ex-display Cape tile in the Cape's package picker (temporary, one only). */
.pkg-exd { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 32px; align-items: baseline; background: #f6ecdf; border-color: #d8b99b; }
.pkg-exd .pkg-name, .pkg-exd .pkg-line { grid-column: 1; }
.pkg-exd .pkg-price { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin-top: 0; }
.pkg-exd .pkg-ex { grid-column: 1 / -1; }
@media (max-width: 820px) { .pkg-exd { display: flex; } .pkg-exd .pkg-price { margin-top: 6px; align-self: flex-start; } }
@media print { .pkg-exd { display: none !important; } }

/* v0.42: Guides hub cards */
.guides-list { padding-top: 24px; }
.guide-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.guide-card { display: flex; flex-direction: column; gap: 14px; padding: 36px 32px; background: var(--limestone); border: 1px solid var(--rule); border-radius: 4px; text-decoration: none; color: inherit; transition: border-color .2s; }
.guide-card:hover { border-color: var(--driftwood); }
.guide-card .label { color: var(--jarrah); }
.guide-card h2 { font-size: clamp(28px, 2.6vw, 38px); line-height: 1.12; }
.guide-card p { color: var(--driftwood); }
.guide-card .go { margin-top: auto; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 820px) { .guide-cards { grid-template-columns: minmax(0, 1fr); } .guide-card { padding: 26px 22px; } }

/* v0.42: "Larger text" stays visible in the phone header, as a compact two-line button beside Menu */
@media (max-width: 720px) {
  .site-header .text-size { display: inline-flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-width: 0; min-height: 48px; padding: 0 12px; font: 600 13px/1.05 var(--sans); }
  .site-header .text-size span { display: block; }
  .head-right { gap: 8px; }
  .menu-btn { padding: 0 14px; }
  .logo svg { height: 24px; }
}
@media (max-width: 359px) { .logo svg { height: 20px; } .site-header .text-size { padding: 0 9px; font-size: 12px; } }

/* v0.42b: header fit on phones, and keep the header its normal size when larger text is on */
.site-header .text-size { gap: 0.3em; }
html.large-text .site-header, html.large-text .menu-panel { zoom: 0.8772; }
@media (max-width: 720px) {
  .site-header .text-size { gap: 1px; }
  .logo svg { height: 21px; }
  .menu-btn { padding: 0 13px; }
}
@media (max-width: 374px) { .logo svg { height: 18px; } .head-right { gap: 6px; } .menu-btn { padding: 0 11px; } }

/* v0.44: five menu items stay on one line on smaller laptops */
.nav a { white-space: nowrap; }
@media (min-width: 1081px) and (max-width: 1280px) { .nav { gap: 22px; } .nav a { font-size: 15px; } .head-right { gap: 12px; } .site-header .logo svg { height: 28px; } }

/* v0.46: each home is its own clearly separated card, with its name and price together */
.home-card { gap: 0; background: #fbf8f3; border: 1px solid var(--rule); border-radius: 6px; overflow: hidden; box-shadow: 0 1px 2px rgba(36,33,29,0.04); transition: border-color .2s, box-shadow .2s; }
.home-card:hover { border-color: var(--driftwood); box-shadow: 0 6px 24px rgba(36,33,29,0.08); }
.home-card .card-body { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px 26px; flex-grow: 1; }
.home-card .card-top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding-bottom: 14px; border-bottom: 1px solid var(--rule); }
.home-card h3 { font-size: clamp(30px, 2.6vw, 40px); line-height: 1.05; }
.home-card .p { font-family: var(--serif); font-size: 26px; color: var(--charcoal); white-space: nowrap; }
.home-card .p small { font-family: var(--sans); font-size: 14px; font-weight: 600; }
.home-card .card-specs { font-weight: 600; color: var(--charcoal); font-size: 17px; flex-grow: 0; }
.home-card .card-line { color: var(--driftwood); font-size: 17px; flex-grow: 1; }
.home-card .go { margin-top: 6px; font-weight: 600; color: var(--geographe); }
.home-card .go::after { content: " →"; }
.cards.two { gap: 32px 28px; }
@media (max-width: 720px) {
  .cards.two { gap: 28px; }
  .home-card .card-body { padding: 20px 20px 22px; }
  .home-card .card-top { flex-direction: column; align-items: flex-start; }
  .home-card h3 { font-size: 32px; }
}
