/* Generated by tools/build_css.py. Edit tools/styles; preserve source order. */

/* Source: components/visual.css */
:root{--visual-ease:cubic-bezier(.22,1,.36,1)}
html{scroll-behavior:smooth;scroll-padding-top:100px}.storyline__timeline{align-items:stretch!important}.storyline-step{display:flex!important;flex-direction:column;min-width:0;overflow:hidden;border:1px solid #5a665326!important}.storyline-step__media{aspect-ratio:16/9!important;height:auto!important;width:100%!important;flex:none!important;position:relative;overflow:hidden}.storyline-step__copy{display:flex!important;flex-direction:column;align-items:flex-start;flex:1;padding:clamp(24px,3.2vw,54px)!important}.storyline-step__copy>p{font-size:13px;letter-spacing:.12em;line-height:1.5;margin:0 0 22px!important}.storyline-step__copy h3{font-size:clamp(28px,2.7vw,43px)!important;line-height:1.13!important;letter-spacing:-.035em;max-width:620px;margin:0 0 26px!important;min-height:2.3em}.storyline-step__copy>span{font-size:clamp(16px,1.25vw,20px)!important;line-height:1.65!important;max-width:680px}.storyline-step__copy>a{margin-top:auto!important;padding-top:28px;min-height:48px;line-height:1.5}.storyline-step__point,.storyline__straight-line{display:none!important}.storyline-step__media img,.insight-card__image img,.city-about__card-image,.project-card__image img{transition:transform 850ms var(--visual-ease)!important;will-change:auto}.storyline-step:focus-within img{transform:scale(1.025)}.visual-caption{position:absolute;bottom:12px;left:12px;z-index:2;color:#fff;background:#213323d9;padding:6px 10px;border-radius:3px;font-size:12px;line-height:1.4;letter-spacing:.02em;pointer-events:none}.insight-card{display:flex;flex-direction:column;min-width:0}.insight-card>a{margin-top:auto}.city-about__card-copy{min-height:150px}.process-slider__media img{object-position:center!important}.process-slider__card{align-items:stretch!important}.process-slider__text{line-height:1.7!important;max-width:640px}.project-card__body{display:flex;flex-direction:column}.project-card__actions{margin-top:auto!important;padding-top:22px}.hero__cta,.project-button,.page-header__cta,.atlas-cta{transition:background-color .25s,color .25s,transform .35s var(--visual-ease),box-shadow .35s!important}.ui-accordion__panel{transition:grid-template-rows .4s var(--visual-ease),opacity .3s!important}.ui-accordion__trigger{min-height:64px}.ui-accordion__icon{transition:transform .3s var(--visual-ease)}.motion-ready .storyline-step,.motion-ready .city-about__card,.motion-ready .insight-card{opacity:0;transform:translateY(22px);transition:opacity .65s var(--visual-ease) var(--reveal-delay,0ms),transform .75s var(--visual-ease) var(--reveal-delay,0ms)}.motion-ready .storyline-step.is-visible,.motion-ready .city-about__card.is-visible,.motion-ready .insight-card.is-visible{opacity:1;transform:none}.motion-ready .js-reveal{transition-duration:.7s!important;transition-timing-function:var(--visual-ease)!important}.city-about__card-hover{transition:opacity .3s!important}.city-architecture__track,.gallery__track{scroll-behavior:smooth;scroll-snap-type:x proximity}.city-architecture__card,.gallery__card{scroll-snap-align:start}.article-cover img{object-fit:cover}.article-body p{max-width:78ch}.village3d-section{background:#f2f3eb;padding-top:clamp(60px,7vw,110px);padding-bottom:clamp(60px,7vw,110px);color:#293a2b}.village3d-heading{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:end;margin-bottom:32px}.village3d-heading>p{font-size:18px;line-height:1.7;max-width:460px;color:#626d5c}.village3d-heading .section-kicker{font-size:12px;letter-spacing:.16em;margin-bottom:20px}.village3d-shell{border:1px solid #acb69c;border-radius:12px;overflow:hidden;background:#e3e8d9}.village3d-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#f1f3eb;border-bottom:1px solid #c1c9b5;font-size:14px}.village3d-toolbar>div{display:flex;flex-wrap:wrap;gap:6px}.village3d-toolbar button,.village3d-picker button{font:inherit;border:1px solid #a6b18f;color:#31462b;background:transparent;min-width:44px;min-height:44px;padding:9px 12px;border-radius:4px;cursor:pointer}.village3d-toolbar button[aria-pressed=true],.village3d-picker button[aria-pressed=true]{background:#2c4427;color:#f0f4df}.village3d-stage{position:relative;height:clamp(450px,53vw,720px);overflow:hidden}.village3d-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}.village3d-stage canvas.is-dragging{cursor:grabbing}.village3d-stage canvas:focus-visible{outline:3px solid #385724;outline-offset:-4px}.village3d-markers{position:absolute;inset:0;pointer-events:none}.village3d-marker{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:grid;place-items:center;width:38px;height:38px;border:2px solid #fff;border-radius:50%;color:#fff;background:#2b4023;box-shadow:0 3px 10px #19291b50;font:inherit;font-size:13px;cursor:pointer}.village3d-marker[aria-pressed=true]{color:#26391e;background:#dbeaaf;border-color:#2c461f}.village3d-badge{position:absolute;bottom:18px;left:20px;font-size:12px;letter-spacing:.07em;color:#3c5030;background:#eef3e5df;padding:8px 12px;border-radius:4px;pointer-events:none}.village3d-bottom{display:flex;gap:24px;align-items:center;justify-content:space-between;background:#f1f3eb;border-top:1px solid #c1c9b5;padding:20px}.village3d-picker{display:flex;gap:6px;flex-wrap:wrap}.village3d-selection{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.village3d-selection p{margin:0}.village3d-selection strong{display:block;font-size:20px;font-weight:500}.village3d-selection span{display:block;font-size:13px;color:#69765d;margin-top:5px}.village3d-selection a{font-size:14px;color:#304c24;display:inline-flex;align-items:center;min-height:44px;text-underline-offset:5px}.village3d-note{font-size:14px;line-height:1.7;color:#68745e;max-width:1000px;margin-top:20px}.village3d-fallback{position:absolute;inset:0;display:grid;place-content:center;padding:40px;font-size:18px;line-height:1.7;text-align:center;background:#e3e8d9;z-index:4}.village3d-section [hidden]{display:none!important}.village3d-section button:focus-visible{outline:3px solid #7b954e;outline-offset:3px}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.storyline-step:hover img,.insight-card:hover img,.city-about__card:hover img,.project-card:hover img{transform:scale(1.035)}.hero__cta:hover,.project-button:hover,.page-header__cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px #14201912}}
@media(max-width:900px){.village3d-heading{grid-template-columns:1fr;gap:18px}.village3d-toolbar{align-items:flex-start;flex-direction:column}.village3d-bottom{align-items:flex-start;flex-direction:column}.village3d-stage{height:520px}.storyline-step__copy h3{min-height:0}.storyline-step__copy{padding:24px!important}}
@media(max-width:600px){.storyline__timeline{grid-template-columns:1fr!important;gap:20px!important}.storyline-step__copy h3{font-size:30px!important}.village3d-stage{height:470px}.village3d-toolbar{padding:12px}.village3d-toolbar>span{font-size:13px}.village3d-toolbar button{font-size:13px;padding:9px}.village3d-bottom{padding:16px;gap:16px}.village3d-selection{gap:12px}.village3d-heading>p{font-size:16px}.village3d-heading h2{font-size:clamp(32px,8vw,45px)}.village3d-picker{width:100%;justify-content:space-between}.village3d-picker button{padding:8px;min-width:40px}.village3d-marker{width:34px;height:34px;font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.motion-ready .storyline-step,.motion-ready .city-about__card,.motion-ready .insight-card{opacity:1;transform:none}.city-ticker__row{transform:none!important}}
.house-exterior-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 36px}.house-exterior-pair figure{margin:0;min-width:0;border:1px solid #718060;border-radius:7px;overflow:hidden}.house-exterior-pair img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}.house-exterior-pair figcaption{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 22px;font-size:18px;color:#edf1e1}.house-exterior-pair figcaption span{font-size:13px;color:#becaa8}.article-cover{position:relative}.article-cover>img{position:static!important;display:block;width:100%!important;height:auto!important;aspect-ratio:16/9}.article-cover>.visual-caption{left:calc(var(--shell-padding,24px) + 12px)}@media(max-width:650px){.house-exterior-pair{grid-template-columns:1fr;gap:16px}}
.village3d-fallback img{display:block;max-height:310px;max-width:100%;width:auto;height:auto;margin:0 auto 16px;border-radius:6px}.village3d-fallback a{color:#2f4b26;text-underline-offset:4px}

.village3d-house-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 20px;background:#edf1e3;border-bottom:1px solid #bec9ae}.village3d-house-controls>div{display:flex;gap:6px;flex-wrap:wrap}.village3d-house-controls button,.village3d-selection button{font:inherit;font-size:14px;line-height:1.4;min-height:44px;padding:10px 15px;border:1px solid #9dac89;border-radius:5px;background:#f5f6ee;color:#2c4427;cursor:pointer}.village3d-house-controls button[aria-pressed=true],.village3d-selection button{background:#2c4427;color:#f4f6e9;border-color:#2c4427}.village3d-house-controls a{font-size:14px;color:#2c4427;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:5px}.village3d-stage{isolation:isolate}.village3d-house-controls button:hover{box-shadow:0 2px 8px #24381a1a}@media(max-width:600px){.village3d-house-controls{padding:12px;gap:8px}.village3d-house-controls>div{order:3;width:100%}.village3d-house-controls>div button{flex:1}.village3d-house-controls a{font-size:13px}.village3d-selection button{width:100%;justify-content:center}.village3d-badge{left:12px;bottom:12px;max-width:calc(100% - 24px);font-size:11px}}

/* Source: components/sections.css */
/* Client review, September 2026. Shared spacing; no change to house plans. */
.review-heading { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(220px,.7fr); align-items:end; gap:32px; margin:22px 0 36px; }
.review-heading > p { margin:0; line-height:1.65; max-width:45ch; opacity:.8; }
.city-film { padding-top:clamp(48px,6vw,96px); padding-bottom:clamp(48px,6vw,96px); }
.city-film__player { position:relative; overflow:hidden; background:#101810; border-radius:12px; }
.city-film__play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:72px; height:72px; border-radius:50%; display:grid; place-items:center; color:#20372e; background:#f6f1e8ed; border:1px solid #fff9; cursor:pointer; box-shadow:0 4px 28px #0003; }
.city-film__play svg { width:30px; height:30px; fill:currentColor; }
.city-film__play[hidden] { display:none; }
.city-film__play:focus-visible { outline:3px solid #cabb87; outline-offset:5px; }
.city-film video { display:block; width:100%; aspect-ratio:16/9; max-height:80vh; object-fit:contain; background:#101810; }
.city-film__foot { display:flex; justify-content:space-between; gap:20px; margin-top:16px; font-size:13px; opacity:.75; }
.city-film__foot a { text-decoration:underline; text-underline-offset:4px; }
.city-dates { color:#eeeadd; background:#172b24; }
.city-dates__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; padding:0; margin:42px 0 0; list-style:none; }
.city-dates__steps li { border-top:1px solid #a9b8a566; padding:28px 32px 12px 0; }
.city-dates__steps li > span { color:#b8c7a1; font-size:13px; }
.city-dates__steps h3 { font-family:inherit; font-weight:500; font-size:clamp(23px,2.6vw,36px); line-height:1.2; margin:18px 0 12px; }
.city-dates__steps p { max-width:30ch; opacity:.8; line-height:1.6; }
.city-location__glass { align-self:center; }
.office-map { padding-top:64px; padding-bottom:64px; }
.office-map__frame { height:440px; border:1px solid #20372e22; border-radius:12px; overflow:hidden; margin-bottom:20px; background:#e1ded3; }
.office-map iframe { display:block; width:100%; height:100%; border:0; }
.city-purchase__card-media { display:flex; align-items:center; justify-content:center; background:#e0e5d7!important; }
.city-purchase__card-media .review-step-icon { width:92px; height:92px; color:#20372e; }
.about-page .lifestyle blockquote, .about-page .lifestyle blockquote span, .about-page .lifestyle__quote { font-family:inherit; font-style:normal; }
.about-page .lifestyle blockquote { font-weight:500; line-height:1.12; }
.about-page .lifestyle__quote { font-size:clamp(17px,1.7vw,23px); line-height:1.6; max-width:54ch; padding-left:24px; border-left:2px solid #d5c5a1; }
.project-preview { padding-top:24px; padding-bottom:100px; }
.project-preview .site-header { margin-bottom:clamp(70px,9vw,130px); }
.project-preview__intro { max-width:950px; }
.project-preview__intro > p:last-child { max-width:65ch; line-height:1.8; margin:32px 0; }
.project-preview__links { display:flex; flex-wrap:wrap; align-items:center; gap:28px; }
.project-preview__draft { margin-top:64px; }
.review-draft-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.review-draft-gallery img { width:100%; height:auto; }
.genplan__scheme .genplan__plot[data-status="sold"] .genplan__plot-outline { fill:#c5c1b7!important; stroke:#77776c!important; }
.genplan__scheme .genplan__plot[data-status="reserved"] .genplan__plot-outline { fill:#ddc699!important; stroke:#a9874d!important; }
.genplan__scheme .genplan__plot[data-status="available"] .genplan__plot-outline { fill:#b6cab0!important; }
.genplan__scheme .genplan__plot[data-status="sold"] .genplan__plot-house { fill:#77776c!important; }
.genplan__scheme .genplan__plot[data-status="reserved"] .genplan__plot-house { fill:#94794d!important; }
.genplan__plot.is-active rect { stroke:#20372e!important; stroke-width:4!important; }
.genplan__mobile-btn[data-status="sold"] { background:#d1cec4; }
.genplan__mobile-btn[data-status="reserved"] { background:#efe0bc; }
.genplan__mobile-btn[data-status="available"] { background:#d5e2cc; }
.genplan__legend-dot[data-status="sold"], .genplan__card-panel[data-status="sold"] .genplan__card-dot { background:#a09c91; }
.genplan__legend-dot[data-status="reserved"], .genplan__card-panel[data-status="reserved"] .genplan__card-dot { background:#caa96b; }
.genplan__legend-dot[data-status="available"], .genplan__card-panel[data-status="available"] .genplan__card-dot { background:#78966d; }
.genplan__legend { display:flex; flex-wrap:wrap; gap:16px; }
.genplan__legend:empty, .genplan__card-panel:not([data-status]) .genplan__card-dot, .genplan__card-panel[data-status="unknown"] .genplan__card-dot, .genplan__card-available:empty { display:none; }
.genplan__plot-status { font-size:23px; fill:#26352b; pointer-events:none; }
.genplan__mobile-btn[data-status] { color:#26352b!important; }
.genplan__mobile-btn[data-status="sold"]::after { content:'Продан'; }
.genplan__mobile-btn[data-status="reserved"]::after { content:'Бронь'; }
.genplan__mobile-btn[data-status="sold"], .genplan__mobile-btn[data-status="reserved"] { flex-wrap:wrap; }
.genplan__mobile-btn::after { flex-basis:100%; font-size:11px; line-height:1.4; }
.village3d-marker[data-status="sold"] { background:#7b7a71; }
.village3d-marker[data-status="reserved"] { background:#ac874e; }
@media(max-width:700px) {
 .review-heading { grid-template-columns:1fr; gap:20px; margin-bottom:26px; }
 .city-dates__steps { grid-template-columns:1fr; margin-top:28px; }
 .city-dates__steps li { padding:24px 0; }
 .city-film__foot { flex-direction:column; gap:8px; }
 .office-map__frame { height:360px; }
 .project-preview__links { align-items:flex-start; flex-direction:column; }
 .review-draft-gallery { grid-template-columns:1fr; }
 .city-purchase__card-media .review-step-icon { width:74px; height:74px; }
}

/* Keep Cyrillic pairs distinct, including ЕТ in ДЕТАЛЕЙ on Safari. */
.hero__title { letter-spacing: 0; }

/* Source: components/contact.css */
/* Shared contact surface: inline forms and the persistent consultation dialog. */
.amo-form-embed,
.amo-form-embed.is-loaded {
  width: 100%;
  min-width: 0;
  min-height: 0;
  max-width: 560px;
  align-self: start;
  justify-self: end;
  scroll-margin-block: 32px 100px;
}
.amo-form-embed.js-reveal { opacity: 1; transform: none; }
.amo-form-embed iframe {
  display: block;
  width: 100%;
  max-width: 100%;
  height: 340px;
  min-height: 0;
  border: 0;
  color-scheme: normal;
}
.amo-form-legal { margin-top: 12px; color: #c0c2b8; font-size: 12px; line-height: 1.65; }
.amo-form-loading { margin: 12px 0; }
.amo-form-retry { border: 0; padding: 4px 0; background: none; color: inherit; text-decoration: underline; cursor: pointer; }
.contact__layout, .city-final__layout { align-items: start; }
.city-final__form { min-width: 0; }
.city-final__form .amo-form-embed { max-width: none; }
.has-contact-dock { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
.contact-dock {
  position: fixed;
  z-index: 40;
  right: max(24px, env(safe-area-inset-right, 0px));
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  display: flex;
  gap: 4px;
  padding: 5px;
  border: 1px solid #ffffff26;
  border-radius: 8px;
  background: #15231e;
  box-shadow: 0 8px 32px #0003;
  color: #f4f3ef;
}
.contact-dock a, .contact-dock button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  min-height: 48px;
  padding: 10px 20px;
  border: 0;
  border-radius: 4px;
  font-family: inherit;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.3;
  text-decoration: none;
  cursor: pointer;
}
.contact-dock__phone { color: #f4f3ef; }
.contact-dock button { color: #17251f; background: #e6d5b9; }
.contact-dock button:hover { background: #f2e5cf; }
.contact-dock[hidden] { display: none; }
.menu-open .contact-dock { display: none; }
html.contact-dialog-open { overflow: hidden; }
.contact-dialog {
  position: fixed;
  inset: 0;
  width: min(580px, calc(100% - 32px));
  max-width: 580px;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid #ad997a66;
  border-radius: 12px;
  background: #19241e;
  color: #f4f3ef;
  overflow: auto;
  overflow-anchor: none;
  overscroll-behavior: contain;
  box-shadow: 0 24px 100px #0005;
}
.contact-dialog::backdrop { background: #07110bd1; }
.contact-dialog__bar {
  position: sticky;
  top: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px 10px 28px;
  background: #19241e;
  border-bottom: 1px solid #ffffff1a;
}
.contact-dialog__bar > span { letter-spacing: .16em; font-size: 11px; }
.contact-dialog__close { width: 44px; height: 44px; padding: 0; background: transparent; border: 1px solid #ffffff40; border-radius: 50%; color: #f4f3ef; font-size: 28px; cursor: pointer; }
.contact-dialog__body { padding: 24px 28px 28px; }
.contact-dialog__eyebrow { margin: 0 0 12px; color: #d5bd96; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.contact-dialog h2 { margin: 0; font-size: clamp(28px, 4vw, 40px); font-weight: 400; letter-spacing: -.035em; line-height: 1.1; }
.contact-dialog__intro { margin: 14px 0 24px; color: #c0c2b8; font-size: 14px; line-height: 1.6; }
.contact-dialog__alternative { display: grid; gap: 8px; margin-top: 24px; padding-top: 20px; border-top: 1px solid #ffffff26; }
.contact-dialog__alternative span, .contact-dialog__alternative small { font-size: 12px; color: #c0c2b8; }
.contact-dialog__alternative a { width: fit-content; color: #f4f3ef; font-size: 20px; line-height: 1.5; }
.contact-dialog :is(a, button):focus-visible, .contact-dock :is(a, button):focus-visible { outline: 2px solid #e6d5b9; outline-offset: 2px; }
@media (max-width: 1180px) {
  .contact__layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .contact__layout > .amo-form-embed { justify-self: start; }
}
@media (max-width: 600px) {
  .contact-dock { left: max(12px, env(safe-area-inset-left, 0px)); right: max(12px, env(safe-area-inset-right, 0px)); bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
  .contact-dock button { flex: 1; }
  .contact-dock a, .contact-dock button { padding-inline: 14px; gap: 10px; }
  .contact-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); }
  .contact-dialog__bar { padding-left: 18px; }
  .contact-dialog__body { padding: 20px 18px calc(24px + env(safe-area-inset-bottom, 0px)); }
}

/* Source: pages/home.css */
/* Mobile first screen: show the complete facade above a compact text block. */
@media (max-width: 768px) {
  body[data-page="home"] .hero {
    min-height: 0;
    padding: 0 20px 28px;
    background: #14241e;
    isolation: isolate;
  }
  body[data-page="home"] .hero__background {
    top: 84px !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center 65%;
    opacity: 1;
    transform: none;
  }
  body[data-page="home"] .hero::before,
  body[data-page="home"] .hero::after,
  body[data-page="home"] .hero__grid,
  body[data-page="home"] .hero__orb {
    display: none;
  }
  body[data-page="home"] .hero__header {
    min-height: 84px;
    background: #14241e;
  }
  body[data-page="home"] .hero__intro {
    margin: calc(100vw * 9 / 16 + 24px) 0 0;
  }
  body[data-page="home"] .hero__title {
    font-size: clamp(31px, 8.8vw, 58px);
    line-height: 1.04;
    letter-spacing: 0;
    text-shadow: none;
  }
  body[data-page="home"] .hero__eyebrow { margin-bottom: 14px; }
  body[data-page="home"] .hero__project { margin-top: 18px; }
  body[data-page="home"] .hero__bottom { margin-top: 20px; gap: 24px; }
  body[data-page="home"] .hero__cta { min-height: 58px; }
}

/* Source: pages/projects.css */
/* One house, two variants, each with its own gallery and plan. */
.house-catalog { margin-top: 48px; }
.house-catalog__choices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.house-catalog__choice { display: block; color: inherit; text-decoration: none; }
.house-catalog__choice img { display: block; width: 100%; height: auto; border-radius: 12px; aspect-ratio: 4/3; object-fit: cover; }
.house-catalog__choice h2 { font-size: clamp(22px, 2.3vw, 34px); line-height: 1.15; margin: 20px 0 12px; }
.house-catalog__choice span { display: inline-block; padding-bottom: 8px; border-bottom: 1px solid currentColor; }
.house-variant { padding-top: clamp(56px, 7vw, 100px); scroll-margin-top: 24px; }
.house-variant__head { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.house-variant__head h2 { margin: 0; font-size: clamp(28px, 3.5vw, 50px); line-height: 1.1; }
.house-variant__gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.house-variant__gallery figure { margin: 0; min-width: 0; }
.house-variant__gallery figure:first-child { grid-column: 1/-1; }
.house-variant__gallery img { display: block; width: 100%; height: auto; border-radius: 10px; aspect-ratio: 16/9; object-fit: cover; }
.house-variant__gallery figcaption { padding: 10px 0; font-size: 14px; color: #536457; }
.house-variant__plan { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(240px, 1fr); gap: 32px; align-items: center; margin-top: 32px; padding: 28px; background: #fff; border-radius: 12px; }
.house-variant__plan img { display: block; width: 100%; height: auto; }
.house-variant__plan h3 { margin: 0 0 16px; font-size: 28px; }
.house-variant__plan p { margin: 0 0 20px; line-height: 1.6; }
.house-variant__plan a { text-decoration: underline; text-underline-offset: 5px; }
.house-variant__cta { margin-top: 28px; }
@media(max-width: 767px) {
  .house-catalog__choices, .house-variant__gallery, .house-variant__plan { grid-template-columns: minmax(0, 1fr); }
  .house-variant__head { display: block; }
  .house-variant__head p { margin-top: 16px; }
  .house-variant__plan { padding: 18px; gap: 24px; }
  .house-variant__cta .project-button { width: 100%; box-sizing: border-box; white-space: normal; text-align: left; }
}

/* Source: pages/articles.css */
/* Editorial articles: readable headlines and one clear next step. */
.article-page--editorial .article-hero h1 {
  max-width: 20ch;
  font-size: clamp(36px, 5.6vw, 84px);
  letter-spacing: -.025em;
  line-height: 1.07;
}
.article-page--editorial .article-hero__meta { margin-top: 18px; }
.article-page--editorial .article-body > p { margin: 0 0 20px; }
.article-page--editorial .article-related > a {
  display: block;
  padding: 16px 0;
  border-top: 1px solid #20372e33;
  color: #20372e;
  font-size: 17px;
  line-height: 1.5;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.article-page--editorial .article-body h2 {
  font-size: clamp(29px, 3vw, 46px);
  letter-spacing: -.02em;
  line-height: 1.15;
}
.article-page--editorial .article-cta {
  display: block;
  padding: clamp(24px, 3vw, 40px);
  background: #20372e;
  border: 0;
}
.article-page--editorial .article-cta h3 {
  margin: 0 0 18px;
  color: #f7f2e8;
  letter-spacing: -.015em;
}
.article-page--editorial .article-cta p { max-width: 58ch; color: #eee8dc; }
.article-page--editorial .article-cta .project-button {
  display: inline-flex;
  margin-top: 26px;
  max-width: 100%;
  min-height: 48px;
  white-space: normal;
  background: #e5d1ad;
  border-color: #e5d1ad;
  color: #20372e;
}
.article-page--editorial .article-cta .project-button:hover { background: #f5e5c9; }
.article-page--editorial .article-cta .project-button:focus-visible {
  outline: 3px solid #fff;
  outline-offset: 4px;
}
@media (max-width: 650px) {
  .article-page--editorial .article-hero { padding-top: 44px; padding-bottom: 40px; }
  .article-page--editorial .article-hero h1 { font-size: clamp(32px, 9vw, 42px); }
  .article-page--editorial .article-cover { margin-bottom: 44px; }
}
