:root {
  --ink: #172019;
  --forest: #244a36;
  --forest-deep: #142d21;
  --rust: #b65f3d;
  --sand: #d8bc88;
  --sage: #9aaa91;
  --paper: #f2eee5;
  --cream: #fbf9f4;
  --white: #ffffff;
  --muted: #68726b;
  --line: rgba(23, 32, 25, .15);
  --shadow: 0 24px 70px rgba(19, 38, 27, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; -webkit-font-smoothing: antialiased; }
body.dialog-open { overflow: hidden; }
button, input, select, textarea { font: inherit; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
img { max-width: 100%; }

.announcement { min-height: 34px; padding: 7px 18px; display: flex; align-items: center; justify-content: center; gap: 13px; color: #f7f2e8; background: var(--forest-deep); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.announcement i { width: 3px; height: 3px; border-radius: 50%; background: var(--sand); }

.site-header { height: 82px; padding: 0 clamp(20px, 5vw, 76px); display: flex; align-items: center; justify-content: space-between; gap: 30px; position: sticky; top: 0; z-index: 30; border-bottom: 1px solid var(--line); background: rgba(251, 249, 244, .95); backdrop-filter: blur(16px); }
.brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
.brand img { width: 62px; height: 40px; object-fit: contain; }
.brand > span { display: flex; flex-direction: column; line-height: 1; }
.brand strong { font-size: 14px; letter-spacing: .13em; }
.brand small { margin-top: 5px; color: var(--forest); font-size: 8px; letter-spacing: .32em; }
.site-header nav { display: flex; align-items: center; gap: 31px; font-size: 12px; font-weight: 750; }
.site-header nav > a:not(.nav-cta) { padding: 10px 0; position: relative; }
.site-header nav > a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 4px; height: 2px; background: var(--rust); transition: right .2s ease; }
.site-header nav > a:hover::after, .site-header nav > a.active::after { right: 0; }
.nav-cta { min-height: 43px; padding: 0 17px; display: inline-flex; align-items: center; color: white; background: var(--forest); }
.nav-cta.active { background: var(--rust); }
.menu-toggle { display: none; width: 42px; height: 42px; border: 1px solid var(--line); background: transparent; }
.menu-toggle span { display: block; width: 18px; height: 2px; margin: 5px auto; background: var(--ink); }

.eyebrow { margin: 0 0 20px; color: var(--rust); font-size: 10px; font-weight: 850; letter-spacing: .17em; text-transform: uppercase; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.045em; }
h1 { margin: 0; font-size: clamp(58px, 7vw, 106px); line-height: .91; }
h2 { margin: 0; font-size: clamp(42px, 5vw, 72px); line-height: .97; }
h1 em, h2 em { color: var(--forest); font-weight: 400; }
p { line-height: 1.65; }
.section { padding: clamp(78px, 9vw, 138px) clamp(22px, 6vw, 94px); }
.section-dark { padding: clamp(78px, 9vw, 138px) clamp(22px, 6vw, 94px); color: white; background: var(--forest-deep); }
.button { min-height: 49px; padding: 0 20px; display: inline-flex; align-items: center; justify-content: center; gap: 22px; border: 0; border-radius: 2px; cursor: pointer; font-size: 12px; font-weight: 800; transition: transform .2s ease, background .2s ease, box-shadow .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { color: white; background: var(--rust); box-shadow: 0 12px 28px rgba(182, 95, 61, .2); }
.button-primary:hover { background: #a95032; }
.button-dark { color: white; background: var(--forest); }
.button-wide { width: 100%; }
.button-row { margin-top: 34px; display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.text-link, .line-link { display: inline-block; padding-bottom: 6px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 800; }
.text-link span { margin-left: 12px; }
.light-link { color: white; }
.line-link { margin-top: 16px; color: var(--forest); }

.home-hero { min-height: calc(100vh - 116px); max-height: 900px; display: grid; grid-template-columns: 1.02fr .98fr; overflow: hidden; }
.hero-content { padding: clamp(68px, 8vw, 126px) clamp(26px, 7.5vw, 118px); display: flex; flex-direction: column; justify-content: center; background: radial-gradient(circle at 8% 15%, rgba(216,188,136,.18), transparent 28%), var(--paper); }
.hero-copy { max-width: 600px; margin: 31px 0 0; color: #4f5b52; font-size: clamp(16px, 1.35vw, 19px); }
.hero-image { min-height: 650px; position: relative; overflow: hidden; background: #859183; }
.hero-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(17,43,30,.18), transparent 50%), linear-gradient(0deg, rgba(17,43,30,.25), transparent 40%); }
.hero-image > img { width: 100%; height: 100%; display: block; object-fit: cover; }
.image-caption { min-width: 290px; padding: 19px 24px; position: absolute; z-index: 2; right: 0; bottom: 6%; display: flex; flex-direction: column; color: white; background: rgba(20,45,33,.95); }
.image-caption span { color: var(--sand); font-size: 8px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.image-caption strong { margin: 6px 0 3px; font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.image-caption small { color: #c8d1ca; font-size: 10px; }
.hero-stats { margin-top: 52px; padding-top: 23px; display: flex; gap: 32px; border-top: 1px solid var(--line); }
.hero-stats div { display: flex; flex-direction: column; gap: 4px; }
.hero-stats strong { font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.hero-stats span { color: #68736a; font-size: 8px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }

.section-heading { max-width: 1400px; margin: 0 auto 56px; display: grid; grid-template-columns: 1fr minmax(300px, 470px); align-items: end; gap: 70px; }
.section-heading > div:last-child > p { margin: 0; color: var(--muted); }
.featured-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1.18fr 1fr; gap: 18px; align-items: end; }
.featured-card { padding-bottom: 21px; display: block; border-bottom: 1px solid var(--line); }
.featured-card img { width: 100%; height: 260px; display: block; object-fit: cover; transition: transform .3s ease, box-shadow .3s ease; }
.featured-tall img { height: 330px; }
.featured-card:hover img { transform: translateY(-5px); box-shadow: var(--shadow); }
.featured-card > span { display: block; margin-top: 16px; color: var(--rust); font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.featured-card h3 { margin: 9px 0 5px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }
.featured-card p { margin: 0; color: var(--muted); font-size: 11px; }

.pathways { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(45px, 7vw, 110px); }
.pathway-intro h2 { color: white; }
.pathway-intro > p:last-child { max-width: 520px; color: #bdc8c0; }
.pathway-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.pathway-card { min-height: 290px; padding: 30px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.04); transition: transform .2s ease, background .2s ease; }
.pathway-card:hover { transform: translateY(-4px); background: rgba(255,255,255,.08); }
.pathway-card > span { color: var(--sand); font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.pathway-card h3 { margin: 17px 0 11px; font-family: Georgia, serif; font-size: 27px; font-weight: 400; line-height: 1.08; }
.pathway-card p { margin: 0; color: #b7c2ba; font-size: 12px; }
.pathway-card b { margin-top: auto; padding-top: 22px; font-size: 11px; }
.accent-card { border-color: rgba(216,188,136,.45); background: rgba(216,188,136,.08); }
.process-mini { grid-column: 1 / -1; margin-top: 14px; }
.process-mini article { padding: 20px 0; display: grid; grid-template-columns: 38px 1fr; gap: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.process-mini article:last-child { border-bottom: 1px solid rgba(255,255,255,.14); }
.process-mini i { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.22); border-radius: 50%; color: var(--sand); font-size: 9px; font-style: normal; }
.process-mini h3 { margin: 0 0 5px; font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.process-mini p { margin: 0; color: #aeb9b1; font-size: 11px; }

.page-hero { padding: clamp(70px, 9vw, 130px) clamp(22px, 6vw, 94px); display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; gap: 80px; background: var(--paper); }
.page-hero > div:last-child > p { max-width: 570px; margin: 0; color: var(--muted); font-size: 16px; }
.compact-hero h1, .estimate-hero h1 { font-size: clamp(52px, 6.5vw, 91px); }
.estimate-badges { margin-top: 25px; display: flex; flex-wrap: wrap; gap: 8px; }
.estimate-badges span { padding: 7px 9px; border: 1px solid var(--line); background: rgba(255,255,255,.55); color: var(--forest); font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }

.catalog { background: var(--cream); }
.filter-bar { max-width: 1400px; margin: 0 auto 28px; padding: 22px; display: grid; grid-template-columns: auto 1fr 1fr auto; gap: 26px; align-items: end; border: 1px solid var(--line); background: white; box-shadow: 0 10px 30px rgba(24,44,31,.04); }
.filter-block { min-width: 0; }
.filter-block label { min-height: 18px; margin-bottom: 10px; display: flex; justify-content: space-between; gap: 18px; color: #6d756f; font-size: 9px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.filter-block label strong { color: var(--forest); }
.segmented { display: flex; gap: 4px; }
.segmented button { width: 41px; height: 39px; border: 1px solid var(--line); background: var(--cream); cursor: pointer; font-size: 11px; font-weight: 800; }
.segmented button.active { color: white; border-color: var(--forest); background: var(--forest); }
input[type="range"] { width: 100%; accent-color: var(--rust); cursor: pointer; }
.range-scale { display: flex; justify-content: space-between; color: #8b918d; font-size: 8px; }
.reset-button, .dock-clear { padding: 6px 0; border: 0; border-bottom: 1px solid #818984; background: transparent; cursor: pointer; font-size: 10px; font-weight: 800; }
.results-line { max-width: 1400px; margin: 0 auto 15px; display: flex; justify-content: space-between; color: #747c76; font-size: 11px; }
.results-line p { margin: 0; }
.results-line strong { color: var(--ink); }
.plans-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.plan-card { min-height: 435px; overflow: hidden; display: flex; flex-direction: column; border: 1px solid var(--line); background: white; transition: transform .25s ease, box-shadow .25s ease; }
.plan-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.plan-card.selected { border-color: var(--rust); box-shadow: inset 0 0 0 1px var(--rust); }
.plan-photo { width: 100%; height: 220px; padding: 0; position: relative; overflow: hidden; border: 0; background: #d4d8d2; cursor: pointer; }
.plan-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .4s ease; }
.plan-card:hover .plan-photo img { transform: scale(1.035); }
.plan-photo > span { padding: 7px 9px; position: absolute; top: 13px; left: 13px; color: white; background: rgba(20,45,33,.92); font-size: 8px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.plan-card-body { flex: 1; padding: 21px; display: flex; flex-direction: column; }
.card-kicker { display: flex; justify-content: space-between; gap: 15px; align-items: center; color: #818984; font-size: 8px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.compare-toggle { border: 0; color: var(--forest); background: none; cursor: pointer; font-size: 9px; font-weight: 850; }
.plan-card h2 { margin: 15px 0 9px; font-size: 25px; letter-spacing: -.025em; }
.spec-row { display: flex; flex-wrap: wrap; gap: 9px 14px; color: var(--muted); font-size: 10px; }
.spec-row span + span { padding-left: 14px; border-left: 1px solid var(--line); }
.card-price { margin-top: auto; padding-top: 19px; display: flex; justify-content: space-between; align-items: end; gap: 15px; border-top: 1px solid var(--line); }
.card-price small, .dialog-price small { display: block; margin-bottom: 5px; color: #7a837c; font-size: 8px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.card-price strong { font-family: Georgia, serif; font-size: 23px; font-weight: 400; }
.line-button { padding: 0 0 5px; border: 0; border-bottom: 1px solid var(--forest); color: var(--forest); background: transparent; cursor: pointer; font-size: 9px; font-weight: 850; }
.legal-note { color: #858d87; font-size: 9px; line-height: 1.6; }
.catalog > .legal-note { max-width: 1000px; margin: 25px auto 0; }
.empty-state { max-width: 1400px; margin: 0 auto; padding: 75px 20px; text-align: center; border: 1px dashed var(--sage); background: var(--paper); }
.empty-state h2 { font-size: 38px; }
.empty-state p { color: var(--muted); }
.cta-band { padding: 52px clamp(22px, 6vw, 94px); display: flex; justify-content: space-between; align-items: center; gap: 40px; color: white; background: var(--forest); }
.cta-band h2 { max-width: 780px; font-size: clamp(31px, 4vw, 55px); }

.compare-dock { width: min(820px, calc(100% - 30px)); padding: 13px 15px 13px 19px; position: fixed; z-index: 40; left: 50%; bottom: 17px; transform: translateX(-50%); display: flex; justify-content: space-between; align-items: center; gap: 20px; color: white; border: 1px solid rgba(255,255,255,.13); background: rgba(20,45,33,.97); box-shadow: 0 20px 50px rgba(0,0,0,.3); backdrop-filter: blur(12px); }
.compare-dock[hidden] { display: none; }
.compare-dock small { display: block; margin-bottom: 6px; color: var(--sand); font-size: 8px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.compare-dock > div:last-child { display: flex; align-items: center; gap: 15px; }
.compare-dock #compare-selections { display: flex; gap: 14px; color: #d4dcd6; font-size: 10px; }
.dock-clear { color: white; border-color: #818c84; }

.dialog { width: min(1050px, calc(100% - 32px)); max-height: calc(100vh - 34px); padding: clamp(26px, 4.5vw, 51px); position: relative; overflow: auto; border: 0; color: var(--ink); background: var(--cream); box-shadow: 0 32px 100px rgba(0,0,0,.36); }
.dialog::backdrop { background: rgba(9,20,13,.76); backdrop-filter: blur(5px); }
.dialog-close { width: 38px; height: 38px; position: absolute; z-index: 2; top: 14px; right: 14px; border: 1px solid var(--line); background: var(--cream); cursor: pointer; font-size: 25px; }
.plan-dialog-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(290px, .75fr); align-items: center; gap: clamp(28px, 5vw, 62px); }
.dialog-gallery img { width: 100%; height: min(62vh, 610px); display: block; object-fit: contain; background: #e9e6df; }
.dialog-gallery > div { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-top: 0; }
.dialog-gallery button { min-height: 42px; border: 0; background: white; cursor: pointer; color: var(--muted); font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.dialog-gallery button + button { border-left: 1px solid var(--line); }
.dialog-gallery button.active { color: white; background: var(--forest); }
.dialog-copy h2, .compare-dialog h2 { font-size: clamp(38px, 5vw, 58px); }
.dialog-copy > p:not(.eyebrow):not(.legal-note) { color: var(--muted); font-size: 13px; }
.dialog-specs { margin: 19px 0 23px; display: flex; flex-wrap: wrap; gap: 8px; }
.dialog-specs span { padding: 7px 9px; color: var(--forest); background: var(--paper); font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.dialog-price { margin: 24px 0 12px; padding-top: 19px; border-top: 1px solid var(--line); }
.dialog-price strong { font-family: Georgia, serif; font-size: 31px; font-weight: 400; }
.table-wrap { overflow-x: auto; }
#compare-table { width: 100%; min-width: 600px; border-collapse: collapse; }
#compare-table th, #compare-table td { padding: 16px 14px; border-bottom: 1px solid var(--line); text-align: left; }
#compare-table th { color: var(--forest); font-family: Georgia, serif; font-size: 18px; font-weight: 400; }
#compare-table th:first-child, #compare-table td:first-child { width: 150px; color: #7b837d; font-family: Inter, sans-serif; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.dialog-footer { margin-top: 25px; display: flex; justify-content: space-between; align-items: center; gap: 25px; }
.dialog-footer p { color: var(--muted); font-size: 9px; }

.investor-hero { min-height: 690px; display: grid; grid-template-columns: .92fr 1.08fr; color: white; background: var(--forest-deep); }
.investor-hero-copy { padding: clamp(70px, 8vw, 120px) clamp(25px, 7vw, 105px); display: flex; flex-direction: column; justify-content: center; }
.investor-hero h1 { font-size: clamp(55px, 6.5vw, 92px); }
.investor-hero h1 em { color: var(--sand); }
.investor-hero-copy > p:not(.eyebrow) { max-width: 570px; color: #c1cbc3; font-size: 16px; }
.investor-hero-image { min-height: 600px; position: relative; overflow: hidden; }
.investor-hero-image > img { width: 100%; height: 100%; object-fit: cover; }
.investor-hero-image > div { min-width: 285px; padding: 20px 24px; position: absolute; right: 0; bottom: 6%; display: flex; flex-direction: column; background: rgba(251,249,244,.96); color: var(--ink); }
.investor-hero-image span { color: var(--rust); font-size: 8px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.investor-hero-image strong { margin: 7px 0 3px; font-family: Georgia, serif; font-size: 21px; font-weight: 400; }
.investor-hero-image small { color: var(--muted); }
.calculator-shell { max-width: 1250px; margin: 0 auto; display: grid; grid-template-columns: .8fr 1.2fr; border: 1px solid var(--line); background: white; box-shadow: var(--shadow); }
.calculator-inputs { padding: clamp(28px, 4vw, 50px); background: var(--paper); }
.calculator-inputs label { margin-bottom: 18px; display: grid; grid-template-columns: 1fr auto 130px; align-items: center; gap: 9px; color: #646d66; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.calculator-inputs label span { color: var(--forest); }
.calculator-inputs input { width: 130px; height: 44px; padding: 0 11px; border: 1px solid #cbd0c9; background: white; color: var(--ink); }
.calculator-inputs > p { margin: 24px 0 0; color: #858c87; font-size: 9px; }
.calculator-results { padding: clamp(30px, 5vw, 64px); color: white; background: var(--forest); }
.calculator-results .eyebrow { color: var(--sand); }
.result-primary { padding-bottom: 26px; border-bottom: 1px solid rgba(255,255,255,.17); }
.result-primary span, .result-grid span { display: block; margin-bottom: 8px; color: #bcc8bf; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.result-primary strong { font-family: Georgia, serif; font-size: clamp(45px, 5vw, 72px); font-weight: 400; }
.result-grid { padding-top: 26px; display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }
.result-grid strong { font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.calculator-disclaimer { margin: 30px 0 0; color: #aab7ad; font-size: 9px; }
.investor-paths { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(40px, 7vw, 105px); }
.investor-path-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }
.investor-path-grid article { min-height: 310px; padding: 29px; display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.04); }
.investor-path-grid article > span { color: var(--sand); font-size: 10px; }
.investor-path-grid h3 { margin: 22px 0 10px; font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.investor-path-grid p { margin: 0; color: #b6c1b8; font-size: 12px; }
.investor-path-grid a { margin-top: auto; padding-top: 25px; font-size: 11px; font-weight: 800; }
.due-diligence { grid-column: 1 / -1; margin-top: 20px; padding-top: 30px; border-top: 1px solid rgba(255,255,255,.16); }
.due-diligence h3 { font-family: Georgia, serif; font-size: 23px; font-weight: 400; }
.due-diligence > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px 20px; }
.due-diligence span { padding: 9px 0; color: #b9c4bc; font-size: 10px; border-bottom: 1px solid rgba(255,255,255,.1); }
.due-diligence span::before { content: "✓"; margin-right: 9px; color: var(--sand); }

.project-overview { background: var(--cream); }
.project-stat-grid { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: repeat(4, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.project-stat-grid article { min-height: 245px; padding: 30px; display: flex; flex-direction: column; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: white; }
.project-stat-grid strong { font-family: Georgia, serif; font-size: clamp(45px, 5vw, 72px); font-weight: 400; line-height: 1; }
.project-stat-grid span { margin: 10px 0 25px; color: var(--rust); font-size: 11px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.project-stat-grid p { margin: auto 0 0; color: var(--muted); font-size: 14px; }
.project-link-band { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(45px, 8vw, 120px); align-items: center; }
.project-link-band > div > p:last-child { max-width: 520px; color: #b9c5bc; font-size: 16px; }
.project-feature-card { padding: 18px 18px 27px; color: var(--ink); background: var(--cream); transition: transform .25s ease; }
.project-feature-card:hover { transform: translateY(-5px); }
.project-feature-card img { width: 100%; height: 330px; display: block; object-fit: cover; }
.project-feature-card > span { display: block; margin-top: 20px; color: var(--rust); font-size: 10px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.project-feature-card h3 { margin: 10px 0 8px; font-family: Georgia, serif; font-size: 32px; font-weight: 400; }
.project-feature-card p { margin: 0 0 20px; color: var(--muted); font-size: 14px; }
.project-feature-card b { font-size: 12px; }
.investor-disclaimer { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(40px, 8vw, 120px); }
.investor-disclaimer > div:last-child > p { margin: 0 0 26px; color: var(--muted); font-size: 15px; }

.duchesne-hero { min-height: 720px; position: relative; display: grid; overflow: hidden; background: var(--forest-deep); }
.duchesne-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,28,18,.9) 0%, rgba(10,28,18,.58) 46%, rgba(10,28,18,.08) 78%); }
.duchesne-hero > img { width: 100%; height: 100%; min-height: 720px; position: absolute; inset: 0; object-fit: cover; }
.duchesne-overlay { max-width: 760px; padding: clamp(85px, 10vw, 155px) clamp(24px, 7vw, 105px); position: relative; z-index: 1; align-self: center; color: white; }
.duchesne-overlay h1 { font-size: clamp(58px, 7vw, 102px); }
.duchesne-overlay h1 em { color: var(--sand); }
.duchesne-overlay > p:not(.eyebrow) { max-width: 560px; margin: 27px 0 32px; color: #d2dad4; font-size: 17px; }
.duchesne-intro { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(45px, 8vw, 120px); }
.duchesne-intro > div:last-child p { margin-top: 0; color: var(--muted); font-size: 16px; }
.project-facts { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(45px, 8vw, 115px); align-items: start; }
.project-facts-copy h2 em { color: var(--sand); }
.project-facts-copy > p:last-child { max-width: 500px; color: #b8c4bb; font-size: 15px; }
.fact-list { display: grid; grid-template-columns: 1fr 1fr; }
.fact-list article { min-height: 235px; padding: 28px; border: 1px solid rgba(255,255,255,.15); }
.fact-list article:nth-child(even) { border-left: 0; }
.fact-list article:nth-child(n+3) { border-top: 0; }
.fact-list span { color: var(--sand); font-size: 10px; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.fact-list h3 { margin: 22px 0 10px; font-family: Georgia, serif; font-size: 27px; font-weight: 400; }
.fact-list p { margin: 0; color: #b5c0b8; font-size: 14px; }
.vision-gallery { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.vision-gallery figure { margin: 0; border: 1px solid var(--line); background: white; }
.vision-gallery img { width: 100%; height: 430px; display: block; object-fit: cover; }
.vision-gallery figcaption { padding: 22px; display: flex; justify-content: space-between; align-items: baseline; gap: 20px; }
.vision-gallery strong { font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.vision-gallery span { color: var(--muted); font-size: 11px; }
.cottage-vision > .legal-note { max-width: 1400px; margin: 17px auto 0; }
.project-next { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 35px 70px; }
.project-next > div:first-child { max-width: 780px; }
.project-next > div:first-child > p:last-child { color: #bac5bd; font-size: 15px; }
.project-next > div:nth-child(2) { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.project-next > small { grid-column: 1 / -1; padding-top: 24px; color: #909e94; border-top: 1px solid rgba(255,255,255,.14); font-size: 11px; line-height: 1.6; }

.about-hero { min-height: 680px; display: grid; grid-template-columns: 1.08fr .92fr; background: var(--paper); }
.about-hero-copy { padding: clamp(75px, 9vw, 140px) clamp(25px, 7vw, 105px); display: flex; flex-direction: column; justify-content: center; }
.about-hero-copy h1 { font-size: clamp(58px, 7vw, 102px); }
.about-hero-copy > p:last-child { max-width: 650px; color: var(--muted); font-size: 17px; }
.about-brand-panel { padding: clamp(50px, 8vw, 100px); display: flex; flex-direction: column; justify-content: center; color: white; background: radial-gradient(circle at 80% 20%, rgba(216,188,136,.2), transparent 34%), var(--forest); }
.about-brand-panel > img { width: 100%; height: 330px; display: block; object-fit: cover; object-position: center; background: var(--paper); }
.about-brand-panel > div { margin-top: 48px; padding-top: 27px; border-top: 1px solid rgba(255,255,255,.18); }
.about-brand-panel span { color: var(--sand); font-size: 11px; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.about-brand-panel strong { display: block; margin-top: 12px; font-family: Georgia, serif; font-size: clamp(30px, 4vw, 48px); font-weight: 400; line-height: 1.05; }
.about-brand-panel p { max-width: 430px; margin: 14px 0 0; color: #c3cec5; font-size: 14px; }
.family-story { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(45px, 8vw, 115px); align-items: center; }
.family-story-image { position: relative; }
.family-story-image img { width: 100%; height: 610px; display: block; object-fit: cover; }
.family-story-image span { padding: 15px 20px; position: absolute; left: 0; bottom: 0; color: white; background: var(--forest-deep); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.family-story-copy > p:not(.eyebrow) { color: var(--muted); font-size: 16px; }
.family-leadership { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(45px, 8vw, 110px); }
.family-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.family-cards article { min-height: 360px; padding: 31px; border: 1px solid rgba(255,255,255,.17); background: rgba(255,255,255,.04); }
.family-cards article > span { width: 59px; height: 59px; display: grid; place-items: center; border-radius: 50%; color: var(--forest-deep); background: var(--sand); font-family: Georgia, serif; font-size: 25px; }
.family-cards .person-card { padding: 0 0 28px; overflow: hidden; }
.person-card img { width: 100%; height: 255px; display: block; object-fit: cover; object-position: center top; }
.person-card > p, .person-card > h3 { margin-left: 28px; margin-right: 28px; }
.person-card > p:first-of-type { margin-top: 25px; }
.person-card > span { display: none; }
.family-cards article > p:first-of-type { margin: 25px 28px 10px; color: var(--sand); font-size: 10px; font-weight: 850; letter-spacing: .12em; line-height: 1.5; text-transform: uppercase; }
.person-role { display: flex; flex-direction: column; gap: 2px; }
.person-role span { display: block; }
.family-cards h3 { margin: 0 28px 18px; font-family: Georgia, serif; font-size: 31px; font-weight: 400; line-height: 1.12; }
.family-cards article > p:last-child { color: #b8c3bb; font-size: 14px; }
.values-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; }
.values-strip > div { min-height: 350px; padding: 34px; border: 1px solid var(--line); background: white; }
.values-strip > div + div { border-left: 0; }
.values-strip span { color: var(--rust); font-size: 10px; font-weight: 850; }
.values-strip h3 { margin: 42px 0 17px; font-family: Georgia, serif; font-size: 28px; font-weight: 400; line-height: 1.08; }
.values-strip p { color: var(--muted); font-size: 15px; line-height: 1.7; }
.about-cta { display: flex; justify-content: space-between; align-items: center; gap: 45px; }
.about-cta > div { max-width: 900px; }

.estimator { max-width: 1400px; margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; gap: 24px; align-items: start; }
.quote-section { grid-template-columns: 1.2fr .8fr; }
.estimate-form { padding: clamp(28px, 4vw, 50px); border: 1px solid var(--line); background: white; box-shadow: 0 12px 35px rgba(27,43,32,.06); }
.form-heading { margin-bottom: 30px; display: grid; grid-template-columns: 44px 1fr; gap: 15px; }
.form-heading > span { width: 39px; height: 39px; display: grid; place-items: center; border: 1px solid var(--sage); border-radius: 50%; color: var(--forest); font-size: 9px; }
.form-heading h2 { font-size: 35px; }
.form-heading p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 17px; }
.simple-quote-fields { grid-template-columns: 1fr; }
.questionnaire-fields { gap: 20px; }
.questionnaire-fields label { font-size: 12px; line-height: 1.4; }
.questionnaire-fields select, .questionnaire-fields input { height: 52px; font-size: 14px; }
.questionnaire-fields textarea { font-size: 14px; }
.quote-form .form-heading p { font-size: 14px; line-height: 1.5; }
.questionnaire-divider { height: 1px; margin: 34px 0; background: var(--line); }
.conditional-field { padding: 17px; border-left: 3px solid var(--rust); background: var(--paper); }
.conditional-field[hidden] { display: none; }
.form-fields label, .lead-form label { display: flex; flex-direction: column; gap: 8px; color: #616a63; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.form-fields select, .form-fields input, .form-fields textarea, .lead-form input { width: 100%; height: 48px; padding: 0 13px; border: 1px solid #cbd0ca; border-radius: 0; color: var(--ink); background: white; font-size: 13px; text-transform: none; letter-spacing: 0; }
.form-fields textarea { height: auto; min-height: 112px; padding-block: 13px; resize: vertical; line-height: 1.5; }
.form-fields .full-field { grid-column: 1 / -1; }
.form-fields .invalid { border-color: #a74831; box-shadow: 0 0 0 1px #a74831; }
.form-error { min-height: 17px; color: #a74831; font-size: 10px; }
.estimate-result { padding: clamp(30px, 5vw, 62px); color: white; background: var(--forest); box-shadow: var(--shadow); }
.estimate-result[hidden] { display: none; }
.estimate-result .eyebrow { color: var(--sand); }
.estimate-result h2 { font-size: clamp(37px, 4vw, 54px); color: white; }
.estimate-total { margin: 26px 0; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.17); border-bottom: 1px solid rgba(255,255,255,.17); }
.estimate-total span, .estimate-breakdown span { display: block; margin-bottom: 7px; color: #bdc8bf; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.estimate-total strong { font-family: Georgia, serif; font-size: clamp(41px, 4.5vw, 64px); font-weight: 400; }
.estimate-breakdown { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.estimate-breakdown div { padding: 15px; border: 1px solid rgba(255,255,255,.14); }
.estimate-breakdown strong { font-family: Georgia, serif; font-size: 18px; font-weight: 400; }
.estimate-result .legal-note { color: #9fada3; }
.land-note { padding: 12px 14px; color: #f1ddba; background: rgba(216,188,136,.1); font-size: 10px; }
.lead-form { margin-top: 30px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.17); }
.lead-form h3 { margin: 0 0 7px; font-family: Georgia, serif; font-size: 25px; font-weight: 400; }
.lead-form > p { color: #acb8ae; font-size: 9px; }
.lead-form > div { margin: 18px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.lead-form label { color: #c8d1ca; }
.estimate-success { padding: 24px; margin-top: 28px; text-align: center; color: var(--ink); background: var(--cream); }
.estimate-success > span { width: 42px; height: 42px; margin: 0 auto 13px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--rust); }
.estimate-success h3 { margin: 0; font-family: Georgia, serif; font-size: 24px; font-weight: 400; }
.estimate-success p { color: var(--muted); font-size: 10px; }
.quote-summary > p:not(.eyebrow):not(.legal-note) { color: #c2ccc4; font-size: 13px; }
.quote-factors { margin: 27px 0; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.17); }
.quote-factors li { padding: 18px 0; display: grid; grid-template-columns: 39px 1fr; gap: 14px; border-bottom: 1px solid rgba(255,255,255,.17); }
.quote-factors li > span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: var(--sand); font-size: 8px; }
.quote-factors div { display: flex; flex-direction: column; gap: 5px; }
.quote-factors strong { font-family: Georgia, serif; font-size: 19px; font-weight: 400; }
.quote-factors small { color: #afbbb2; font-size: 10px; line-height: 1.5; }
.quote-options { margin-top: 21px; display: grid; gap: 10px; }
.quote-check { padding: 14px; display: grid; grid-template-columns: 20px 1fr; align-items: start; gap: 11px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; }
.quote-check input { width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--rust); }
.quote-check span { display: flex; flex-direction: column; gap: 4px; }
.quote-check strong { color: var(--ink); font-size: 11px; }
.quote-check small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.priority-callout { margin: 25px 0; padding: 19px; border: 1px solid rgba(216,188,136,.45); background: rgba(216,188,136,.09); }
.priority-callout strong { color: var(--sand); font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.priority-callout p { margin: 7px 0 0; color: #c4cdc6; font-size: 10px; }
.prototype-note { margin: 0 0 12px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.quote-success { grid-column: 1 / -1; padding: clamp(48px, 8vw, 95px); text-align: center; border: 1px solid var(--line); background: var(--paper); }
.quote-success > span { width: 54px; height: 54px; margin: 0 auto 21px; display: grid; place-items: center; border-radius: 50%; color: white; background: var(--rust); font-size: 22px; }
.quote-success h2 { font-size: clamp(40px, 5vw, 68px); }
.quote-success > p:not(.eyebrow) { max-width: 560px; margin: 17px auto 26px; color: var(--muted); }
.estimate-next { display: grid; grid-template-columns: .78fr 1.22fr; gap: clamp(45px, 7vw, 100px); }
.next-steps article { padding: 24px 0; display: grid; grid-template-columns: 45px 1fr; column-gap: 15px; border-top: 1px solid rgba(255,255,255,.16); }
.next-steps article:last-child { border-bottom: 1px solid rgba(255,255,255,.16); }
.next-steps span { grid-row: 1 / 3; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.23); border-radius: 50%; color: var(--sand); font-size: 9px; }
.next-steps h3 { margin: 2px 0 6px; font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.next-steps p { margin: 0; color: #afbbb2; font-size: 11px; }

.site-footer { padding: 28px clamp(22px, 6vw, 94px); display: grid; grid-template-columns: 150px 1fr auto; align-items: center; gap: 30px; color: #aeb8b0; background: #0f1c14; border-top: 1px solid rgba(255,255,255,.09); }
.site-footer > img { width: 135px; height: 76px; padding: 5px; object-fit: contain; background: var(--paper); }
.site-footer > div { display: flex; flex-direction: column; gap: 5px; }
.site-footer strong { color: white; font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.site-footer span { font-size: 9px; }
.site-footer nav { display: flex; gap: 24px; font-size: 10px; font-weight: 800; }
.site-footer > small { grid-column: 1 / -1; padding-top: 15px; border-top: 1px solid rgba(255,255,255,.09); font-size: 8px; text-transform: uppercase; letter-spacing: .08em; }

button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(182,95,61,.35); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }

@media (max-width: 1050px) {
  .site-header nav { gap: 18px; }
  .home-hero, .investor-hero { grid-template-columns: 1fr; max-height: none; }
  .hero-content, .investor-hero-copy { min-height: 600px; }
  .hero-image, .investor-hero-image { min-height: 520px; }
  .featured-grid { grid-template-columns: 1fr 1fr; }
  .featured-card:last-child { grid-column: 1 / -1; width: 50%; justify-self: center; }
  .pathways, .investor-paths, .estimate-next { grid-template-columns: 1fr; }
  .filter-bar { grid-template-columns: 1fr 1fr; }
  .plans-grid { grid-template-columns: 1fr 1fr; }
  .calculator-shell, .estimator { grid-template-columns: 1fr; }
  .project-stat-grid { grid-template-columns: 1fr 1fr; }
  .project-link-band, .investor-disclaimer, .duchesne-intro, .project-facts, .family-leadership { grid-template-columns: 1fr; }
  .about-hero { grid-template-columns: 1fr; }
  .about-brand-panel { min-height: 570px; }
}

@media (max-width: 760px) {
  .announcement { font-size: 8px; text-align: center; }
  .site-header { height: 68px; padding: 0 17px; }
  .brand img { width: 50px; height: 32px; }
  .brand strong { font-size: 11px; }
  .brand small { font-size: 7px; }
  .menu-toggle { display: block; }
  .site-header nav { padding: 12px 17px 18px; position: absolute; left: 0; right: 0; top: 68px; display: none; flex-direction: column; align-items: stretch; gap: 4px; border-bottom: 1px solid var(--line); background: var(--cream); box-shadow: 0 15px 30px rgba(23,32,25,.1); }
  .site-header nav.open { display: flex; }
  .site-header nav a { padding: 13px 8px !important; }
  .nav-cta { justify-content: center; }
  .hero-content, .investor-hero-copy { min-height: 580px; padding: 60px 23px; }
  h1 { font-size: clamp(50px, 15vw, 72px); }
  .hero-stats { gap: 18px; flex-wrap: wrap; }
  .hero-image, .investor-hero-image { min-height: 430px; }
  .section-heading, .page-hero { grid-template-columns: 1fr; gap: 24px; }
  .page-hero { padding-block: 68px; }
  .featured-grid, .pathway-grid, .investor-path-grid { grid-template-columns: 1fr; }
  .featured-card:last-child { grid-column: auto; width: 100%; }
  .featured-card img, .featured-tall img { height: 260px; }
  .filter-bar { grid-template-columns: 1fr; }
  .results-line p:last-child { display: none; }
  .plans-grid { grid-template-columns: 1fr; }
  .cta-band { flex-direction: column; align-items: flex-start; }
  .compare-dock { bottom: 8px; }
  .compare-dock #compare-selections { flex-direction: column; gap: 2px; }
  .compare-dock .dock-clear { display: none; }
  .compare-dock .button { padding: 0 11px; font-size: 9px; }
  .plan-dialog-grid { grid-template-columns: 1fr; }
  .dialog-gallery img { height: 47vh; }
  .dialog-footer { align-items: stretch; flex-direction: column; }
  .calculator-inputs label { grid-template-columns: 1fr auto 112px; }
  .calculator-inputs input { width: 112px; }
  .due-diligence > div { grid-template-columns: 1fr; }
  .project-stat-grid, .fact-list, .vision-gallery, .family-story, .family-cards, .values-strip, .project-next { grid-template-columns: 1fr; }
  .fact-list article:nth-child(even) { border-left: 1px solid rgba(255,255,255,.15); }
  .fact-list article:nth-child(n+2) { border-top: 0; }
  .vision-gallery img { height: 330px; }
  .vision-gallery figcaption { align-items: flex-start; flex-direction: column; }
  .family-story-image img { height: 460px; }
  .values-strip > div + div { border-left: 1px solid var(--line); border-top: 0; }
  .project-next > small { grid-column: auto; }
  .about-cta { align-items: flex-start; flex-direction: column; }
  .form-fields, .lead-form > div { grid-template-columns: 1fr; }
  .estimate-breakdown { grid-template-columns: 1fr; }
  .site-footer { grid-template-columns: 1fr; align-items: start; }
  .site-footer nav { flex-wrap: wrap; }
  .site-footer > small { grid-column: auto; }
}

@media (max-width: 430px) {
  .announcement span:last-child, .announcement i { display: none; }
  .button-row { align-items: flex-start; flex-direction: column; }
  .button-row .button { width: 100%; }
  .hero-stats div { min-width: 80px; }
  .pathway-card { min-height: 250px; }
  .compare-dock { align-items: flex-end; }
}

.email-copy { display:block; width:100%; margin-top:1rem; padding:1rem; border:1px solid #b6b4ad; border-radius:8px; background:#fff; color:#232b2a; font:inherit; line-height:1.5; resize:vertical; }

/* Duchesne location and cottage concept */
#duchesne-location { scroll-margin-top: 100px; }
.location-section { display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(32px,6vw,88px); align-items:center; }
.location-copy h2 { color:white; font-size:clamp(38px,4.5vw,64px); }
.location-copy .eyebrow { color:var(--sand); font-size:14px; }
.location-copy p:not(.eyebrow) { color:#c3cec5; font-size:16px; }
.location-copy .text-link { font-size:14px; }
.location-map { margin:0; min-width:0; background:var(--cream); color:var(--ink); }
.location-map iframe { display:block; width:100%; height:420px; border:0; }
.location-map figcaption { display:flex; flex-direction:column; gap:10px; padding:24px; }
.location-map strong { font-family:Georgia,serif; font-size:26px; font-weight:400; }
.location-map span { color:var(--muted); font-size:14px; line-height:1.5; }
.location-map a { align-self:flex-start; border-bottom:1px solid; font-size:14px; font-weight:700; }
.living-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.living-grid article { padding:32px; background:white; border:1px solid var(--line); }
.living-grid span { font-size:14px; color:var(--rust); }
.living-grid h3 { font-family:Georgia,serif; font-size:28px; font-weight:400; }
.living-grid p { font-size:16px; color:var(--muted); }
.concept-note { margin:24px 0 0; font-size:14px; color:var(--muted); }
@media(max-width:900px) { .location-section { grid-template-columns:1fr; } }
@media(max-width:760px) { .living-grid { grid-template-columns:1fr; } .location-map iframe { height:340px; } }

.cottage-section-divider { height:18px; background:var(--forest); }
