:root {
  --bg: #f3f1e9;
  --surface: #e4e8df;
  --paper: #fbfaf5;
  --ink: #15231a;
  --muted: #667066;
  --green: #0f492b;
  --green-deep: #0a351f;
  --accent: #cf6b55;
  --line: rgba(21, 35, 26, .2);
  --light: #f8f7f1;
  --shell: 1600px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--ink); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; margin: 0 auto; max-width: var(--shell); }
img { display: block; height: auto; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
[hidden] { display: none !important; }
.skip-link { background: var(--paper); color: var(--green); left: 14px; padding: 10px 14px; position: absolute; top: -80px; z-index: 100; }
.skip-link:focus { top: 12px; }
.eyebrow { color: var(--accent); display: inline-block; font-size: 10px; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow.light { color: rgba(248, 247, 241, .8); }
.text-link { align-items: center; border-bottom: 1px solid currentColor; display: inline-flex; font-size: 10px; gap: 28px; letter-spacing: .13em; padding-bottom: 6px; text-transform: uppercase; }
.text-link.light { color: var(--light); }
.button { background: var(--green); border: 1px solid var(--green); color: var(--light); cursor: pointer; display: inline-flex; font-size: 10px; justify-content: center; letter-spacing: .13em; min-height: 52px; padding: 17px 22px; text-transform: uppercase; }
.button:hover, .button:focus-visible { background: var(--green-deep); }
.button-light { background: var(--light); border-color: var(--light); color: var(--green); }
.button-light:hover, .button-light:focus-visible { background: transparent; color: var(--light); }

.site-header { align-items: center; background: var(--green); color: var(--light); display: grid; grid-template-columns: auto 1fr; min-height: 78px; padding: 0 36px; position: relative; z-index: 30; }
.site-brand { align-items: center; display: inline-flex; width: 112px; }
.site-brand img { height: 58px; object-fit: contain; object-position: left center; width: auto; }
.site-nav { align-items: center; display: flex; gap: 19px; justify-self: end; }
.site-nav a { font-size: 9px; letter-spacing: .1em; opacity: .82; text-transform: uppercase; }
.site-nav a:hover, .site-nav a:focus-visible, .site-nav a[aria-current="page"] { color: #fff; opacity: 1; }
.site-nav a[aria-current="page"] { border-bottom: 1px solid var(--accent); padding-bottom: 4px; }
.external-link { border-left: 1px solid rgba(255,255,255,.25); margin-left: 4px; padding-left: 18px; }
.menu-toggle { background: transparent; border: 0; color: var(--light); display: none; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }

.home-hero { height: min(820px, calc(100vh - 78px)); min-height: 650px; overflow: hidden; position: relative; }
.home-hero > img { height: 100%; object-fit: cover; width: 100%; }
.home-hero-shade { background: linear-gradient(90deg, rgba(6, 28, 17, .82) 0%, rgba(6, 28, 17, .46) 47%, rgba(6, 28, 17, .08) 78%); inset: 0; position: absolute; }
.home-hero-copy { bottom: 68px; color: var(--light); left: 36px; max-width: 1080px; position: absolute; right: 36px; }
.home-hero h1 { font-size: clamp(58px, 7.6vw, 118px); font-weight: 400; letter-spacing: -.07em; line-height: .88; margin: 18px 0 28px; }
.home-hero-copy > p { font-size: 18px; margin: 0 0 32px; max-width: 630px; }
.hero-actions { align-items: center; display: flex; gap: 26px; }
.hero-caption { bottom: 18px; color: rgba(255,255,255,.75); font-size: 9px; letter-spacing: .1em; position: absolute; right: 22px; text-transform: uppercase; }

.section { border-bottom: 1px solid var(--line); padding: 100px 36px; }
.section-surface { background: var(--surface); }
.section-dark { background: var(--green-deep); color: var(--light); }
.intro { display: grid; gap: 40px; grid-template-columns: 1fr 2.2fr; }
.intro h2 { font-size: clamp(44px, 6vw, 84px); font-weight: 400; letter-spacing: -.06em; line-height: .98; margin: 0 0 34px; max-width: 1100px; }
.intro p { color: var(--muted); font-size: 18px; margin: 0; max-width: 720px; }
.section-head { display: grid; gap: 38px; grid-template-columns: 1fr 2.2fr; margin-bottom: 54px; }
.section-head h2 { font-size: clamp(42px, 5vw, 72px); font-weight: 400; letter-spacing: -.055em; line-height: 1; margin: 0; }
.section-head p { color: var(--muted); font-size: 17px; margin: 20px 0 0; max-width: 650px; }

.module-feature { display: grid; grid-template-columns: .85fr 1.15fr; min-height: 720px; }
.module-copy { display: grid; grid-template-columns: 70px 1fr; padding: 80px 46px 60px 36px; }
.module-copy .index { color: var(--accent); font-size: 11px; }
.module-copy h2 { font-size: clamp(84px, 10vw, 148px); font-weight: 400; letter-spacing: -.08em; line-height: .78; margin: 54px 0 42px; }
.module-copy h2 small { font-size: .28em; letter-spacing: -.03em; }
.module-copy p { color: var(--muted); font-size: 17px; margin: 0 0 34px; max-width: 510px; }
.plan-figure { align-items: center; background: var(--paper); display: flex; flex-direction: column; justify-content: center; margin: 0; min-width: 0; padding: 36px; }
.plan-figure img { mix-blend-mode: multiply; width: 100%; }
.plan-figure figcaption, .wide-plan figcaption { color: var(--muted); font-size: 9px; letter-spacing: .12em; margin-top: 16px; text-transform: uppercase; }

.genesis-poster { background: var(--paper); }
.genesis-poster-figure { margin: 0 auto; max-width: 820px; }
.genesis-poster-figure button { background: transparent; border: 0; box-shadow: 16px 18px 42px rgba(6, 28, 17, .12); cursor: zoom-in; display: block; padding: 0; position: relative; width: 100%; }
.genesis-poster-figure img { display: block; height: auto; width: 100%; }
.genesis-poster-figure span { background: var(--green); bottom: 20px; color: var(--light); font-size: 9px; letter-spacing: .12em; opacity: 0; padding: 11px 13px; position: absolute; right: 20px; text-transform: uppercase; transition: opacity .2s ease; }
.genesis-poster-figure button:hover span, .genesis-poster-figure button:focus-visible span { opacity: 1; }

.growth-track { display: grid; grid-template-columns: repeat(7, minmax(135px, 1fr)); margin-bottom: 48px; overflow-x: auto; }
.growth-card { border-top: 1px solid var(--line); min-height: 210px; padding: 18px 22px 22px 0; }
.growth-card + .growth-card { border-left: 1px solid var(--line); padding-left: 22px; }
.growth-card span { color: var(--accent); font-size: 11px; }
.growth-card strong { display: block; font-size: 29px; font-weight: 400; letter-spacing: -.04em; margin-top: 72px; }
.growth-card p { color: var(--muted); font-size: 12px; margin: 7px 0 0; }
.sequence-figure { background: var(--paper); margin: 0 0 34px; padding: 24px; }
.sequence-figure img { mix-blend-mode: multiply; width: 100%; }
.module-poster-feature { align-items: center; display: flex; flex-direction: column; justify-content: center; }
.module-poster-feature button { background: transparent; border: 0; cursor: zoom-in; max-width: 560px; padding: 0; position: relative; width: 100%; }
.module-poster-feature button img { display: block; width: 100%; }
.module-poster-feature button span { background: var(--green); bottom: 14px; color: var(--light); font-size: 9px; letter-spacing: .12em; padding: 9px 12px; position: absolute; right: 14px; text-transform: uppercase; }
.growth-cta { align-items: center; background: var(--green); color: var(--light); display: grid; gap: 54px; grid-template-columns: .72fr 1.28fr; padding: 44px; }
.growth-cta-copy .eyebrow { color: var(--accent-soft); }
.growth-cta-copy h3 { font-size: clamp(34px, 4vw, 58px); font-weight: 400; letter-spacing: -.05em; line-height: .96; margin: 22px 0; }
.growth-cta-copy p { color: rgba(255,255,255,.72); font-size: 15px; margin: 0 0 30px; max-width: 510px; }
.growth-cta-posters { align-items: end; display: grid; gap: 12px; grid-template-columns: repeat(3, 1fr); }
.growth-cta-posters figure { margin: 0; position: relative; }
.growth-cta-posters img { aspect-ratio: 4 / 5; display: block; object-fit: cover; width: 100%; }
.growth-cta-posters figcaption { background: var(--paper); bottom: 8px; color: var(--green); font-size: 9px; left: 8px; letter-spacing: .12em; padding: 6px 8px; position: absolute; }

.principles .section-head { border-bottom: 1px solid rgba(255,255,255,.22); padding-bottom: 52px; }
.principle-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.principle-grid article { min-height: 290px; padding: 18px 22px 24px 0; }
.principle-grid article + article { border-left: 1px solid rgba(255,255,255,.22); padding-left: 22px; }
.principle-grid span { color: var(--accent); font-size: 11px; }
.principle-grid h3 { font-size: 30px; font-weight: 400; letter-spacing: -.04em; margin: 94px 0 14px; }
.principle-grid p { color: rgba(248,247,241,.68); font-size: 14px; margin: 0; max-width: 250px; }

.visual-pair { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 680px; }
.visual-pair.reverse { grid-template-columns: .9fr 1.1fr; }
.visual-pair.reverse figure { order: 2; }
.visual-pair figure { margin: 0; min-height: 600px; }
.visual-pair figure img { height: 100%; object-fit: cover; width: 100%; }
.visual-pair-copy { align-items: flex-start; display: flex; flex-direction: column; justify-content: center; padding: 70px 52px; }
.visual-pair-copy h2 { font-size: clamp(44px, 5vw, 72px); font-weight: 400; letter-spacing: -.06em; line-height: .98; margin: 20px 0 30px; }
.visual-pair-copy p { color: var(--muted); font-size: 17px; margin: 0 0 34px; max-width: 540px; }

.built-grid { display: grid; gap: 18px; grid-template-columns: 1fr 1fr; }
.built-grid figure { aspect-ratio: 4 / 3; margin: 0 0 12px; overflow: hidden; }
.built-grid img { height: 100%; object-fit: cover; transition: transform .5s ease; width: 100%; }
.built-grid a:hover img { transform: scale(1.015); }
.built-grid span { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.notice { border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; margin: 42px 0 0; padding-top: 14px; }

.process-strip { display: grid; gap: 70px; grid-template-columns: 1fr 1.5fr; padding: 90px 36px; }
.process-strip h2 { font-size: clamp(42px, 5vw, 68px); font-weight: 400; letter-spacing: -.055em; line-height: 1; margin: 20px 0 0; }
.process-strip ol { list-style: none; margin: 0; padding: 0; }
.process-strip li { border-top: 1px solid var(--line); display: grid; gap: 22px; grid-template-columns: 50px 1fr; padding: 18px 0; }
.process-strip li span { color: var(--accent); font-size: 10px; }
.process-strip li strong { font-size: 17px; font-weight: 400; }
.process-strip .button { align-self: end; justify-self: end; }

.contact-band { align-items: center; background: var(--accent); color: #fff; display: grid; gap: 40px; grid-template-columns: 1fr auto; padding: 62px 36px; }
.contact-band span { font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.contact-band h2 { font-size: clamp(52px, 7vw, 96px); font-weight: 400; letter-spacing: -.065em; line-height: .9; margin: 14px 0 0; }
.circle-arrow { align-items: center; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; display: flex; font-size: 36px; height: 94px; justify-content: center; transition: background .2s, color .2s; width: 94px; }
.circle-arrow:hover { background: #fff; color: var(--accent); }

.page-hero { border-bottom: 1px solid var(--line); display: grid; gap: 40px; grid-template-columns: 1fr 2.2fr; padding: 100px 36px 92px; }
.page-hero h1 { font-size: clamp(58px, 8.6vw, 128px); font-weight: 400; letter-spacing: -.075em; line-height: .88; margin: 0; max-width: 1200px; }
.page-hero p { color: var(--muted); font-size: 18px; margin: 38px 0 0; max-width: 730px; }
.system-intro { display: grid; gap: 54px; grid-template-columns: 1fr 1fr; padding: 88px 36px; }
.system-number { font-size: clamp(130px, 18vw, 280px); font-weight: 300; letter-spacing: -.09em; line-height: .75; }
.system-number small { color: var(--accent); font-size: .2em; letter-spacing: 0; }
.system-intro h2, .sequence-block h2, .finance h2 { font-size: clamp(42px, 5vw, 70px); font-weight: 400; letter-spacing: -.055em; line-height: 1; margin: 0 0 28px; }
.system-intro p, .sequence-block p, .finance p { color: var(--muted); font-size: 17px; max-width: 650px; }
.wide-plan { background: var(--paper); margin: 0; padding: 34px; }
.wide-plan img { margin: auto; mix-blend-mode: multiply; width: 100%; }
.system-poster { text-align: center; }
.system-poster button { background: transparent; border: 0; box-shadow: 14px 18px 42px rgba(6, 28, 17, .1); cursor: zoom-in; display: block; margin: 0 auto; max-width: 620px; padding: 0; position: relative; width: 100%; }
.system-poster button img { display: block; mix-blend-mode: normal; width: 100%; }
.system-poster button span { background: var(--green); bottom: 14px; color: var(--light); font-size: 9px; letter-spacing: .12em; opacity: 0; padding: 9px 12px; position: absolute; right: 14px; text-transform: uppercase; transition: opacity .2s ease; }
.system-poster button:hover span, .system-poster button:focus-visible span { opacity: 1; }
.system-poster figcaption { text-align: left; }
.evolution-sequence { background: var(--paper); }
.evolution-grid { display: grid; gap: 12px; grid-template-columns: repeat(5, 1fr); }
.evolution-grid figure { background: var(--surface); margin: 0; min-width: 0; }
.evolution-grid button { background: transparent; border: 0; cursor: zoom-in; display: block; overflow: hidden; padding: 0; width: 100%; }
.evolution-grid img { aspect-ratio: 1; object-fit: cover; transition: transform .4s ease; width: 100%; }
.evolution-grid button:hover img, .evolution-grid button:focus-visible img { transform: scale(1.015); }
.evolution-grid figcaption { align-items: center; display: flex; font-size: 11px; gap: 10px; letter-spacing: .08em; padding: 12px 14px 14px; text-transform: uppercase; }
.evolution-grid figcaption span { color: var(--accent); font-size: 9px; }
.rule-grid { display: grid; grid-template-columns: repeat(2, 1fr); margin-left: calc(31.25% + 8px); }
.rule-grid article { border-top: 1px solid var(--line); min-height: 250px; padding: 20px 28px 26px 0; }
.rule-grid article:nth-child(even) { border-left: 1px solid var(--line); padding-left: 28px; }
.rule-grid span { color: var(--accent); font-size: 10px; }
.rule-grid h3 { font-size: 25px; font-weight: 400; letter-spacing: -.035em; margin: 68px 0 14px; }
.rule-grid p { color: var(--muted); margin: 0; max-width: 420px; }

.stage-tabs { display: grid; grid-template-columns: repeat(4, 1fr); }
.stage-tabs button { background: transparent; border: 0; border-top: 1px solid var(--line); color: var(--ink); cursor: pointer; font-size: 26px; padding: 18px 18px 22px 0; text-align: left; }
.stage-tabs button + button { border-left: 1px solid var(--line); padding-left: 18px; }
.stage-tabs button[aria-selected="true"] { background: var(--green); color: var(--light); padding-left: 18px; }
.stage-tabs small { display: block; font-size: 10px; font-weight: 400; letter-spacing: .12em; margin-top: 6px; text-transform: uppercase; }
.stage-panel { display: grid; grid-template-columns: .72fr 1.28fr; min-height: 560px; }
.stage-copy { padding: 60px 42px 60px 0; }
.stage-copy h2 { font-size: clamp(48px, 6vw, 80px); font-weight: 400; letter-spacing: -.06em; line-height: .92; margin: 20px 0 32px; }
.stage-copy p { color: var(--muted); font-size: 17px; max-width: 470px; }
.stage-panel figure { align-items: center; background: var(--paper); display: flex; margin: 0; padding: 30px; }
.stage-panel figure img { mix-blend-mode: multiply; width: 100%; }
.sequence-block { display: grid; gap: 50px; grid-template-columns: .75fr 1.25fr; padding: 80px 36px; }
.sequence-block figure { background: var(--paper); margin: 0; padding: 24px; }
.sequence-block figure img { mix-blend-mode: multiply; }
.growth-editorial { align-items: center; grid-template-columns: .58fr 1.42fr; }
.growth-poster-sequence { display: grid; gap: 10px; grid-template-columns: repeat(5, minmax(0, 1fr)); min-width: 0; }
.growth-poster-sequence figure { margin: 0; padding: 0; }
.growth-poster-sequence button { background: var(--paper); border: 0; cursor: zoom-in; display: block; overflow: hidden; padding: 0; position: relative; width: 100%; }
.growth-poster-sequence img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; width: 100%; }
.growth-poster-sequence span { background: var(--green); bottom: 7px; color: var(--light); font-size: 8px; left: 7px; letter-spacing: .12em; padding: 6px 8px; position: absolute; }
.gallery-band { display: grid; grid-template-columns: 1fr 1fr 1fr; }
.gallery-band figure { aspect-ratio: 4/3; margin: 0; overflow: hidden; }
.gallery-band img { height: 100%; object-fit: cover; width: 100%; }

.config-intro { display: grid; gap: 38px; grid-template-columns: 1fr 2.2fr; margin-bottom: 54px; }
.config-intro p { color: var(--muted); font-size: 17px; margin: 0; max-width: 720px; }
.poster-catalog { border-bottom: 1px solid var(--line); padding-top: 72px; }
.poster-catalog-head { margin-bottom: 54px; }
.poster-catalog-head p { color: var(--muted); font-size: 17px; margin: 24px 0 0; max-width: 680px; }
.poster-grid { display: grid; gap: 42px 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.poster-card { margin: 0; min-width: 0; }
.poster-card button { background: var(--paper); border: 0; cursor: zoom-in; display: block; overflow: hidden; padding: 0; position: relative; width: 100%; }
.poster-card img { aspect-ratio: 4 / 5; display: block; height: auto; transition: transform .45s ease; width: 100%; }
.poster-card button > span { background: var(--green); bottom: 16px; color: var(--light); font-size: 9px; letter-spacing: .12em; opacity: 0; padding: 10px 12px; position: absolute; right: 16px; text-transform: uppercase; transition: opacity .2s; }
.poster-card button:hover img, .poster-card button:focus-visible img { transform: scale(1.012); }
.poster-card button:hover > span, .poster-card button:focus-visible > span { opacity: 1; }
.poster-card figcaption { align-items: baseline; border-top: 1px solid var(--line); display: flex; gap: 16px; justify-content: space-between; padding-top: 12px; }
.poster-card figcaption strong { color: var(--accent); font-size: 10px; letter-spacing: .12em; }
.poster-card figcaption span { color: var(--muted); font-size: 10px; letter-spacing: .08em; text-align: right; text-transform: uppercase; }
.poster-catalog-link { display: flex; justify-content: flex-end; padding-top: 48px; }
.stage-tabs-full { grid-template-columns: repeat(7, 1fr); }
.configuration-panel { padding-top: 58px; }
.configuration-head { align-items: end; display: grid; gap: 40px; grid-template-columns: 1fr 1fr; margin-bottom: 34px; }
.configuration-head h2 { font-size: clamp(70px, 10vw, 142px); font-weight: 300; letter-spacing: -.075em; line-height: .78; margin: 18px 0 0; }
.configuration-head p { color: var(--muted); font-size: 17px; margin: 0 0 4px; max-width: 590px; }
.variant-grid { display: grid; gap: 18px; }
.variant-grid-two { grid-template-columns: 1fr 1fr; }
.variant-grid-one { grid-template-columns: 1fr; }
.variant-card { background: var(--paper); min-width: 0; }
.variant-grid-one .variant-card { max-width: 1100px; }
.plan-open { background: var(--paper); border: 0; cursor: zoom-in; display: block; margin: 0; overflow: hidden; padding: 24px; position: relative; width: 100%; }
.plan-open img { margin: auto; mix-blend-mode: multiply; width: 100%; }
.poster-open { padding: 20px; }
.poster-open img { aspect-ratio: 4 / 5; height: auto; max-height: 78vh; object-fit: contain; width: 100%; }
.variant-grid-one .poster-open img { margin-inline: auto; max-width: 760px; }
.plan-open > span { background: var(--green); bottom: 18px; color: var(--light); font-size: 9px; letter-spacing: .12em; opacity: 0; padding: 10px 12px; position: absolute; right: 18px; text-transform: uppercase; transition: opacity .2s; }
.plan-open:hover > span, .plan-open:focus-visible > span { opacity: 1; }
.variant-meta { border-top: 1px solid var(--line); display: grid; gap: 24px; grid-template-columns: 1fr 1fr; padding: 18px 20px 22px; }
.variant-meta span { color: var(--accent); display: block; font-size: 10px; letter-spacing: .12em; margin-bottom: 7px; }
.variant-meta strong { font-size: 21px; font-weight: 400; letter-spacing: -.025em; }
.variant-meta p { color: var(--muted); margin: 0; }

.render-filters { border-top: 1px solid var(--line); display: flex; gap: 0; margin: 0 0 30px calc(31.25% + 8px); }
.render-filters button { background: transparent; border: 0; border-bottom: 1px solid var(--line); color: var(--muted); cursor: pointer; font-size: 9px; letter-spacing: .12em; padding: 14px 24px 14px 0; text-transform: uppercase; }
.render-filters button + button { padding-left: 24px; }
.render-filters button[aria-pressed="true"] { color: var(--accent); }
.render-grid { display: grid; gap: 14px; grid-template-columns: repeat(12, 1fr); }
.render-grid figure { grid-column: span 4; margin: 0; }
.render-grid figure:nth-child(9n + 1), .render-grid figure:nth-child(9n + 6) { grid-column: span 8; }
.render-grid figure button { background: transparent; border: 0; cursor: zoom-in; display: block; margin: 0; overflow: hidden; padding: 0; width: 100%; }
.render-grid img { aspect-ratio: 4/3; height: 100%; object-fit: cover; transition: transform .45s ease; width: 100%; }
.render-grid button:hover img, .render-grid button:focus-visible img { transform: scale(1.012); }
.render-grid figcaption { color: var(--muted); font-size: 9px; letter-spacing: .11em; padding: 8px 0 4px; text-transform: uppercase; }
.gallery-tools { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin: 0 0 30px calc(31.25% + 8px); }
.gallery-tools span { color: var(--muted); font-size: 9px; letter-spacing: .12em; padding: 14px 0; text-transform: uppercase; }
.gallery-tools button { background: transparent; border: 0; color: var(--accent); cursor: pointer; font-size: 9px; letter-spacing: .12em; padding: 14px 0 14px 24px; text-transform: uppercase; }
.gallery-more { display: flex; justify-content: center; padding-top: 38px; }
.image-lightbox { background: var(--paper); border: 0; height: min(92vh, 980px); max-height: 92vh; max-width: 94vw; padding: 46px 18px 18px; width: min(1500px, 94vw); }
.image-lightbox::backdrop { background: rgba(6, 28, 17, .88); }
.image-lightbox img { height: 100%; margin: auto; object-fit: contain; width: 100%; }
.lightbox-close { background: transparent; border: 0; color: var(--ink); cursor: pointer; font-size: 10px; letter-spacing: .12em; position: absolute; right: 18px; text-transform: uppercase; top: 14px; }

.built-project-head { display: grid; gap: 28px; grid-template-columns: 1fr 2.2fr; margin-bottom: 58px; }
.built-project-head > span { color: var(--accent); font-size: 11px; }
.built-project-head h2 { font-size: clamp(54px, 7vw, 92px); font-weight: 400; letter-spacing: -.065em; line-height: .9; margin: 18px 0 28px; }
.built-project-head p { color: var(--muted); font-size: 17px; max-width: 620px; }
.built-project-head .built-specs { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; max-width: none; }
.built-specs strong, .built-specs span { border: 1px solid var(--line); color: var(--ink); font-size: 11px; font-weight: 500; letter-spacing: .08em; padding: 10px 13px; text-transform: uppercase; }
.built-specs strong { background: var(--ink); border-color: var(--ink); color: #fff; }
.gallery-label { align-items: end; border-top: 1px solid var(--line); display: flex; justify-content: space-between; margin: 0 0 24px; padding-top: 18px; }
.gallery-label p { color: var(--muted); margin: 0; max-width: 520px; }
.gallery-label-process { margin-top: 72px; }
.masonry-gallery { display: grid; gap: 16px; grid-template-columns: repeat(12, 1fr); }
.masonry-gallery figure { grid-column: span 4; margin: 0; overflow: hidden; }
.masonry-gallery figure:nth-child(7n + 1), .masonry-gallery figure:nth-child(7n + 5) { grid-column: span 8; }
.masonry-gallery img { aspect-ratio: 4/3; height: 100%; object-fit: cover; width: 100%; }
.context-note { display: grid; gap: 50px; grid-template-columns: 1fr 2.2fr; padding: 70px 36px; }
.context-note p { color: rgba(248,247,241,.72); font-size: clamp(24px, 3vw, 38px); letter-spacing: -.035em; line-height: 1.2; margin: 0; max-width: 930px; }

.process-list { margin-left: calc(31.25% + 8px); }
.process-list article { border-top: 1px solid var(--line); display: grid; gap: 26px; grid-template-columns: 72px 1fr; padding: 28px 0 34px; }
.process-list article > span { color: var(--accent); font-size: 11px; }
.process-list h2 { font-size: 32px; font-weight: 400; letter-spacing: -.045em; margin: 0 0 10px; }
.process-list p { color: var(--muted); margin: 0; max-width: 620px; }
.finance { display: grid; gap: 40px; grid-template-columns: 1fr 2.2fr; padding: 92px 36px; }
.finance .button { margin-top: 20px; }
.finance-rate { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin-top: 44px; padding: 24px 0 30px; }
.finance-rate > span, .finance-example-head > span, .finance-plan-head > span { color: var(--accent); display: block; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.finance-rate strong { display: block; font-size: clamp(62px, 8vw, 118px); font-weight: 300; letter-spacing: -.07em; line-height: .92; margin: 24px 0 12px; white-space: nowrap; }
.finance-rate strong small { font-size: .25em; font-weight: 400; letter-spacing: .02em; vertical-align: top; }
.finance-rate strong em { font-size: .2em; font-style: normal; font-weight: 400; letter-spacing: 0; }
.finance-rate p { font-size: 12px; margin: 0; }
.finance-example { margin-top: 62px; }
.finance-example-head h3 { font-size: clamp(36px, 4.5vw, 62px); font-weight: 400; letter-spacing: -.055em; line-height: .98; margin: 18px 0 36px; }
.finance-example-grid { display: grid; grid-template-columns: 1fr 1fr; }
.finance-example-grid article { border-top: 1px solid var(--line); min-height: 170px; padding: 18px 22px 22px 0; }
.finance-example-grid article:nth-child(2) { border-left: 1px solid var(--line); padding-left: 22px; }
.finance-example-grid article > span { color: var(--accent); display: block; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.finance-example-grid strong { display: block; font-size: clamp(32px, 4vw, 52px); font-weight: 300; letter-spacing: -.05em; margin-top: 36px; }
.finance-example-grid p { font-size: 13px; margin: 4px 0 0; }
.finance-example-grid .finance-example-total { align-items: end; background: var(--green); color: var(--light); display: grid; grid-column: 1 / -1; grid-template-columns: 1fr auto; min-height: 150px; padding: 24px; }
.finance-example-total > span { color: rgba(248,247,241,.72) !important; }
.finance-example-total strong { font-size: clamp(38px, 5vw, 68px); grid-row: span 2; margin: 0; }
.finance-example-total p { color: rgba(248,247,241,.72); font-size: 11px; }
.finance-semicovers { border-bottom: 1px solid var(--line); font-size: 12px !important; margin: 0; max-width: none !important; padding: 15px 0 18px; }
.finance-plan { margin-top: 62px; }
.finance-plan-head { display: grid; gap: 24px; grid-template-columns: .7fr 1.3fr; }
.finance-plan-head p { font-size: 14px; margin: 0; }
.finance-summary { display: grid; grid-template-columns: 1fr 1fr; margin: 42px 0 0; }
.finance-summary article { border-top: 1px solid var(--line); min-height: 190px; padding: 18px 24px 20px 0; }
.finance-summary article:nth-child(even) { border-left: 1px solid var(--line); padding-left: 24px; }
.finance-summary span, .finance-total span { color: var(--accent); display: block; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.finance-summary strong { display: block; font-size: clamp(26px, 3vw, 42px); font-weight: 400; letter-spacing: -.045em; margin: 38px 0 8px; }
.finance-summary p { font-size: 13px; margin: 0; }
.finance-total { align-items: end; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 10px 24px; grid-template-columns: 1fr auto; padding: 24px 0; }
.finance-total strong { font-size: clamp(30px, 4vw, 52px); font-weight: 300; grid-row: span 2; letter-spacing: -.055em; }
.finance-total small { color: var(--muted); font-size: 11px; }
.finance .finance-disclaimer { font-size: 11px; line-height: 1.65; margin-top: 24px; max-width: 820px; }
.benefits { padding-left: clamp(36px, 4.5vw, 72px); padding-right: clamp(36px, 4.5vw, 72px); }
.benefit-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.benefit-grid article { border-top: 1px solid rgba(255,255,255,.22); min-height: 270px; padding: 18px 28px 24px 0; }
.benefit-grid article:not(:nth-child(3n + 1)) { border-left: 1px solid rgba(255,255,255,.22); padding-left: 28px; }
.benefit-grid span { color: var(--accent); font-size: 10px; }
.benefit-grid h3 { font-size: 27px; font-weight: 400; letter-spacing: -.04em; margin: 70px 0 14px; }
.benefit-grid p { color: rgba(248,247,241,.68); margin: 0; max-width: 340px; }
.cycle-list { display: grid; grid-template-columns: repeat(7, 1fr); list-style: none; margin: 0; padding: 0; }
.cycle-list li { border-top: 1px solid var(--line); font-size: 13px; min-height: 125px; padding: 18px 14px 18px 0; }
.cycle-list li + li { border-left: 1px solid var(--line); padding-left: 14px; }
.cycle-list li::before { color: var(--accent); content: counter(list-item, decimal-leading-zero); display: block; font-size: 9px; margin-bottom: 42px; }
.requirements ul { display: grid; grid-template-columns: 1fr 1fr; list-style: none; margin: 0 0 0 calc(31.25% + 8px); padding: 0; }
.requirements li { border-top: 1px solid var(--line); font-size: 20px; min-height: 130px; padding: 22px 24px 20px 0; }
.requirements li:nth-child(even) { border-left: 1px solid var(--line); padding-left: 24px; }

.faq { margin-left: calc(31.25% + 8px); }
.faq details { border-top: 1px solid var(--line); }
.faq summary { cursor: pointer; font-size: 26px; letter-spacing: -.03em; list-style: none; padding: 26px 60px 26px 0; position: relative; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { color: var(--accent); content: "+"; font-size: 26px; position: absolute; right: 6px; top: 22px; }
.faq details[open] summary::after { content: "−"; }
.faq details p { color: var(--muted); font-size: 17px; margin: 0; max-width: 720px; padding: 0 60px 32px 0; }

.contact-layout { display: grid; grid-template-columns: .85fr 1.15fr; }
.contact-aside { background: var(--green-deep); color: var(--light); display: flex; flex-direction: column; justify-content: space-between; min-height: 780px; padding: 70px 38px 36px; }
.contact-aside h1 { font-size: clamp(50px, 6vw, 82px); font-weight: 400; letter-spacing: -.065em; line-height: .92; margin: 20px 0 32px; }
.contact-aside p { color: rgba(248,247,241,.7); font-size: 17px; max-width: 500px; }
.contact-channels a { align-items: center; border-top: 1px solid rgba(255,255,255,.2); display: flex; justify-content: space-between; padding: 18px 0; }
.contact-channels span { color: rgba(248,247,241,.56); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.contact-channels strong { font-size: 14px; font-weight: 400; }
.contact-form-wrap { padding: 72px 48px; }
.contact-form { display: grid; gap: 30px 22px; grid-template-columns: 1fr 1fr; }
.field { display: flex; flex-direction: column; gap: 8px; }
.field-full { grid-column: 1 / -1; }
.field label { font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.field input, .field select, .field textarea { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; color: var(--ink); min-height: 48px; padding: 8px 0; width: 100%; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-bottom-color: var(--green); outline: 2px solid transparent; }
.submit-row { align-items: center; border-top: 1px solid var(--line); display: grid; gap: 26px; grid-column: 1 / -1; grid-template-columns: 1fr auto; margin-top: 8px; padding-top: 24px; }
.submit-row p { color: var(--muted); font-size: 11px; margin: 0; max-width: 430px; }

.wp-content { min-height: 55vh; }
.wp-content > * { max-width: 820px; }
.error-page { min-height: 70vh; padding: 100px 36px; }
.error-page h1 { font-size: clamp(55px, 8vw, 110px); font-weight: 400; letter-spacing: -.065em; line-height: .92; margin: 24px 0 50px; max-width: 1050px; }
.site-footer { align-items: center; background: var(--green-deep); color: rgba(248,247,241,.78); display: flex; font-size: 9px; justify-content: space-between; letter-spacing: .11em; padding: 24px 36px; text-transform: uppercase; }
.site-footer a:hover { color: #fff; }
.whatsapp-float { align-items: center; background: #1d6b43; border: 1px solid rgba(255,255,255,.2); bottom: 22px; box-shadow: 0 12px 32px rgba(10,53,31,.24); color: #fff; display: inline-flex; gap: 9px; min-height: 50px; padding: 0 17px 0 14px; position: fixed; right: 22px; transition: background .2s, transform .2s; z-index: 60; }
.whatsapp-float:hover { background: #165333; transform: translateY(-2px); }
.whatsapp-float svg { fill: none; height: 24px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 24px; }
.whatsapp-float svg path + path { fill: currentColor; stroke: none; }
.whatsapp-float span { font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.privacy-consent { background: #0a351f; bottom: 18px; color: #f8f7f1; display: grid; gap: 16px; left: 18px; max-width: 430px; padding: 20px; position: fixed; z-index: 100; }
.privacy-consent[hidden] { display: none; }
.privacy-consent p { font-size: 13px; line-height: 1.5; margin: 0; }
.privacy-consent div { display: flex; gap: 8px; }
.privacy-consent button { background: transparent; border: 1px solid rgba(255,255,255,.35); color: inherit; cursor: pointer; font: inherit; padding: 9px 13px; }
.privacy-consent button:last-child { background: #f8f7f1; color: #0a351f; }

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

@media (max-width: 1080px) {
  .site-header { grid-template-columns: 1fr auto; padding: 0 20px; }
  .site-brand { width: 100px; }
  .menu-toggle { display: block; }
  .site-nav { background: var(--green); display: none; flex-direction: column; gap: 0; left: 0; padding: 10px 20px 24px; position: absolute; right: 0; top: 78px; }
  .site-nav[data-open="true"] { display: flex; }
  .site-nav a { border-top: 1px solid rgba(255,255,255,.18); padding: 15px 0; width: 100%; }
  .site-nav a[aria-current="page"] { border-bottom: 0; }
  .external-link { border-left: 0; margin-left: 0; padding-left: 0; }
  .page-hero, .intro, .section-head, .built-project-head, .context-note, .finance, .config-intro { grid-template-columns: 1fr; }
  .section, .page-hero { padding-left: 20px; padding-right: 20px; }
  .module-feature, .system-intro, .sequence-block, .visual-pair, .visual-pair.reverse, .contact-layout { grid-template-columns: 1fr; }
  .growth-cta { grid-template-columns: 1fr; }
  .module-copy { padding: 70px 20px; }
  .plan-figure { min-height: 520px; }
  .genesis-poster-figure { max-width: 720px; }
  .visual-pair.reverse figure { order: 0; }
  .visual-pair-copy { padding: 64px 20px; }
  .process-strip { grid-template-columns: 1fr; padding-left: 20px; padding-right: 20px; }
  .process-strip .button { justify-self: start; }
  .rule-grid, .process-list, .requirements ul, .faq { margin-left: 0; }
  .stage-panel { grid-template-columns: 1fr; }
  .stage-copy { padding-right: 0; }
  .stage-panel figure { min-height: 500px; }
  .contact-aside { min-height: 620px; padding: 60px 20px 30px; }
  .contact-form-wrap { padding: 60px 20px; }
  .stage-tabs-full { grid-template-columns: repeat(4, 1fr); }
  .configuration-head { grid-template-columns: 1fr; }
  .poster-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .render-filters, .gallery-tools { margin-left: 0; }
  .cycle-list { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 700px) {
  .home-hero { height: 690px; min-height: 690px; }
  .home-hero-shade { background: linear-gradient(0deg, rgba(6,28,17,.88), rgba(6,28,17,.05) 80%); }
  .home-hero-copy { bottom: 48px; left: 20px; right: 20px; }
  .home-hero h1 { font-size: 48px; }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-caption { display: none; }
  .section { padding-bottom: 70px; padding-top: 70px; }
  .module-copy { grid-template-columns: 38px 1fr; }
  .module-copy h2 { font-size: 76px; }
  .plan-figure { min-height: 400px; padding: 18px; }
  .genesis-poster-figure { max-width: 100%; }
  .genesis-poster-figure button { box-shadow: 8px 10px 28px rgba(6, 28, 17, .12); }
  .genesis-poster-figure span { display: none; }
  .growth-track, .principle-grid, .stage-tabs, .gallery-band, .requirements ul, .variant-grid-two, .finance-summary, .benefit-grid, .cycle-list { grid-template-columns: 1fr; }
  .evolution-grid { grid-template-columns: repeat(2, 1fr); }
  .growth-card + .growth-card, .principle-grid article + article, .stage-tabs button + button, .requirements li:nth-child(even) { border-left: 0; padding-left: 0; }
  .growth-card, .principle-grid article { min-height: 0; }
  .growth-card strong, .principle-grid h3 { margin-top: 38px; }
  .built-grid { grid-template-columns: 1fr; }
  .contact-band { padding: 48px 20px; }
  .circle-arrow { font-size: 26px; height: 68px; width: 68px; }
  .system-intro { padding: 70px 20px; }
  .wide-plan { padding: 16px; }
  .system-poster button { max-width: 520px; }
  .system-poster button span { display: none; }
  .benefits { padding-left: 24px; padding-right: 24px; }
  .benefit-grid article { min-height: 0; padding-right: 0; }
  .benefit-grid h3 { margin-top: 42px; }
  .rule-grid { grid-template-columns: 1fr; }
  .rule-grid article:nth-child(even) { border-left: 0; padding-left: 0; }
  .sequence-block { padding: 70px 20px; }
  .growth-poster-sequence { grid-template-columns: repeat(10, minmax(190px, 62vw)); margin-left: -20px; margin-right: -20px; overflow-x: auto; padding: 0 20px 14px; scroll-snap-type: x mandatory; }
  .growth-poster-sequence figure { scroll-snap-align: start; }
  .growth-cta { margin-left: -20px; margin-right: -20px; padding: 42px 20px; }
  .growth-cta-posters { gap: 8px; }
  .stage-tabs button[aria-selected="true"] { padding-left: 14px; }
  .stage-panel figure { min-height: 350px; padding: 14px; }
  .masonry-gallery figure, .masonry-gallery figure:nth-child(7n + 1), .masonry-gallery figure:nth-child(7n + 5) { grid-column: span 12; }
  .process-list article { grid-template-columns: 48px 1fr; }
  .contact-form { grid-template-columns: 1fr; }
  .field-full, .submit-row { grid-column: 1; }
  .submit-row { grid-template-columns: 1fr; }
  .submit-row .button { width: 100%; }
  .site-footer { align-items: flex-start; flex-direction: column; gap: 12px; padding-left: 20px; padding-right: 20px; }
  .whatsapp-float { border-radius: 50%; bottom: 16px; height: 52px; justify-content: center; min-height: 52px; padding: 0; right: 16px; width: 52px; }
  .whatsapp-float span { clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; white-space: nowrap; width: 1px; }
  .variant-meta { grid-template-columns: 1fr; }
  .poster-grid { grid-template-columns: 1fr; }
  .poster-card figcaption { align-items: flex-start; flex-direction: column; gap: 6px; }
  .poster-card figcaption span { text-align: left; }
  .render-filters { flex-wrap: wrap; }
  .render-grid figure, .render-grid figure:nth-child(9n + 1), .render-grid figure:nth-child(9n + 6) { grid-column: span 12; }
  .finance-summary article:nth-child(even), .benefit-grid article:not(:nth-child(3n + 1)), .cycle-list li + li { border-left: 0; padding-left: 0; }
  .finance-total { align-items: start; grid-template-columns: 1fr; }
  .finance-total strong { grid-row: auto; }
  .finance-rate strong { white-space: normal; }
  .finance-example-grid, .finance-plan-head { grid-template-columns: 1fr; }
  .finance-example-grid article:nth-child(2) { border-left: 0; padding-left: 0; }
  .finance-example-grid .finance-example-total { align-items: start; grid-template-columns: 1fr; }
  .finance-example-total strong { grid-row: auto; margin-top: 24px; }
}
.finance-rate .finance-rate-note { color: var(--muted); line-height: 1.55; margin-top: 12px; max-width: 660px; }

/* Presentación V001 y navegación de tipologías */
.nav-typologies { align-items: center; display: flex; gap: 6px; position: relative; }
.nav-typologies-toggle { background: transparent; border: 0; color: var(--light); cursor: pointer; font-size: 18px; line-height: 1; padding: 5px 3px; }
.nav-typologies-toggle[aria-expanded="true"] { color: #fff; }
.nav-typologies-list { background: var(--green-deep); box-shadow: 0 18px 35px rgba(0,0,0,.2); left: -16px; max-height: min(70vh, 600px); min-width: 250px; overflow-y: auto; padding: 10px 16px; position: absolute; top: calc(100% + 15px); z-index: 40; }
.nav-typologies-list > a, .nav-typologies-list > span { align-items: baseline; border-top: 1px solid rgba(255,255,255,.16); display: flex; gap: 18px; justify-content: space-between; padding: 12px 0; width: 100%; }
.nav-typologies-list > :first-child { border-top: 0; }
.nav-typologies-list strong { color: var(--light); font-size: 11px; font-weight: 500; letter-spacing: .08em; }
.nav-typologies-list small { color: rgba(248,247,241,.68); font-size: 9px; letter-spacing: .05em; white-space: nowrap; }
.nav-typology-pending { opacity: .6; }
.nav-typologies-list > a:hover strong, .nav-typologies-list > a:focus-visible strong { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.poster-series-link { border-bottom: 1px solid var(--green); color: var(--green); display: inline-flex; font-size: 10px; gap: 18px; letter-spacing: .1em; margin-top: 16px; padding-bottom: 6px; text-transform: uppercase; }
.typology-series { border-top: 1px solid var(--line); margin-top: 70px; padding-top: 58px; scroll-margin-top: 26px; }
.typology-series-head { align-items: end; display: flex; gap: 48px; justify-content: space-between; margin-bottom: 42px; }
.typology-series-head h3 { font-size: clamp(52px, 7vw, 94px); font-weight: 300; letter-spacing: -.06em; line-height: .95; margin: 18px 0 22px; }
.typology-series-head p { color: var(--muted); font-size: 17px; margin: 0; max-width: 660px; }
.typology-series-meta { border-top: 1px solid var(--line); color: var(--green); display: grid; flex: 0 0 220px; font-size: 10px; gap: 12px; letter-spacing: .1em; padding-top: 16px; text-transform: uppercase; }
.typology-series-nav { align-items: center; border-top: 1px solid var(--line); display: flex; justify-content: space-between; padding: 12px 0 18px; }
.typology-series-nav > span { color: var(--muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.typology-series-nav > div { display: flex; gap: 8px; }
.typology-series-nav button { background: transparent; border: 1px solid var(--green); border-radius: 50%; color: var(--green); cursor: pointer; height: 38px; width: 38px; }
.typology-series-nav button:hover, .typology-series-nav button:focus-visible { background: var(--green); color: var(--paper); }
.typology-series-track { display: grid; gap: 18px; grid-auto-columns: minmax(260px, 30%); grid-auto-flow: column; overflow-x: auto; padding: 0 0 16px; scroll-snap-type: x mandatory; scrollbar-color: var(--green) transparent; }
.typology-series-slide { margin: 0; min-width: 0; scroll-snap-align: start; }
.typology-series-slide button { background: transparent; border: 0; cursor: zoom-in; display: block; padding: 0; width: 100%; }
.typology-series-slide img { aspect-ratio: 4 / 5; display: block; height: auto; width: 100%; }
.typology-series-slide figcaption { border-top: 1px solid var(--line); color: var(--ink); display: flex; font-size: 11px; gap: 14px; padding-top: 11px; }
.typology-series-slide figcaption span { color: var(--accent); font-size: 10px; white-space: nowrap; }
@media (max-width: 900px) { .nav-typologies { border-top: 1px solid rgba(255,255,255,.18); flex-wrap: wrap; justify-content: space-between; width: 100%; } .nav-typologies > a { border-top: 0; width: auto; } .nav-typologies-toggle { padding: 12px 0 12px 20px; } .nav-typologies-list { box-shadow: none; flex-basis: 100%; left: auto; max-height: 45vh; min-width: 0; padding: 0 12px 8px; position: static; width: 100%; } .nav-typologies-list > a { border-top: 1px solid rgba(255,255,255,.16); padding: 12px 0; } .typology-series-track { grid-auto-columns: minmax(260px, 42%); } }
@media (max-width: 600px) { .typology-series-head { align-items: start; flex-direction: column; gap: 24px; } .typology-series-head h3 { font-size: 52px; } .typology-series-meta { flex-basis: auto; width: 100%; } .typology-series-track { grid-auto-columns: minmax(245px, 80%); margin-left: -20px; margin-right: -20px; padding-left: 20px; padding-right: 20px; } }
