/* Цветочный город v4 — cinematic river city direction. */
:root {
    --cg4-night: #07131f;
    --cg4-deep: #0b2035;
    --cg4-electric: #3d78ff;
    --cg4-river: #8dbdff;
    --cg4-acid: #d9ff52;
    --cg4-moss: #285f47;
    --cg4-leaf: #4f8a67;
    --cg4-sage: #dce9de;
    --cg4-water: #72b9ae;
    --cg4-cream: #f2eee6;
    --cg4-paper: #fbfaf6;
    --cg4-ink: #102235;
    --cg4-line-light: rgba(255,255,255,.18);
    --cg4-ease: cubic-bezier(.16,1,.3,1);
}

html { scroll-behavior: smooth; }
body.cg4-page { background: var(--cg4-night); }
body.cg4-page #header {
    border-bottom: 1px solid rgba(13,34,53,.08);
    background: rgba(251,250,246,.88);
    box-shadow: none;
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
}

.cg3-home { padding-top: 82px; background: var(--cg4-paper); }
.cg3-home .wrap { width: min(1510px, calc(100% - 80px)); max-width: 1510px; }
.cg4-hero, .cg4-manifesto, .cg4-masterplan, .cg4-offers, .cg4-quick-actions { box-sizing: border-box; }
.cg4-hero *, .cg4-manifesto *, .cg4-masterplan *, .cg4-offers *, .cg4-quick-actions * { box-sizing: border-box; }

