:root {
  color-scheme: dark;
  --bg: #0b0d10;
  --surface: #111418;
  --surface-2: #171b20;
  --surface-3: #20252b;
  --text: #f5f5f2;
  --muted: #a9adb2;
  --soft: #747a80;
  --line: rgba(255,255,255,.14);
  --line-strong: rgba(255,255,255,.28);
  --inverse: #0c0e11;
  --inverse-text: #f7f6f1;
  --paper: #f2f1ec;
  --accent: #c9964b;
  --header-bg: rgba(11,13,16,.74);
  --shadow: 0 28px 80px rgba(0,0,0,.28);
  --radius: 18px;
  --radius-sm: 10px;
  --shell: min(1440px, calc(100% - 72px));
  --ease: cubic-bezier(.2,.75,.2,1);
}
html[data-theme="light"] {
  color-scheme: light;
  --bg: #f3f2ed;
  --surface: #faf9f5;
  --surface-2: #ecebe6;
  --surface-3: #dfded8;
  --text: #121416;
  --muted: #5e6367;
  --soft: #86898b;
  --line: rgba(16,19,22,.13);
  --line-strong: rgba(16,19,22,.28);
  --inverse: #101215;
  --inverse-text: #f7f6f1;
  --paper: #fffefa;
  --header-bg: rgba(243,242,237,.82);
  --shadow: 0 28px 80px rgba(28,30,32,.12);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--bg); }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); font-family: Montserrat, Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 16px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
