/* V3 visual tokens and fixes shared by the home and apartment pages. */
:root {
  --v3-pine:#173b28;
  --v3-forest:var(--v3-pine);
  --v2-ink:var(--v3-pine);
  --v2-forest:var(--v3-forest);
  --v2-forest-deep:var(--v3-forest);
  --v2-shell-ink:var(--v3-pine);
  --v2-shell-forest:var(--v3-forest);
  --v2c-ink:var(--v3-pine);
  --v2c-forest:var(--v3-forest);
  --v2c-forest-deep:var(--v3-pine);
  --rs-ink:var(--v3-pine);
  --rs-charcoal:var(--v3-pine);
  --rs-forest:var(--v3-pine);
  --rs-deep:var(--v3-forest);
  --journey-ink:var(--v3-pine);
  --ht-ink:var(--v3-pine);
  --ht-dark-green:var(--v3-forest);
}
body.homepage-test { --ht-ink:var(--v3-pine); --ht-dark-green:var(--v3-forest); }
html { scroll-behavior:smooth; }
html:has([data-rs-skip-film]:focus-visible) { scroll-behavior:auto; }
.homepage-ver3 .ht-consent { display:block; max-width:100%; overflow-wrap:normal; }
.homepage-ver3 .ht-consent a { display:inline; }
.homepage-ver3 .ht-location { background:var(--v3-pine); }
.homepage-ver3 .cp-hero::before { background:linear-gradient(0deg,rgba(23,59,40,.74) 0%,rgba(23,59,40,.34) 24%,rgba(23,59,40,.08) 43%,transparent 58%) !important; }
.homepage-ver3 .cp-hero .cp-hero-copy :is(h1,.cp-eyebrow,.cp-hero-bottom>p) { text-shadow:0 2px 18px rgba(4,14,9,.82),0 1px 4px rgba(4,14,9,.65); }
.homepage-ver3 #brxe-dcnmqg #brxe-oeqgnf::after { background:linear-gradient(to bottom,var(--v3-pine) 0%,rgba(23,59,40,.55) 48%,transparent); }
/* Dark V3 surfaces use one visibly green family instead of the old charcoal. */
body .rs-simple-intro,
body .rs-simple-hero,
body .v2-apartment-specification,
body .v2-apartment-carousel__viewport,
.homepage-test .ht-personalize__media { background-color:var(--v3-pine)!important; }
body.homepage-test #standardy:has([data-standard-theme=dark]),
body.mobile-free-scroll #choice-web,
.checkpoint-page #choice-web { background:var(--v3-pine)!important; }
.checkpoint-page .cp-benefits-section .ht-benefit { background:none; }
@media (max-width:900px) {
  .checkpoint-page .cp-benefits-section .ht-benefit { background:#13261a; }
}
@media (min-width:901px) {
  .checkpoint-page .rs-interiors > .rs-carousel-prev { left:clamp(28px,5vw,96px); }
  .checkpoint-page .rs-interiors > .rs-carousel-next { right:clamp(28px,5vw,96px); }
}
body .rs-island .v2-shell-menu,
.rs-phone-dock .rs-phone-mark,
body .v2c-floor-panel[data-floor] .v2c-floor-panel__head>strong {
  background-color:var(--v3-pine)!important;
  border-color:var(--v3-pine)!important;
}
.checkpoint-page :is(.viewport,.threshold-film),
.checkpoint-page .threshold-film :is(video,img) { background-color:var(--v3-pine)!important; }
.checkpoint-page :is(.loading,.cp-revisit button,#cp-info-toggle),
.checkpoint-page .rs-simple-link,
body .rs-video-toggle { background-color:var(--v3-pine); }
.checkpoint-page #choice-shade {
  background:linear-gradient(0deg,rgba(23,59,40,.95),rgba(23,59,40,.7) 55%,rgba(23,59,40,.44))!important;
}
body .v3-video-offer .v3-viewer__floors { background-color:var(--v3-forest)!important; }
.homepage-ver3 #viewport .rs-top-actions {
  position:absolute; z-index:36; top:24px; right:24px;
  display:flex; align-items:center; gap:8px;
}
.homepage-ver3 #viewport .rs-top-actions .rs-simple-link {
  position:static!important; inset:auto!important; top:auto!important;
  right:auto!important; bottom:auto!important; left:auto!important;
  display:inline-flex; align-items:center; justify-content:center;
  min-height:38px; box-sizing:border-box; white-space:nowrap;
}
.homepage-ver3 #viewport:not([data-free-phase="hero"]) .rs-top-actions .rs-simple-link { display:none!important; }
.homepage-ver3 #viewport .rs-skip-film {
  display:inline-flex; align-items:center; gap:9px;
  min-height:38px; padding:8px 12px;
  border:1px solid rgba(255,255,255,.46); border-radius:0;
  background:rgba(23,59,40,.82); color:#fff;
  font:600 11px/1.3 Manrope,sans-serif; letter-spacing:.015em;
  cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  transition:background-color .18s,border-color .18s;
}
.homepage-ver3 #viewport .rs-skip-film:hover,
.homepage-ver3 #viewport .rs-skip-film:focus-visible {
  background:var(--v3-pine); border-color:#fff;
}
.homepage-ver3 #viewport .rs-skip-film:focus-visible { outline:2px solid #84cf25; outline-offset:3px; }
.homepage-ver3 #viewport .rs-skip-film span { font-size:15px; line-height:1; font-weight:400; }
/* Match the JS camera registration before deferred scripts run. The poster and
   loop then occupy identical pixels from the first painted frame. */