.cg4-scroll-progress { position: fixed; z-index: 10020; top: 0; right: 0; left: 0; height: 3px; pointer-events: none; }
.cg4-scroll-progress i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,var(--cg4-acid),var(--cg4-water),var(--cg4-electric)); box-shadow: 0 0 16px rgba(217,255,82,.45); transform-origin: left center; }
.cg4-quick-actions { position: fixed; z-index: 1200; right: 92px; bottom: 24px; display: flex; padding: 5px; gap: 5px; border: 1px solid rgba(255,255,255,.22); border-radius: 999px; background: rgba(7,24,38,.82); box-shadow: 0 18px 55px rgba(5,17,29,.28); opacity: 0; pointer-events: none; backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); transform: translateY(22px); transition: opacity .35s ease, transform .35s var(--cg4-ease); }
.cg4-quick-actions.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.cg4-quick-actions a, .cg4-quick-actions button { display: inline-flex; min-height: 44px; padding: 0 17px; align-items: center; gap: 9px; border: 0; border-radius: 999px; color: #fff; cursor: pointer; font: inherit; font-size: 10px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.cg4-quick-actions a { background: var(--cg4-electric); }
.cg4-quick-actions a span { font-size: 15px; }
.cg4-quick-actions button { background: transparent; }
.cg4-quick-actions button:hover { background: rgba(255,255,255,.1); }

.cg4-kicker {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    line-height: 1.3;
    text-transform: uppercase;
}

.cg4-reveal {
    opacity: 0;
    transform: translateY(34px);
    transition: opacity .9s var(--cg4-ease), transform .9s var(--cg4-ease);
}
.cg4-reveal.is-visible { opacity: 1; transform: none; }

/* Cinematic hero */
.cg4-hero {
    position: relative;
    min-height: calc(100svh - 82px);
    overflow: hidden;
    background: var(--cg4-night);
    color: #fff;
    isolation: isolate;
}
.cg4-hero__backdrop, .cg4-hero__veil { position: absolute; inset: 0; }
.cg4-hero__backdrop { z-index: -4; overflow: hidden; }
.cg4-hero__backdrop img {
    width: 108%; height: 108%; margin: -4%; object-fit: cover; object-position: 52% center;
    filter: saturate(.82) contrast(1.08);
    transform: scale(1.08);
    animation: cg4HeroIn 2.1s var(--cg4-ease) forwards;
    will-change: transform;
}
@keyframes cg4HeroIn { to { transform: scale(1); } }
.cg4-hero__veil {
    z-index: -3;
    background:
        linear-gradient(90deg, rgba(4,15,26,.94) 0%, rgba(4,17,30,.68) 42%, rgba(4,17,30,.1) 76%),
        linear-gradient(0deg, rgba(3,14,24,.9) 0%, transparent 44%),
        radial-gradient(circle at 70% 24%, rgba(61,120,255,.22), transparent 34%);
}
.cg4-hero__veil::after {
    position: absolute; inset: 0; content: ""; opacity: .18; pointer-events: none;
    background: repeating-linear-gradient(112deg, rgba(255,255,255,.025) 0 1px, transparent 1px 5px);
}
.cg4-orbit { position: absolute; z-index: -2; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; pointer-events: none; }
.cg4-orbit::before { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: var(--cg4-acid); box-shadow: 0 0 24px var(--cg4-acid); content: ""; }
.cg4-orbit--one { top: -30vw; right: -11vw; width: 65vw; height: 65vw; animation: cg4Rotate 28s linear infinite; }
.cg4-orbit--one::before { top: 70%; left: 3%; }
.cg4-orbit--two { right: 8vw; bottom: -31vw; width: 46vw; height: 46vw; animation: cg4Rotate 20s linear infinite reverse; }
.cg4-orbit--two::before { top: 10%; right: 15%; }
@keyframes cg4Rotate { to { transform: rotate(360deg); } }

.cg4-hero__inner { position: relative; display: grid; min-height: calc(100svh - 154px); grid-template-columns: minmax(0,1fr) 280px; align-content: center; padding-top: 64px !important; padding-bottom: 110px !important; }
.cg4-hero__brand { position: absolute; top: 34px; left: 0; display: flex; align-items: center; gap: 15px; color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cg4-hero__brand i { display: block; width: 46px; height: 1px; background: rgba(255,255,255,.38); }
.cg4-hero__copy { align-self: center; max-width: 1040px; padding: 54px 0 0; }
.cg4-hero .cg4-kicker { margin-bottom: 24px; color: var(--cg4-acid); }
.cg4-title { margin: 0; color: #fff !important; font-family: Unbounded, Montserrat, sans-serif; font-size: clamp(55px,7vw,124px); font-weight: 480; letter-spacing: -.075em; line-height: .88; text-shadow: 0 8px 38px rgba(0,0,0,.28); }
.cg4-title__line { display: block; overflow: hidden; padding: .05em .08em .1em 0; }
.cg4-title__line > span { display: block; transform: translateY(118%); animation: cg4Title .95s .18s var(--cg4-ease) forwards; }
.cg4-title__line--accent { margin-left: clamp(24px,8vw,140px); color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.88); }
.cg4-title__line--accent > span { animation-delay: .34s; }
@keyframes cg4Title { to { transform: translateY(0); } }
.cg4-hero__lead { max-width: 550px; margin: 30px 0 0 clamp(24px,8vw,140px); color: rgba(255,255,255,.72); font-size: clamp(15px,1.3vw,19px); line-height: 1.62; transition-delay: .38s; }
.cg4-hero__actions { display: flex; align-items: center; gap: 30px; margin: 34px 0 0 clamp(24px,8vw,140px); transition-delay: .48s; }
.cg4-hero__deal-links { display: flex; max-width: 760px; margin: 17px 0 0 clamp(24px,8vw,140px); gap: 8px; flex-wrap: wrap; transition-delay: .58s; }
.cg4-hero__deal-links a { display: grid; min-height: 51px; padding: 9px 14px; align-content: center; border: 1px solid rgba(255,255,255,.24); border-radius: 3px 17px 3px 3px; background: rgba(5,20,33,.5); color: #fff; text-decoration: none; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); transition: border-color .25s ease, background .25s ease, transform .25s ease; }
.cg4-hero__deal-links a:hover { border-color: var(--cg4-acid); background: rgba(5,20,33,.78); color: #fff; transform: translateY(-3px); }
.cg4-hero__deal-links small { color: rgba(255,255,255,.58); font-size: 8px; font-weight: 750; letter-spacing: .09em; line-height: 1.25; text-transform: uppercase; }
.cg4-hero__deal-links strong { margin-top: 3px; color: var(--cg4-acid); font-size: 10px; line-height: 1.25; }
.cg4-button { display: inline-flex; min-height: 62px; padding: 0 8px 0 26px; align-items: center; gap: 24px; border-radius: 999px; color: var(--cg4-night); font-size: 13px; font-weight: 800; text-decoration: none; transition: transform .25s ease, box-shadow .25s ease; }
.cg4-button b { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 50%; background: var(--cg4-electric); color: #fff; font-size: 18px; font-weight: 500; }
.cg4-button--light { background: #fff; box-shadow: 0 15px 50px rgba(0,0,0,.24); }
.cg4-button--green { background: var(--cg4-moss); color: #fff; box-shadow: 0 15px 45px rgba(40,95,71,.22); }
.cg4-button--green b { background: var(--cg4-acid); color: var(--cg4-night); }
.cg4-button--green:hover { color: #fff; }
.cg4-button:hover { color: var(--cg4-night); box-shadow: 0 20px 65px rgba(0,0,0,.32); transform: translateY(-4px); }
.cg4-button--green:hover { color: #fff; }
.cg4-ghost-button { min-height: 58px; padding: 0 22px; border: 1px solid rgba(16,34,53,.22); border-radius: 999px; background: transparent; color: var(--cg4-ink); cursor: pointer; font: inherit; font-size: 11px; font-weight: 780; transition: border-color .25s ease, background .25s ease, transform .25s ease; }
.cg4-ghost-button:hover { border-color: var(--cg4-moss); background: rgba(40,95,71,.06); transform: translateY(-3px); }
.cg4-ghost-button--light { border-color: rgba(40,95,71,.28); color: var(--cg4-moss); }
.cg4-text-link { display: inline-flex; gap: 10px; align-items: center; color: inherit; font-size: 12px; font-weight: 700; letter-spacing: .03em; text-decoration: none; }
.cg4-text-link span { color: var(--cg4-acid); font-size: 18px; transition: transform .25s ease; }
.cg4-text-link:hover { color: inherit; }
.cg4-text-link:hover span { transform: translate(3px,-3px); }
.cg-icon-arrow { position: relative; display: inline-block; width: 14px; height: 14px; flex: 0 0 14px; color: inherit; font-size: 0 !important; font-style: normal; line-height: 0; vertical-align: -2px; }
.cg-icon-arrow--ne::before { position: absolute; top: 1px; right: 1px; width: 7px; height: 7px; border-top: 1.6px solid currentColor; border-right: 1.6px solid currentColor; content: ""; }
.cg-icon-arrow--ne::after { position: absolute; top: 11px; left: 1px; width: 15px; height: 1.6px; border-radius: 2px; background: currentColor; content: ""; transform: rotate(-45deg); transform-origin: left center; }
.cg-icon-arrow--down::before { position: absolute; bottom: 1px; left: 50%; width: 7px; height: 7px; border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor; content: ""; transform: translateX(-50%) rotate(45deg); }
.cg-icon-arrow--down::after { position: absolute; top: 0; left: calc(50% - .8px); width: 1.6px; height: 12px; border-radius: 2px; background: currentColor; content: ""; }
.cg4-hero__deal-links strong .cg-icon-arrow { margin-left: 4px; }
.cg4-hero__mortgage { position: absolute; right: 0; bottom: 105px; display: grid; width: 320px; min-height: 0; padding: 22px; gap: 18px; overflow: hidden; border: 1px solid rgba(217,255,82,.5); border-radius: 4px 38px 4px 4px; background: linear-gradient(150deg,rgba(10,34,45,.94),rgba(6,23,37,.9)); color: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.34); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); transition: opacity .35s ease, visibility .35s ease, transform .5s var(--cg4-ease), border-color .25s ease; }
.cg4-hero__mortgage::before { position: absolute; top: -105px; right: -90px; width: 230px; height: 230px; border: 1px solid rgba(217,255,82,.14); border-radius: 45% 55% 62% 38%; content: ""; pointer-events: none; animation: cg4NatureDrift 13s ease-in-out infinite alternate; }
.cg4-hero__mortgage:hover { border-color: rgba(217,255,82,.74); color: #fff; }
.cg4-hero__mortgage.is-dismissed { opacity: 0; pointer-events: none; visibility: hidden; transform: translateY(28px) scale(.96); }
.cg4-hero__mortgage-head { position: relative; z-index: 1; display: flex; min-height: 36px; padding-right: 40px; gap: 8px; align-items: center; justify-content: space-between; }
.cg4-hero__mortgage-label { display: inline-flex; align-items: center; color: var(--cg4-acid); font-size: 9px; font-weight: 850; letter-spacing: .12em; line-height: 1.2; text-transform: uppercase; white-space: nowrap; }
.cg4-hero__mortgage-label b { display: inline-block; width: 7px; height: 7px; margin-right: 7px; border-radius: 50%; background: var(--cg4-acid); box-shadow: 0 0 0 7px rgba(217,255,82,.1); animation: cg4Pulse 1.8s ease infinite; }
.cg4-hero__mortgage-date { color: rgba(255,255,255,.62); font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.cg4-hero__mortgage-body { position: relative; z-index: 1; display: grid; gap: 15px; }
.cg4-hero__mortgage-rate { display: flex; align-items: flex-start; color: #fff; font-family: Unbounded,sans-serif; line-height: .78; }
.cg4-hero__mortgage-rate strong { font-family: inherit; font-size: 82px; font-weight: 430; letter-spacing: -.1em; line-height: .78; }
.cg4-hero__mortgage-rate sup { margin: 3px 0 0 7px; color: var(--cg4-acid); font-family: Montserrat,sans-serif; font-size: 28px; font-weight: 800; line-height: 1; }
.cg4-hero__mortgage-copy { display: grid; gap: 7px; }
.cg4-hero__mortgage-copy h2 { margin: 0; color: #fff; font-family: Unbounded,sans-serif; font-size: 15px; font-weight: 510; letter-spacing: -.035em; line-height: 1.28; }
.cg4-hero__mortgage-copy p { margin: 0; color: rgba(255,255,255,.7); font-size: 11px; line-height: 1.52; }
.cg4-hero__mortgage .cg4-hero__mortgage-cta { position: relative; z-index: 1; display: flex; min-height: 50px; margin: 0; padding: 0 16px; justify-content: space-between; align-items: center; border: 0; border-radius: 999px; background: var(--cg4-acid); color: var(--cg4-night); cursor: pointer; font: inherit; font-size: 10px; font-weight: 850; letter-spacing: .03em; transition: background .2s ease, transform .2s ease; }
.cg4-hero__mortgage .cg4-hero__mortgage-cta:hover { background: #fff; transform: translateY(-2px); }
.cg4-hero__mortgage .cg4-hero__mortgage-cta span { font-size: 17px; font-weight: 500; }
.cg4-hero__mortgage .cg4-hero__mortgage-close { position: absolute; z-index: 4; top: 16px; right: 16px; display: grid; width: 34px; height: 34px; min-height: 0; margin: 0; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; cursor: pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease; }
.cg4-hero__mortgage .cg4-hero__mortgage-close::before, .cg4-hero__mortgage .cg4-hero__mortgage-close::after { position: absolute; width: 13px; height: 1.5px; border-radius: 2px; background: currentColor; content: ""; }
.cg4-hero__mortgage .cg4-hero__mortgage-close::before { transform: rotate(45deg); }
.cg4-hero__mortgage .cg4-hero__mortgage-close::after { transform: rotate(-45deg); }
.cg4-hero__mortgage .cg4-hero__mortgage-close:hover { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.15); transform: rotate(7deg); }

.cg4-marquee { position: absolute; right: 0; bottom: 0; left: 0; height: 72px; overflow: hidden; border-top: 1px solid rgba(255,255,255,.18); background: rgba(4,15,25,.58); backdrop-filter: blur(12px); }
.cg4-marquee__track { display: flex; width: max-content; height: 100%; align-items: center; gap: 34px; animation: cg4Marquee 30s linear infinite; }
.cg4-marquee__track span { color: rgba(255,255,255,.86); font-size: 13px; font-weight: 650; letter-spacing: .04em; white-space: nowrap; }
.cg4-marquee__track i { color: var(--cg4-acid); font-size: 12px; font-style: normal; }
@keyframes cg4Marquee { to { transform: translateX(-50%); } }

/* Brand manifesto */
.cg4-manifesto { position: relative; overflow: hidden; padding: 112px 0 118px; background: linear-gradient(145deg,var(--cg4-cream) 0%,#f7f6ef 52%,var(--cg4-sage) 150%); color: var(--cg4-ink); }
.cg4-manifesto::before { position: absolute; right: -16vw; bottom: -32vw; width: 68vw; height: 68vw; border: 1px solid rgba(40,95,71,.18); border-radius: 44% 56% 62% 38% / 47% 38% 62% 53%; content: ""; animation: cg4NatureDrift 24s ease-in-out infinite alternate; }
.cg4-manifesto::after { position: absolute; right: -7vw; bottom: -24vw; width: 49vw; height: 49vw; border: 1px solid rgba(114,185,174,.22); border-radius: 61% 39% 44% 56% / 42% 58% 42% 58%; content: ""; animation: cg4NatureDrift 18s ease-in-out infinite alternate-reverse; }
@keyframes cg4NatureDrift { to { border-radius: 38% 62% 51% 49% / 58% 43% 57% 42%; transform: rotate(9deg) scale(1.04); } }
.cg4-manifesto__grid { position: relative; z-index: 1; }
.cg4-manifesto__grid { display: grid; grid-template-columns: minmax(150px,.25fr) minmax(0,1.15fr) minmax(300px,.48fr); gap: 34px 56px; align-items: start; }
.cg4-manifesto .cg4-kicker { padding-top: 15px; color: #46617a; }
.cg4-manifesto__title { grid-column: 1 / 3; max-width: 900px; margin: 0; font-family: Unbounded, sans-serif; font-size: clamp(43px,5vw,82px); font-weight: 460; letter-spacing: -.065em; line-height: 1.02; text-wrap: balance; }
.cg4-manifesto__title em { color: var(--cg4-moss); font-style: normal; }
.cg4-section-head h2 em { color: var(--cg4-electric); font-style: normal; }
.cg4-manifesto__copy { grid-column: 3; max-width: 420px; margin: 14px 0 0; color: #536477; font-size: 16px; line-height: 1.78; }
.cg4-manifesto__media { position: relative; grid-column: 1 / -1; height: clamp(430px,42vw,640px); margin: 28px 0 0; overflow: hidden; border-radius: 3px 48px 3px 3px; background: #14283a; }
.cg4-manifesto__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--cg4-ease); }
.cg4-manifesto__media.is-visible img { transform: scale(1.025); }
.cg4-manifesto__media:hover img { transform: scale(1.055); }
.cg4-manifesto__media::after { position: absolute; inset: 50% 0 0; background: linear-gradient(0deg,rgba(5,17,29,.72),transparent); content: ""; }
.cg4-manifesto__media figcaption { position: absolute; z-index: 2; right: 26px; bottom: 23px; left: 26px; display: flex; justify-content: space-between; gap: 20px; align-items: end; color: #fff; }
.cg4-manifesto__media figcaption span { color: var(--cg4-acid); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cg4-manifesto__media figcaption b { font-family: Unbounded, sans-serif; font-size: 15px; font-weight: 450; }
.cg4-manifesto__stamp { position: absolute; z-index: 2; bottom: 64px; left: -9px; color: transparent; font-family: Unbounded,sans-serif; font-size: clamp(76px,12vw,190px); font-weight: 650; letter-spacing: -.09em; line-height: .75; -webkit-text-stroke: 1px rgba(255,255,255,.46); pointer-events: none; transform: rotate(-2deg); }
.cg4-manifesto__image-facts { position: absolute; z-index: 3; top: 24px; right: 24px; display: grid; width: min(540px,calc(100% - 48px)); grid-template-columns: repeat(3,1fr); border: 1px solid rgba(255,255,255,.28); background: rgba(6,24,20,.48); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.cg4-manifesto__image-facts span { display: flex; min-height: 86px; padding: 14px 16px; justify-content: center; flex-direction: column; border-right: 1px solid rgba(255,255,255,.22); color: #fff; }
.cg4-manifesto__image-facts span:last-child { border-right: 0; }
.cg4-manifesto__image-facts b { font-family: Unbounded,sans-serif; font-size: 20px; font-weight: 480; letter-spacing: -.05em; }
.cg4-manifesto__image-facts small { margin-top: 5px; color: rgba(255,255,255,.65); font-size: 9px; line-height: 1.3; }
.cg4-manifesto__facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin-top: 34px; border-top: 1px solid rgba(16,34,53,.17); }
.cg4-fact { display: grid; min-height: 238px; padding: 26px 32px 0 0; grid-template-rows: auto 1fr auto; border-right: 1px solid rgba(16,34,53,.17); }
.cg4-fact + .cg4-fact { padding-left: 32px; }
.cg4-fact:last-child { border-right: 0; }
.cg4-fact span { color: #8794a0; font-size: 10px; font-weight: 700; }
.cg4-fact strong { align-self: center; color: var(--cg4-moss); font-family: Unbounded, sans-serif; font-size: clamp(28px,2.8vw,46px); font-weight: 470; letter-spacing: -.06em; }
.cg4-fact p { max-width: 310px; margin: 0; color: #607080; font-size: 13px; line-height: 1.65; }
.cg4-section-cta { grid-column: 1 / -1; display: grid; min-height: 112px; margin-top: 48px; padding: 20px 22px 20px 28px; grid-template-columns: 1fr auto auto; gap: 18px; align-items: center; border: 1px solid rgba(40,95,71,.16); border-radius: 3px 34px 3px 3px; background: rgba(255,255,255,.66); box-shadow: 0 24px 70px rgba(40,95,71,.08); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
.cg4-section-cta > div { display: grid; gap: 7px; }
.cg4-section-cta small { color: var(--cg4-leaf); font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.cg4-section-cta strong { color: var(--cg4-ink); font-family: Unbounded,sans-serif; font-size: clamp(17px,2vw,25px); font-weight: 450; letter-spacing: -.035em; }

/* River signature: the project's own natural rhythm. */
.cg4-river { position: relative; min-height: 850px; overflow: hidden; padding: 125px 0 155px; background: #f8faf6; color: var(--cg4-ink); isolation: isolate; }
.cg4-river::before { position: absolute; z-index: -3; top: 17%; right: -8%; width: 76%; height: 74%; border-radius: 58% 0 0 42% / 47% 0 0 53%; background: linear-gradient(135deg,rgba(114,185,174,.28),rgba(141,189,255,.2)); content: ""; transform: rotate(-4deg); }
.cg4-river__grid { display: grid; grid-template-columns: minmax(330px,.72fr) minmax(0,1.28fr); gap: clamp(45px,7vw,115px); align-items: center; }
.cg4-river__copy { position: relative; z-index: 3; }
.cg4-river .cg4-kicker { margin-bottom: 20px; color: var(--cg4-leaf); }
.cg4-river h2 { margin: 0; color: var(--cg4-ink) !important; font-family: Unbounded,sans-serif; font-size: clamp(45px,5.3vw,86px); font-weight: 450; letter-spacing: -.07em; line-height: 1.01; }
.cg4-river h2 em { color: var(--cg4-moss); font-style: normal; }
.cg4-river__copy > p:not(.cg4-kicker) { max-width: 510px; margin: 32px 0 0; color: #5e7168; font-size: 16px; line-height: 1.78; }
.cg4-river__marks { display: flex; margin-top: 38px; align-items: center; gap: 13px; color: var(--cg4-moss); font-size: 9px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.cg4-river__marks i { width: 24px; height: 1px; background: rgba(40,95,71,.34); }
.cg4-river__actions { display: flex; margin-top: 34px; gap: 12px; align-items: center; flex-wrap: wrap; }
.cg4-river__media { position: relative; z-index: 2; height: 620px; margin: 0; overflow: hidden; border-radius: 48% 3px 48% 3px / 19% 3px 19% 3px; background: var(--cg4-sage); box-shadow: 0 40px 110px rgba(40,95,71,.16); transition: border-radius 1.2s var(--cg4-ease); }
.cg4-river__media:hover { border-radius: 42% 3px 42% 3px / 25% 3px 25% 3px; }
.cg4-river__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.8s var(--cg4-ease); }
.cg4-river__media:hover img { transform: scale(1.045); }
.cg4-river__media::after { position: absolute; inset: 50% 0 0; background: linear-gradient(0deg,rgba(14,52,39,.72),transparent); content: ""; }
.cg4-river__media figcaption { position: absolute; z-index: 2; right: 35px; bottom: 32px; left: 35px; display: flex; justify-content: space-between; gap: 20px; align-items: end; color: #fff; }
.cg4-river__media figcaption span { color: #dff7e5; font-size: 9px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.cg4-river__media figcaption b { font-family: Unbounded,sans-serif; font-size: 15px; font-weight: 450; }
.cg4-river__current { position: absolute; z-index: -2; left: -13%; width: 128%; border: 1px solid rgba(114,185,174,.34); border-radius: 50%; pointer-events: none; }
.cg4-river__current--one { top: 38%; height: 240px; transform: rotate(-7deg); animation: cg4RiverFlow 15s ease-in-out infinite alternate; }
.cg4-river__current--two { top: 49%; height: 330px; border-color: rgba(40,95,71,.18); transform: rotate(6deg); animation: cg4RiverFlow 21s ease-in-out infinite alternate-reverse; }
@keyframes cg4RiverFlow { to { left: -8%; width: 116%; border-radius: 42% 58% 49% 51%; transform: rotate(2deg) translateY(22px); } }
.cg4-river__word { position: absolute; z-index: -1; bottom: -6vw; left: -1vw; color: transparent; font-family: Unbounded,sans-serif; font-size: 23vw; font-weight: 650; letter-spacing: -.1em; line-height: .75; -webkit-text-stroke: 1px rgba(40,95,71,.09); white-space: nowrap; }

/* Interactive masterplan */
.cg4-masterplan { padding: 130px 0 150px; background: var(--cg4-night); color: #fff; }
.cg4-section-head { display: flex; justify-content: space-between; gap: 50px; align-items: end; margin-bottom: 48px; }
.cg4-section-head .cg4-kicker { margin-bottom: 18px; color: var(--cg4-acid); }
.cg4-section-head h2 { margin: 0; font-family: Unbounded, sans-serif; font-size: clamp(38px,4.5vw,72px); font-weight: 450; letter-spacing: -.06em; line-height: 1.03; }
.cg4-masterplan .cg4-section-head h2, .cg4-offers .cg4-section-head h2 { color: #fff !important; text-shadow: 0 5px 30px rgba(0,0,0,.16); }
.cg4-section-head__copy { max-width: 390px; margin: 0 0 6px; color: rgba(255,255,255,.58); font-size: 14px; line-height: 1.7; }
.cg4-masterplan__legend { display: grid; grid-template-columns: 1fr 1fr 1.1fr; margin-bottom: 18px; border: 1px solid var(--cg4-line-light); background: rgba(255,255,255,.035); }
.cg4-masterplan__legend > div { display: flex; min-height: 74px; padding: 16px 20px; align-items: center; gap: 13px; border-right: 1px solid var(--cg4-line-light); }
.cg4-masterplan__legend > div:last-child { border-right: 0; }
.cg4-masterplan__legend i { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: #72808c; box-shadow: 0 0 0 6px rgba(114,128,140,.12); }
.cg4-masterplan__legend i.is-done { background: #6d9926; box-shadow: 0 0 0 6px rgba(109,153,38,.12); }
.cg4-masterplan__legend i.is-sale { background: var(--cg4-electric); box-shadow: 0 0 0 6px rgba(61,120,255,.15); }
.cg4-masterplan__legend span { color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.55; }
.cg4-masterplan__legend strong { display: block; color: #fff; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.cg4-map { display: grid; min-height: min(760px,70vw); grid-template-columns: minmax(0,1fr) 330px; overflow: hidden; border: 1px solid var(--cg4-line-light); border-radius: 4px 46px 4px 4px; background: #0d2236; }
.cg4-map__stage { position: relative; min-width: 0; overflow: hidden; background: #193246; }
.cg4-map__base { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.96) contrast(1.03); transition: transform 2s var(--cg4-ease); }
.cg4-map:hover .cg4-map__base { transform: scale(1.018); }
.cg4-map__shade { position: absolute; z-index: 3; inset: 0; background: linear-gradient(90deg,transparent 48%,rgba(5,16,27,.4)), linear-gradient(0deg,rgba(4,15,25,.5),transparent 36%); pointer-events: none; }
.cg4-pin { position: absolute; z-index: 5; left: var(--x); top: var(--y); display: grid; width: 34px; height: 34px; padding: 0; place-items: center; border: 1px solid rgba(255,255,255,.75); border-radius: 50%; background: #72808c; color: #fff; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,.28); opacity: 0; transform: translate(-50%,-35%); transition: width .25s ease, height .25s ease, background .25s ease, box-shadow .25s ease, opacity .5s ease, transform .55s var(--cg4-ease); }
.cg4-map.is-visible .cg4-pin { opacity: 1; transform: translate(-50%,-50%); }
.cg4-map.is-visible .cg4-pin:nth-of-type(3n+2) { transition-delay: .08s; }
.cg4-map.is-visible .cg4-pin:nth-of-type(3n) { transition-delay: .16s; }
.cg4-pin::before { position: absolute; inset: -7px; border: 1px solid rgba(255,255,255,.35); border-radius: inherit; content: ""; opacity: 0; transform: scale(.7); transition: opacity .25s ease, transform .25s ease; }
.cg4-pin span { font-size: 10px; font-weight: 800; }
.cg4-pin > b { position: absolute; left: 50%; top: calc(100% + 10px); display: none; padding: 6px 9px; border-radius: 99px; background: var(--cg4-acid); color: var(--cg4-night); font-size: 8px; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; transform: translateX(-50%); }
.cg4-pin.is-sale { width: 42px; height: 42px; background: var(--cg4-electric); }
.cg4-pin.is-featured { width: 54px; height: 54px; box-shadow: 0 0 0 9px rgba(61,120,255,.18), 0 16px 40px rgba(0,0,0,.38); }
.cg4-pin.is-featured > b { display: block; }
.cg4-pin.is-done { background: #6d9926; }
.cg4-pin:hover, .cg4-pin:focus-visible, .cg4-pin.is-active { z-index: 7; width: 52px; height: 52px; outline: 0; background: var(--cg4-acid); color: var(--cg4-night); box-shadow: 0 0 0 8px rgba(217,255,82,.12), 0 14px 35px rgba(0,0,0,.36); }
.cg4-pin:hover::before, .cg4-pin:focus-visible::before, .cg4-pin.is-active::before { opacity: 1; transform: scale(1); }
.cg4-map__hint { position: absolute; z-index: 5; bottom: 24px; left: 24px; display: flex; align-items: center; gap: 10px; color: rgba(255,255,255,.72); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.cg4-map__hint span { width: 7px; height: 7px; border-radius: 50%; background: var(--cg4-acid); box-shadow: 0 0 0 7px rgba(217,255,82,.1); animation: cg4Pulse 1.8s ease infinite; }
@keyframes cg4Pulse { 50% { box-shadow: 0 0 0 12px rgba(217,255,82,0); } }
.cg4-map__panel { position: relative; z-index: 8; display: flex; padding: 34px 30px; flex-direction: column; background: #0b1e31; }
.cg4-map__panel-top { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding-bottom: 24px; border-bottom: 1px solid var(--cg4-line-light); }
.cg4-map__panel-top span { padding: 7px 10px; border-radius: 99px; background: var(--cg4-acid); color: var(--cg4-night); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.cg4-map[data-state="done"] .cg4-map__panel-top span { background: #6d9926; color: #fff; }
.cg4-map[data-state="future"] .cg4-map__panel-top span { background: #72808c; color: #fff; }
.cg4-map__panel-top i { color: rgba(255,255,255,.5); font-size: 9px; font-style: normal; text-align: right; }
.cg4-map__number { display: flex; margin-top: auto; align-items: end; justify-content: space-between; }
.cg4-map__number small { margin-bottom: 17px; color: rgba(255,255,255,.4); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; }
.cg4-map__number strong { font-family: Unbounded, sans-serif; font-size: 112px; font-weight: 390; letter-spacing: -.1em; line-height: .8; }
.cg4-map__panel > p { min-height: 75px; margin: 34px 0 25px; color: rgba(255,255,255,.62); font-size: 13px; line-height: 1.65; }
.cg4-map__panel > a { display: flex; min-height: 54px; padding: 0 17px; justify-content: space-between; align-items: center; border: 1px solid var(--cg4-line-light); color: #fff; font-size: 11px; font-weight: 750; text-decoration: none; transition: background .2s ease, color .2s ease; }
.cg4-map__panel > a:hover { background: var(--cg4-acid); color: var(--cg4-night); }
.cg4-map__panel > a.is-disabled { pointer-events: none; opacity: .35; }

/* Promotions */
.cg4-offers { position: relative; overflow: hidden; padding: 135px 0 155px; background: linear-gradient(125deg,#2f6ff4 0%,#367be8 50%,#277d69 145%); color: #fff; }
.cg4-offers--early { padding-top: 104px; }
.cg4-offers::before { position: absolute; top: -260px; right: -180px; width: 620px; height: 620px; border: 1px solid rgba(217,255,82,.2); border-radius: 43% 57% 62% 38%; content: ""; animation: cg4NatureDrift 20s ease-in-out infinite alternate; }
.cg4-offers .cg4-section-head .cg4-kicker { color: var(--cg4-acid); }
.cg4-offers .cg4-section-head h2 em { color: var(--cg4-acid); }
.cg4-offers > .wrap > .cg4-section-head > .cg4-text-link { margin-bottom: 7px; color: #fff; }
.cg4-offers__grid { display: grid; grid-template-columns: 1.2fr .85fr .85fr; gap: 16px; }
.cg4-offer { position: relative; display: grid; min-height: 480px; overflow: hidden; padding: 28px; grid-template-rows: auto 1fr auto auto; border-radius: 3px 38px 3px 3px; color: #fff; text-decoration: none; isolation: isolate; transition: transform .5s var(--cg4-ease), box-shadow .5s var(--cg4-ease); }
.cg4-offer:hover { color: #fff; box-shadow: 0 26px 65px rgba(6,27,63,.25); transform: translateY(-9px); }
.cg4-offer__tag { justify-self: start; padding: 8px 11px; border: 1px solid rgba(255,255,255,.26); border-radius: 99px; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.cg4-offer__rate { align-self: center; font-family: Unbounded, sans-serif; font-size: clamp(90px,10vw,160px); font-weight: 380; letter-spacing: -.12em; line-height: .8; }
.cg4-offer__rate sup { color: var(--cg4-acid); font-size: .27em; }
.cg4-offer h3 { max-width: 520px; margin: 0 0 12px; color: inherit; font-family: Unbounded, sans-serif; font-size: clamp(24px,2.4vw,38px); font-weight: 450; letter-spacing: -.055em; line-height: 1.08; text-wrap: balance; }
.cg4-offer p { max-width: 420px; min-height: 44px; margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.6; }
.cg4-offer b { margin-top: 24px; font-size: 10px; letter-spacing: .06em; }
.cg4-offer--hero { background: var(--cg4-night); }
.cg4-offer--hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(5,17,29,.98) 0%,rgba(5,17,29,.55) 52%,rgba(5,17,29,.12)); content: ""; }
.cg4-offer--hero > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cg4-ease); }
.cg4-offer--hero:hover > img { transform: scale(1.055); }
.cg4-offer__twelve { align-self: center; color: transparent; font-family: Unbounded, sans-serif; font-size: clamp(100px,12vw,180px); font-weight: 420; letter-spacing: -.1em; line-height: .75; -webkit-text-stroke: 1.5px rgba(255,255,255,.82); }
.cg4-offer--image { background: #14283a; }
.cg4-offer--image::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(6,20,32,.96),rgba(6,20,32,.08) 75%); content: ""; }
.cg4-offer--image img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cg4-ease); }
.cg4-offer--image:hover img { transform: scale(1.06); }
.cg4-offer--image > div, .cg4-offer--paper > div { align-self: end; }
.cg4-offer--paper { background: var(--cg4-cream); color: var(--cg4-ink); }
.cg4-offer--paper:hover { color: var(--cg4-ink); }
.cg4-offer--paper p { color: #627284; }
.cg4-offer__index { color: #71808e; font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.cg4-offer--paper .cg4-offer__index { display: inline-flex; justify-self: start; padding: 9px 12px; border-radius: 999px; background: #eef7d4; color: #335f32; animation: cg4Fomo 2.3s ease-in-out infinite; }
@keyframes cg4Fomo { 50% { box-shadow: 0 0 0 8px rgba(217,255,82,.18); transform: translateY(-2px); } }

/* Offers rebuilt as one aligned visual system. */
.cg4-offers__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.cg4-offer { min-height: 590px; padding: 28px; grid-template-rows: auto 1fr auto auto; }
.cg4-offer::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(4,17,28,.96) 0%,rgba(4,17,28,.54) 48%,rgba(4,17,28,.14)); content: ""; }
.cg4-offer > img { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.35s var(--cg4-ease), filter .8s ease; }
.cg4-offer:hover > img { filter: saturate(1.08); transform: scale(1.06); }
.cg4-offer__tag { min-height: 32px; display: inline-flex; align-items: center; }
.cg4-offer__tag--urgent { border-color: rgba(217,255,82,.55); background: rgba(217,255,82,.13); color: var(--cg4-acid); }
.cg4-offer__number { align-self: center; color: transparent; font-family: Unbounded,sans-serif; font-size: clamp(82px,8vw,132px); font-weight: 420; letter-spacing: -.11em; line-height: .78; -webkit-text-stroke: 1.35px rgba(255,255,255,.86); }
.cg4-offer__number sup { color: var(--cg4-acid); font-size: .28em; -webkit-text-stroke: 0; }
.cg4-offer__copy { min-height: 160px; }
.cg4-offer h3 { font-size: clamp(23px,2vw,34px); }
.cg4-offer b { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255,255,255,.2); padding-top: 18px; }
.cg4-offer b i { color: var(--cg4-acid); font-size: 18px; font-style: normal; transition: transform .25s ease; }
.cg4-offer:hover b i { transform: translate(4px,-4px); }
.cg4-offer--family { background: #15392f; }
.cg4-offer--family::after { background: linear-gradient(0deg,rgba(7,29,24,.98) 0%,rgba(7,29,24,.58) 54%,rgba(7,29,24,.2)); }

/* Conversion modal for the large-apartment + parking-space offer. */
body.cg4-modal-open { overflow: hidden; }
.cg4-offer-modal { position: fixed; z-index: 6000; inset: 0; display: grid; padding: 24px; place-items: center; opacity: 0; pointer-events: none; visibility: hidden; transition: opacity .28s ease, visibility .28s ease; }
.cg4-offer-modal.is-open { opacity: 1; pointer-events: auto; visibility: visible; }
.cg4-offer-modal__backdrop { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: rgba(3,14,24,.78); cursor: pointer; backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); }
.cg4-offer-modal__panel { position: relative; display: grid; width: min(1160px,100%); max-height: calc(100svh - 48px); overflow: auto; grid-template-columns: minmax(360px,.88fr) minmax(430px,1.12fr); border: 1px solid rgba(255,255,255,.18); border-radius: 4px 48px 4px 4px; background: var(--cg4-cream); color: var(--cg4-ink); box-shadow: 0 45px 140px rgba(0,0,0,.42); transform: translateY(30px) scale(.975); transition: transform .45s var(--cg4-ease); }
.cg4-offer-modal.is-open .cg4-offer-modal__panel { transform: none; }
.cg4-offer-modal__close { position: absolute; z-index: 3; top: 18px; right: 18px; display: grid; width: 44px; height: 44px; padding: 0; place-items: center; border: 1px solid rgba(16,34,53,.14); border-radius: 50%; background: rgba(255,255,255,.82); color: var(--cg4-ink); cursor: pointer; font: 300 27px/1 Arial,sans-serif; backdrop-filter: blur(10px); }
.cg4-offer-modal__visual { position: relative; display: grid; min-height: 640px; padding: 30px; align-content: space-between; overflow: hidden; background: linear-gradient(145deg,#2f6ff4,#316ea5 56%,#2a745f 140%); color: #fff; }
.cg4-offer-modal__visual::before { position: absolute; top: -160px; left: -150px; width: 430px; height: 430px; border: 1px solid rgba(217,255,82,.28); border-radius: 46% 54% 39% 61%; content: ""; animation: cg4NatureDrift 16s ease-in-out infinite alternate; }
.cg4-offer-modal__visual > span { position: relative; z-index: 1; color: var(--cg4-acid); font-size: 9px; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.cg4-offer-modal__visual > img { position: relative; z-index: 1; width: min(390px,92%); margin: 10px auto; padding: 20px; border-radius: 3px 32px 3px 3px; background: #fff; box-shadow: 0 24px 70px rgba(5,22,45,.24); }
.cg4-offer-modal__visual > div { position: relative; z-index: 1; display: grid; gap: 4px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.28); }
.cg4-offer-modal__visual small { color: rgba(255,255,255,.65); font-size: 9px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cg4-offer-modal__visual strong { font-family: Unbounded,sans-serif; font-size: 19px; font-weight: 450; letter-spacing: -.035em; }
.cg4-offer-modal__content { display: flex; padding: clamp(42px,5vw,76px); justify-content: center; flex-direction: column; }
.cg4-offer-modal__content .cg4-kicker { margin: 0 0 20px; color: var(--cg4-leaf); }
.cg4-offer-modal__content h2 { margin: 0; color: var(--cg4-ink); font-family: Unbounded,sans-serif; font-size: clamp(38px,4.3vw,68px); font-weight: 450; letter-spacing: -.07em; line-height: 1.02; }
.cg4-offer-modal__content h2 em { color: var(--cg4-moss); font-style: normal; }
.cg4-offer-modal__facts { display: grid; margin: 32px 0 24px; grid-template-columns: .75fr .55fr 1.35fr; border-top: 1px solid rgba(16,34,53,.14); border-bottom: 1px solid rgba(16,34,53,.14); }
.cg4-offer-modal__facts span { display: grid; min-height: 82px; padding: 15px 13px; align-content: center; border-right: 1px solid rgba(16,34,53,.14); }
.cg4-offer-modal__facts span:last-child { border-right: 0; }
.cg4-offer-modal__facts small { color: #748292; font-size: 8px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cg4-offer-modal__facts b { margin-top: 4px; font-family: Unbounded,sans-serif; font-size: clamp(13px,1.3vw,18px); font-weight: 480; letter-spacing: -.04em; white-space: nowrap; }
.cg4-offer-modal__scarcity { display: grid; margin-bottom: 24px; padding: 17px; grid-template-columns: auto 1fr; gap: 15px; align-items: start; border: 1px solid rgba(40,95,71,.19); border-radius: 3px 22px 3px 3px; background: #edf4dc; }
.cg4-offer-modal__scarcity > i { width: 10px; height: 10px; margin-top: 5px; border-radius: 50%; background: var(--cg4-leaf); box-shadow: 0 0 0 7px rgba(93,139,31,.1); animation: cg4Pulse 1.8s ease infinite; }
.cg4-offer-modal__scarcity strong { display: block; color: var(--cg4-moss); font-size: 12px; }
.cg4-offer-modal__scarcity p { margin: 5px 0 0; color: #657582; font-size: 11px; line-height: 1.5; }
.cg4-offer-modal__cta { display: flex; min-height: 62px; padding: 0 18px 0 23px; justify-content: space-between; align-items: center; border: 0; border-radius: 999px; background: var(--cg4-electric); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 850; box-shadow: 0 16px 44px rgba(47,111,244,.24); transition: transform .25s ease, box-shadow .25s ease; }
.cg4-offer-modal__cta:hover { box-shadow: 0 20px 58px rgba(47,111,244,.34); transform: translateY(-3px); }
.cg4-offer-modal__cta span { font-size: 20px; }

/* The second act: a continuous buyer journey instead of legacy white blocks. */
.cg5-scenarios, .cg5-picker, .cg5-path { position: relative; box-sizing: border-box; overflow: hidden; }
.cg5-scenarios *, .cg5-picker *, .cg5-path * { box-sizing: border-box; }
.cg5-scenarios { padding: 138px 0 122px; background: linear-gradient(155deg,#f5f6ef 0%,#edf3e9 58%,#dfeee7 130%); color: var(--cg4-ink); }
.cg5-scenarios::before { position: absolute; top: -29vw; left: -20vw; width: 62vw; height: 62vw; border: 1px solid rgba(40,95,71,.13); border-radius: 47% 53% 42% 58%; content: ""; animation: cg4NatureDrift 25s ease-in-out infinite alternate; }
.cg5-heading { position: relative; z-index: 2; display: grid; margin-bottom: 62px; grid-template-columns: minmax(0,1.45fr) minmax(280px,.55fr); gap: 70px; align-items: end; }
.cg5-heading .cg4-kicker { margin-bottom: 20px; color: var(--cg4-leaf); }
.cg5-heading h2, .cg5-picker__head h2 { margin: 0; color: var(--cg4-ink) !important; font-family: Unbounded,sans-serif; font-size: clamp(44px,5.2vw,84px); font-weight: 450; letter-spacing: -.07em; line-height: 1.01; }
.cg5-heading h2 em, .cg5-picker__head h2 em { color: var(--cg4-moss); font-style: normal; }
.cg5-heading__copy { margin: 0 0 8px; color: #5e7069; font-size: 15px; line-height: 1.78; }
.cg5-scenarios__grid { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.cg5-scene { --mx:0px; --my:0px; position: relative; min-height: 620px; overflow: hidden; padding: 28px; border-radius: 3px 42px 3px 3px; background: #173229; color: #fff; isolation: isolate; }
.cg5-scene:nth-child(2) { border-radius: 42px 3px 3px 3px; }
.cg5-scene:nth-child(3) { border-radius: 3px 3px 42px 3px; }
.cg5-scene::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(0deg,rgba(4,21,18,.94) 0%,rgba(4,21,18,.28) 65%,rgba(4,21,18,.1)); content: ""; }
.cg5-scene img { position: absolute; z-index: -2; inset: -18px; width: calc(100% + 36px); height: calc(100% + 36px); object-fit: cover; transform: translate(var(--mx),var(--my)) scale(1.035); transition: transform .9s var(--cg4-ease), filter .7s ease; }
.cg5-scene:hover img { filter: saturate(1.08); transform: translate(var(--mx),var(--my)) scale(1.075); }
.cg5-scene__time { position: absolute; top: 27px; right: 27px; padding: 8px 11px; border: 1px solid rgba(255,255,255,.32); border-radius: 99px; color: rgba(255,255,255,.78); font-family: Unbounded,sans-serif; font-size: 9px; letter-spacing: .08em; }
.cg5-scene > div { position: absolute; right: 28px; bottom: 29px; left: 28px; }
.cg5-scene small { color: var(--cg4-acid); font-size: 9px; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.cg5-scene h3 { max-width: 430px; margin: 12px 0 17px; color: #fff; font-family: Unbounded,sans-serif; font-size: clamp(24px,2.45vw,39px); font-weight: 440; letter-spacing: -.055em; line-height: 1.08; }
.cg5-scene p { max-width: 390px; margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.62; }
.cg5-scenarios__cta { position: relative; z-index: 2; display: grid; min-height: 104px; margin-top: 14px; padding: 19px 20px 19px 28px; grid-template-columns: 1fr auto; gap: 26px; align-items: center; border: 1px solid rgba(40,95,71,.16); border-radius: 3px 30px 3px 3px; background: rgba(255,255,255,.72); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.cg5-scenarios__cta p { max-width: 710px; margin: 0; color: #65746e; font-size: 13px; line-height: 1.65; }
.cg5-scenarios__cta p span { display: block; margin-bottom: 3px; color: var(--cg4-ink); font-family: Unbounded,sans-serif; font-size: 17px; font-weight: 440; letter-spacing: -.03em; }
.cg5-scenarios__cta button, .cg5-path__action button { display: flex; min-height: 58px; padding: 0 9px 0 22px; gap: 25px; align-items: center; border: 0; border-radius: 999px; background: var(--cg4-moss); color: #fff; cursor: pointer; font: inherit; font-size: 11px; font-weight: 800; }
.cg5-scenarios__cta button b, .cg5-path__action button b { display: grid; width: 43px; height: 43px; place-items: center; border-radius: 50%; background: var(--cg4-acid); color: var(--cg4-night); font-size: 17px; }

.cg5-picker { padding: 132px 0 145px; background: #081e2f; color: #fff; }
.cg5-picker::before { position: absolute; right: -16vw; bottom: -23vw; width: 65vw; height: 65vw; border: 1px solid rgba(141,189,255,.14); border-radius: 50%; content: ""; }
.cg5-picker__head { position: relative; z-index: 2; margin-bottom: 55px; }
.cg5-picker__head .cg4-kicker { margin-bottom: 20px; color: var(--cg4-acid); }
.cg5-picker__head h2 { color: #fff !important; }
.cg5-picker__head h2 em { color: #8fbdff; }
.cg5-picker__panel { position: relative; z-index: 2; display: grid; padding: 14px; grid-template-columns: minmax(250px,.36fr) minmax(0,1fr); gap: 14px; border: 1px solid rgba(255,255,255,.15); border-radius: 3px 44px 3px 3px; background: rgba(255,255,255,.055); box-shadow: 0 35px 110px rgba(0,0,0,.25); }
.cg5-picker__panel > aside { display: flex; min-height: 470px; padding: 30px; flex-direction: column; border-radius: 2px 31px 2px 2px; background: linear-gradient(155deg,var(--cg4-moss),#1d493d); }
.cg5-picker__panel > aside > span { color: var(--cg4-acid); font-size: 10px; font-weight: 800; }
.cg5-picker__panel > aside h3 { margin: auto 0 18px; color: #fff; font-family: Unbounded,sans-serif; font-size: clamp(27px,3vw,46px); font-weight: 440; letter-spacing: -.055em; line-height: 1.05; }
.cg5-picker__panel > aside p { margin: 0; color: rgba(255,255,255,.7); font-size: 13px; line-height: 1.65; }
.cg5-picker__panel > aside a { display: flex; margin-top: 35px; padding-top: 17px; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.25); color: #fff; font-size: 10px; font-weight: 800; text-decoration: none; }
.cg5-picker__panel > aside a b { color: var(--cg4-acid); font-size: 17px; }
.cg5-picker__filter { min-width: 0; padding: 28px; border-radius: 2px 31px 2px 2px; background: #fff; color: var(--cg4-ink); }
.cg5-picker__filter .filter-mini, .cg5-picker__filter form { margin: 0; }

.cg5-path { padding: 135px 0 145px; background: linear-gradient(145deg,#2f6ff4 0%,#2d79cf 56%,#297c67 140%); color: #fff; }
.cg5-path::before { position: absolute; top: -280px; right: -150px; width: 650px; height: 650px; border: 1px solid rgba(217,255,82,.2); border-radius: 44% 56% 61% 39%; content: ""; animation: cg4NatureDrift 20s ease-in-out infinite alternate; }
.cg5-heading--light h2 { color: #fff !important; }
.cg5-heading--light h2 em { color: var(--cg4-acid); }
.cg5-heading--light .cg4-kicker { color: var(--cg4-acid); }
.cg5-heading--light .cg5-heading__copy { color: rgba(255,255,255,.7); }
.cg5-path__steps { position: relative; z-index: 2; display: grid; margin: 0; padding: 0; grid-template-columns: repeat(3,minmax(0,1fr)); border-top: 1px solid rgba(255,255,255,.28); list-style: none; }
.cg5-path__steps li { display: grid; min-height: 330px; padding: 27px 32px 28px 0; grid-template-rows: auto 1fr auto; border-right: 1px solid rgba(255,255,255,.25); }
.cg5-path__steps li + li { padding-left: 32px; }
.cg5-path__steps li:last-child { border-right: 0; }
.cg5-path__steps span { color: var(--cg4-acid); font-size: 10px; font-weight: 800; }
.cg5-path__steps strong { align-self: center; max-width: 330px; color: #fff; font-family: Unbounded,sans-serif; font-size: clamp(26px,2.8vw,42px); font-weight: 440; letter-spacing: -.055em; line-height: 1.08; }
.cg5-path__steps p { max-width: 330px; margin: 0; color: rgba(255,255,255,.68); font-size: 13px; line-height: 1.65; }
.cg5-path__action { position: relative; z-index: 2; display: grid; min-height: 112px; margin-top: 34px; padding: 19px 20px 19px 28px; grid-template-columns: 1fr auto; gap: 30px; align-items: center; border-radius: 3px 34px 3px 3px; background: var(--cg4-acid); color: var(--cg4-night); }
.cg5-path__action > div { display: grid; gap: 5px; }
.cg5-path__action small { font-size: 9px; font-weight: 850; letter-spacing: .14em; text-transform: uppercase; }
.cg5-path__action strong { font-family: Unbounded,sans-serif; font-size: clamp(19px,2.2vw,29px); font-weight: 460; letter-spacing: -.04em; }
.cg5-path__action button { background: var(--cg4-night); }

.cg3-home > .contact { padding: 120px 0 !important; background: linear-gradient(155deg,#f4f5ef,#e6efe8) !important; }
.cg3-home > .contact .cg3-contact-card { overflow: hidden; border: 1px solid rgba(40,95,71,.14); border-radius: 3px 44px 3px 3px; box-shadow: 0 32px 100px rgba(40,95,71,.1); }

/* Smooth legacy continuation */
.cg3-home > .section { position: relative; }
.cg3-home > .section:first-of-type { border-radius: 0; }
.cg3-home .section-title { text-wrap: balance; }
.cg3-home .special-features-grid-row, .cg3-home .c-card { transition: transform .45s var(--cg4-ease), box-shadow .45s var(--cg4-ease); }
.cg3-home .special-features-grid-row:hover, .cg3-home .c-card:hover { box-shadow: 0 28px 70px rgba(16,34,53,.12); transform: translateY(-5px); }
.cg3-home .gallery-slide img { transition: transform 1.1s var(--cg4-ease), filter .6s ease; }
.cg3-home .gallery-slide:hover img { filter: saturate(1.05); transform: scale(1.025); }
.cg3-home .section:nth-of-type(even) { background: #f7faf6; }
.cg3-home .section:nth-of-type(even) .section-kicker { color: var(--cg4-leaf); }
.cg3-home .section:nth-of-type(even) .gradient-text { color: var(--cg4-moss) !important; }
.cg3-home .section:nth-of-type(even) .special-features-grid-row { border-color: rgba(40,95,71,.14); }
.cg3-home .swiper-pagination-bullet-active { background: var(--cg4-moss) !important; }
.cg4-legacy-reveal { opacity: 0; transform: translateY(46px); transition: opacity 1s var(--cg4-ease), transform 1s var(--cg4-ease); }
.cg4-legacy-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1180px) {
    .cg3-home .wrap { width: calc(100% - 48px); }
    .cg4-hero__inner { grid-template-columns: 1fr 230px; }
    .cg4-hero__mortgage { width: 250px; padding: 18px; gap: 14px; }
    .cg4-hero__mortgage-head { padding-right: 34px; }
    .cg4-hero__mortgage-date { display: none; }
    .cg4-hero__mortgage-rate strong { font-size: 68px; }
    .cg4-manifesto__grid { grid-template-columns: 130px 1fr; }
    .cg4-manifesto__title { grid-column: 1 / -1; }
    .cg4-manifesto__copy { grid-column: 2; max-width: 680px; }
    .cg4-manifesto__media, .cg4-manifesto__facts, .cg4-section-cta { grid-column: 1 / -1; }
    .cg4-map { grid-template-columns: 1fr 280px; }
    .cg4-map__number strong { font-size: 90px; }
    .cg4-offer { min-height: 550px; padding: 23px; }
    .cg4-offer__copy { min-height: 172px; }
    .cg5-heading { grid-template-columns: 1fr minmax(260px,.5fr); gap: 45px; }
    .cg5-scene { min-height: 570px; padding: 23px; }
    .cg5-scene > div { right: 23px; bottom: 25px; left: 23px; }
}

@media (max-width: 900px) {
    .cg3-home { padding-top: 74px; }
    .cg4-hero { min-height: calc(100svh - 74px); }
    .cg4-hero__inner { display: block; min-height: calc(100svh - 146px); padding-top: 110px !important; }
    .cg4-hero__copy { padding-top: 30px; }
    .cg4-title { font-size: clamp(52px,10vw,88px); }
    .cg4-hero__mortgage { position: absolute; right: 0; bottom: 100px; width: 220px; padding: 17px; gap: 12px; }
    .cg4-hero__mortgage-rate strong { font-size: 56px; }
    .cg4-hero__mortgage-copy h2 { font-size: 13px; }
    .cg4-hero__mortgage-copy p { font-size: 10px; }
    .cg4-hero__deal-links { max-width: calc(100% - 225px); }
    .cg4-manifesto { padding: 105px 0; }
    .cg4-manifesto__grid { grid-template-columns: 1fr; }
    .cg4-manifesto__title, .cg4-manifesto__copy, .cg4-manifesto__media, .cg4-manifesto__facts, .cg4-section-cta { grid-column: 1; }
    .cg4-manifesto__facts { margin-top: 35px; }
    .cg4-masterplan, .cg4-offers { padding: 100px 0; }
    .cg4-river { min-height: 0; padding: 100px 0 120px; }
    .cg4-river__grid { grid-template-columns: 1fr; }
    .cg4-river__copy { max-width: 680px; }
    .cg4-river__media { height: 560px; }
    .cg4-section-head { align-items: flex-start; flex-direction: column; }
    .cg4-map { min-height: 760px; grid-template-columns: 1fr; grid-template-rows: minmax(480px,1fr) auto; }
    .cg4-masterplan__legend { grid-template-columns: 1fr; }
    .cg4-masterplan__legend > div { border-right: 0; border-bottom: 1px solid var(--cg4-line-light); }
    .cg4-masterplan__legend > div:last-child { border-bottom: 0; }
    .cg4-map__panel { min-height: 250px; }
    .cg4-map__number { margin-top: 30px; }
    .cg4-map__number strong { font-size: 72px; }
    .cg4-map__panel > p { min-height: 0; }
    .cg4-offers__grid { grid-template-columns: 1fr 1fr; }
    .cg4-offer--hero { grid-column: auto; }
    .cg4-offer--family { grid-column: 1 / -1; min-height: 470px; }
    .cg4-section-cta { grid-template-columns: 1fr auto; }
    .cg4-section-cta .cg4-ghost-button { grid-column: 2; }
    .cg5-scenarios, .cg5-picker, .cg5-path { padding: 100px 0 110px; }
    .cg5-heading { grid-template-columns: 1fr; gap: 24px; }
    .cg5-heading__copy { max-width: 650px; }
    .cg5-scenarios__grid { grid-template-columns: 1fr 1fr; }
    .cg5-scene:first-child { grid-column: 1 / -1; min-height: 520px; }
    .cg5-scene { min-height: 500px; }
    .cg5-picker__panel { grid-template-columns: 1fr; }
    .cg5-picker__panel > aside { min-height: 330px; }
    .cg5-picker__panel > aside h3 { margin-top: 70px; }
    .cg5-path__steps { grid-template-columns: 1fr; }
    .cg5-path__steps li, .cg5-path__steps li + li { min-height: 220px; padding: 24px 0; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.25); }
    .cg5-path__steps li:last-child { border-bottom: 0; }
    .cg4-offer-modal__panel { grid-template-columns: 1fr; }
    .cg4-offer-modal__visual { min-height: 360px; }
    .cg4-offer-modal__visual > img { width: min(340px,78%); }
}

@media (max-width: 620px) {
    .cg3-home .wrap { width: calc(100% - 24px); }
    .cg4-hero { min-height: 820px; }
    .cg4-hero__inner { min-height: 748px; padding-top: 85px !important; padding-bottom: 250px !important; }
    .cg4-hero__brand { top: 24px; }
    .cg4-hero__backdrop img { object-position: 60% center; }
    .cg4-hero__veil { background: linear-gradient(90deg,rgba(4,15,26,.92),rgba(4,17,30,.32)),linear-gradient(0deg,rgba(3,14,24,.94),transparent 54%); }
    .cg4-title { font-size: clamp(43px,13vw,63px); line-height: .94; }
    .cg4-title__line--accent { margin-left: 0; }
    .cg4-hero__lead, .cg4-hero__actions { margin-left: 0; }
    .cg4-hero__deal-links { max-width: none; margin-right: 0; margin-left: 0; }
    .cg4-hero__lead { max-width: 360px; margin-top: 20px; font-size: 14px; }
    .cg4-hero__actions { align-items: flex-start; flex-direction: column; gap: 18px; margin-top: 25px; }
    .cg4-hero__deal-links { display: grid; grid-template-columns: 1fr 1fr; }
    .cg4-hero__deal-links a:last-child { grid-column: 1 / -1; }
    .cg4-hero__deal-links a { min-height: 43px; padding: 7px 10px; }
    .cg4-hero__deal-links small { display: none; }
    .cg4-button { min-height: 56px; }
    .cg4-hero__mortgage { position: fixed; z-index: 2100; right: 12px; bottom: calc(76px + env(safe-area-inset-bottom)); left: 12px; width: auto; padding: 16px; gap: 13px; border-radius: 3px 28px 3px 3px; background: linear-gradient(150deg,rgba(10,34,45,.98),rgba(6,23,37,.97)); box-shadow: 0 24px 75px rgba(0,0,0,.42); }
    .cg4-hero__mortgage.is-dismissed { transform: translateY(calc(100% + 110px)); }
    .cg4-hero__mortgage-head { min-height: 30px; padding-right: 38px; }
    .cg4-hero__mortgage-date { display: inline; font-size: 8px; }
    .cg4-hero__mortgage-body { grid-template-columns: 94px minmax(0,1fr); gap: 14px; align-items: center; }
    .cg4-hero__mortgage-rate strong { font-size: 62px; }
    .cg4-hero__mortgage-rate sup { margin-top: 1px; margin-left: 5px; font-size: 21px; }
    .cg4-hero__mortgage-copy { gap: 5px; }
    .cg4-hero__mortgage-copy h2 { font-size: 13px; line-height: 1.23; }
    .cg4-hero__mortgage-copy p { font-size: 10px; line-height: 1.4; }
    .cg4-hero__mortgage .cg4-hero__mortgage-close { top: 12px; right: 12px; width: 32px; height: 32px; }
    .cg4-hero__mortgage .cg4-hero__mortgage-cta { min-height: 48px; }
    .cg4-marquee { height: 64px; }
    .cg4-manifesto { padding: 80px 0 86px; }
    .cg4-manifesto__title { font-size: 39px; }
    .cg4-manifesto__copy { font-size: 14px; }
    .cg4-manifesto__media { height: 390px; margin-top: 25px; border-radius: 3px 28px 3px 3px; }
    .cg4-manifesto__stamp { bottom: 86px; font-size: 24vw; }
    .cg4-manifesto__image-facts { top: 12px; right: 12px; width: calc(100% - 24px); }
    .cg4-manifesto__image-facts span { min-height: 70px; padding: 10px; }
    .cg4-manifesto__image-facts b { font-size: 15px; }
    .cg4-manifesto__image-facts small { font-size: 8px; }
    .cg4-manifesto__facts { grid-template-columns: 1fr; }
    .cg4-fact, .cg4-fact + .cg4-fact { min-height: 180px; padding: 22px 0; border-right: 0; border-bottom: 1px solid rgba(16,34,53,.17); }
    .cg4-fact:last-child { border-bottom: 0; }
    .cg4-section-cta { margin-top: 30px; padding: 24px 18px; grid-template-columns: 1fr; border-radius: 3px 26px 3px 3px; }
    .cg4-section-cta .cg4-ghost-button { grid-column: 1; }
    .cg4-section-cta .cg4-button, .cg4-section-cta .cg4-ghost-button { width: 100%; justify-content: space-between; }
    .cg4-masterplan, .cg4-offers { padding: 76px 0 82px; }
    .cg4-river { padding: 78px 0 90px; }
    .cg4-river h2 { font-size: 41px; }
    .cg4-river__copy > p:not(.cg4-kicker) { font-size: 14px; }
    .cg4-river__media { height: 430px; border-radius: 34% 3px 34% 3px / 14% 3px 14% 3px; }
    .cg4-river__media figcaption { right: 20px; bottom: 20px; left: 20px; align-items: flex-start; flex-direction: column; }
    .cg4-river__word { bottom: -2vw; font-size: 34vw; }
    .cg4-section-head { gap: 24px; margin-bottom: 30px; }
    .cg4-section-head h2 { font-size: 37px; }
    .cg4-section-head__copy { font-size: 13px; }
    .cg4-map { min-height: 660px; border-radius: 3px 28px 3px 3px; grid-template-rows: 410px auto; }
    .cg4-map__stage { overflow-x: auto; }
    .cg4-map__base { min-width: 760px; object-position: left center; }
    .cg4-pin { left: calc(var(--x) * 1.65); }
    .cg4-map__panel { min-height: 225px; padding: 24px 20px; }
    .cg4-map__number strong { font-size: 62px; }
    .cg4-map__panel > p { margin: 20px 0; }
    .cg4-offers__grid { grid-template-columns: 1fr; }
    .cg4-offer--hero { grid-column: auto; }
    .cg4-offer--family { grid-column: auto; }
    .cg4-offer { min-height: 420px; border-radius: 3px 28px 3px 3px; }
    .cg4-offer__rate { font-size: 108px; }
    .cg4-river__actions { align-items: stretch; flex-direction: column; }
    .cg4-river__actions .cg4-button, .cg4-river__actions .cg4-ghost-button { width: 100%; justify-content: space-between; }
    .cg4-quick-actions { right: 10px; bottom: 78px; left: 10px; display: grid; grid-template-columns: 1.15fr .85fr; border-radius: 20px; }
    .cg4-quick-actions a, .cg4-quick-actions button { justify-content: center; border-radius: 15px; }
    .cg4-offer__copy { min-height: 145px; }
    .cg5-scenarios, .cg5-picker, .cg5-path { padding: 78px 0 86px; }
    .cg5-heading { margin-bottom: 34px; }
    .cg5-heading h2, .cg5-picker__head h2 { font-size: 39px; }
    .cg5-heading__copy { font-size: 14px; }
    .cg5-scenarios__grid { grid-template-columns: 1fr; }
    .cg5-scene:first-child { grid-column: 1; }
    .cg5-scene, .cg5-scene:first-child { min-height: 480px; border-radius: 3px 28px 3px 3px; }
    .cg5-scenarios__cta, .cg5-path__action { padding: 22px 18px; grid-template-columns: 1fr; border-radius: 3px 26px 3px 3px; }
    .cg5-scenarios__cta button, .cg5-path__action button { width: 100%; justify-content: space-between; }
    .cg5-picker__panel { padding: 8px; border-radius: 3px 28px 3px 3px; }
    .cg5-picker__panel > aside { min-height: 300px; padding: 23px; border-radius: 2px 20px 2px 2px; }
    .cg5-picker__filter { padding: 17px; border-radius: 2px 20px 2px 2px; }
    .cg5-path__steps strong { font-size: 29px; }
    .cg4-offer-modal { padding: 10px; }
    .cg4-offer-modal__panel { max-height: calc(100svh - 20px); border-radius: 3px 28px 3px 3px; }
    .cg4-offer-modal__close { top: 11px; right: 11px; width: 38px; height: 38px; }
    .cg4-offer-modal__visual { min-height: 285px; padding: 19px; }
    .cg4-offer-modal__visual > img { width: min(235px,72%); padding: 10px; }
    .cg4-offer-modal__visual strong { font-size: 15px; }
    .cg4-offer-modal__content { padding: 25px 19px 22px; }
    .cg4-offer-modal__content .cg4-kicker { margin-bottom: 13px; }
    .cg4-offer-modal__content h2 { font-size: 31px; }
    .cg4-offer-modal__facts { margin: 20px 0 17px; }
    .cg4-offer-modal__facts span { min-height: 68px; padding: 10px 8px; }
    .cg4-offer-modal__facts b { font-size: 11px; }
    .cg4-offer-modal__scarcity { margin-bottom: 17px; padding: 13px; }
    .cg4-offer-modal__cta { min-height: 56px; }
    .cg3-home > .contact { padding: 78px 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
    .cg4-hero__backdrop img, .cg4-title__line > span, .cg4-marquee__track, .cg4-orbit, .cg4-map__hint span { animation: none !important; }
    .cg4-title__line > span { transform: none; }
    .cg4-reveal { opacity: 1; transform: none; transition: none; }
    .cg4-legacy-reveal { opacity: 1; transform: none; transition: none; }
    .cg4-manifesto::before, .cg4-manifesto::after, .cg4-river__current, .cg4-offers::before, .cg4-offer--paper .cg4-offer__index, .cg5-scenarios::before, .cg5-path::before { animation: none !important; }
    html { scroll-behavior: auto; }
}
