/* Wave-2 hero + post-hero. Tokens live on body.theme-*. */
.v2-kicker {
  display: inline-flex; align-items: center; gap: .4rem;
  margin: 0 0 .7rem; padding: .28rem .7rem;
  border-radius: 999px; font-size: .72rem; font-weight: 650; letter-spacing: .06em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  color: var(--accent);
}
.v2-dot {
  width: .45rem; height: .45rem; border-radius: 50%; background: currentColor;
}
.v2-dot--live { background: #3dba6a; box-shadow: 0 0 0 4px color-mix(in srgb, #3dba6a 28%, transparent); }
.v2-mark {
  font-style: normal;
  background: linear-gradient(120deg, var(--accent), color-mix(in srgb, var(--accent) 40%, #fff));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.v2-mark--hand { position: relative; display: inline-block; color: var(--accent); background: none; }
.v2-swoosh { position: absolute; left: 0; right: 0; bottom: -.15rem; width: 100%; height: 14px; color: var(--accent); }
.v2-foot { margin: .2rem 0 1rem; font-size: .88rem; color: var(--muted); max-width: 36rem; }
.v2-cta { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.v2-tel { font-weight: 700; text-decoration: underline; text-underline-offset: .18em; white-space: nowrap; }
.v2-calc {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .55rem; padding: 1rem; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--btn-radius); max-width: 42rem;
}
.v2-calc .btn { grid-column: 1 / -1; }
.v2-calc .fine, .v2-calc__nights { grid-column: 1 / -1; margin: 0; }
.v2-calc__nights { font-weight: 700; }
.v2-calc:has(.v2-calc__nights) .fine { display: none; }
.v2-calc--compact { max-width: none; width: 100%; }
.v2-calc-band {
  background: var(--bg); padding: 1.15rem 0 1.6rem; border-top: 1px solid var(--line);
  position: relative; z-index: 2;
}
.v2-calc-band .v2-calc {
  width: min(1180px, calc(100% - 1.4rem)); margin: 0 auto; max-width: none;
}
@media (min-width: 860px) {
  .v2-calc { grid-template-columns: 1fr 1fr 1fr 1fr auto; }
  .v2-calc .btn { grid-column: auto; align-self: end; }
  .v2-calc .fine, .v2-calc__nights { grid-column: 1 / -1; }
  .v2-calc--compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .v2-calc--compact .btn { grid-column: 1 / -1; }
}

/* 1. Full-bleed canvas + carousel */
.v2-bleed {
  position: relative; min-height: max(100svh, 680px);
  color: #f6f1e8; overflow: hidden;
}
.v2-bleed__stage { position: absolute; inset: 0; }
.v2-bleed__frame {
  position: absolute; inset: 0; opacity: 0; transition: opacity .5s ease;
  overflow: hidden;
}
.v2-bleed__frame.is-on { opacity: 1; z-index: 1; }
.v2-bleed__frame img, .v2-bleed__frame picture { width: 100%; height: 100%; display: block; }
.v2-bleed__frame img { width: 100%; height: 100%; object-fit: cover; min-height: 100svh; }
.v2-bleed__frame.is-on img { animation: kb-pan-a 7s ease-out both; transform-origin: 30% 40%; }
.v2-bleed__scrim {
  position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(90deg, rgba(8,14,18,.78) 0%, rgba(8,14,18,.42) 46%, rgba(8,14,18,.12) 100%);
}
.v2-bleed__island {
  position: relative; z-index: 3;
  width: min(640px, calc(100% - 1.6rem));
  margin: 0 0 0 max(.8rem, calc((100% - 1180px) / 2));
  min-height: max(100svh, 680px);
  display: flex; flex-direction: column; justify-content: center;
  padding: 5.5rem 0 2.4rem;
}
.v2-bleed h1, .v2-bleed h2 { color: #f6f1e8; max-width: 16ch; font-size: clamp(1.8rem, 4vw, 3.1rem); }
.v2-bleed__copy { display: none; }
.v2-bleed__copy.is-on { display: block; }
.v2-bleed .lead { color: #e4ddd2; max-width: 38rem; }
.v2-bleed .v2-kicker { background: rgba(255,255,255,.12); color: #f6f1e8; }
.v2-bleed .v2-foot { color: #cfc6b8; }
.v2-bleed .btn.ghost { color: #f6f1e8; border-color: rgba(255,255,255,.35); }
.v2-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin: 1rem 0 .8rem; }
.v2-chip {
  border: 1px solid rgba(255,255,255,.28); background: transparent; color: #f6f1e8;
  border-radius: 999px; padding: .35rem .7rem; min-height: 44px; cursor: pointer;
}
.v2-chip.is-on { background: #f6f1e8; color: #14202b; }
.v2-tl { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; margin: .4rem 0 .7rem; }
.v2-tl__seg { display: block; height: 3px; background: rgba(255,255,255,.22); border-radius: 99px; overflow: hidden; }
.v2-tl__seg i { display: block; width: 0; height: 100%; background: #f6f1e8; }
.v2-tl__seg.is-on i { animation: v2-fill 5.5s linear forwards; }
@keyframes v2-fill { to { width: 100%; } }
.v2-pager { display: flex; align-items: center; gap: .6rem; }
.v2-arrow {
  width: 44px; height: 44px; border-radius: 10px; border: 1px solid rgba(255,255,255,.3);
  background: transparent; color: #f6f1e8; cursor: pointer;
}
.v2-count { font-variant-numeric: tabular-nums; letter-spacing: .08em; }

/* 2. Interactive terminal */
.v2-term {
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.2fr);
  min-height: 580px; gap: 0; align-items: stretch;
}
.v2-term__offer { padding: clamp(1.4rem, 4vw, 3rem) clamp(1rem, 3vw, 2.4rem); display: flex; flex-direction: column; justify-content: center; }
.v2-term__desk {
  padding: clamp(1.4rem, 4vw, 3rem) clamp(1rem, 3vw, 2.4rem);
  background: var(--card); border-left: 1px solid var(--line);
  display: flex; flex-direction: column; justify-content: center;
}
.v2-term .v2-calc { max-width: none; width: 100%; }
@media (min-width: 860px) {
  .v2-term .v2-calc { grid-template-columns: 1fr 1fr 1fr 1fr; }
  .v2-term .v2-calc .btn { grid-column: 1 / -1; }
}

/* 3. Trust split */
.v2-trust {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  min-height: 580px; align-items: center; gap: 1.2rem;
  width: min(1180px, calc(100% - 1.4rem)); margin: 0 auto; padding: 2.2rem 0 1.6rem;
}
.v2-trust__list { margin: 0 0 1rem; padding: 0 0 0 1.1rem; }
.v2-trust__list li { margin: .35rem 0; }
.v2-trust__art { position: relative; min-height: 320px; display: grid; place-items: center; }
.v2-trust__orb {
  position: absolute; width: 88px; height: 88px; border-radius: 50%;
  display: grid; place-items: center; background: var(--card);
  border: 1px solid var(--line); right: 12%; top: 8%; color: var(--accent);
}
.v2-trust__svg { width: min(100%, 420px); height: auto; color: var(--ink); }

/* 4. Bento */
.v2-bento {
  width: min(1180px, calc(100% - 1.2rem)); margin: 1.2rem auto 1.4rem;
  display: grid; gap: .8rem;
}
.v2-bento__hero {
  padding: 1.3rem 1.2rem 1.4rem; background: var(--card); border: 1px solid var(--line);
  border-radius: var(--btn-radius);
}
.v2-bento__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem;
}
.v2-bento__cell {
  position: relative; min-height: 140px; overflow: hidden; border-radius: var(--btn-radius);
  color: #fff; text-decoration: none; display: block;
}
.v2-bento__cell--wide { grid-column: span 2; min-height: 180px; }
.v2-bento__cell img, .v2-bento__cell picture { width: 100%; height: 100%; display: block; }
.v2-bento__cell img { width: 100%; height: 100%; object-fit: cover; min-height: 140px; }
.v2-bento__cell span {
  position: absolute; left: 0; right: 0; bottom: 0; padding: .7rem .8rem;
  background: linear-gradient(transparent, rgba(0,0,0,.7));
}
.v2-bento__cell em { display: block; font-style: normal; font-size: .82rem; opacity: .9; }

/* 5. Dual persona */
.v2-dual {
  display: grid; grid-template-columns: 1fr 1fr;
  height: calc(100svh - 6.75rem); min-height: 520px;
}
.v2-dual__pane { position: relative; overflow: hidden; color: #f6f1e8; text-decoration: none; min-height: 0; }
.v2-dual__pane img, .v2-dual__pane picture { width: 100%; height: 100%; display: block; }
.v2-dual__pane img { width: 100%; height: 100%; object-fit: cover; min-height: 100%; }
.v2-dual__ink {
  position: absolute; inset: auto 0 0; padding: 2.2rem 1.4rem 2rem;
  background: linear-gradient(180deg, transparent 0%, rgba(10,14,18,.55) 28%, rgba(10,14,18,.88) 100%);
}
.v2-dual .v2-kicker { background: rgba(255,255,255,.14); color: #fff; }
.v2-dual h1, .v2-dual h2 {
  color: #fff; max-width: 18ch; margin: 0 0 .5rem;
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  text-shadow: 0 2px 18px rgba(0,0,0,.45);
}
body:has(.cookie) .v2-dual__ink { padding-bottom: 6.2rem; }
.v2-dual .lead { color: #efe8dc; text-shadow: 0 1px 10px rgba(0,0,0,.4); }

.v2-metrics {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .7rem;
}
.v2-metrics article {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--btn-radius);
  padding: 1rem;
}
.v2-metrics strong { display: block; font-size: 1.6rem; }
.v2-polar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.v2-polar article { background: var(--card); border: 1px solid var(--line); border-radius: var(--btn-radius); padding: 1rem 1.05rem 1.15rem; }
.v2-polar__tag { font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); font-weight: 700; margin: 0 0 .35rem; }
.v2-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.v2-steps li { display: grid; grid-template-columns: auto 1fr; gap: .8rem; align-items: start; }
.v2-steps span { font-weight: 700; color: var(--accent); }
.v2-sec--offer { background: color-mix(in srgb, var(--accent) 10%, var(--bg)); }
.theme-canvas .v2-sec--offer, .theme-dual .v2-sec--offer { background: color-mix(in srgb, var(--accent) 16%, var(--bg)); }
.v2-sec--direct { background: color-mix(in srgb, var(--accent) 8%, var(--bg)); border-top: 1px solid var(--line); }
.v2-props { display: grid; gap: 1.1rem; }
.v2-prop {
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 1rem; align-items: stretch; background: var(--card);
  border: 1px solid var(--line); border-radius: var(--btn-radius); overflow: hidden;
}
.v2-prop:nth-child(even) { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); }
.v2-prop:nth-child(even) .v2-prop__copy { order: -1; }
.v2-prop img, .v2-prop .shot { width: 100%; height: 100%; object-fit: cover; min-height: 220px; }
.v2-prop__copy { padding: 1.1rem 1.15rem 1.2rem; }
.v2-prop__copy h3 { margin: .2rem 0 .45rem; }
.v2-stay { list-style: none; margin: 0 0 1.1rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.v2-stay li { background: var(--card); border: 1px solid var(--line); border-radius: var(--btn-radius); padding: 1rem 1.05rem; }
.v2-stay strong { display: block; margin-bottom: .3rem; }
.v2-words { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .55rem; }
.v2-words a {
  display: inline-flex; align-items: center; min-height: 44px; padding: .4rem .85rem;
  border-radius: 999px; border: 1px solid var(--line); text-decoration: none; background: var(--card);
}
.v2-loyal, .v2-offers, .v2-news { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; }
.v2-loyal article, .v2-offer-card, .v2-news-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--btn-radius); padding: 1rem 1.05rem 1.15rem;
}
.v2-loyal strong { display: block; font-size: 1.2rem; margin-bottom: .35rem; color: var(--accent); }
.v2-news-card { padding: 0; overflow: hidden; }
.v2-news-card img, .v2-news-card .shot { width: 100%; height: 160px; object-fit: cover; }
.v2-news-card div { padding: .9rem 1rem 1.05rem; }

@media (max-width: 767px) {
  .v2-term, .v2-trust, .v2-dual, .v2-bento__grid, .v2-metrics, .v2-polar,
  .v2-prop, .v2-prop:nth-child(even), .v2-stay, .v2-loyal, .v2-offers, .v2-news {
    grid-template-columns: 1fr;
  }
  .v2-bento__cell--wide { grid-column: auto; }
  .v2-prop:nth-child(even) .v2-prop__copy { order: 0; }
  .v2-bleed__island { width: calc(100% - 1.4rem); margin: 0 auto; padding-top: 4.4rem; }
  .v2-bleed, .v2-bleed__island { min-height: 100svh; }
  .v2-dual { height: auto; }
  .v2-dual__pane { min-height: 70vh; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-bleed__frame img, .v2-tl__seg.is-on i { animation: none; }
}