@media (max-width:900px) {
  .homepage-ver3.mobile-free-scroll #viewport .threshold-film :is(#checkpoint-image,#hero-video) {
    --initial-film-base:min(100cqh,150cqw);
    width:calc(var(--initial-film-base) * 1.799111111)!important;
    height:calc(var(--initial-film-base) * 1.012)!important;
    left:calc(50cqw - var(--initial-film-base) * .847777778)!important;
    top:calc(0px - min(96px,var(--initial-film-base) * .15))!important;
    right:auto!important; bottom:auto!important;
    max-width:none!important; max-height:none!important; object-fit:fill!important;
  }
}
.homepage-ver3 #viewport[data-stage="below"] .rs-skip-film,
.homepage-ver3 #viewport[data-stage="tour"] .rs-skip-film,
.homepage-ver3 #viewport[data-stage="error"] .rs-skip-film,
.homepage-ver3 #viewport[data-free-phase="choice"] .rs-skip-film,
.homepage-ver3 #viewport[data-inline-tour="true"] .rs-skip-film,
.homepage-ver3[data-journey-below="true"] #viewport .rs-skip-film { display:none; }
@media (max-width:900px) {
  body.homepage-ver3 .v2-shell-header.rs-island,
  body.homepage-ver3 .v2-shell-header.rs-island.is-shell-hidden,
  body.homepage-ver3[data-journey-active="true"] .v2-shell-header.rs-island {
    top:max(8px,env(safe-area-inset-top))!important;
    left:8px!important; width:38px!important; height:38px!important; min-height:38px!important;
  }
  body.homepage-ver3 .rs-island .v2-shell-header__inner {
    width:38px!important; height:38px!important; min-height:38px!important;
  }
  body.homepage-ver3 .rs-island .v2-shell-menu {
    width:38px!important; height:38px!important; min-height:38px!important;
    padding:8px!important; border:1px solid rgba(255,255,255,.46)!important;
    border-radius:0!important; background:rgba(23,59,40,.5)!important; color:#fff!important;
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  }
  body.homepage-ver3 .rs-island .v2-shell-menu:is(:hover,:focus-visible) {
    background:rgba(23,59,40,.62)!important;
  }
  body.homepage-ver3 .rs-island .rs-menu-icon { width:20px; height:20px; }
  .homepage-ver3 #viewport .rs-top-actions {
    top:max(8px,env(safe-area-inset-top)); right:8px; gap:7px;
  }
  .homepage-ver3 #viewport .rs-top-actions :is(.rs-simple-link,.rs-skip-film) {
    height:38px; min-height:38px; padding:8px 10px;
    box-sizing:border-box; border:1px solid rgba(255,255,255,.46);
    background:rgba(23,59,40,.5)!important; color:#fff;
    font:600 10px/1.3 Manrope,sans-serif; letter-spacing:.015em;
    backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  }
  .homepage-ver3 #viewport .rs-top-actions :is(.rs-simple-link,.rs-skip-film):is(:hover,:focus-visible) {
    background:rgba(23,59,40,.62)!important;
  }
  .homepage-ver3 .rs-film-loader--inline[data-ready="true"] { margin-top:0!important; }
  .homepage-ver3 .rs-film-loader--inline[data-ready="true"] progress { display:none!important; }
  .homepage-ver3 #viewport .cp-hero .cp-hero-copy {
    transform:translate3d(0,var(--v3-hero-copy-shift,0px),0);
    will-change:transform;
  }
  .homepage-ver3 .rs-film-loader--inline .rs-scroll-cue:not([hidden]) {
    display:grid; place-items:center; width:100%; height:42px; color:#84cf25;
    opacity:var(--v3-scroll-cue-opacity,1);
  }
  .homepage-ver3 .rs-film-loader--inline .rs-scroll-cue svg {
    display:block!important; width:24px; height:30px; fill:none; stroke:currentColor; stroke-width:1.8;
    stroke-linecap:round; stroke-linejoin:round;
    animation:v3-scroll-cue 1.55s cubic-bezier(.3,.75,.4,1) infinite;
  }
}
@keyframes v3-scroll-cue { 0%,100%{transform:translateY(-3px);opacity:.65} 45%{transform:translateY(5px);opacity:1} }
@media (max-width:360px) {
  .homepage-ver3 #viewport .rs-top-actions { gap:5px; }
  .homepage-ver3 #viewport .rs-top-actions .rs-simple-link,
  .homepage-ver3 #viewport .rs-top-actions .rs-skip-film {
    min-height:36px; padding:7px 8px!important; font-size:9px;
  }
  .homepage-ver3 #viewport .rs-top-actions .rs-simple-link svg,
  .homepage-ver3 #viewport .rs-top-actions .rs-skip-film span { display:none; }
}
@media (max-width:900px) {
  .rs-phone-dock::before,
  .rs-phone-dock .rs-phone-mark,
  .rs-phone-dock a { border:0!important; }
}
.v3-amenity-hits { position:absolute; z-index:30; pointer-events:none; }
.v3-amenity-hits[hidden] { display:none; }
.v3-amenity-hit {
  position:absolute; width:clamp(26px,8.7vw,34px); height:clamp(26px,8.7vw,34px);
  padding:0; border:0; border-radius:50%; background:transparent;
  transform:translate(-50%,-50%); pointer-events:auto; cursor:pointer;
  touch-action:manipulation;
}
.v3-amenity-hit:focus-visible { outline:2px solid #84cf25; outline-offset:2px; }
body.rs-project .v2-media-strip__card--video {
  background:var(--v3-pine); color:#fff;
}
body.rs-project .v2-media-strip__card--video::before {
  background:linear-gradient(0deg,rgba(23,59,40,.76),rgba(23,59,40,.60));
}
body.rs-project .v2-media-strip__card--video :is(.v2-eyebrow,.v2-h3,.v2-text-link) { color:#fff; }
body.rs-project .v2-media-strip__card--video .v2-copy { color:rgba(255,255,255,.86); }
body.rs-project .v2-media-strip__card--video .v2-text-link { border-color:#84cf25; }
.homepage-ver3.mobile-free-scroll #viewport #checkpoint-card .cp-choice .cp-reveal {
  transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.16,1,.3,1)!important;
}
.homepage-ver3.mobile-free-scroll #viewport:not([data-choice-phase="ready"]) #checkpoint-card .cp-choice .cp-reveal {
  opacity:0!important; transform:translateY(24px) scale(.95)!important;
}
.homepage-ver3.mobile-free-scroll #viewport[data-choice-phase="ready"] #checkpoint-card .cp-choice .cp-reveal {
  opacity:1!important; transform:none!important;
  transition-delay:var(--reveal-delay,0ms)!important;
}
.homepage-ver3 #viewport #choice-shade { transition:opacity .45s cubic-bezier(.2,.7,.2,1); }
.homepage-ver3 #viewport:is([data-free-phase="choice"],[data-stage="below"]) .cp-buffer { display:none!important; }
.homepage-ver3.mobile-free-scroll[data-journey-below="true"] #viewport[data-stage="below"] {
  visibility:visible!important; pointer-events:none!important;
}
.homepage-ver3 #viewport[data-choice-phase="reversing"] .cp-choice-copy {
  opacity:0; pointer-events:none; transition:opacity .55s cubic-bezier(.2,.7,.2,1);
}
@media (prefers-reduced-motion:reduce) {
  .homepage-ver3.mobile-free-scroll #viewport #checkpoint-card .cp-choice .cp-reveal {
    transition:none!important; transform:none!important;
  }
  .homepage-ver3 .rs-film-loader--inline .rs-scroll-cue svg { animation:none; }
}
.v2-apartment-technical__copy .v2-eyebrow::before { background:#84cf25 !important; }
.v2-apartment-fact [data-v3-orientation] { min-height:1.35em; }

/* V3 catalogue: the selected apartment spans the panel while its labels keep room. */
body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr {
  box-sizing: border-box;
  padding-inline: 17px !important;
}
body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr th:first-child { padding-left: 17px !important; }
body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr td:last-child { padding-right: 17px !important; }
body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr td:last-child .v2c-floor-table__detail { transform: translateX(-10px); }
body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr:is(:hover,:focus-within,.is-plan-active) {
  transform: none !important;
}
body[data-v2-apartment-slug] .v2-apartment-table tbody tr[data-v2-room-row] { cursor: pointer; }
body[data-v2-apartment-slug] .v2-apartment-table tbody tr[data-v2-room-row]:focus-visible {
  outline: 2px solid #84cf25;
  outline-offset: -2px;
}
@media (max-width: 760px) {
  body.v2c-page .v2c-floor-plan__object { pointer-events: auto !important; touch-action: pan-y; }
  body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr {
    width: calc(100% + 40px);
    margin-inline: -20px;
    padding-inline: 20px !important;
  }
  body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr th:first-child,
  body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr td:last-child { padding-inline: 0 !important; }
  body.v2c-page .v2c-floor-panel[data-floor] .v2c-floor-table tbody tr td:last-child .v2c-floor-table__detail { transform: none; }
}
