
:root {
  --blue: #173d9b;
  --blue-deep: #0d286d;
  --blue-soft: #e9eefb;
  --bronze: #b7774a;
  --bronze-dark: #925833;
  --paper: #f8f7f4;
  --warm: #eeeae2;
  --white: #ffffff;
  --ink: #13203a;
  --muted: #606977;
  --line: #dcd8cf;
  --max: 1460px;
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
img, video { display:block; max-width:100%; }
a { color:inherit; }
button, input, select, textarea { font:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h1 { font-size:clamp(3.3rem,6.2vw,7rem); line-height:.94; letter-spacing:-.05em; text-wrap:balance; }
h2 { font-size:clamp(2.4rem,4.5vw,4.8rem); line-height:1.02; letter-spacing:-.04em; text-wrap:balance; }
h3 { font-size:clamp(1.5rem,2vw,2rem); line-height:1.15; }
p { color:var(--muted); line-height:1.72; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; clip:rect(0,0,0,0); overflow:hidden; white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:12px; z-index:999; padding:10px 14px; background:#fff; color:var(--blue); transform:translateY(-150%); border-radius:6px; }
.skip-link:focus { transform:none; }
.site-header { width:min(var(--max),calc(100% - 64px)); min-height:122px; margin:0 auto; display:grid; grid-template-columns:250px minmax(0,1fr) 160px; gap:26px; align-items:center; position:relative; z-index:20; }
.brand { display:block; width:250px; height:96px; overflow:hidden; text-decoration:none; }
.brand img { content:url('../images/primespaces-logo-horizontal.png'); width:100%; height:100%; max-height:none; object-fit:contain; mix-blend-mode:darken; transition:transform .2s ease; }
.brand:hover img { transform:scale(1.025); }
.primary-nav { display:flex; justify-content:center; align-items:center; gap:clamp(18px,2.4vw,48px); font-size:16px; font-weight:700; }
.primary-nav a { position:relative; min-height:52px; display:inline-flex; align-items:center; padding:0; border:1px solid transparent; border-radius:8px; text-decoration:none; white-space:nowrap; transition:.18s ease; }
.primary-nav a:hover { color:var(--blue); background:var(--blue-soft); transform:translateY(-1px); }
.primary-nav a.active { padding:0 20px; color:var(--ink); border:2px solid var(--ink); border-radius:999px; background:#efe9e1; }
.primary-nav a.active::after { display:none; }
.nav-homes { position:relative; }
.nav-homes::after { content:""; position:absolute; top:100%; left:0; right:0; height:12px; }
.nav-homes .homes-caret { display:inline-block; margin-left:5px; color:var(--muted); font-size:13px; transition:transform .18s ease; }
.nav-homes:hover .homes-caret,.nav-homes.is-open .homes-caret { transform:rotate(180deg); }
.nav-homes .homes-menu { position:absolute; top:calc(100% + 10px); left:50%; z-index:40; width:230px; padding:10px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 20px 45px rgba(13,25,49,.13); opacity:0; visibility:hidden; transform:translate(-50%,-6px); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.nav-homes:hover .homes-menu,.nav-homes:focus-within .homes-menu,.nav-homes.is-open .homes-menu { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-homes .homes-menu a { display:block; padding:13px 11px; border:0; border-radius:7px; white-space:nowrap; }
.nav-homes .homes-menu a:hover { background:var(--blue-soft); transform:none; }
.talk-button,.button,.outline-button { min-height:52px; display:inline-flex; align-items:center; justify-content:center; padding:0 25px; border-radius:7px; border:1px solid var(--bronze); font-weight:800; font-size:14px; text-decoration:none; transition:.18s ease; }
.talk-button { justify-self:end; min-width:160px; }
.talk-button,.button { background:var(--bronze); color:#fff; }
.talk-button:hover,.button:hover { background:var(--bronze-dark); border-color:var(--bronze-dark); transform:translateY(-1px); }
.outline-button { background:transparent; color:var(--ink); }
.outline-button:hover { background:#fff; }
.menu-toggle { display:none; }
.page-frame { width:min(var(--max),calc(100% - 64px)); margin:0 auto 30px; border:1px solid var(--line); border-radius:18px; background:#fff; overflow:hidden; }
.section { width:min(1240px,calc(100% - 80px)); margin:0 auto; padding:110px 0; }
.eyebrow { margin-bottom:16px; color:var(--bronze); font-size:12px; line-height:1.4; font-weight:850; text-transform:uppercase; letter-spacing:.15em; }
.arrow-link { display:inline-flex; gap:10px; align-items:center; font-size:14px; font-weight:800; text-decoration:none; }
.arrow-link span { transition:transform .18s ease; }
.arrow-link:hover span { transform:translateX(5px); }

/* Home */
.home-hero { width:min(var(--max),calc(100% - 64px)); min-height:760px; margin:0 auto 30px; border-radius:18px; overflow:hidden; position:relative; background:var(--blue-deep) url('../media/home/14-spinosa-video-poster.jpg?v=2') center/cover no-repeat; color:#fff; }
.home-hero video,.hero-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-poster { z-index:0; }
.home-hero video { z-index:1; }
.hero-shade { position:absolute; z-index:1; inset:0; background:linear-gradient(90deg,rgba(5,17,52,.92),rgba(5,17,52,.56) 42%,rgba(5,17,52,.08) 76%),linear-gradient(0deg,rgba(5,17,52,.55),transparent 45%); }
.hero-copy { position:relative; z-index:2; width:min(740px,calc(100% - 100px)); padding:150px 0 128px 72px; }
.hero-copy h1 { margin-bottom:26px; font-size:clamp(3.8rem,5.9vw,6.8rem); }
.hero-copy p:not(.eyebrow) { max-width:650px; color:#ffffffdf; font-size:18px; }
.hero-copy .eyebrow { color:#e9b487; }
.hero-actions { display:flex; gap:27px; align-items:center; margin-top:34px; }
.home-hero .arrow-link { color:#fff; }
.hero-energy-rating { position:absolute; z-index:3; right:30px; bottom:25px; max-width:420px; margin:0; color:rgba(255,255,255,.88); font-size:12px; line-height:1.55; font-weight:600; text-align:right; text-shadow:0 1px 8px rgba(5,17,52,.5); }
.hero-project-label { position:absolute; z-index:3; right:30px; bottom:25px; padding:10px 14px; border:1px solid #ffffff35; border-radius:999px; background:#0d286da1; backdrop-filter:blur(10px); color:#fff; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:end; }
.intro-grid p:last-child { margin-bottom:8px; font-size:18px; }
.warm-section { width:100%; padding-left:max(40px,calc(50% - 620px)); padding-right:max(40px,calc(50% - 620px)); background:var(--warm); }
.principles { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:55px; }
.principles article { padding:32px; border-top:1px solid #cbc4b8; }
.principles span { color:var(--blue); font-size:12px; font-weight:850; }
.principles h3 { margin-top:35px; }
.featured { display:grid; grid-template-columns:1.35fr .65fr; gap:70px; align-items:center; }
.featured-media { overflow:hidden; border-radius:15px; }
.featured-media img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.pathways-intro { display:grid; grid-template-columns:1fr .85fr; gap:80px; align-items:end; }
.pathways { margin-top:55px; border-top:1px solid var(--line); }
.pathway { display:grid; grid-template-columns:60px 1fr 40px; gap:20px; align-items:center; padding:27px 4px; border-bottom:1px solid var(--line); text-decoration:none; transition:.18s ease; }
.pathway:hover { padding-left:18px; padding-right:18px; background:#fff; }
.pathway>span { color:var(--blue); font-size:12px; font-weight:850; }
.pathway h3 { margin:0 0 5px; }
.pathway p { margin:0; }
.pathway b { justify-self:end; font-size:23px; font-weight:400; }
.investor-strip { background:var(--blue); color:#fff; }
.investor-strip .section { display:grid; grid-template-columns:1fr .8fr; gap:80px; align-items:center; }
.investor-strip p { color:#ffffffc9; }
.investor-strip .eyebrow { color:#e9b487; }
.investor-strip .outline-button { color:#fff; border-color:#ffffff80; }
.investor-strip .outline-button:hover { color:var(--blue); }

/* Work listing */
.work-page { padding:60px; }
.work-page>h1 { max-width:920px; margin-bottom:24px; }
.work-intro { max-width:780px; font-size:18px; }
.work-grid { display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:1fr 1fr; gap:20px; margin-top:50px; }
.project-card { min-height:310px; position:relative; overflow:hidden; border-radius:14px; background:var(--warm); color:#fff; text-decoration:none; }
.project-card-large { grid-row:1/3; min-height:650px; }
.project-card img,.project-card video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .65s ease; }
.project-card:after { content:""; position:absolute; inset:25% 0 0; background:linear-gradient(transparent,rgba(4,13,42,.88)); }
.project-card>div { position:absolute; z-index:2; left:27px; right:27px; bottom:25px; }
.project-card .eyebrow { margin-bottom:7px; color:#efba8d; }
.project-card h2 { margin-bottom:8px; font-size:2.15rem; }
.project-card span { color:#ffffffc7; font-size:13px; }
.project-card:hover img,.project-card:hover video { transform:scale(1.03); }

/* Project */
.project-hero { min-height:690px; position:relative; overflow:hidden; background:var(--warm); }
.project-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.project-hero:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,13,42,.8),rgba(4,13,42,.1) 68%); }
.project-hero-panel { position:absolute; z-index:2; left:clamp(28px,6vw,92px); bottom:clamp(45px,8vw,95px); max-width:680px; color:#fff; }
.project-hero-panel .eyebrow { color:#efba8d; }
.project-hero-panel h1 { margin:8px 0 18px; }
.project-hero-panel p { max-width:580px; color:#ffffffdb; font-size:18px; }
.project-film { padding-bottom:45px; }
.project-film-frame { overflow:hidden; border-radius:15px; background:#07132e; box-shadow:0 28px 65px #07132e2d; }
.project-film-frame video { width:100%; aspect-ratio:16/9; object-fit:cover; background:#07132e; }
.project-story { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(45px,8vw,120px); align-items:start; }
.project-story h2 { max-width:730px; }
.project-story>p { max-width:620px; font-size:17px; }
.project-details { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; padding-top:0; }
.project-details article { padding:32px 28px; border-top:1px solid var(--line); }
.project-details article span { color:var(--blue); font-size:12px; font-weight:850; letter-spacing:.1em; text-transform:uppercase; }
.project-details h3 { margin:26px 0 10px; font-size:1.55rem; }
.project-gallery { padding-top:28px; }
.gallery-heading { display:grid; grid-template-columns:1fr .8fr; gap:70px; align-items:end; margin-bottom:42px; }
.gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.gallery-grid figure { margin:0; overflow:hidden; border-radius:13px; background:var(--warm); }
.gallery-grid figure:first-child,.gallery-grid figure:last-child { grid-column:1/-1; }
.gallery-grid img { width:100%; height:500px; object-fit:cover; }
.gallery-grid figure:first-child img,.gallery-grid figure:last-child img { height:min(700px,58vw); }
.gallery-grid figcaption { padding:13px 5px 3px; color:var(--muted); font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.project-nav { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.project-nav a { padding:55px; text-decoration:none; transition:.18s ease; }
.project-nav a:last-child { text-align:right; border-left:1px solid var(--line); }
.project-nav a:hover { background:var(--blue-soft); }
.project-nav small { display:block; margin-bottom:10px; color:var(--bronze); font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.project-nav strong { font-family:var(--serif); font-size:2rem; font-weight:400; }
.media-downloads { padding-top:15px; }
.media-downloads details { border:1px solid var(--line); border-radius:12px; background:#fff; }
.media-downloads summary { cursor:pointer; padding:20px 24px; font-weight:800; }
.download-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:0 20px 20px; }
.download-grid a { padding:14px; border:1px solid var(--line); border-radius:8px; text-decoration:none; font-size:13px; }
.download-grid a:hover { border-color:var(--blue); color:var(--blue); }

/* The Arcadia project page */
.arcadia-page { border:0; border-radius:0; background:transparent; overflow:visible; margin-bottom:0; }
.arcadia-hero { min-height:680px; border-radius:0 0 16px 16px; }
.arcadia-film { padding-top:94px; }
.arcadia-film h2 { margin-bottom:25px; }
.arcadia-story,.arcadia-plan-intro { display:grid; grid-template-columns:1fr .82fr; gap:clamp(50px,10vw,160px); align-items:start; }
.arcadia-story { padding-top:120px; padding-bottom:125px; }
.arcadia-story h2,.arcadia-plan-intro h2 { margin:0; font-size:clamp(3rem,4.65vw,5.4rem); }
.arcadia-story>p,.arcadia-plan-intro>p { max-width:560px; margin-top:34px; font-size:17px; }
.arcadia-plan-intro { padding-top:10px; padding-bottom:95px; align-items:end; }
.arcadia-plan-intro>p { margin-bottom:8px; }
.arcadia-plan { display:grid; grid-template-columns:315px 1fr; width:min(1240px,calc(100% - 80px)); padding:0; border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#f1eee8; }
.plan-summary { padding:52px 54px; border-right:1px solid var(--line); background:#faf9f6; }
.plan-summary h2 { margin:0 0 36px; font-size:3.55rem; }
.plan-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; padding:26px 0 28px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.plan-stats span { color:#4f5c73; font-size:9px; font-weight:800; letter-spacing:.12em; line-height:1.4; text-align:center; text-transform:uppercase; }
.plan-stats b { display:block; margin-bottom:6px; color:var(--bronze); font-family:var(--serif); font-size:2.15rem; font-weight:400; letter-spacing:0; }
.plan-areas { padding:28px 0 4px; }
.plan-areas>p { margin:0 0 16px; color:var(--ink); font-size:11px; font-weight:850; letter-spacing:.14em; text-transform:uppercase; }
.plan-areas dl { margin:0 0 25px; }
.plan-areas dl>div { display:flex; justify-content:space-between; gap:8px; padding:8px 0; color:var(--muted); font-size:13px; }
.plan-areas dt,.plan-areas dd { margin:0; }
.plan-areas dd { color:var(--ink); font-weight:800; white-space:nowrap; }
.plan-areas .total { margin-top:7px; padding-top:15px; border-top:1px solid var(--line); font-weight:850; }
.plan-areas .total dd { color:var(--bronze-dark); font-size:17px; }
.plan-tags { display:flex; flex-wrap:wrap; gap:8px; }
.plan-tags span { padding:8px 10px; border:1px solid var(--line); border-radius:999px; color:#516078; font-size:10px; white-space:nowrap; }
.plan-image { padding:32px; min-width:0; }
.plan-image img { width:100%; min-height:480px; object-fit:contain; border-radius:10px; background:#fff; }
.plan-image p { margin:14px 4px 0; color:#4a6388; font-size:10px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.arcadia-gallery { padding-top:120px; }
.arcadia-gallery .gallery-heading { display:block; margin-bottom:24px; }
.arcadia-gallery .gallery-grid { gap:22px; }
.arcadia-gallery .gallery-grid figure:first-child,.arcadia-gallery .gallery-grid figure:last-child { grid-column:1/-1; }
.arcadia-gallery .gallery-grid img { height:470px; }
.arcadia-gallery .gallery-grid figure:first-child img,.arcadia-gallery .gallery-grid figure:last-child img { height:min(700px,56vw); }
.arcadia-gallery .gallery-grid figure:nth-child(5) img,.arcadia-gallery .gallery-grid figure:nth-child(6) img,.arcadia-gallery .gallery-grid figure:nth-child(7) img,.arcadia-gallery .gallery-grid figure:nth-child(8) img { height:390px; }
.arcadia-project-nav { width:min(1240px,calc(100% - 80px)); margin:0 auto; border:0; }
.arcadia-project-nav a { padding:100px 0; }
.arcadia-project-nav a:hover { background:transparent; color:var(--bronze-dark); }
.arcadia-project-nav strong { font-family:var(--sans); font-size:14px; font-weight:800; }

/* Contact */
.contact-page { min-height:760px; display:grid; grid-template-columns:.9fr 1.1fr; background:linear-gradient(135deg,#faf9f6,var(--warm)); }
.contact-copy { display:flex; flex-direction:column; justify-content:center; padding:85px 64px; }
.contact-copy>p:not(.eyebrow) { max-width:620px; font-size:18px; }
.contact-direct { display:grid; gap:12px; margin-top:40px; padding-top:25px; border-top:1px solid var(--line); }
.contact-direct p { margin:0; display:grid; grid-template-columns:65px 1fr; }
.contact-direct span { color:var(--muted); font-size:12px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.contact-direct a { width:fit-content; font-weight:800; text-decoration:none; color:var(--ink); }
.contact-card { margin:42px; padding:46px; border:1px solid var(--line); border-radius:15px; background:#ffffffe8; box-shadow:0 22px 60px #0d286d14; }
.contact-card h2 { font-size:2.7rem; }
.enquiry-form { display:grid; gap:20px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.enquiry-form label { display:grid; gap:8px; }
.enquiry-form label span { font-size:13px; font-weight:750; }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { width:100%; padding:13px 14px; border:1px solid #d4cfc5; border-radius:7px; background:#fff; color:var(--ink); }
.enquiry-form textarea { min-height:130px; resize:vertical; }
.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus { outline:none; border-color:var(--blue); box-shadow:0 0 0 3px #173d9b1a; }
.form-wide { grid-column:1/-1; }
.form-note { font-size:12px; margin:-6px 0 0; }

/* Footer */
.contact-cta { padding:105px 40px; text-align:center; background:var(--blue-deep); color:#fff; }
.contact-cta h2 { max-width:850px; margin-left:auto; margin-right:auto; }
.contact-cta p { max-width:620px; margin:0 auto 30px; color:#ffffffbd; }
.contact-cta .eyebrow { color:#efba8d; }
.site-footer { min-height:104px; display:grid; grid-template-columns:1.5fr 1fr 1fr auto; gap:25px; align-items:center; padding:18px max(42px,calc((100% - var(--max))/2)); border-top:1px solid var(--line); background:var(--paper); color:var(--ink); font-size:13px; }
.site-footer a { text-decoration:none; }
.home-footer { min-height:100px; grid-template-columns:1fr 1fr 1fr; padding:18px max(78px,calc((100% - var(--max))/2)); border-top:0; background:var(--blue-deep); color:#fff; }
.home-footer .footer-brand,.home-footer .copyright { display:none; }
.home-footer .home-footer-link { justify-self:start; }
.home-footer>a:not(.home-footer-link):last-of-type { justify-self:end; }
.footer-brand { display:flex; align-items:center; gap:13px; }
.footer-brand img { width:46px; height:46px; object-fit:contain; }
.footer-brand strong { display:block; font-size:17px; }
.footer-brand span { display:block; color:var(--bronze); font-family:var(--serif); font-style:italic; }
.copyright { color:var(--muted); }

/* Investors */
.investors-hero { min-height:600px; display:grid; place-items:center; padding:80px; text-align:center; background:linear-gradient(135deg,var(--blue-deep),var(--blue)); color:#fff; }
.investors-hero>div { max-width:930px; }
.investors-hero .eyebrow { color:#efba8d; }
.investors-hero p:not(.eyebrow) { max-width:710px; margin:0 auto 30px; color:#ffffffd1; font-size:18px; }
.investor-process { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:45px; }
.investor-process article { padding:28px; border-top:1px solid var(--line); }
.investor-process span { color:var(--blue); font-size:12px; font-weight:850; }
.investor-process h3 { margin-top:25px; }
.investor-note { padding:26px; border:1px solid var(--line); border-radius:12px; background:var(--warm); }
.investor-note p { margin:0; font-size:13px; }

/* Story and home service pages */
.story-hero,.service-hero { min-height:650px; display:grid; grid-template-columns:1fr 1fr; align-items:stretch; }
.story-hero>div,.service-hero>div { display:flex; flex-direction:column; justify-content:center; padding:70px 64px; }
.story-hero h1,.service-hero h1 { font-size:clamp(3.2rem,5vw,6rem); }
.story-hero>div>p:not(.eyebrow),.service-hero>div>p:not(.eyebrow) { max-width:610px; font-size:17px; }
.story-hero .button,.service-hero .button { width:fit-content; margin-top:15px; }
.story-hero>img,.service-hero>img { width:100%; height:100%; min-height:650px; object-fit:cover; }
.service-points { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.service-points article { padding:30px; border-top:1px solid var(--line); }
.service-points span { color:var(--blue); font-size:12px; font-weight:850; }
.service-points h3 { margin-top:28px; }

/* Family Homes */
.family-page .family-hero { min-height:730px; display:block; position:relative; isolation:isolate; background:#ece8e1; }
.family-page .family-hero>img { position:absolute; inset:0; z-index:-2; width:100%; height:100%; min-height:0; object-fit:cover; object-position:center center; }
.family-hero-shade { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(248,247,244,.99) 0%,rgba(248,247,244,.93) 22%,rgba(248,247,244,.56) 44%,rgba(248,247,244,.04) 70%); }
.family-hero-copy { position:absolute; z-index:2; top:132px; left:60px; width:700px; text-align:left; }
.family-hero-copy .eyebrow { margin-bottom:20px; }
.family-hero-copy h1 { max-width:700px; margin:0 0 30px; color:var(--ink); font-size:clamp(4.1rem,5.7vw,6.25rem); line-height:.94; letter-spacing:-.045em; text-wrap:initial; }
.family-hero-copy>p:not(.eyebrow) { max-width:600px; margin:0; color:#41506a; font-size:17px; line-height:1.75; }
.family-rating { position:absolute; z-index:3; right:28px; bottom:24px; width:470px; margin:0; padding:10px 16px; color:#fff; background:rgba(5,18,45,.83); font-size:12px; line-height:1.45; text-align:right; }
.family-page .family-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.family-page .family-footer a { color:#fff; }
.family-page .family-footer a:first-of-type { justify-self:center; }
.family-page .family-footer a:last-child { justify-self:end; }

/* Second Dwellings */
.second-dwellings-hero { min-height:900px; display:grid; grid-template-columns:56% 44%; align-items:stretch; }
.second-dwellings-image { width:100%; height:100%; min-height:900px; object-fit:cover; object-position:center center; }
.second-dwellings-copy { display:flex; flex-direction:column; padding:35px 66px 72px; background:#fff; text-align:left; }
.second-dwellings-copy>.eyebrow { margin-bottom:20px; }
.second-dwellings-copy h1 { margin:0 0 30px; color:var(--ink); font-size:clamp(4rem,5vw,5.8rem); line-height:.92; letter-spacing:-.045em; text-wrap:initial; }
.second-dwellings-intro,.second-dwellings-next-step>p:not(.eyebrow) { max-width:520px; margin:0; color:#41506a; font-size:16px; line-height:1.75; }
.second-dwellings-next-step { max-width:520px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line); }
.second-dwellings-next-step .eyebrow { margin-bottom:12px; }
.second-dwellings-rating { margin:auto 0 0; color:#41506a; font-size:11px; line-height:1.5; }
.second-dwellings-page .second-dwellings-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.second-dwellings-page .second-dwellings-footer a { color:#fff; }
.second-dwellings-page .second-dwellings-footer a:first-of-type { justify-self:center; }
.second-dwellings-page .second-dwellings-footer a:last-child { justify-self:end; }

/* Knockdown Rebuild */
.knockdown-page .primary-nav a.active { color:var(--bronze-dark); border:1px solid #e1c7b1; background:#f4eade; }
.knockdown-journey { min-height:1050px; display:grid; grid-template-columns:47.6% 52.4%; align-items:stretch; background:#fff; }
.knockdown-story { padding:74px 64px 72px; text-align:left; }
.knockdown-story>.eyebrow { margin-bottom:20px; }
.knockdown-story h1 { margin:0 0 30px; font-size:clamp(4rem,5.15vw,5.8rem); line-height:.92; letter-spacing:-.045em; text-wrap:initial; }
.knockdown-intro,.knockdown-next-step>p:not(.eyebrow) { max-width:570px; margin:0; color:#41506a; font-size:16px; line-height:1.75; }
.knockdown-next-step { max-width:570px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line); }
.knockdown-next-step .eyebrow { margin-bottom:12px; }
.knockdown-rating { max-width:570px; margin:34px 0 0; color:#41506a; font-size:11px; line-height:1.5; }
.knockdown-comparison { display:grid; align-content:start; gap:18px; padding:55px; border-left:1px solid var(--line); }
.knockdown-comparison figure { position:relative; margin:0; overflow:hidden; border-radius:12px; background:var(--warm); }
.knockdown-comparison img { width:100%; height:490px; object-fit:cover; }
.knockdown-comparison figure>span { position:absolute; z-index:2; top:18px; left:18px; padding:10px 15px; border-radius:5px; background:rgba(255,255,255,.94); color:var(--bronze-dark); font-size:12px; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }
.knockdown-page .knockdown-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.knockdown-page .knockdown-footer a { color:#fff; }
.knockdown-page .knockdown-footer a:first-of-type { justify-self:center; }
.knockdown-page .knockdown-footer a:last-child { justify-self:end; }

/* Extensions */
.extensions-page .primary-nav a.active { color:var(--bronze-dark); border:1px solid #e1c7b1; background:#f4eade; }
.extensions-layout { min-height:930px; padding:43px 48px 20px; background:#fff; }
.extensions-columns { min-height:474px; display:grid; grid-template-columns:40% 31% 29%; align-items:stretch; }
.extensions-title-column { padding:0 46px 0 30px; border-right:1px solid var(--line); text-align:left; }
.extensions-title-column>.eyebrow { margin-bottom:20px; }
.extensions-title-column h1 { margin:0; font-size:clamp(4rem,5vw,5.4rem); line-height:.99; letter-spacing:-.045em; text-wrap:initial; }
.extensions-copy-column { padding:0 48px; border-right:1px solid var(--line); }
.extensions-copy-column p,.extensions-next-column>p:not(.eyebrow) { margin:0; color:#41506a; font-size:16px; line-height:1.72; }
.extensions-next-column { padding:0 30px 0 48px; }
.extensions-line-label { display:flex; align-items:center; gap:16px; margin-bottom:14px; white-space:nowrap; }
.extensions-line-label::before,.extensions-line-label::after { content:""; height:1px; background:var(--line); }
.extensions-line-label::before { width:32px; flex:none; margin-left:-48px; }
.extensions-line-label::after { flex:1; }
.extensions-next-column .extensions-rating { margin-top:26px; font-size:11px; line-height:1.5; }
.extensions-image { width:100%; height:350px; margin-top:42px; border-radius:10px; object-fit:cover; object-position:center; }
.extensions-page .extensions-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.extensions-page .extensions-footer a { color:#fff; }
.extensions-page .extensions-footer a:first-of-type { justify-self:center; }
.extensions-page .extensions-footer a:last-child { justify-self:end; }

/* Investors editorial */
.investor-editorial-page .primary-nav a.active { color:var(--bronze-dark); border:1px solid #e1c7b1; background:#f4eade; }
.investor-editorial { min-height:1120px; padding:43px 57px 70px; background:#fff; }
.investor-demand { padding-bottom:27px; border-bottom:1px solid var(--line); }
.investor-demand .eyebrow { margin-bottom:12px; }
.investor-demand>p:not(.eyebrow) { margin:0; color:var(--ink); font-size:15px; line-height:1.7; }
.investor-editorial-grid { display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1fr); gap:60px; margin-top:43px; }
.investor-story-column { text-align:left; }
.investor-story-column>.eyebrow { margin-bottom:20px; }
.investor-story-column h1 { margin:0 0 30px; font-size:clamp(4rem,5vw,5.5rem); line-height:.92; letter-spacing:-.045em; text-wrap:initial; }
.investor-story-copy { max-width:590px; margin:0; color:#41506a; font-size:16px; line-height:1.72; }
.investor-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:35px; }
.investor-steps div { display:grid; gap:5px; }
.investor-steps span { color:var(--bronze); font-size:10px; }
.investor-steps strong { color:var(--ink); font-size:11px; }
.investor-next-step { max-width:590px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line); }
.investor-next-step .eyebrow { margin-bottom:12px; }
.investor-next-step>p:not(.eyebrow) { margin:0 0 22px; color:#41506a; font-size:16px; line-height:1.72; }
.investor-gallery { display:grid; grid-template-columns:1fr 1fr; gap:13px; align-content:start; }
.investor-gallery img { width:100%; height:190px; border-radius:12px; object-fit:cover; }
.investor-gallery .investor-gallery-wide { grid-column:1/-1; height:377px; }
.investor-editorial-page .investor-editorial-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.investor-editorial-page .investor-editorial-footer a { color:#fff; }
.investor-editorial-page .investor-editorial-footer a:first-of-type { justify-self:center; }
.investor-editorial-page .investor-editorial-footer a:last-child { justify-self:end; }

/* Our Work editorial */
.work-editorial-page .primary-nav a.active { color:var(--bronze-dark); border:1px solid #e1c7b1; background:#f4eade; }
.work-editorial { padding:58px 60px 60px; background:#fff; }
.work-editorial>.eyebrow { margin-bottom:20px; }
.work-editorial>h1 { max-width:900px; margin:0 0 28px; font-size:clamp(4.5rem,6.2vw,7rem); line-height:.86; letter-spacing:-.05em; text-wrap:initial; }
.work-editorial-intro { max-width:770px; margin:0; color:#41506a; font-size:16px; line-height:1.75; }
.work-editorial-grid { display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:380px 380px; gap:20px; margin-top:50px; }
.work-editorial-card { position:relative; overflow:hidden; border-radius:12px; background:var(--warm); color:#fff; text-decoration:none; }
.work-editorial-card::after { content:""; position:absolute; inset:36% 0 0; background:linear-gradient(transparent,rgba(7,18,48,.88)); }
.work-editorial-card>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.work-editorial-card:hover>img { transform:scale(1.025); }
.work-editorial-card>div { position:absolute; z-index:2; right:27px; bottom:25px; left:27px; }
.work-editorial-card .eyebrow { margin-bottom:6px; color:#efba8d; }
.work-editorial-card h2 { margin:0 0 12px; color:#fff; font-size:2.1rem; line-height:1; }
.work-editorial-card span { color:#fff; font-size:13px; }
.work-solara { grid-row:1/3; }
.work-editorial-page .work-editorial-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.work-editorial-page .work-editorial-footer a { color:#fff; }
.work-editorial-page .work-editorial-footer a:first-of-type { justify-self:center; }
.work-editorial-page .work-editorial-footer a:last-child { justify-self:end; }

/* The Solara project */
.solara-page,.elara-page { background:#f8f7f4; }
.solara-page .primary-nav a.active,.elara-page .primary-nav a.active { color:var(--bronze-dark); border:1px solid #e1c7b1; background:#f4eade; }
.solara-hero { position:relative; width:min(1460px,calc(100% - 64px)); min-height:680px; margin:0 auto; overflow:hidden; border-radius:0 0 15px 15px; color:#fff; }
.solara-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; }
.solara-hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,16,45,.74),rgba(6,16,45,.18) 58%,rgba(6,16,45,.08)),linear-gradient(0deg,rgba(5,15,42,.68),transparent 64%); }
.solara-hero-copy { position:absolute; z-index:2; left:92px; bottom:88px; width:min(585px,calc(100% - 130px)); }
.solara-hero-copy .eyebrow { margin-bottom:18px; color:#efba8d; }
.solara-hero-copy h1 { margin:0 0 22px; color:#fff; font-size:clamp(4.5rem,6vw,6.5rem); line-height:.9; letter-spacing:-.05em; }
.solara-hero-copy>p:not(.eyebrow) { margin:0; color:#fff; font-size:18px; line-height:1.7; }
.solara-section { width:min(1240px,calc(100% - 64px)); margin:0 auto; }
.solara-film { padding:92px 0 120px; }
.solara-film>.eyebrow,.solara-gallery>.eyebrow { margin-bottom:16px; }
.solara-film h2,.solara-gallery>h2 { margin:0 0 30px; font-size:clamp(4rem,5vw,5.4rem); line-height:.94; letter-spacing:-.045em; }
.solara-film-frame { overflow:hidden; border-radius:14px; box-shadow:0 22px 60px rgba(13,28,56,.12); background:#d8d9d9; }
.solara-film-frame video { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; }
.solara-narrative { display:grid; gap:128px; padding:80px 0 70px; }
.solara-narrative-row { display:grid; grid-template-columns:1fr 1fr; gap:86px; align-items:start; }
.solara-narrative-row .eyebrow { margin-bottom:20px; }
.solara-narrative-row h2 { max-width:610px; margin:0; font-size:clamp(3.8rem,4.7vw,5.15rem); line-height:.93; letter-spacing:-.045em; }
.solara-narrative-row>p { max-width:560px; margin:0; padding-top:4px; color:#41506a; font-size:16px; line-height:1.9; }
.solara-plan { display:grid; grid-template-columns:315px 1fr; width:min(1240px,calc(100% - 64px)); margin:0 auto 115px; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#f1eee8; }
.solara-plan-details { padding:56px 54px; border-right:1px solid var(--line); background:#fbfaf8; }
.solara-plan-details>.eyebrow { margin-bottom:18px; }
.solara-plan-details>h2 { margin:0 0 34px; font-size:4rem; line-height:1.05; letter-spacing:-.035em; }
.solara-plan-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; padding:28px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.solara-plan-stats div { display:grid; align-content:start; gap:8px; }
.solara-plan-stats strong { color:var(--bronze); font-family:var(--serif); font-size:2rem; font-weight:400; }
.solara-plan-stats span { color:#41506a; font-size:9px; font-weight:750; letter-spacing:.09em; line-height:1.35; text-transform:uppercase; }
.solara-areas { padding-top:28px; }
.solara-areas h3 { margin:0 0 20px; color:var(--ink); font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; }
.solara-areas dl { display:grid; gap:14px; margin:0 0 38px; }
.solara-areas dl div { display:flex; justify-content:space-between; gap:15px; color:#41506a; font-size:13px; }
.solara-areas dt,.solara-areas dd { margin:0; }
.solara-areas dd { color:var(--ink); font-weight:800; }
.solara-areas sup { font-size:.65em; }
.solara-areas dl .total { margin-top:2px; padding-top:18px; border-top:1px solid var(--line); color:var(--ink); font-weight:800; }
.solara-areas dl .total dd { color:var(--bronze-dark); font-family:var(--serif); font-size:18px; }
.solara-plan-tags { display:flex; flex-wrap:wrap; gap:7px; }
.solara-plan-tags span { padding:8px 10px; border:1px solid var(--line); border-radius:999px; background:#fff; color:#41506a; font-size:10px; }
.solara-plan-drawing { padding:32px; }
.solara-plan-image { padding:26px 28px 18px; border-radius:12px; background:#fff; }
.solara-plan-image>span { display:block; margin:0 0 10px 12px; color:#6a6158; font-family:var(--serif); font-size:26px; letter-spacing:.12em; text-transform:uppercase; }
.solara-plan-image img { display:block; width:100%; height:auto; }
.solara-plan-drawing>p { margin:17px 4px 0; color:#52617a; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.solara-gallery { padding:0 0 100px; }
.solara-gallery>h2 { margin-bottom:30px; }
.solara-gallery-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.solara-gallery-grid figure { margin:0; overflow:hidden; border-radius:13px; background:#ece8df; }
.solara-gallery-grid figure.wide { grid-column:1/-1; }
.solara-gallery-grid img { display:block; width:100%; height:540px; object-fit:cover; }
.solara-gallery-grid .wide img { height:auto; aspect-ratio:16/9; }
.solara-gallery-grid figcaption { padding:9px 5px 8px; color:#52617a; font-size:11px; letter-spacing:.14em; text-transform:uppercase; }
.solara-back { display:inline-flex; gap:18px; margin-top:96px; color:var(--ink); font-size:13px; font-weight:800; text-decoration:none; }
.solara-footer { min-height:72px; grid-template-columns:1fr 1fr 1fr; border:0; background:#0b1b38; color:#fff; }
.solara-footer a { color:#fff; }
.solara-footer a:first-of-type { justify-self:center; }
.solara-footer a:last-child { justify-self:end; }
.elara-contact { display:grid; justify-items:center; padding:105px 32px 80px; background:#0b1b38; color:#fff; text-align:center; }
.elara-contact .eyebrow { margin-bottom:25px; color:#efba8d; }
.elara-contact h2 { margin:0 0 25px; color:#fff; font-size:clamp(4rem,5.2vw,5.6rem); line-height:.9; letter-spacing:-.045em; }
.elara-contact>p:not(.eyebrow) { margin:0 0 30px; color:#fff; font-size:15px; }
.elara-contact .button { min-width:183px; }

/* Our Story */
.story-reference .story-hero { display:block; min-height:730px; position:relative; isolation:isolate; background:#f4f1eb; }
.story-reference .story-hero>img { position:absolute; inset:0; z-index:-1; width:100%; height:100%; min-height:0; object-fit:cover; opacity:.78; }
.story-reference .story-panel { position:absolute; top:50%; left:50%; width:min(980px,calc(100% - 100px)); padding:58px 72px; transform:translate(-50%,-50%); border:1px solid rgba(255,255,255,.8); border-radius:16px; background:rgba(250,249,246,.92); box-shadow:0 20px 55px rgba(16,31,63,.08); text-align:center; }
.story-reference .story-panel .eyebrow { margin-bottom:17px; }
.story-reference .story-panel h1 { max-width:870px; margin:0 auto 25px; color:#14213d; font-size:clamp(3.5rem,5vw,5.9rem); line-height:.98; }
.story-reference .story-panel p:not(.eyebrow) { max-width:780px; margin:0 auto; color:#41506a; font-size:16px; line-height:1.8; }
.story-reference .story-footer { min-height:100px; grid-template-columns:1.5fr 1fr 1fr; border:0; background:#0d1d3a; color:#fff; }
.story-reference .story-footer a { color:#fff; }

[data-reveal] { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (max-width:1050px) {
  .site-header { grid-template-columns:180px 1fr 130px; gap:12px; }
  .brand { width:180px; height:78px; }
  .primary-nav { font-size:14px; gap:2px; }
  .primary-nav a { padding:12px; }
  .hero-copy { padding-left:50px; }
  .work-page { padding:42px; }
}
@media (max-width:820px) {
  h1 { font-size:clamp(3rem,12vw,5rem); }
  h2 { font-size:clamp(2.35rem,9.5vw,4rem); }
  .site-header { width:calc(100% - 36px); min-height:100px; grid-template-columns:180px 1fr auto; }
  .brand { width:180px; height:75px; }
  .brand img { width:100%; height:100%; }
  .talk-button { display:none; }
  .menu-toggle { display:grid; place-content:center; gap:5px; width:46px; height:42px; border:1px solid var(--line); border-radius:7px; background:#fff; }
  .menu-toggle span { width:22px; height:2px; background:var(--ink); }
  .primary-nav { display:none; position:absolute; top:92px; left:0; right:0; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 22px 35px #071b501c; }
  .primary-nav.is-open { display:grid; }
  .primary-nav a { border-radius:7px; }
  .nav-homes::after { display:none; }
  .page-frame,.home-hero { width:calc(100% - 28px); margin-bottom:20px; border-radius:13px; }
  .home-hero { min-height:700px; }
  .hero-shade { background:linear-gradient(90deg,rgba(5,17,52,.85),rgba(5,17,52,.48)),linear-gradient(0deg,rgba(5,17,52,.75),transparent 55%); }
  .hero-copy { width:auto; padding:105px 28px 155px; }
  .hero-copy p:not(.eyebrow) { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:flex-start; }
  .hero-project-label { left:22px; right:auto; bottom:20px; }
  .hero-energy-rating { right:22px; bottom:20px; left:22px; max-width:none; font-size:11px; text-align:left; }
  .section { width:calc(100% - 44px); padding:75px 0; }
  .warm-section { width:100%; padding-left:22px; padding-right:22px; }
  .intro-grid,.featured,.pathways-intro,.investor-strip .section,.project-story,.gallery-heading,.contact-page { grid-template-columns:1fr; gap:34px; }
  .investors-hero { min-height:540px; padding:55px 28px; }
  .investor-process { grid-template-columns:1fr; }
  .story-hero,.service-hero { grid-template-columns:1fr; }
  .story-hero>div,.service-hero>div { padding:58px 28px; }
  .story-hero>img,.service-hero>img { min-height:0; aspect-ratio:4/3; }
  .service-points { grid-template-columns:1fr; }
  .principles,.project-details { grid-template-columns:1fr; }
  .featured-copy { order:-1; }
  .work-page { padding:38px 24px; }
  .work-grid { grid-template-columns:1fr; grid-template-rows:auto; }
  .project-card,.project-card-large { grid-row:auto; min-height:380px; }
  .project-hero { min-height:620px; }
  .project-hero>img { object-position:62% center; }
  .gallery-grid { grid-template-columns:1fr; }
  .gallery-grid figure,.gallery-grid figure:first-child,.gallery-grid figure:last-child { grid-column:auto; }
  .gallery-grid img,.gallery-grid figure:first-child img,.gallery-grid figure:last-child img { height:auto; aspect-ratio:4/3; }
  .download-grid { grid-template-columns:1fr 1fr; }
  .project-nav { grid-template-columns:1fr; }
  .project-nav a { padding:34px 26px; }
  .project-nav a:last-child { text-align:left; border-left:0; border-top:1px solid var(--line); }
  .contact-copy { padding:60px 28px 22px; }
  .contact-card { margin:28px; padding:34px 26px; }
  .form-grid { grid-template-columns:1fr; }
  .form-wide { grid-column:auto; }
  .site-footer { grid-template-columns:1fr; text-align:center; justify-items:center; padding:28px 24px; }
  .story-reference .story-hero { min-height:720px; }
  .story-reference .story-panel { width:calc(100% - 36px); padding:40px 26px; }
  .story-reference .story-panel h1 { font-size:clamp(3rem,10vw,4.4rem); }
  .story-reference .story-panel p:not(.eyebrow) { font-size:15px; }
  .family-page .family-hero { min-height:720px; }
  .family-page .family-hero>img { object-position:62% center; }
  .family-hero-shade { background:linear-gradient(90deg,rgba(248,247,244,.94),rgba(248,247,244,.55) 72%,rgba(248,247,244,.15)),linear-gradient(0deg,rgba(248,247,244,.9),transparent 55%); }
  .family-hero-copy { top:72px; left:28px; right:28px; width:auto; }
  .family-hero-copy h1 { font-size:clamp(3.4rem,13vw,5rem); }
  .family-hero-copy>p:not(.eyebrow) { max-width:510px; font-size:16px; }
  .family-rating { right:22px; bottom:22px; left:22px; width:auto; text-align:left; }
  .family-page .family-footer { grid-template-columns:1fr; }
  .family-page .family-footer a:first-of-type,.family-page .family-footer a:last-child { justify-self:center; }
  .second-dwellings-hero { min-height:0; grid-template-columns:1fr; }
  .second-dwellings-image { min-height:0; height:auto; aspect-ratio:4/5; }
  .second-dwellings-copy { min-height:720px; padding:58px 28px 38px; }
  .second-dwellings-copy h1 { font-size:clamp(3.4rem,13vw,5rem); }
  .second-dwellings-rating { margin-top:45px; }
  .second-dwellings-page .second-dwellings-footer { grid-template-columns:1fr; }
  .second-dwellings-page .second-dwellings-footer a:first-of-type,.second-dwellings-page .second-dwellings-footer a:last-child { justify-self:center; }
  .knockdown-journey { min-height:0; grid-template-columns:1fr; }
  .knockdown-story { padding:58px 28px; }
  .knockdown-story h1 { font-size:clamp(3.4rem,13vw,5rem); }
  .knockdown-comparison { padding:28px; border-top:1px solid var(--line); border-left:0; }
  .knockdown-comparison img { height:auto; aspect-ratio:4/3; }
  .knockdown-page .knockdown-footer { grid-template-columns:1fr; }
  .knockdown-page .knockdown-footer a:first-of-type,.knockdown-page .knockdown-footer a:last-child { justify-self:center; }
  .extensions-layout { min-height:0; padding:42px 24px 20px; }
  .extensions-columns { min-height:0; grid-template-columns:1fr; }
  .extensions-title-column,.extensions-copy-column,.extensions-next-column { padding:32px 4px; border-right:0; border-bottom:1px solid var(--line); }
  .extensions-title-column { padding-top:0; }
  .extensions-title-column h1 { font-size:clamp(3.4rem,13vw,5rem); }
  .extensions-line-label::before { display:none; }
  .extensions-image { height:auto; margin-top:28px; aspect-ratio:4/3; }
  .extensions-page .extensions-footer { grid-template-columns:1fr; }
  .extensions-page .extensions-footer a:first-of-type,.extensions-page .extensions-footer a:last-child { justify-self:center; }
  .investor-editorial { min-height:0; padding:38px 24px 55px; }
  .investor-editorial-grid { grid-template-columns:1fr; gap:45px; }
  .investor-story-column h1 { font-size:clamp(3.4rem,13vw,5rem); }
  .investor-steps { grid-template-columns:1fr 1fr; }
  .investor-gallery .investor-gallery-wide,.investor-gallery img { height:auto; aspect-ratio:16/10; }
  .investor-editorial-page .investor-editorial-footer { grid-template-columns:1fr; }
  .investor-editorial-page .investor-editorial-footer a:first-of-type,.investor-editorial-page .investor-editorial-footer a:last-child { justify-self:center; }
  .work-editorial { padding:40px 24px; }
  .work-editorial>h1 { font-size:clamp(3.6rem,13vw,5.2rem); }
  .work-editorial-grid { grid-template-columns:1fr; grid-template-rows:none; }
  .work-editorial-card,.work-solara { grid-row:auto; min-height:420px; }
  .work-editorial-page .work-editorial-footer { grid-template-columns:1fr; }
  .work-editorial-page .work-editorial-footer a:first-of-type,.work-editorial-page .work-editorial-footer a:last-child { justify-self:center; }
  .solara-hero { width:calc(100% - 28px); min-height:650px; border-radius:13px; }
  .solara-hero>img { object-position:center; }
  .solara-hero-copy { right:28px; bottom:52px; left:28px; width:auto; }
  .solara-hero-copy h1 { font-size:clamp(3.8rem,15vw,5.4rem); }
  .solara-hero-copy>p:not(.eyebrow) { font-size:16px; }
  .solara-section,.solara-plan { width:calc(100% - 36px); }
  .solara-film { padding:70px 0 90px; }
  .solara-film h2,.solara-gallery>h2 { font-size:clamp(3.4rem,12vw,4.8rem); }
  .solara-narrative { gap:80px; padding:45px 0 75px; }
  .solara-narrative-row { grid-template-columns:1fr; gap:32px; }
  .solara-narrative-row h2 { font-size:clamp(3.2rem,12vw,4.7rem); }
  .solara-plan { grid-template-columns:1fr; }
  .solara-plan-details { padding:42px 30px; border-right:0; border-bottom:1px solid var(--line); }
  .solara-plan-drawing { padding:18px; }
  .solara-plan-image { padding:18px 10px 10px; }
  .solara-plan-image>span { font-size:19px; }
  .solara-gallery-grid { grid-template-columns:1fr; }
  .solara-gallery-grid figure.wide { grid-column:auto; }
  .solara-gallery-grid img,.solara-gallery-grid .wide img { height:auto; aspect-ratio:4/3; }
  .solara-footer { grid-template-columns:1fr; }
  .solara-footer a:first-of-type,.solara-footer a:last-child { justify-self:center; }
  .elara-contact { padding:80px 22px 65px; }
  .elara-contact h2 { font-size:clamp(3.1rem,12vw,4.6rem); }
}
@media (max-width:520px) {
  .site-header { width:calc(100% - 28px); grid-template-columns:150px 1fr auto; }
  .brand { width:150px; height:68px; }
  .download-grid { grid-template-columns:1fr; }
  .contact-card { margin:18px; }
}
@media (prefers-reduced-motion:reduce) {
  * { scroll-behavior:auto!important; transition:none!important; }
  [data-reveal] { opacity:1; transform:none; }
}

/* Homes overview */
.homes-overview-hero { min-height:730px; position:relative; color:#fff; }
.homes-overview-hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 58%; }
.homes-overview-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,15,48,.88),rgba(4,15,48,.52) 42%,rgba(4,15,48,.08) 74%),linear-gradient(0deg,rgba(4,15,48,.5),transparent 45%); }
.homes-overview-copy { position:relative; z-index:2; width:min(700px,calc(100% - 100px)); padding:145px 0 120px 70px; }
.homes-overview-copy .eyebrow { color:#efba8d; }
.homes-overview-copy h1 { margin-bottom:25px; font-size:clamp(3.7rem,5.5vw,6.4rem); }
.homes-overview-copy>p:not(.eyebrow) { max-width:640px; color:#ffffffdf; font-size:18px; }
.homes-overview-copy .button { margin-top:18px; }
.homes-overview-note { position:absolute; z-index:2; right:30px; bottom:25px; margin:0; color:#ffffffc9; font-size:12px; letter-spacing:.08em; text-transform:uppercase; }
.homes-intro { display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:end; }
.homes-intro>p { margin-bottom:7px; font-size:18px; }
.homes-path-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding-top:30px; }
.home-path-card { border:1px solid var(--line); border-radius:15px; background:#fff; overflow:hidden; }
.home-path-card-featured { grid-column:1/-1; display:grid; grid-template-columns:70px .8fr 1.2fr; align-items:center; gap:35px; padding:24px; }
.home-path-card-featured>span,.home-path-card.compact>span { color:var(--blue); font-size:12px; font-weight:850; }
.home-path-card-featured>div { padding:36px 12px; }
.home-path-card-featured h2 { font-size:clamp(2.4rem,3.7vw,4.1rem); }
.home-path-card-featured img { width:100%; height:430px; object-fit:cover; border-radius:11px; }
.home-path-card.compact { min-height:190px; display:grid; grid-template-columns:52px 1fr 28px; gap:18px; align-items:center; padding:30px; text-decoration:none; transition:.18s ease; }
.home-path-card.compact:hover { border-color:#173d9b55; background:var(--blue-soft); transform:translateY(-2px); }
.home-path-card.compact h3 { margin:0 0 8px; }
.home-path-card.compact p { margin:0; }
.home-path-card.compact b { justify-self:end; font-size:24px; font-weight:400; }
.homes-process { background:var(--warm); }
.homes-process>.section { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; }
.homes-process-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.homes-process-steps article { border-top:1px solid #cbc4b8; padding:28px 12px 0; }
.homes-process-steps span { color:var(--blue); font-size:12px; font-weight:850; }
.homes-process-steps h3 { margin:30px 0 10px; }
@media (max-width:820px) {
  .homes-overview-hero { min-height:690px; }
  .homes-overview-hero>img { object-position:62% center; }
  .homes-overview-shade { background:linear-gradient(90deg,rgba(4,15,48,.84),rgba(4,15,48,.45)),linear-gradient(0deg,rgba(4,15,48,.72),transparent 58%); }
  .homes-overview-copy { width:auto; padding:105px 28px 150px; }
  .homes-overview-copy>p:not(.eyebrow) { font-size:16px; }
  .homes-overview-note { left:22px; right:auto; bottom:20px; }
  .homes-intro,.homes-process>.section { grid-template-columns:1fr; gap:34px; }
  .homes-path-grid { grid-template-columns:1fr; }
  .home-path-card-featured { grid-column:auto; grid-template-columns:1fr; padding:20px; }
  .home-path-card-featured>span { display:none; }
  .home-path-card-featured>div { padding:18px 6px 5px; }
  .home-path-card-featured img { height:auto; aspect-ratio:4/3; }
  .homes-process-steps { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .arcadia-hero { min-height:600px; }
  .arcadia-film { padding-top:68px; }
  .arcadia-story,.arcadia-plan-intro { grid-template-columns:1fr; gap:28px; }
  .arcadia-story { padding-top:75px; padding-bottom:75px; }
  .arcadia-plan-intro { padding-bottom:55px; }
  .arcadia-story>p,.arcadia-plan-intro>p { margin-top:0; }
  .arcadia-plan { grid-template-columns:1fr; width:calc(100% - 36px); }
  .plan-summary { padding:38px 28px; border-right:0; border-bottom:1px solid var(--line); }
  .plan-image { padding:18px; }
  .plan-image img { min-height:0; }
  .arcadia-gallery { padding-top:72px; }
  .arcadia-gallery .gallery-grid figure,.arcadia-gallery .gallery-grid figure:first-child,.arcadia-gallery .gallery-grid figure:last-child { grid-column:auto; }
  .arcadia-gallery .gallery-grid img,.arcadia-gallery .gallery-grid figure:first-child img,.arcadia-gallery .gallery-grid figure:last-child img,.arcadia-gallery .gallery-grid figure:nth-child(5) img,.arcadia-gallery .gallery-grid figure:nth-child(6) img,.arcadia-gallery .gallery-grid figure:nth-child(7) img,.arcadia-gallery .gallery-grid figure:nth-child(8) img { height:auto; aspect-ratio:4/3; }
  .arcadia-project-nav { width:calc(100% - 36px); }
  .arcadia-project-nav a { padding:65px 0; }
  .home-footer { grid-template-columns:1fr; gap:18px; padding:35px 28px; }
  .home-footer .home-footer-link,.home-footer>a:not(.home-footer-link):last-of-type { justify-self:center; }
}

/* Shared responsive safeguards */
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { overflow-x:clip; }
img,video,iframe { max-width:100%; }
.intro-grid>*,.featured>*,.pathways-intro>*,.project-story>*,.gallery-heading>*,.contact-page>*,.story-hero>*,.service-hero>*,.family-hero>*,.second-dwellings-hero>*,.knockdown-journey>*,.extensions-columns>*,.investor-editorial-grid>*,.work-editorial-grid>*,.solara-narrative-row>*,.arcadia-story>*,.arcadia-plan-intro>*,.arcadia-plan>* { min-width:0; }

@media (max-width:1050px) {
  /* Keep navigation usable on portrait tablets and compact laptops. */
  .site-header { width:calc(100% - 48px); min-height:96px; grid-template-columns:180px 1fr auto; }
  .brand { width:180px; height:75px; }
  .talk-button { display:none; }
  .menu-toggle { display:grid; place-content:center; gap:5px; width:46px; height:42px; border:1px solid var(--line); border-radius:7px; background:#fff; }
  .menu-toggle span { width:22px; height:2px; background:var(--ink); }
  .primary-nav { display:none; position:absolute; top:88px; left:0; right:0; padding:16px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 22px 35px #071b501c; }
  .primary-nav.is-open { display:grid; }
  .primary-nav a { min-height:44px; padding:0 12px; border-radius:7px; }
  .nav-homes::after { display:none; }
}

@media (max-width:600px) {
  .section { width:calc(100% - 36px); padding:62px 0; }
  .page-frame,.home-hero,.solara-hero { width:calc(100% - 24px); }
  .site-header { width:calc(100% - 28px); min-height:86px; grid-template-columns:150px 1fr auto; }
  .brand { width:150px; height:68px; }
  .primary-nav { top:78px; }
  .hero-copy { padding:84px 24px 135px; }
  .hero-copy h1 { font-size:clamp(3.15rem,13.5vw,4.5rem); }
  .home-hero { min-height:650px; }
  .hero-actions { width:100%; gap:16px; }
  .hero-actions .button { width:100%; }
  .pathway { grid-template-columns:40px minmax(0,1fr) 24px; gap:12px; padding:22px 0; }
  .pathway h3 { font-size:1.5rem; }
  .contact-cta { padding:78px 24px; }
  .contact-cta h2 { font-size:clamp(2.8rem,12vw,4rem); }
  .plan-summary { padding:32px 22px; }
  .plan-stats b { font-size:1.9rem; }
  .plan-tags span { font-size:9px; }
  .project-hero-panel { right:24px; left:24px; }
  .project-hero-panel p { font-size:16px; }
  .project-film-frame { border-radius:11px; }
  .site-footer { gap:16px; }
}