body.menu-open, body.modal-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
h1,h2,h3,p { margin-top: 0; }
h1,h2,h3 { line-height: 1.02; letter-spacing: -.045em; font-weight: 560; }
h1 { font-size: clamp(3.2rem, 7vw, 7.7rem); }
h2 { font-size: clamp(2.35rem, 4.6vw, 5.2rem); }
h3 { font-size: clamp(1.25rem, 1.65vw, 2rem); }
p { color: var(--muted); }
.shell { width: var(--shell); margin-inline: auto; }
.section { padding: 130px 0; }
.eyebrow { margin-bottom: 20px; color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.hp-field { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }
.skip-link { position: fixed; z-index: 9999; top: 10px; left: 10px; padding: 10px 16px; transform: translateY(-150%); background: var(--paper); color: #111; border-radius: 8px; }
.skip-link:focus { transform: none; }
.page-progress { position: fixed; z-index: 300; top: 0; left: 0; width: 100%; height: 2px; pointer-events: none; }
.page-progress span { display: block; width: 0; height: 100%; background: var(--accent); }
.button { display: inline-flex; min-height: 54px; align-items: center; justify-content: center; gap: 28px; padding: 0 22px; border: 1px solid transparent; border-radius: 2px; cursor: pointer; font-size: .78rem; font-weight: 700; letter-spacing: .055em; text-transform: uppercase; transition: transform .3s var(--ease), background .3s, color .3s, border-color .3s; }
.button:hover { transform: translateY(-2px); }
.button--small { min-height: 43px; padding-inline: 17px; font-size: .7rem; }
.button--light { background: #f7f6f1; color: #111417; }
.button--light:hover { background: #fff; }
.button--dark { background: #101215; color: #f7f6f1; }
.button--dark:hover { background: #292d31; }
.button--outline { background: transparent; border-color: var(--line-strong); color: var(--text); }
.button--outline:hover { border-color: var(--text); }
.button--ghost { background: rgba(10,12,15,.12); border-color: rgba(255,255,255,.35); color: #fff; backdrop-filter: blur(10px); }
.button--full { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; color: var(--text); cursor: pointer; font-size: .82rem; font-weight: 650; }
.text-link span { transition: transform .25s; }
.text-link:hover span { transform: translate(3px,-3px); }
.reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-visible { opacity: 1; transform: none; }

/* Header */
.site-header { position: fixed; z-index: 100; top: 0; width: 100%; border-bottom: 1px solid transparent; transition: background .35s, border-color .35s, transform .35s; }
.site-header.is-scrolled { background: var(--header-bg); border-color: var(--line); backdrop-filter: blur(18px); }
.site-header.is-hidden { transform: translateY(-100%); }
.site-header__inner { height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; flex: 0 0 auto; }
.brand img { width: 112px; height: auto; }
.brand__light { display: none; }
html[data-theme="light"] .brand__dark { display: none; }
html[data-theme="light"] .brand__light { display: block; }
.main-nav { display: flex; align-items: center; gap: clamp(18px, 2.5vw, 44px); }
.main-nav a { position: relative; font-size: .73rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.main-nav a::after { content: ""; position: absolute; left: 0; bottom: -9px; width: 100%; height: 1px; transform: scaleX(0); transform-origin: right; background: var(--text); transition: transform .35s var(--ease); }
.main-nav a:hover::after, .main-nav a.is-active::after { transform: scaleX(1); transform-origin: left; }
.site-header__actions { display: flex; align-items: center; gap: 11px; }
.header-phone { display: flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 650; }
.header-phone span:last-child { display: none; }
.icon-button { width: 44px; height: 44px; display: grid; place-items: center; border: 1px solid var(--line); background: transparent; cursor: pointer; }
.theme-toggle { position: relative; overflow: hidden; }
.theme-toggle span { position: absolute; transition: transform .45s var(--ease), opacity .3s; }
.theme-toggle__sun { transform: translateY(32px) rotate(-45deg); opacity: 0; }
.theme-toggle__moon { transform: none; opacity: 1; }
html[data-theme="light"] .theme-toggle__sun { transform: none; opacity: 1; }
html[data-theme="light"] .theme-toggle__moon { transform: translateY(-32px) rotate(45deg); opacity: 0; }
.menu-toggle { display: none; width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; padding: 12px 8px; }
.menu-toggle span { display: block; height: 1px; background: var(--text); margin: 7px 0; transition: transform .3s; }
.mobile-menu { position: fixed; z-index: 180; inset: 0; display: flex; flex-direction: column; padding: 24px; background: #0b0d10; color: #fff; transform: translateX(100%); visibility: hidden; transition: transform .65s var(--ease), visibility .65s; }
.mobile-menu.is-open { transform: none; visibility: visible; }
.mobile-menu__top { display: flex; align-items: center; justify-content: space-between; }
.mobile-menu__top .brand img { width: 104px; }
.menu-close { width: 44px; height: 44px; border: 0; background: none; color: #fff; font-size: 2rem; cursor: pointer; }
.mobile-menu__nav { margin-top: 60px; border-top: 1px solid rgba(255,255,255,.16); }
.mobile-menu__nav a { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: clamp(1.6rem,7vw,2.5rem); letter-spacing: -.04em; }
.mobile-menu__nav span { font-size: 1rem; }
.mobile-menu__footer { margin-top: auto; }
.mobile-menu__footer p { margin-bottom: 4px; color: #8f9499; font-size: .75rem; text-transform: uppercase; letter-spacing: .12em; }
.mobile-menu__footer > a { display: block; margin-bottom: 20px; font-size: 1.25rem; }

/* Hero */
.hero { position: relative; min-height: 100svh; overflow: hidden; background: #0d1014; color: #fff; }
.hero__slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; visibility: hidden; opacity: 0; transition: opacity 1s var(--ease), visibility 1s; }
.hero-slide::before { content: ""; position: absolute; inset: 0; background-image: linear-gradient(90deg, rgba(6,9,13,.9) 0%, rgba(6,9,13,.56) 38%, rgba(6,9,13,.08) 78%), var(--hero-image); background-size: cover; background-position: center; transform: scale(1.05); transition: transform 7s linear; }
.hero-slide:nth-child(2)::before { background-image: linear-gradient(90deg, rgba(246,245,240,.94) 0%, rgba(246,245,240,.72) 38%, rgba(246,245,240,.04) 76%), var(--hero-image); }
.hero-slide.is-active { visibility: visible; opacity: 1; }
.hero-slide.is-active::before { transform: scale(1); }
.hero-slide__inner { position: relative; z-index: 2; height: 100%; min-height: 100svh; display: grid; grid-template-columns: 1fr 90px; align-items: center; padding-top: 75px; padding-bottom: 150px; }
.hero-copy { max-width: 710px; }
.hero-copy h1, .hero-copy h2 { margin-bottom: 28px; font-size: clamp(3.6rem, 6.9vw, 7.6rem); font-weight: 520; letter-spacing: -.062em; }
.hero-copy__lead { max-width: 650px; margin-bottom: 36px; color: rgba(255,255,255,.78); font-size: clamp(1rem,1.35vw,1.25rem); }
.hero-copy__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-copy--dark { color: #111417; }
.hero-copy--dark .hero-copy__lead { color: rgba(17,20,23,.72); }
.hero-side { justify-self: end; display: grid; justify-items: center; gap: 14px; font-size: .72rem; }
.hero-side div { width: 1px; height: 78px; background: rgba(255,255,255,.65); }
.hero-side--dark { color: #111; }
.hero-side--dark div { background: rgba(0,0,0,.5); }
.hero__bottom { position: absolute; z-index: 3; left: 50%; bottom: 25px; transform: translateX(-50%); display: flex; align-items: end; justify-content: space-between; gap: 24px; }
.hero-stats { display: grid; grid-template-columns: repeat(4, minmax(140px,1fr)); min-width: min(810px,70vw); border: 1px solid rgba(255,255,255,.16); background: rgba(10,12,15,.58); backdrop-filter: blur(20px); }
.hero-stats div { padding: 18px 24px; border-right: 1px solid rgba(255,255,255,.13); }
.hero-stats div:last-child { border: 0; }
.hero-stats strong { display: block; color: #fff; font-size: 1.25rem; font-weight: 560; }
.hero-stats span { display: block; margin-top: 3px; color: rgba(255,255,255,.62); font-size: .68rem; }
.hero-controls { display: flex; align-items: center; gap: 10px; }
.hero-controls button { width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.3); background: rgba(10,12,15,.45); color: #fff; cursor: pointer; backdrop-filter: blur(10px); }
.hero-dots { display: flex; gap: 6px; }
.hero-dots button { width: 28px; height: 2px; padding: 0; border: 0; background: rgba(255,255,255,.35); }
.hero-dots button.is-active { background: #fff; }
.hero-scroll { position: absolute; z-index: 4; left: 26px; bottom: 36px; display: flex; align-items: center; gap: 11px; transform: rotate(-90deg) translateY(100%); transform-origin: left bottom; color: rgba(255,255,255,.62); font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; }
.hero-scroll i { font-style: normal; }

.section-heading { display: grid; grid-template-columns: minmax(320px,1.1fr) minmax(260px,.65fr) auto; align-items: end; gap: 45px; margin-bottom: 56px; }
.section-heading h2 { margin: 0; }
.section-heading > p { max-width: 540px; margin: 0; }
.section-heading--light { color: #fff; }
.section-heading--light p { color: #9da2a8; }
.section--projects { overflow: hidden; }
.project-showcase { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(340px, 38vw); gap: 18px; overflow-x: auto; padding-bottom: 24px; scrollbar-width: thin; scrollbar-color: var(--line-strong) transparent; scroll-snap-type: x proximity; }
.project-card { min-width: 0; scroll-snap-align: start; }
.project-card__media { position: relative; display: block; height: clamp(300px,32vw,520px); overflow: hidden; background: var(--surface-2); }
.project-card__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(3,5,7,.5)); }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease), filter .5s; }
.project-card:hover .project-card__media img { transform: scale(1.035); }
.project-card__status { position: absolute; z-index: 2; top: 16px; left: 16px; padding: 8px 11px; background: rgba(12,14,16,.72); color: #fff; backdrop-filter: blur(12px); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-card__arrow { position: absolute; z-index: 2; right: 16px; bottom: 16px; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); border-radius: 50%; color: #fff; transition: background .3s, color .3s, transform .3s; }
.project-card:hover .project-card__arrow { background: #fff; color: #111; transform: rotate(45deg); }
.project-card__body { display: grid; grid-template-columns: 1fr auto; gap: 16px; padding: 21px 2px; border-bottom: 1px solid var(--line); }
.project-card__body h3 { margin: 3px 0 0; }
.project-card__body > p { margin: 7px 0 0; font-size: .8rem; text-align: right; }
.project-card__meta { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: .72rem; }
.project-card__meta span:last-child { color: var(--text); font-weight: 600; }
.project-card--wide { grid-column: span 1; }

.finder { background: #101318; color: #fff; }
.finder__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; align-items: end; }
.finder__intro h2 { font-size: clamp(2.5rem,4vw,4.7rem); }
.finder__intro p { color: #a9adb2; }
.finder-form { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; border-top: 1px solid rgba(255,255,255,.2); }
.finder-form label { display: grid; gap: 9px; padding: 22px 20px; border-right: 1px solid rgba(255,255,255,.18); border-bottom: 1px solid rgba(255,255,255,.18); }
.finder-form label:first-child { border-left: 1px solid rgba(255,255,255,.18); }
.finder-form label span { color: #888f96; font-size: .68rem; text-transform: uppercase; letter-spacing: .12em; }
.finder-form select { width: 100%; border: 0; color: #fff; background: transparent; outline: 0; font-size: .9rem; }
.finder-form select option { color: #111; }
.finder-form .button { grid-column: 1 / -1; margin-top: 16px; }

.philosophy__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(55px,8vw,130px); align-items: center; }
.philosophy__visual { position: relative; }
.philosophy__visual img { width: 100%; aspect-ratio: .86; object-fit: cover; }
.philosophy__badge { position: absolute; right: -35px; bottom: 32px; width: 190px; min-height: 130px; display: flex; align-items: center; gap: 14px; padding: 20px; background: var(--paper); color: #121416; box-shadow: var(--shadow); }
.philosophy__badge strong { font-size: 2.3rem; letter-spacing: -.08em; }
.philosophy__badge span { font-size: .7rem; line-height: 1.25; letter-spacing: .1em; text-transform: uppercase; }
.large-copy { color: var(--text); font-size: clamp(1.15rem,1.7vw,1.55rem); line-height: 1.5; }
.principles { margin: 46px 0; border-top: 1px solid var(--line); }
.principles article { display: grid; grid-template-columns: 50px 1fr; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.principles article > span { color: var(--soft); font-size: .7rem; }
.principles h3 { margin-bottom: 8px; font-size: 1.18rem; letter-spacing: -.02em; }
.principles p { margin: 0; font-size: .86rem; }

.capabilities { background: #0c0f13; }
.capabilities__grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid rgba(255,255,255,.16); border-left: 1px solid rgba(255,255,255,.16); }
.capability { min-height: 360px; display: flex; flex-direction: column; padding: 28px; border-right: 1px solid rgba(255,255,255,.16); border-bottom: 1px solid rgba(255,255,255,.16); color: #fff; transition: background .35s, transform .35s; }
.capability:hover { background: #171b20; transform: translateY(-6px); }
.capability > span { color: #777e85; font-size: .7rem; }
.capability h3 { margin-top: auto; margin-bottom: 18px; font-size: 1.65rem; }
.capability p { color: #979da3; font-size: .88rem; }
.capability a, .capability button { align-self: start; margin-top: 18px; padding: 0; border: 0; background: none; color: #fff; cursor: pointer; font-size: .75rem; font-weight: 700; text-transform: uppercase; }

.home-offer__inner { display: grid; grid-template-columns: 1.15fr .85fr; background: var(--paper); color: #111416; }
.home-offer__visual { position: relative; min-height: 530px; overflow: hidden; }
.home-offer__visual img { width: 100%; height: 100%; object-fit: cover; }
.home-offer__visual span { position: absolute; top: 28px; left: 28px; width: 105px; height: 105px; display: grid; place-items: center; border-radius: 50%; background: #111; color: #fff; font-size: 1.8rem; }
.home-offer__content { display: flex; flex-direction: column; justify-content: center; padding: clamp(38px,6vw,90px); }
.home-offer__content h2 { font-size: clamp(2.4rem,4vw,4.7rem); }
.home-offer__content p { color: #62666a; }
.home-offer__content > div { display: flex; flex-wrap: wrap; align-items: center; gap: 24px; margin-top: 22px; }
.home-offer__content .text-link { color: #111; }
.news-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; }
.news-card { border-bottom: 1px solid var(--line); }
.news-card__media { display: block; height: 290px; overflow: hidden; }
.news-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--ease); }
.news-card:hover .news-card__media img { transform: scale(1.035); }
.news-card__body { padding: 21px 0 25px; }
.news-card__meta { display: flex; justify-content: space-between; gap: 12px; color: var(--soft); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.news-card__meta span { color: var(--accent); }
.news-card h3 { margin: 17px 0 13px; font-size: 1.45rem; line-height: 1.2; }
.news-card p { font-size: .85rem; }
.final-cta { position: relative; overflow: hidden; padding: 130px 0; background: #0c0f13; color: #fff; }
.final-cta::before { content: "LEV"; position: absolute; right: -2vw; bottom: -11vw; color: rgba(255,255,255,.035); font-size: 30vw; font-weight: 800; letter-spacing: -.12em; line-height: .7; }
.final-cta__inner { position: relative; z-index: 1; max-width: 1120px; text-align: center; }
.final-cta h2 { margin-bottom: 38px; }

/* Page heroes */
.page-hero { min-height: 66svh; display: flex; align-items: end; padding: 180px 0 85px; background: var(--surface); }
.page-hero .shell { position: relative; z-index: 2; }
.page-hero h1 { max-width: 1170px; margin-bottom: 28px; font-size: clamp(3.2rem,6.5vw,7.3rem); }
.page-hero p:last-child { max-width: 660px; margin: 0; font-size: 1.05rem; }
.page-hero--projects { background: linear-gradient(90deg, rgba(5,7,9,.92), rgba(5,7,9,.25)), url('../images/projects/central-hills.jpg') center/cover; color: #fff; }
.page-hero--projects p:last-child, .page-hero--offers p:last-child, .page-hero--news p:last-child, .page-hero--contacts p:last-child, .page-hero--about p:last-child { color: rgba(255,255,255,.72); }
.page-hero--offers { background: linear-gradient(90deg, rgba(5,7,9,.92), rgba(5,7,9,.2)), url('../images/projects/life-story.jpg') center/cover; color: #fff; }
.page-hero--news { background: linear-gradient(90deg, rgba(5,7,9,.9), rgba(5,7,9,.25)), url('../images/projects/silent-park.jpg') center/cover; color: #fff; }
.page-hero--contacts { background: linear-gradient(90deg, rgba(5,7,9,.9), rgba(5,7,9,.28)), url('../images/projects/hero-night.jpg') center/cover; color: #fff; }
.page-hero--about { background: linear-gradient(90deg, rgba(5,7,9,.9), rgba(5,7,9,.22)), url('../images/projects/perfect-life.jpg') center/cover; color: #fff; }
.filters { position: sticky; z-index: 10; top: 88px; display: grid; gap: 12px; margin-bottom: 34px; padding: 18px 20px; border: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(18px); }
.filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.filter-group > span { min-width: 72px; color: var(--soft); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.filter-group button, .news-chips button { padding: 8px 12px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; font-size: .75rem; }
.filter-group button.is-active, .news-chips button.is-active { background: var(--text); color: var(--bg); border-color: var(--text); }
.catalog-summary { display: flex; align-items: center; justify-content: space-between; margin-bottom: 25px; }
.catalog-summary p { margin: 0; }
.catalog-summary strong { color: var(--text); font-size: 1.4rem; }
.projects-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 45px 20px; }
.projects-grid .project-card__media { height: 380px; }
.empty-state { padding: 75px 25px; border: 1px solid var(--line); text-align: center; }
.empty-state h3 { margin-bottom: 12px; }
.investment-strip { padding: 100px 0; background: #101318; color: #fff; }
.investment-strip__inner { display: grid; grid-template-columns: 1.4fr .5fr auto; align-items: center; gap: 60px; }
.investment-strip h2 { font-size: clamp(2.3rem,4vw,4.5rem); }
.investment-strip p { color: #9ca2a8; }
.investment-strip__metric strong { display: block; color: var(--accent); font-size: 4rem; letter-spacing: -.06em; }
.investment-strip__metric span { color: #9ca2a8; font-size: .75rem; }
.legal-note { margin-top: 25px; margin-bottom: 0; color: #686f75 !important; font-size: .68rem; }

/* Offers */
.offers-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.offer-card { display: grid; grid-template-columns: 1.05fr .95fr; min-height: 470px; background: var(--surface); }
.offer-card__media { position: relative; min-height: 100%; overflow: hidden; }
.offer-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.offer-card:hover .offer-card__media img { transform: scale(1.04); }
.offer-card__discount { position: absolute; top: 20px; left: 20px; min-width: 90px; height: 90px; display: grid; place-items: center; padding: 10px; border-radius: 50%; background: #fff; color: #111; font-size: 1.2rem; font-weight: 650; text-align: center; }
.offer-card__body { display: flex; flex-direction: column; padding: 32px; }
.offer-card__body h2 { font-size: clamp(1.8rem,2.6vw,3rem); }
.offer-card__project { margin-top: auto; margin-bottom: 20px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; }
.offer-faq { background: var(--surface); }
.offer-faq__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 10vw; }
.offer-faq h2 { font-size: clamp(2.3rem,4vw,4.6rem); }
.accordion article { border-top: 1px solid var(--line); }
.accordion article:last-child { border-bottom: 1px solid var(--line); }
.accordion button { width: 100%; display: flex; justify-content: space-between; gap: 20px; padding: 24px 0; border: 0; background: transparent; cursor: pointer; text-align: left; font-weight: 600; }
.accordion button i { font-style: normal; }
.accordion article > div { padding: 0 45px 22px 0; }
.accordion p { margin: 0; }

/* News */
.news-toolbar { display: flex; justify-content: space-between; gap: 22px; margin-bottom: 45px; }
.search-field { min-width: 340px; display: flex; align-items: center; gap: 10px; padding: 0 16px; border: 1px solid var(--line); }
.search-field input { width: 100%; height: 48px; border: 0; outline: 0; background: transparent; color: var(--text); }
.news-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.news-page .news-grid { row-gap: 55px; }

/* Contacts */
.contacts-page__grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; }
.contacts-map { position: sticky; top: 120px; height: max-content; }
.map-surface { position: relative; height: 610px; overflow: hidden; background: #15191e; border: 1px solid var(--line); }
.map-surface::before { content: ""; position: absolute; inset: -10%; opacity: .65; background-image: linear-gradient(30deg, transparent 48%, rgba(255,255,255,.08) 49%, rgba(255,255,255,.08) 51%, transparent 52%), linear-gradient(-35deg, transparent 48%, rgba(255,255,255,.06) 49%, rgba(255,255,255,.06) 51%, transparent 52%); background-size: 78px 84px, 95px 115px; transform: rotate(-4deg); }
.map-surface::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 50%, rgba(201,150,75,.14), transparent 30%), radial-gradient(circle at 70% 40%, rgba(201,150,75,.12), transparent 30%); }
.map-label { position: absolute; z-index: 2; color: #838a91; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.map-label--lviv { left: 19%; top: 39%; }.map-label--kyiv { left: 73%; top: 32%; }.map-label--carpathians { left: 14%; top: 72%; }
.map-pin { position: absolute; z-index: 4; left: var(--x); top: var(--y); width: 28px; height: 28px; transform: translate(-50%,-50%); border: 0; border-radius: 50%; background: rgba(201,150,75,.2); cursor: pointer; }
.map-pin span { position: absolute; inset: 8px; border-radius: 50%; background: var(--accent); }
.map-pin.is-active { box-shadow: 0 0 0 12px rgba(201,150,75,.15); }
.map-card { position: relative; z-index: 5; margin: -135px 24px 0; padding: 26px; background: var(--paper); color: #111; box-shadow: var(--shadow); }
.map-card h3 { margin-bottom: 12px; }
.map-card p { margin-bottom: 0; color: #64686c; font-size: .78rem; }
.map-card a { display: inline-block; margin-bottom: 8px; font-weight: 650; }
.contact-office { display: grid; grid-template-columns: 1fr .8fr auto; align-items: center; gap: 25px; padding: 30px 0; border-top: 1px solid var(--line); }
.contact-office:last-child { border-bottom: 1px solid var(--line); }
.contact-office .eyebrow { margin-bottom: 8px; }
.contact-office h2 { margin: 0; font-size: 1.45rem; }
.contact-office p { margin: 5px 0 0; font-size: .75rem; }
.contact-office button { width: 48px; height: 48px; border: 1px solid var(--line); border-radius: 50%; background: transparent; cursor: pointer; }
.contact-office.is-active { color: var(--accent); }
.contact-departments { background: var(--surface); }
.departments-grid { display: grid; grid-template-columns: repeat(4,1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.departments-grid article { min-height: 260px; display: flex; flex-direction: column; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.departments-grid span { color: var(--soft); font-size: .7rem; }
.departments-grid h3 { margin-top: auto; font-size: 1.35rem; }
.departments-grid a, .departments-grid p { font-size: .78rem; overflow-wrap: anywhere; }
.contact-panel { padding: 90px 0; background: #0c0f13; color: #fff; }
.contact-panel__grid { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 60px; }
.contact-panel h2 { max-width: 850px; font-size: clamp(2.4rem,4vw,4.8rem); }
.contact-panel p { max-width: 660px; color: #999fa5; }

/* About */
.about-story__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 8vw; align-items: center; }
.about-story__visual { position: relative; }
.about-story__visual img { width: 100%; aspect-ratio: 1.05; object-fit: cover; }
.about-quote { position: absolute; left: -55px; bottom: 40px; max-width: 360px; padding: 28px; background: var(--paper); color: #111; box-shadow: var(--shadow); font-size: 1.15rem; }
.about-numbers { padding: 80px 0; background: #0c0f13; color: #fff; }
.about-numbers__grid { display: grid; grid-template-columns: repeat(4,1fr); }
.about-numbers article { padding: 20px 35px; border-right: 1px solid rgba(255,255,255,.18); }
.about-numbers article:last-child { border: 0; }
.about-numbers strong { display: block; font-size: clamp(2.4rem,4vw,4.5rem); font-weight: 520; letter-spacing: -.06em; }
.about-numbers span { color: #8f969d; font-size: .75rem; }
.values-grid { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.values-grid article { min-height: 330px; display: flex; flex-direction: column; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.values-grid span { color: var(--soft); font-size: .7rem; }
.values-grid h3 { margin-top: auto; }
.values-grid p { margin-bottom: 0; font-size: .84rem; }
.timeline-section { background: var(--surface); }
.timeline-section__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 9vw; }
.timeline-section h2 { font-size: clamp(2.3rem,4vw,4.7rem); }
.timeline article { display: grid; grid-template-columns: 110px 1fr; gap: 25px; padding: 28px 0; border-top: 1px solid var(--line); }
.timeline article:last-child { border-bottom: 1px solid var(--line); }
.timeline strong { color: var(--accent); font-size: 1.35rem; }
.timeline h3 { margin-bottom: 9px; }
.timeline p { margin: 0; }

/* Project detail */
.project-hero { position: relative; min-height: 100svh; display: flex; align-items: end; padding: 160px 0 35px; background: var(--project-hero) center/cover; color: #fff; }
.project-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3,5,7,.35), rgba(3,5,7,.1) 30%, rgba(3,5,7,.88)); }
.project-hero__inner { position: relative; z-index: 2; width: var(--shell); }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 45px; color: rgba(255,255,255,.58); font-size: .7rem; }
.project-hero__copy { max-width: 900px; }
.project-hero__copy h1 { margin-bottom: 10px; }
.project-hero__copy > p:last-of-type { color: rgba(255,255,255,.82); font-size: 1.25rem; }
.project-hero__copy > div { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
.project-hero__facts { display: grid; grid-template-columns: repeat(4,1fr); margin-top: 65px; border: 1px solid rgba(255,255,255,.18); background: rgba(9,11,14,.62); backdrop-filter: blur(18px); }
.project-hero__facts article { padding: 20px 25px; border-right: 1px solid rgba(255,255,255,.15); }
.project-hero__facts article:last-child { border: 0; }
.project-hero__facts span { display: block; color: rgba(255,255,255,.55); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.project-hero__facts strong { display: block; margin-top: 7px; font-size: .95rem; }
.project-nav { position: sticky; z-index: 20; top: 88px; background: var(--bg); border-bottom: 1px solid var(--line); }
.project-nav .shell { display: flex; gap: 35px; overflow-x: auto; }
.project-nav a { flex: 0 0 auto; padding: 18px 0; color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.project-concept__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: center; }
.project-concept__image { position: relative; }
.project-concept__image img { width: 100%; aspect-ratio: 1.25; object-fit: cover; }
.project-concept__image span { position: absolute; right: 20px; bottom: 20px; padding: 10px 13px; background: rgba(9,11,14,.72); color: #fff; font-size: .7rem; backdrop-filter: blur(12px); }
.benefits-section { background: var(--surface); }
.benefits-grid { display: grid; grid-template-columns: repeat(4,1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.benefits-grid article { min-height: 310px; display: flex; flex-direction: column; padding: 27px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.benefits-grid span { color: var(--soft); font-size: .7rem; }
.benefits-grid h3 { margin-top: auto; }
.benefits-grid p { margin: 0; font-size: .8rem; }
.apartment-picker__panel { border: 1px solid var(--line); }
.apartment-filters { display: flex; gap: 1px; background: var(--line); }
.apartment-filters label { flex: 1; display: grid; gap: 8px; padding: 18px 22px; background: var(--surface); color: var(--soft); font-size: .68rem; text-transform: uppercase; letter-spacing: .1em; }
.apartment-filters select, .apartment-filters input { width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: .9rem; text-transform: none; }
.apartment-row { display: grid; grid-template-columns: .55fr .8fr .55fr 1fr .8fr; align-items: center; gap: 18px; padding: 18px 22px; border-top: 1px solid var(--line); }
.apartment-row--head { color: var(--soft); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.apartment-row button { justify-self: end; padding: 0; border: 0; background: none; color: var(--text); cursor: pointer; font-size: .72rem; font-weight: 700; }
.construction { background: #0c0f13; color: #fff; }
.construction__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10vw; align-items: center; }
.construction__copy h2 { font-size: clamp(3rem,6vw,6.5rem); }
.construction__copy p { color: #989fa5; }
.progress-track { height: 2px; margin: 30px 0; background: rgba(255,255,255,.15); }
.progress-track span { display: block; height: 100%; background: var(--accent); }
.construction__stages article { display: grid; grid-template-columns: 55px 1fr; gap: 20px; padding: 24px 0; border-top: 1px solid rgba(255,255,255,.15); opacity: .45; }
.construction__stages article:last-child { border-bottom: 1px solid rgba(255,255,255,.15); }
.construction__stages article.is-active, .construction__stages article.is-done { opacity: 1; }
.construction__stages article.is-done > span { color: var(--accent); }
.construction__stages h3 { margin-bottom: 5px; font-size: 1.25rem; }
.construction__stages p { margin: 0; color: #8c939a; font-size: .75rem; }
.documents-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.documents-grid a { display: grid; grid-template-columns: 45px 1fr auto; align-items: center; gap: 16px; padding: 22px; border: 1px solid var(--line); }
.documents-grid > a > span { color: var(--accent); font-size: .7rem; font-weight: 700; }
.documents-grid h3 { margin-bottom: 4px; font-size: 1rem; }
.documents-grid p { margin: 0; font-size: .7rem; }
.documents-grid i { font-style: normal; }
.similar-projects { background: var(--surface); }

/* Article */
.article-hero { padding: 190px 0 80px; background: var(--surface); }
.article-hero .breadcrumbs { color: var(--soft); }
.article-hero h1 { max-width: 1120px; margin-bottom: 0; font-size: clamp(3rem,5.7vw,6.2rem); }
.article-content { padding: 80px 0 120px; }
.article-content__grid { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 80px; align-items: start; }
.article-content article { max-width: 910px; }
.article-cover { width: 100%; max-height: 600px; object-fit: cover; margin-bottom: 45px; }
.article-content article p, .article-content article li { font-size: 1.02rem; line-height: 1.8; }
.article-content article h2 { margin-top: 52px; font-size: 2.2rem; }
.article-lead { color: var(--text) !important; font-size: 1.35rem !important; }
.article-content blockquote { margin: 50px 0; padding: 25px 0 25px 28px; border-left: 2px solid var(--accent); color: var(--text); font-size: 1.35rem; }
.article-content aside { position: sticky; top: 120px; }
.article-aside { padding: 28px; background: var(--paper); color: #111; }
.article-aside p { color: #666a6e; }
.article-aside h3 { font-size: 1.8rem; }
.share-box { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .72rem; }
.share-box button { padding: 0; border: 0; background: none; cursor: pointer; color: var(--text); }

/* Legal & 404 */
.legal-page { padding: 180px 0 120px; }
.legal-page__inner { max-width: 900px; }
.legal-page h1 { font-size: clamp(3rem,6vw,6rem); }
.legal-page h2 { margin-top: 50px; font-size: 2rem; }
.legal-page p { line-height: 1.8; }
.legal-intro { color: var(--text) !important; font-size: 1.2rem; }
.not-found { min-height: 100svh; display: grid; place-items: center; overflow: hidden; background: #0b0e12; color: #fff; }
.not-found__inner { position: relative; text-align: center; }
.not-found__inner > span { position: absolute; z-index: 0; left: 50%; top: 50%; transform: translate(-50%,-60%); color: rgba(255,255,255,.035); font-size: 32vw; font-weight: 800; line-height: .7; }
.not-found__inner > *:not(span) { position: relative; z-index: 1; }
.not-found h1 { max-width: 900px; margin-inline: auto; font-size: clamp(3rem,6vw,6.3rem); }
.not-found p { max-width: 600px; margin-inline: auto; color: #9ca2a7; }
.not-found__inner > div { display: flex; justify-content: center; gap: 10px; margin-top: 35px; }

/* Footer */
.site-footer { padding: 95px 0 28px; background: #080a0d; color: #fff; }
.site-footer__top { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; padding-bottom: 65px; }
.site-footer__brand img { width: 140px; }
.site-footer__brand p { max-width: 330px; margin-top: 28px; color: #858c93; }
.site-footer__nav { display: grid; grid-template-columns: repeat(3,1fr); gap: 35px; }
.site-footer__nav > div { display: grid; align-content: start; gap: 10px; }
.footer-title { margin-bottom: 10px; color: #666e75; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer__nav a { color: #cdd0d2; font-size: .78rem; }
.site-footer__nav a:hover { color: #fff; }
.newsletter { display: grid; grid-template-columns: 1fr .8fr; align-items: end; gap: 70px; padding: 45px 0; border-top: 1px solid rgba(255,255,255,.15); border-bottom: 1px solid rgba(255,255,255,.15); }
.newsletter h2 { max-width: 760px; margin: 0; font-size: clamp(1.8rem,3vw,3.5rem); }
.newsletter__form { position: relative; display: grid; grid-template-columns: 1fr 55px; }
.newsletter__form input { width: 100%; height: 55px; border: 0; border-bottom: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; outline: 0; }
.newsletter__form button { border: 0; border-bottom: 1px solid rgba(255,255,255,.35); background: transparent; color: #fff; cursor: pointer; font-size: 1.2rem; }
.form-status { grid-column: 1 / -1; margin: 9px 0 0; color: #9fa5aa; font-size: .72rem; }
.form-status.is-error { color: #e58f8f; }
.form-status.is-success { color: #8ec9a0; }
.site-footer__bottom { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 25px; padding-top: 25px; color: #666d73; font-size: .7rem; }
.social-links { justify-self: end; display: flex; gap: 18px; }
.scroll-top { position: fixed; z-index: 90; right: 25px; bottom: 25px; width: 50px; height: 50px; border: 1px solid var(--line); background: var(--bg); color: var(--text); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(12px); transition: .3s; }
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: none; }

/* Modal and cookie */
.modal { position: fixed; z-index: 220; inset: 0; visibility: hidden; }
.modal.is-open { visibility: visible; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.62); opacity: 0; transition: opacity .4s; backdrop-filter: blur(7px); }
.modal.is-open .modal__backdrop { opacity: 1; }
.modal__panel { position: absolute; top: 0; right: 0; width: min(560px,100%); height: 100%; overflow-y: auto; padding: clamp(35px,6vw,70px); background: var(--paper); color: #111417; transform: translateX(100%); transition: transform .65s var(--ease); }
.modal.is-open .modal__panel { transform: none; }
.modal__close { position: absolute; top: 22px; right: 22px; width: 44px; height: 44px; border: 1px solid rgba(0,0,0,.14); background: transparent; color: #111; cursor: pointer; font-size: 1.5rem; }
.modal__panel h2 { margin-bottom: 18px; font-size: clamp(2.2rem,4vw,4.2rem); }
.modal__panel > p { color: #666b6f; }
.contact-form { display: grid; gap: 17px; margin-top: 35px; }
.contact-form label { display: grid; gap: 7px; color: #74787b; font-size: .67rem; text-transform: uppercase; letter-spacing: .1em; }
.contact-form input, .contact-form select, .contact-form textarea { width: 100%; padding: 12px 0; border: 0; border-bottom: 1px solid rgba(0,0,0,.2); border-radius: 0; background: transparent; color: #111; outline: 0; resize: vertical; text-transform: none; }
.form-note { margin: -4px 0 0; color: #8a8e91 !important; font-size: .65rem; }
.cookie-banner { position: fixed; z-index: 190; left: 22px; bottom: 22px; width: min(520px,calc(100% - 44px)); padding: 18px; background: var(--paper); color: #111; box-shadow: var(--shadow); }
.cookie-banner p { margin-bottom: 14px; color: #5e6265; font-size: .77rem; }
.cookie-banner > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cookie-banner a { font-size: .72rem; text-decoration: underline; }

@media (max-width: 1180px) {
  :root { --shell: min(100% - 42px, 1120px); }
  .main-nav { display: none; }
  .menu-toggle { display: block; }
  .desktop-contact { display: none; }
  .hero-stats { min-width: min(720px,78vw); grid-template-columns: repeat(4,1fr); }
  .section-heading { grid-template-columns: 1fr .8fr; }
  .section-heading .text-link { grid-column: 1 / -1; }
  .capabilities__grid, .values-grid, .benefits-grid, .departments-grid { grid-template-columns: repeat(2,1fr); }
  .offers-grid { grid-template-columns: 1fr; }
  .offer-card { min-height: 420px; }
  .projects-grid { grid-template-columns: repeat(2,1fr); }
  .investment-strip__inner { grid-template-columns: 1.2fr .5fr; }
  .investment-strip__inner .button { grid-column: 1 / -1; justify-self: start; }
  .contacts-page__grid { gap: 40px; }
}

@media (max-width: 820px) {
  :root { --shell: calc(100% - 30px); }
  body { font-size: 15px; }
  .section { padding: 82px 0; }
  .site-header__inner { height: 72px; }
  .site-header .brand img { width: 94px; }
  .header-phone__label { display: none; }
  .header-phone span:last-child { display: inline; }
  .site-header__actions { gap: 4px; }
  .icon-button, .menu-toggle { width: 40px; height: 40px; border: 0; }
  .hero-slide__inner { min-height: 100svh; grid-template-columns: 1fr; align-items: start; padding-top: 150px; padding-bottom: 220px; }
  .hero-copy h1, .hero-copy h2 { font-size: clamp(3.2rem,15vw,5.2rem); }
  .hero-copy__lead { max-width: 90%; font-size: .95rem; }
  .hero-side { display: none; }
  .hero__bottom { bottom: 20px; align-items: end; }
  .hero-stats { width: 100%; min-width: 0; grid-template-columns: repeat(2,1fr); }
  .hero-stats div { padding: 13px 15px; }
  .hero-stats div:nth-child(2) { border-right: 0; }
  .hero-stats div:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.13); }
  .hero-stats strong { font-size: 1rem; }
  .hero-stats span { font-size: .6rem; }
  .hero-controls { position: absolute; right: 0; bottom: 100%; margin-bottom: 12px; }
  .hero-scroll { display: none; }
  .section-heading { display: block; }
  .section-heading > p { margin: 20px 0; }
  .project-showcase { grid-auto-columns: 86vw; }
  .project-card__media, .projects-grid .project-card__media { height: 340px; }
  .project-card__body { grid-template-columns: 1fr; }
  .project-card__body > p { text-align: left; }
  .finder__grid, .philosophy__grid, .home-offer__inner, .about-story__grid, .project-concept__grid, .construction__grid, .offer-faq__grid, .timeline-section__grid, .contacts-page__grid, .article-content__grid, .site-footer__top, .newsletter { grid-template-columns: 1fr; }
  .finder__grid { gap: 45px; }
  .finder-form { grid-template-columns: 1fr; }
  .finder-form label, .finder-form label:first-child { border-left: 1px solid rgba(255,255,255,.18); }
  .philosophy__badge { right: 15px; }
  .capabilities__grid, .values-grid, .benefits-grid, .departments-grid { grid-template-columns: 1fr 1fr; }
  .capability { min-height: 280px; }
  .home-offer__visual { min-height: 390px; }
  .home-offer__content { padding: 35px 25px; }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .news-grid--home .news-card:last-child { display: none; }
  .page-hero { min-height: 58svh; padding-top: 130px; padding-bottom: 55px; }
  .page-hero h1 { font-size: clamp(3rem,12vw,5.4rem); }
  .filters { top: 72px; margin-inline: -15px; padding-inline: 15px; border-left: 0; border-right: 0; }
  .projects-grid { grid-template-columns: 1fr 1fr; }
  .investment-strip__inner { grid-template-columns: 1fr; gap: 35px; }
  .investment-strip__inner .button { grid-column: auto; }
  .investment-strip__metric strong { font-size: 3rem; }
  .offer-card { grid-template-columns: 1fr; }
  .offer-card__media { min-height: 360px; }
  .news-toolbar { flex-direction: column; }
  .search-field { min-width: 0; width: 100%; }
  .contacts-map { position: relative; top: 0; }
  .map-surface { height: 470px; }
  .contact-office { grid-template-columns: 1fr auto; }
  .contact-office > div:nth-child(2) { grid-column: 1; }
  .contact-office button { grid-column: 2; grid-row: 1 / 3; }
  .contact-panel__grid { grid-template-columns: 1fr; }
  .about-quote { left: 15px; bottom: 15px; }
  .about-numbers__grid { grid-template-columns: 1fr 1fr; }
  .about-numbers article:nth-child(2) { border-right: 0; }
  .about-numbers article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.18); }
  .project-hero { padding-top: 130px; }
  .project-hero__facts { grid-template-columns: 1fr 1fr; }
  .project-hero__facts article:nth-child(2) { border-right: 0; }
  .project-hero__facts article:nth-child(-n+2) { border-bottom: 1px solid rgba(255,255,255,.15); }
  .project-nav { top: 72px; }
  .apartment-table { overflow-x: auto; }
  .apartment-row { min-width: 720px; }
  .documents-grid { grid-template-columns: 1fr; }
  .article-content__grid { gap: 45px; }
  .article-content aside { position: static; }
  .site-footer__nav { grid-template-columns: 1fr 1fr; }
  .newsletter { gap: 35px; }
  .site-footer__bottom { grid-template-columns: 1fr; }
  .social-links { justify-self: start; }
}

@media (max-width: 560px) {
  h1 { font-size: 3rem; }
  h2 { font-size: 2.35rem; }
  .button { min-height: 50px; padding-inline: 17px; font-size: .7rem; gap: 16px; }
  .hero-copy h1, .hero-copy h2 { font-size: clamp(2.85rem,14.5vw,4.15rem); }
  .hero-copy__actions { display: grid; }
  .hero-copy__actions .button { width: 100%; }
  .project-showcase { grid-auto-columns: 91vw; }
  .project-card__media, .projects-grid .project-card__media { height: 300px; }
  .capabilities__grid, .values-grid, .benefits-grid, .departments-grid, .projects-grid, .news-grid { grid-template-columns: 1fr; }
  .news-grid--home .news-card:last-child { display: block; }
  .capability, .values-grid article, .benefits-grid article { min-height: 250px; }
  .home-offer__visual { min-height: 310px; }
  .home-offer__visual span { width: 78px; height: 78px; font-size: 1.3rem; }
  .filter-group { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 3px; }
  .filter-group > span { position: sticky; left: 0; z-index: 2; min-width: 62px; background: var(--bg); }
  .catalog-summary .button { display: none; }
  .offer-card__media { min-height: 290px; }
  .offer-card__body { padding: 25px 20px; }
  .news-chips { flex-wrap: nowrap; overflow-x: auto; }
  .contact-office { padding: 24px 0; }
  .contact-office h2 { font-size: 1.2rem; }
  .map-card { margin-inline: 12px; }
  .about-numbers article { padding: 17px 14px; }
  .about-quote { max-width: calc(100% - 30px); font-size: .95rem; }
  .timeline article { grid-template-columns: 70px 1fr; }
  .project-hero__copy h1 { font-size: clamp(3.2rem,15vw,5.2rem); }
  .project-hero__facts article { padding: 15px; }
  .project-hero__facts strong { font-size: .8rem; }
  .apartment-filters { flex-direction: column; }
  .article-hero { padding-top: 140px; }
  .article-content { padding-top: 50px; }
  .article-content article p, .article-content article li { font-size: .94rem; }
  .site-footer__nav { grid-template-columns: 1fr; }
  .cookie-banner { left: 12px; bottom: 12px; width: calc(100% - 24px); }
  .modal__panel { padding: 65px 22px 30px; }
  .scroll-top { right: 14px; bottom: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* ========================================================================== 
   LEV Development redesign v2 — cinematic public experience
   ========================================================================== */
:root {
  --gold: #c99a56;
  --gold-soft: rgba(201,154,86,.18);
  --content: min(1560px, calc(100% - 80px));
  --header-h: 88px;
}
html { scrollbar-gutter: stable; }
body { overflow-x: hidden; }
::selection { background: var(--accent); color: #101215; }
picture { display: block; }
picture > img { width: 100%; height: 100%; object-fit: cover; }
.shell { width: var(--content); }
.section--soft { background: var(--surface); }
.section-heading { align-items: end; }
.section-heading > p { max-width: 510px; }
.button--glass { background: rgba(7,10,13,.2); border-color: rgba(255,255,255,.32); color: #fff; backdrop-filter: blur(16px); }
.button--glass:hover { background: rgba(255,255,255,.12); }
.page-transition { position: fixed; z-index: 1000; inset: 0; display: grid; place-items: center; pointer-events: none; background: #0b0d10; color: #fff; transform: translateY(-100%); transition: transform .7s var(--ease); }
.page-transition span { font-size: clamp(4rem,16vw,12rem); font-weight: 800; letter-spacing: -.1em; opacity: .08; }
body.is-leaving .page-transition { transform: none; }

/* High resolution logo, language and theme controls */
.brand img { width: 118px; max-height: 42px; object-fit: contain; object-position: left center; image-rendering: auto; }
.language-switch { position: relative; }
.language-switch > button { height: 44px; display: flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; font-size: .7rem; font-weight: 750; letter-spacing: .1em; }
.language-switch > button i { font-style: normal; color: var(--soft); transition: transform .25s; }
.language-switch.is-open > button i { transform: rotate(180deg); }
.language-switch > div { position: absolute; top: calc(100% + 9px); right: 0; min-width: 106px; padding: 6px; border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(-7px); transition: .25s; }
.language-switch.is-open > div { opacity: 1; visibility: visible; transform: none; }
.language-switch > div a { display: block; padding: 9px 11px; color: var(--muted); font-size: .72rem; font-weight: 700; }
.language-switch > div a:hover, .language-switch > div a.is-active { background: var(--surface-2); color: var(--text); }
.theme-switch { width: 66px; height: 34px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.theme-switch__track { position: relative; display: block; width: 100%; height: 100%; border: 1px solid var(--line-strong); border-radius: 99px; background: rgba(255,255,255,.04); transition: background .35s, border-color .35s; }
.theme-switch__thumb { position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #f5f3ec; color: #111; box-shadow: 0 5px 15px rgba(0,0,0,.25); transition: transform .45s var(--ease), background .3s; }
.theme-switch svg { position: absolute; width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.8; transition: opacity .28s, transform .4s; }
.theme-switch__sun { opacity: 0; transform: rotate(-90deg) scale(.5); }
.theme-switch__moon { opacity: 1; transform: none; }
html[data-theme="light"] .theme-switch__thumb { transform: translateX(32px); background: #111419; color: #fff; }
html[data-theme="light"] .theme-switch__sun { opacity: 1; transform: none; }
html[data-theme="light"] .theme-switch__moon { opacity: 0; transform: rotate(90deg) scale(.5); }

/* Mobile menu split-screen */
.mobile-menu { display: grid; grid-template-columns: minmax(280px, .7fr) 1.3fr; padding: 0; background: #080a0d; }
.mobile-menu__visual { position: relative; overflow: hidden; min-height: 100svh; }
.mobile-menu__visual-image { position: absolute; inset: 0; background: linear-gradient(180deg,transparent 35%,rgba(0,0,0,.8)), url('../images/projects/hero-night-1920.webp') 55% center/cover no-repeat; transform: scale(1.06); transition: transform 1.3s var(--ease); }
.mobile-menu.is-open .mobile-menu__visual-image { transform: scale(1); }
.mobile-menu__visual > span { position: absolute; left: 42px; bottom: 38px; font-size: .8rem; letter-spacing: .16em; text-transform: uppercase; }
.mobile-menu__content { display: flex; flex-direction: column; padding: 28px clamp(28px,5vw,76px) 38px; }
.mobile-menu__nav { margin-top: auto; }
.mobile-menu__nav a { gap: 20px; transform: translateX(25px); opacity: 0; transition: opacity .45s, transform .55s var(--ease); }
.mobile-menu.is-open .mobile-menu__nav a { opacity: 1; transform: none; }
.mobile-menu.is-open .mobile-menu__nav a:nth-child(2){transition-delay:.06s}.mobile-menu.is-open .mobile-menu__nav a:nth-child(3){transition-delay:.12s}.mobile-menu.is-open .mobile-menu__nav a:nth-child(4){transition-delay:.18s}.mobile-menu.is-open .mobile-menu__nav a:nth-child(5){transition-delay:.24s}
.mobile-menu__nav a small { width: 35px; color: rgba(255,255,255,.35); font-size: .65rem; }
.mobile-menu__nav a b { margin-left: auto; font-size: 1rem; font-weight: 400; }
.mobile-menu__footer { margin-top: 45px; }

/* Cinematic hero */
.hero--cinematic { min-height: 100svh; height: max(760px, 100svh); background: #090b0e; }
.hero__slides, .hero-slide { position: absolute; inset: 0; }
.hero-slide { z-index: 0; opacity: 0; visibility: hidden; transition: opacity 1s ease, visibility 1s; }
.hero-slide.is-active { z-index: 1; opacity: 1; visibility: visible; }
.hero-slide__background { position: absolute; inset: 0; background-position: center; background-repeat: no-repeat; background-size: cover; transform: scale(1.08); transition: transform 8s cubic-bezier(.15,.65,.2,1); will-change: transform; }
.hero-slide.is-active .hero-slide__background { transform: scale(1); }
.hero-slide__background--night { background-image: url('../images/projects/hero-night-2560.webp'); }
.hero-slide__background--day { background-image: url('../images/projects/hero-day-2560.webp'); }
.hero-slide__background--invest { background-image: url('../images/projects/ikon-resort-1920.webp'); }
.hero-slide__veil { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(4,7,11,.92) 0%,rgba(5,8,12,.62) 38%,rgba(5,8,12,.18) 70%,rgba(5,8,12,.5) 100%), linear-gradient(180deg,rgba(5,7,10,.32),transparent 54%,rgba(5,7,10,.78)); }
.hero-slide__veil--light { background: linear-gradient(90deg,rgba(243,242,237,.95) 0%,rgba(244,243,238,.7) 40%,rgba(244,243,238,.12) 72%), linear-gradient(180deg,rgba(244,243,238,.12),transparent 60%,rgba(244,243,238,.28)); }
.hero-slide__inner { position: relative; z-index: 2; height: 100%; display: flex; align-items: center; justify-content: space-between; padding-top: 76px; padding-bottom: 150px; color: #fff; }
.hero-copy { width: min(780px, 65vw); }
.hero-copy h1, .hero-copy h2 { margin: 0 0 25px; font-size: clamp(4.2rem, 7.7vw, 8.4rem); line-height: .9; color: inherit; }
.hero-copy__lead { max-width: 610px; margin: 0; color: rgba(255,255,255,.76); font-size: clamp(.95rem,1.25vw,1.15rem); line-height: 1.75; }
.hero-copy__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 38px; }
.hero-copy--dark { color: #11151a; }
.hero-copy--dark .hero-copy__lead { color: rgba(17,21,26,.68); }
.hero-copy--dark .eyebrow { color: #825e2b; }
.hero-project-label { position: absolute; right: 0; bottom: 180px; display: grid; grid-template-columns: 38px auto; gap: 18px; padding-left: 25px; border-left: 1px solid rgba(255,255,255,.4); }
.hero-project-label > span { color: rgba(255,255,255,.5); font-size: .72rem; }
.hero-project-label small { display: block; margin-bottom: 4px; color: rgba(255,255,255,.58); font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.hero-project-label strong { display: block; font-size: 2rem; letter-spacing: -.06em; }
.hero-project-label p { margin: 3px 0 0; color: rgba(255,255,255,.7); font-size: .72rem; }
.hero-project-label--dark { color: #11151a; border-color: rgba(17,21,26,.35); }
.hero-project-label--dark > span, .hero-project-label--dark small, .hero-project-label--dark p { color: rgba(17,21,26,.58); }
.hero-reveal { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .8s var(--ease); }
.hero-slide.is-active .hero-reveal { opacity: 1; transform: none; }
.hero-slide.is-active .hero-reveal:nth-child(2){transition-delay:.12s}.hero-slide.is-active .hero-reveal:nth-child(3){transition-delay:.22s}.hero-slide.is-active .hero-reveal:nth-child(4){transition-delay:.32s}
.hero__bottom { position: absolute; z-index: 4; left: 50%; bottom: 34px; transform: translateX(-50%); display: flex; justify-content: space-between; align-items: end; color: #fff; }
.hero-stats { width: min(720px,70%); display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid rgba(255,255,255,.18); background: rgba(9,11,14,.42); backdrop-filter: blur(18px); }
.hero-stats > div { padding: 15px 20px; border-right: 1px solid rgba(255,255,255,.14); }
.hero-stats > div:last-child { border: 0; }
.hero-stats strong { display: block; font-size: 1.35rem; line-height: 1; }
.hero-stats span { display: block; margin-top: 8px; color: rgba(255,255,255,.62); font-size: .62rem; }
.hero-controls { display: flex; align-items: center; gap: 7px; }
.hero-controls > button { width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.28); background: rgba(9,11,14,.28); color: #fff; cursor: pointer; backdrop-filter: blur(12px); transition: .25s; }
.hero-controls > button:hover { background: #fff; color: #111; }
.hero-pagination { display: flex; align-items: center; gap: 9px; margin-right: 15px; font-size: .68rem; }
.hero-pagination i { width: 55px; height: 1px; background: rgba(255,255,255,.4); }
.hero-pagination i::after { content: ''; display: block; width: var(--hero-progress,0%); height: 1px; background: #fff; }
.hero-scroll { position: absolute; z-index: 5; right: 19px; top: 50%; display: grid; justify-items: center; gap: 14px; color: rgba(255,255,255,.62); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; transform: rotate(90deg) translateY(-50%); transform-origin: right top; }

.marquee { overflow: hidden; padding: 20px 0; border-bottom: 1px solid var(--line); background: var(--bg); }
.marquee > div { width: max-content; display: flex; align-items: center; gap: 25px; animation: levMarquee 26s linear infinite; }
.marquee span { color: var(--soft); font-size: .7rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.marquee i { color: var(--accent); }
@keyframes levMarquee { to { transform: translateX(-50%); } }

/* Project and news rich blocks */
.project-showcase { scrollbar-width: none; cursor: grab; }
.project-showcase:active { cursor: grabbing; }
.project-card picture { overflow: hidden; }
.project-card picture img { transition: transform 1s var(--ease), filter .5s; }
.project-card:hover picture img { transform: scale(1.045); }
.project-card:hover .project-card__arrow { transform: rotate(45deg); }
.project-card__arrow { transition: transform .4s var(--ease); }
.news-home { overflow: hidden; }
.news-feature-grid { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.news-feature-grid > .news-card:first-child { grid-row: span 2; min-height: 650px; }
.news-feature-grid > .news-card:not(:first-child) { min-height: 316px; }
.news-feature-grid--catalog { grid-template-columns: repeat(12,1fr); }
.news-feature-grid--catalog > .news-card { grid-column: span 4; min-height: 420px; }
.news-feature-grid--catalog > .news-card:first-child { grid-column: span 8; grid-row: span 2; min-height: 720px; }
.news-feature-grid--catalog > .news-card:nth-child(2), .news-feature-grid--catalog > .news-card:nth-child(3) { grid-column: span 4; min-height: 351px; }
.news-card[hidden], .project-card[hidden] { display: none !important; }
.news-toolbar, .catalog-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: 42px; }
.news-toolbar__filters, .project-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.news-toolbar__filters button, .project-filters button, .catalog-view button { min-height: 42px; padding: 0 15px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; transition: .25s; }
.news-toolbar__filters button:hover, .news-toolbar__filters button.is-active, .project-filters button:hover, .project-filters button.is-active, .catalog-view button.is-active { background: var(--text); border-color: var(--text); color: var(--bg); }
.news-search { min-width: min(340px,100%); display: flex; align-items: center; gap: 10px; padding: 0 15px; border-bottom: 1px solid var(--line-strong); }
.news-search input { width: 100%; height: 44px; border: 0; outline: 0; background: transparent; color: var(--text); }
.catalog-toolbar__count { color: var(--muted); font-size: .78rem; }
.catalog-toolbar__count strong { color: var(--text); font-size: 1.4rem; }
.catalog-view { display: flex; gap: 5px; }
.catalog-empty { padding: 80px 0; text-align: center; }
.news-source-note { padding: 28px 0; background: var(--surface); border-top: 1px solid var(--line); }
.news-source-note .shell { display: flex; gap: 15px; align-items: flex-start; }
.news-source-note span { flex: 0 0 26px; width: 26px; height: 26px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; }
.news-source-note p { margin: 0; font-size: .74rem; }

/* Page hero system */
.page-hero { position: relative; min-height: min(760px,82svh); display: flex; align-items: end; overflow: hidden; padding: 180px 0 95px; background: #0a0c0f; color: #fff; }
.page-hero__media, .page-hero__scrim { position: absolute; inset: 0; }
.page-hero__media { background-position: center; background-size: cover; transform: scale(1.03); animation: heroMediaIn 1.7s var(--ease) both; }
@keyframes heroMediaIn { from { transform:scale(1.12); opacity:.2 } }
.page-hero__scrim { background: linear-gradient(90deg,rgba(5,7,10,.9),rgba(5,7,10,.22)),linear-gradient(180deg,transparent 35%,rgba(5,7,10,.78)); }
.page-hero .shell { position: relative; z-index: 1; }
.page-hero h1 { max-width: 1100px; margin-bottom: 28px; font-size: clamp(4rem,7.4vw,8rem); }
.page-hero .shell > p:last-child { max-width: 640px; color: rgba(255,255,255,.68); font-size: 1rem; }
.page-hero--projects .page-hero__media { background-image: url('../images/projects/vero-1920.webp'); }
.page-hero--news .page-hero__media { background-image: url('../images/news/news-1-1920.webp'); }
.page-hero--offers .page-hero__media { background-image: url('../images/projects/soul-park-1920.webp'); }
.page-hero--about .page-hero__media { background-image: url('../images/projects/perfect-life-1920.webp'); }
.page-hero--contacts .page-hero__media { background-image: url('../images/projects/central-hills-1920.webp'); }
.page-hero--simple { min-height: 580px; }

/* Projects catalog and map */
.projects-catalog { position: relative; }
.projects-map { margin-top: 70px; }
.projects-map__surface { position: relative; min-height: 590px; overflow: hidden; border: 1px solid var(--line); background: radial-gradient(circle at 35% 45%,rgba(201,154,86,.15),transparent 30%), linear-gradient(145deg,var(--surface-2),var(--surface)); }
.map-region { position: absolute; border: 1px solid var(--line); opacity: .35; transform: rotate(-7deg); }
.map-region--west { left: 13%; top: 20%; width: 42%; height: 52%; border-radius: 46% 55% 40% 60%; }
.map-region--east { right: 10%; top: 15%; width: 38%; height: 57%; border-radius: 55% 40% 58% 36%; }
.project-map-pin { position: absolute; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 0; border-radius: 50%; background: var(--text); color: var(--bg); cursor: pointer; box-shadow: 0 13px 35px rgba(0,0,0,.24); }
.project-map-pin span { position: absolute; top: calc(100% + 9px); width: max-content; padding: 7px 9px; background: var(--surface); color: var(--text); font-size: .66rem; opacity: 0; transform: translateY(-5px); transition: .2s; }
.project-map-pin:hover span { opacity: 1; transform: none; }

/* Detail project */
.project-hero { min-height: 100svh; padding: 0; }
.project-hero__media, .project-hero__overlay { position: absolute; inset: 0; }
.project-hero__media picture, .project-hero__media img { width: 100%; height: 100%; }
.project-hero__media img { object-fit: cover; animation: heroMediaIn 1.8s var(--ease) both; }
.project-hero__overlay { background: linear-gradient(90deg,rgba(5,7,10,.9) 0%,rgba(5,7,10,.46) 44%,rgba(5,7,10,.1) 70%),linear-gradient(180deg,rgba(5,7,10,.25),transparent 45%,rgba(5,7,10,.82)); }
.project-hero__inner { position: relative; z-index: 1; min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 150px; padding-bottom: 45px; color: #fff; }
.project-hero__top { display: flex; justify-content: space-between; align-items: flex-end; gap: 50px; }
.project-hero__copy { max-width: 900px; }
.project-hero__copy h1 { margin: 0 0 25px; font-size: clamp(5rem,11vw,12rem); }
.project-hero__copy > p { max-width: 650px; color: rgba(255,255,255,.72); }
.project-hero__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.project-hero__accent { display: grid; place-items: center; width: 150px; aspect-ratio: 1; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; color: rgba(255,255,255,.75); text-align: center; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.project-hero__facts { margin-top: 50px; }
.project-subnav { position: sticky; z-index: 40; top: var(--header-h); border-bottom: 1px solid var(--line); background: color-mix(in srgb,var(--bg) 90%,transparent); backdrop-filter: blur(20px); }
.project-subnav .shell { display: flex; gap: 36px; overflow-x: auto; scrollbar-width: none; }
.project-subnav a { flex: 0 0 auto; padding: 18px 0; color: var(--muted); font-size: .7rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.project-concept__grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: 8vw; align-items: center; }
.project-concept__copy .large-copy { color: var(--text); font-size: clamp(1.2rem,1.8vw,1.8rem); line-height: 1.55; }
.project-gallery { overflow: hidden; }
.project-gallery__track { display: grid; grid-template-columns: 1.45fr .75fr; grid-template-rows: repeat(2,minmax(240px,1fr)); gap: 12px; }
.project-gallery__track picture:first-child { grid-row: 1 / 3; }
.project-gallery__track picture { min-height: 300px; overflow: hidden; }
.project-gallery__track img { transition: transform .8s var(--ease); }
.project-gallery__track picture:hover img { transform: scale(1.035); }
.project-advantages { background: var(--surface); }
.advantage-grid { display: grid; grid-template-columns: repeat(4,1fr); border-left: 1px solid var(--line); border-top: 1px solid var(--line); }
.advantage-grid article { min-height: 340px; display: flex; flex-direction: column; padding: 28px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.advantage-grid__icon { width: 50px; height: 50px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--accent); font-size: 1.3rem; }
.advantage-grid article h3 { margin-top: auto; }
.advantage-grid article p { margin-bottom: 0; font-size: .8rem; }
.project-compare__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: start; }
.project-compare .timeline { margin-top: 30px; }
.project-compare picture { min-height: 600px; }
.apartment-finder { background: #0b0e12; color: #fff; }
.apartment-finder__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; align-items: start; }
.apartment-finder__grid p { color: #9ea4aa; }
.apartment-form { display: grid; grid-template-columns: repeat(2,1fr); border-top: 1px solid rgba(255,255,255,.2); border-left: 1px solid rgba(255,255,255,.2); }
.apartment-form > label { min-height: 105px; display: grid; align-content: center; gap: 10px; padding: 20px; border-right: 1px solid rgba(255,255,255,.2); border-bottom: 1px solid rgba(255,255,255,.2); }
.apartment-form label > span { color: #8f969d; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.apartment-form select, .apartment-form input[type="range"] { width: 100%; border: 0; background: transparent; color: #fff; }
.chip-select, .check-row { display: flex; flex-wrap: wrap; gap: 7px; }
.chip-select label, .check-row label { position: relative; cursor: pointer; }
.chip-select input, .check-row input { position: absolute; opacity: 0; }
.chip-select i, .check-row i { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 36px; padding: 0 10px; border: 1px solid rgba(255,255,255,.22); color: #bec3c7; font-style: normal; }
.chip-select input:checked + i { background: #fff; color: #111; }
.check-row label { display: flex; align-items: center; gap: 8px; font-size: .75rem; }
.check-row i { min-width: 17px; width: 17px; height: 17px; padding: 0; }
.check-row input:checked + i { background: var(--accent); box-shadow: inset 0 0 0 4px #0b0e12; }
.apartment-form .button { grid-column: 1 / -1; }
.progress-overview { display: flex; align-items: center; gap: 25px; margin: 55px 0; padding: 25px; border: 1px solid var(--line); }
.progress-overview > a { margin-left: auto; }
.progress-ring { --p: calc(var(--progress) * 1%); width: 105px; height: 105px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: conic-gradient(var(--accent) var(--p),var(--surface-3) 0); position: relative; }
.progress-ring::after { content:''; position:absolute; inset:7px; border-radius:50%; background:var(--bg); }
.progress-ring span { position:relative; z-index:1; font-weight:700; }
.progress-overview h3 { margin: 0 0 5px; }
.progress-overview p { margin: 0; }
.progress-timeline { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.progress-timeline article { min-height: 230px; padding: 25px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.progress-timeline article > span { color: var(--soft); font-size: .7rem; }
.progress-timeline article > div { margin-top: 70px; }
.linear-progress { height: 2px; margin: 20px 0 8px; background: var(--surface-3); }
.linear-progress i { display: block; height: 100%; background: var(--accent); }
.project-documents { background: var(--surface); }
.project-documents__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; }
.document-list { border-top: 1px solid var(--line); }
.document-list a { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.document-list > a > span { color: var(--accent); font-size: .7rem; font-weight: 800; }
.document-list strong, .document-list small { display: block; }
.document-list small { color: var(--muted); }
.final-cta { position: relative; overflow: hidden; padding: 140px 0; background: #0a0d10; color: #fff; }
.final-cta--image::before, .final-cta__media { content:''; position:absolute; inset:0; background:linear-gradient(90deg,rgba(5,7,10,.9),rgba(5,7,10,.25)),url('../images/projects/hero-night-1920.webp') center/cover; }
.final-cta__inner { position: relative; z-index: 1; }
.final-cta h2 { font-size: clamp(4rem,7vw,8rem); }

/* News article */
.article-page { background: var(--bg); }
.article-hero { padding: 190px 0 90px; }
.article-hero__inner { max-width: 1280px; }
.article-hero__meta { display: flex; flex-wrap: wrap; gap: 16px 30px; margin-bottom: 45px; color: var(--soft); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; }
.article-hero__meta a { color: var(--text); }
.article-hero__lead { max-width: 830px; margin: 30px 0 0; color: var(--muted); font-size: clamp(1.1rem,1.6vw,1.5rem); }
.article-cover { width: var(--content); max-width: none; height: min(74vw,780px); margin: 0 auto; }
.article-cover__picture { width: 100%; height: 100%; }
.article-layout { display: grid; grid-template-columns: 90px minmax(0,850px); justify-content: center; gap: 80px; padding-top: 85px; padding-bottom: 130px; }
.article-share { position: sticky; top: 130px; align-self: start; display: grid; justify-items: center; gap: 14px; }
.article-share span { writing-mode: vertical-rl; transform: rotate(180deg); margin-bottom: 10px; color: var(--soft); font-size: .66rem; text-transform: uppercase; letter-spacing: .1em; }
.article-share a, .article-share button { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--line); background: transparent; color: var(--text); cursor: pointer; }
.article-content { padding: 0; }
.article-content > p { font-size: 1.05rem; line-height: 1.85; }
.article-intro { color: var(--text); font-size: clamp(1.25rem,1.7vw,1.55rem) !important; line-height: 1.65 !important; }
.article-source { display: flex; justify-content: space-between; gap: 20px; margin-top: 60px; padding: 22px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font-size: .72rem; }
.article-source span { color: var(--soft); text-transform: uppercase; letter-spacing: .1em; }
.related-news { background: var(--surface); }

/* About, contacts, offers */
.about-story__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: center; }
.about-story__copy .large-copy { color: var(--text); }
.about-story__visual picture { min-height: 650px; }
.values, .offers-page { background: var(--surface); }
.capability__icon { width: 48px; height: 48px; display: grid; place-items:center; border:1px solid var(--line); color:var(--accent); }
.installment__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.installment-steps { counter-reset: step; border-top: 1px solid var(--line); }
.installment-steps article { counter-increment: step; position: relative; padding: 25px 0 25px 65px; border-bottom: 1px solid var(--line); }
.installment-steps article::before { content: '0' counter(step); position:absolute; left:0; color:var(--accent); font-size:.7rem; }
.contacts-page__grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 8vw; }
.contacts-list { display: grid; gap: 18px; }
.contacts-list article { padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.contact-form { padding: clamp(28px,5vw,60px); background: var(--paper); color: #111419; }
.contact-form h2 { font-size: clamp(2.5rem,4vw,4.4rem); }
.contact-form label { display: grid; gap: 8px; margin-top: 18px; color: #60656a; font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }
.contact-form input, .contact-form textarea, .contact-form select { width:100%; border:0; border-bottom:1px solid rgba(0,0,0,.2); padding:12px 0; outline:0; background:transparent; color:#111; text-transform:none; }
.contact-form .button { margin-top: 25px; }

/* Social stage */
.social-stage { padding: 125px 0; background: var(--paper); color: #111419; }
.social-stage__inner { display: grid; grid-template-columns: .85fr 1.15fr; gap: 8vw; align-items: end; }
.social-stage__copy h2 { max-width: 700px; font-size: clamp(3rem,5vw,6rem); }
.social-stage__copy p { color: #656a6e; }
.social-stage__grid { border-top: 1px solid rgba(0,0,0,.16); }
.social-tile { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 17px; padding: 22px 0; border-bottom: 1px solid rgba(0,0,0,.16); transition: padding .3s var(--ease); }
.social-tile:hover { padding-left: 12px; }
.social-tile__icon { width: 44px; height:44px; display:grid; place-items:center; border:1px solid rgba(0,0,0,.16); }
.social-tile__icon svg { width:20px; height:20px; fill:currentColor; }
.social-tile small, .social-tile strong { display: block; }
.social-tile small { color:#999; font-size:.62rem; }
.social-tile strong { font-size:1.1rem; text-transform:capitalize; }
.social-tile b { font-weight: 400; }
html[data-theme="dark"] .social-stage { background:#edece7; }

/* Responsive */
@media (max-width: 1180px) {
  :root { --content: min(100% - 48px, 1200px); }
  .main-nav { display:none; }
  .menu-toggle { display:block; }
  .desktop-contact { display:none; }
  .hero-copy { width:min(760px,78vw); }
  .hero-project-label { display:none; }
  .advantage-grid { grid-template-columns:repeat(2,1fr); }
  .news-feature-grid--catalog > .news-card { grid-column:span 6; }
  .news-feature-grid--catalog > .news-card:first-child { grid-column:span 12; grid-row:auto; min-height:620px; }
  .news-feature-grid--catalog > .news-card:nth-child(2),.news-feature-grid--catalog > .news-card:nth-child(3){grid-column:span 6;min-height:420px}
}
@media (max-width: 900px) {
  :root { --content: calc(100% - 34px); --header-h:74px; }
  .section { padding: 88px 0; }
  .site-header__inner { height:74px; }
  .language-switch > button { height:40px; }
  .theme-switch { width:58px;height:32px; }
  html[data-theme="light"] .theme-switch__thumb { transform:translateX(26px); }
  .mobile-menu { grid-template-columns:1fr; }
  .mobile-menu__visual { display:none; }
  .hero--cinematic { min-height:790px;height:100svh; }
  .hero-slide__inner { align-items:flex-end;padding-bottom:190px; }
  .hero-copy { width:100%; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(3.7rem,12vw,6.8rem); }
  .hero-stats { width:100%; }
  .hero__bottom { bottom:28px; display:grid;gap:18px; }
  .hero-controls { justify-self:end; }
  .hero-scroll { display:none; }
  .finder__grid,.philosophy__grid,.project-concept__grid,.project-compare__grid,.apartment-finder__grid,.project-documents__grid,.about-story__grid,.installment__grid,.contacts-page__grid,.social-stage__inner { grid-template-columns:1fr;gap:50px; }
  .finder-form { grid-template-columns:1fr 1fr; }
  .finder-form .button { grid-column:1/-1; }
  .news-feature-grid { grid-template-columns:1fr; }
  .news-feature-grid > .news-card:first-child { grid-row:auto;min-height:540px; }
  .project-gallery__track { grid-template-columns:1fr 1fr;grid-template-rows:auto; }
  .project-gallery__track picture:first-child { grid-column:1/-1;grid-row:auto; }
  .progress-timeline { grid-template-columns:repeat(2,1fr); }
  .project-hero__facts { grid-template-columns:repeat(2,1fr); }
  .project-hero__top { align-items:flex-start; }
  .project-hero__accent { display:none; }
  .article-layout { grid-template-columns:1fr;gap:35px; }
  .article-share { position:static;display:flex;justify-content:flex-start; }
  .article-share span { writing-mode:initial;transform:none;align-self:center; }
  .site-footer__top,.newsletter { grid-template-columns:1fr; }
  .site-footer__bottom { grid-template-columns:1fr; }
  .social-links { justify-self:start; }
}
@media (max-width: 620px) {
  :root { --content: calc(100% - 28px); }
  body { font-size:15px; }
  .site-header__actions { gap:7px; }
  .brand img { width:95px; }
  .language-switch > button { padding:0 9px; }
  .theme-switch { width:50px; }
  .theme-switch__thumb { width:24px;height:24px; }
  html[data-theme="light"] .theme-switch__thumb { transform:translateX(20px); }
  .hero--cinematic { min-height:740px; }
  .hero-slide__inner { padding-top:90px;padding-bottom:185px; }
  .hero-copy h1,.hero-copy h2 { font-size:clamp(3.2rem,15vw,5.4rem); }
  .hero-copy__lead { font-size:.86rem;line-height:1.6; }
  .hero-copy__actions .button { width:100%; }
  .hero-stats { grid-template-columns:repeat(2,1fr); }
  .hero-stats > div { padding:12px 13px; }
  .hero-stats > div:nth-child(2) { border-right:0; }
  .hero-stats > div:nth-child(-n+2) { border-bottom:1px solid rgba(255,255,255,.14); }
  .hero-stats strong { font-size:1.1rem; }
  .hero-controls { display:none; }
  .marquee { padding:15px 0; }
  .section-heading { display:grid;gap:20px; }
  .finder-form { grid-template-columns:1fr; }
  .finder-form .button { grid-column:auto; }
  .news-feature-grid--catalog { display:grid;grid-template-columns:1fr; }
  .news-feature-grid--catalog > .news-card,.news-feature-grid--catalog > .news-card:first-child,.news-feature-grid--catalog > .news-card:nth-child(2),.news-feature-grid--catalog > .news-card:nth-child(3){grid-column:auto;min-height:420px}
  .news-toolbar,.catalog-toolbar { align-items:stretch;flex-direction:column; }
  .news-search { min-width:0;width:100%; }
  .page-hero { min-height:680px;padding:140px 0 65px; }
  .page-hero h1 { font-size:clamp(3.4rem,15vw,5.2rem); }
  .project-hero__inner { padding-bottom:25px; }
  .project-hero__copy h1 { font-size:clamp(4rem,22vw,7rem); }
  .project-hero__facts { grid-template-columns:1fr 1fr;margin-top:30px; }
  .project-hero__facts article { padding:14px; }
  .project-hero__actions .button { width:100%; }
  .project-gallery__track { grid-template-columns:1fr; }
  .project-gallery__track picture:first-child { grid-column:auto; }
  .advantage-grid,.progress-timeline { grid-template-columns:1fr; }
  .advantage-grid article { min-height:260px; }
  .apartment-form { grid-template-columns:1fr; }
  .apartment-form .button { grid-column:auto; }
  .progress-overview { align-items:flex-start;flex-wrap:wrap; }
  .progress-overview > a { width:100%;margin-left:0; }
  .article-cover { width:100%;height:62vw;min-height:290px; }
  .article-layout { padding-top:55px;padding-bottom:85px; }
  .article-source { flex-direction:column; }
  .site-footer__nav { grid-template-columns:1fr 1fr; }
  .social-stage { padding:90px 0; }
  .not-found__inner > div { flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important; }
  .reveal,.hero-reveal { opacity:1!important;transform:none!important; }
}
.project-gallery__track figure { position:relative; min-height:300px; margin:0; overflow:hidden; }
.project-gallery__track figure:first-child { grid-row:1 / 3; }
.project-gallery__track figure picture { width:100%;height:100%; }
.project-gallery__track figure figcaption { position:absolute;left:15px;bottom:15px;padding:8px 10px;background:rgba(7,9,12,.62);color:#fff;font-size:.62rem;backdrop-filter:blur(12px); }
.chip-select button { min-width:42px;height:36px;padding:0 11px;border:1px solid rgba(255,255,255,.22);background:transparent;color:#bec3c7;cursor:pointer; }
.chip-select button.is-active { background:#fff;color:#111; }
.project-map-pin { left:var(--x);top:var(--y);transform:translate(-50%,-50%); }
@media(max-width:900px){.project-gallery__track figure:first-child{grid-column:1/-1;grid-row:auto}}
@media(max-width:620px){.project-gallery__track figure:first-child{grid-column:auto}}
