/* ==========================================================================
   Candieiro Experience · componentes
   Dispositivos e protótipos (site, hotel, eventos), quartos, ecossistema,
   orçamento e linha do tempo.
   Dentro dos protótipos, as medidas usam --px: um "pixel virtual"
   calculado pela largura da tela do dispositivo (container queries).
   ========================================================================== */

/* ---------- arte e fotos ---------- */
.art {
  position: relative;
  overflow: hidden;
  background: var(--carvao-2);
}
.art > svg,
.art > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.art--light { background: var(--manha-2); }
.art__tag {
  position: absolute;
  z-index: 2;
  left: 12px;
  bottom: 12px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(31, 28, 24, 0.66);
  color: var(--manha-3);
  font-size: 11.5px;
  letter-spacing: 0.02em;
  pointer-events: none;
}

/* ==========================================================================
   DISPOSITIVOS
   ========================================================================== */
.device {
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(231, 190, 120, 0.22);
  border-radius: 14px;
  background: #0F0E0D;
  box-shadow: 0 50px 90px -40px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(0, 0, 0, 0.5);
}
.device--desktop { width: 100%; aspect-ratio: 16 / 10.5; }
.device__bar {
  position: absolute;
  z-index: 2;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 34px;
  padding: 0 14px;
  background: #1A1815;
  border-bottom: 1px solid rgba(231, 190, 120, 0.12);
  font-size: 12px;
  color: var(--texto-fraco);
}
.device__dots { display: flex; gap: 6px; flex: none; }
.device__dots i { width: 9px; height: 9px; border-radius: 50%; background: #3A342C; }
.device__url {
  flex: 1;
  min-width: 0;
  max-width: 380px;
  margin-inline: auto;
  padding: 4px 12px;
  border-radius: 6px;
  background: #121110;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.02em;
}
.device__url em { font-style: normal; opacity: 0.7; }
.device__screen {
  position: absolute;
  top: 34px;
  left: 0;
  right: 0;
  bottom: 0;
  overflow: hidden;
  container-type: inline-size;
  background: var(--preto);
}
.device--phone {
  position: absolute;
  z-index: 3;
  left: 0;
  bottom: 0;
  width: 27%;
  aspect-ratio: 9 / 19.3;
  border-radius: 30px;
  border-color: rgba(231, 190, 120, 0.32);
  box-shadow: 0 0 0 6px #1A1815, 0 0 0 7px rgba(231, 190, 120, 0.22), 0 40px 80px -24px rgba(0, 0, 0, 0.95);
}
.device--phone .device__screen { top: 0; border-radius: 29px; }
.device__island {
  position: absolute;
  z-index: 5;
  top: 2.2%;
  left: 50%;
  width: 32%;
  height: 2.5%;
  min-height: 10px;
  transform: translateX(-50%);
  border-radius: 99px;
  background: #000;
}

/* claro (hotel) */
.device--light {
  border-color: rgba(31, 28, 24, 0.14);
  background: #FFFDF9;
  box-shadow: 0 50px 90px -50px rgba(60, 40, 10, 0.45), 0 0 0 1px rgba(31, 28, 24, 0.04);
}
.device--light .device__bar {
  background: #EFE6D7;
  border-bottom-color: rgba(31, 28, 24, 0.08);
  color: var(--tinta-suave);
}
.device--light .device__dots i { background: #D4C7B3; }
.device--light .device__url { background: #F9F4EB; }
.device--light .device__screen { background: var(--manha-3); }

.devices .device--desktop { flex: 1 1 0; min-width: 0; width: auto; }
.devices .device--phone {
  position: relative;
  left: auto;
  bottom: auto;
  flex: 0 0 23%;
  width: auto;
  margin-left: 3%;
  margin-bottom: -4%;
}
@media (max-width: 699px) {
  .devices { justify-content: center; padding-bottom: 0; }
  .devices .device--desktop { display: none; }
  .devices .device--phone { flex: 0 0 auto; width: min(290px, 78vw); margin: 0; }
}

/* ==========================================================================
   PROTÓTIPO · SITE DO CANDIEIRO
   ========================================================================== */
.msite {
  --px: calc(100cqi / 1180);
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  background: var(--preto);
  color: var(--creme);
  font-family: var(--f-texto);
  font-size: calc(16 * var(--px));
  line-height: 1.45;
  overflow: hidden;
}
@container (max-width: 400px) {
  .msite { --px: calc(100cqi / 390); padding-top: calc(30 * var(--px)); }
}
.msite button { cursor: pointer; }

.ms-header {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(20 * var(--px));
  padding: calc(20 * var(--px)) calc(44 * var(--px));
  border-bottom: 1px solid rgba(231, 190, 120, 0.14);
}
.ms-logo {
  font-family: var(--f-display);
  font-size: calc(24 * var(--px));
  font-weight: 500;
  letter-spacing: 0.16em;
  white-space: nowrap;
}
.ms-nav { display: flex; gap: calc(22 * var(--px)); }
.ms-nav button {
  padding: calc(6 * var(--px)) 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: none;
  color: var(--texto-suave);
  font-size: calc(15 * var(--px));
  transition: color 0.3s, border-color 0.3s;
}
.ms-nav button:hover { color: var(--creme); }
.ms-nav button[aria-current="true"] { color: var(--creme); border-bottom-color: var(--dourado); }
.ms-burger { display: none; gap: calc(5 * var(--px)); width: calc(26 * var(--px)); }
.ms-burger i { display: block; height: 1px; background: var(--creme); }

@container (max-width: 400px) {
  .ms-header { padding: calc(14 * var(--px)) calc(20 * var(--px)); }
  .ms-nav { display: none; }
  .ms-burger { display: grid; }
  .ms-logo { font-size: calc(20 * var(--px)); }
}

.ms-body { position: relative; flex: 1; min-height: 0; overflow: hidden; }
.mv {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  gap: calc(22 * var(--px));
  padding: calc(40 * var(--px)) calc(44 * var(--px));
  overflow: hidden;
}
@container (max-width: 400px) {
  .mv { padding: calc(22 * var(--px)) calc(20 * var(--px)) calc(80 * var(--px)); gap: calc(16 * var(--px)); }
}
.mv__head { display: grid; gap: calc(8 * var(--px)); }
.mv__title { font-family: var(--f-display); font-size: calc(44 * var(--px)); font-weight: 500; line-height: 1.05; }
.mv__text { max-width: 48ch; font-size: calc(17 * var(--px)); color: var(--texto-suave); }
@container (max-width: 400px) {
  .mv__title { font-size: calc(32 * var(--px)); }
  .mv__text { font-size: calc(15 * var(--px)); }
}

.ms-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: calc(46 * var(--px));
  padding: 0 calc(22 * var(--px));
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--dourado);
  color: var(--preto);
  font-size: calc(15 * var(--px));
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: transform 0.3s var(--ease), box-shadow 0.3s;
}
.ms-btn:hover { transform: translateY(-1px); box-shadow: 0 calc(8 * var(--px)) calc(24 * var(--px)) -12px rgba(231, 190, 120, 0.7); }
.ms-btn--ghost { background: transparent; color: var(--creme); border-color: rgba(231, 190, 120, 0.45); }
.ms-btn--small { min-height: calc(38 * var(--px)); padding: 0 calc(16 * var(--px)); font-size: calc(13 * var(--px)); }

/* início */
.mv--home { padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.mv-home__text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: calc(18 * var(--px));
  padding: calc(40 * var(--px)) calc(44 * var(--px));
}
.mv-home__eyebrow { font-size: calc(14 * var(--px)); letter-spacing: 0.3em; color: var(--dourado); }
.mv-home__brand {
  font-family: var(--f-display);
  font-size: calc(92 * var(--px));
  font-weight: 500;
  line-height: 0.95;
  letter-spacing: 0.02em;
}
.mv-home__btns { display: flex; flex-wrap: wrap; gap: calc(10 * var(--px)); }
.mv-home__art { height: 100%; }
@container (max-width: 400px) {
  .mv--home { grid-template-columns: 1fr; grid-template-rows: 42% auto; }
  .mv-home__art { order: -1; }
  .mv-home__text { justify-content: start; padding: calc(22 * var(--px)) calc(20 * var(--px)); gap: calc(12 * var(--px)); }
  .mv-home__brand { font-size: calc(58 * var(--px)); }
  .mv-home__btns { flex-direction: column; align-items: stretch; }
}

/* drinks e petiscos */
.mv-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(16 * var(--px)); }
.mv-tile { display: grid; gap: calc(10 * var(--px)); }
.mv-tile__art {
  aspect-ratio: 3 / 4;
  border-radius: calc(12 * var(--px));
  background: radial-gradient(120% 90% at 50% 18%, #2C241A 0%, #141210 70%);
  border: 1px solid rgba(231, 190, 120, 0.12);
}
.mv-tile__name { font-family: var(--f-display); font-size: calc(19 * var(--px)); }
@container (max-width: 400px) {
  .mv-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: calc(12 * var(--px)); }
  .mv-tile__art { aspect-ratio: 1; }
  .mv-tile__name { font-size: calc(16 * var(--px)); }
}

/* ambiente */
.mv-photos {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: calc(12 * var(--px));
}
.mv-photos .art { border-radius: calc(10 * var(--px)); }
.mv-photos .art:first-child { grid-row: span 2; }
@container (max-width: 400px) {
  .mv-photos { grid-template-columns: 1fr 1fr; grid-template-rows: 2fr 1fr 1fr; }
  .mv-photos .art:first-child { grid-row: auto; grid-column: span 2; }
}

/* eventos */
.mv-events { display: grid; border-top: 1px solid rgba(231, 190, 120, 0.16); }
.mv-event {
  display: grid;
  grid-template-columns: calc(84 * var(--px)) minmax(0, 1fr) auto;
  align-items: center;
  gap: calc(20 * var(--px));
  padding: calc(16 * var(--px)) 0;
  border-bottom: 1px solid rgba(231, 190, 120, 0.16);
}
.mv-event__date { display: grid; justify-items: center; line-height: 1; }
.mv-event__date span { font-size: calc(13 * var(--px)); letter-spacing: 0.12em; color: var(--dourado); }
.mv-event__date strong { font-family: var(--f-display); font-size: calc(40 * var(--px)); font-weight: 500; }
.mv-event__name { font-family: var(--f-display); font-size: calc(22 * var(--px)); }
.mv-event__meta { font-size: calc(14 * var(--px)); color: var(--texto-suave); }
@container (max-width: 400px) {
  .mv-event { grid-template-columns: calc(56 * var(--px)) minmax(0, 1fr); row-gap: calc(10 * var(--px)); }
  .mv-event .ms-btn { grid-column: 2; justify-self: start; }
  .mv-event__date strong { font-size: calc(30 * var(--px)); }
  .mv-event__name { font-size: calc(18 * var(--px)); }
}

/* cardápio */
.mv--menu { align-items: center; justify-content: center; text-align: center; }
.mv-menu__art { width: calc(150 * var(--px)); aspect-ratio: 1; color: var(--dourado); }
.mv-menu__art svg { width: 100%; height: 100%; }

/* contato */
.mv-contact {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  grid-template-rows: 1fr 1fr;
  gap: calc(14 * var(--px));
}
.mv-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: calc(6 * var(--px));
  padding: calc(22 * var(--px));
  border: 1px solid rgba(231, 190, 120, 0.2);
  border-radius: calc(14 * var(--px));
  background: rgba(245, 237, 224, 0.03);
  color: var(--creme);
  font-size: calc(15 * var(--px));
  text-align: left;
  text-decoration: none;
  transition: border-color 0.4s, box-shadow 0.6s var(--ease), background-color 0.4s;
}
.mv-card:hover { border-color: rgba(231, 190, 120, 0.5); }
.mv-card__icon { width: calc(34 * var(--px)); height: calc(34 * var(--px)); color: var(--dourado); }
.mv-card__icon svg { width: 100%; height: 100%; }
.mv-card__label { font-family: var(--f-display); font-size: calc(24 * var(--px)); }
.mv-card__value { color: var(--texto-suave); }
.mv-card--map { grid-column: 2; grid-row: 1 / span 2; justify-content: end; overflow: hidden; }
.mv-card--map .art { position: absolute; inset: 0; z-index: 0; background: #14120F; }
.mv-card--map > :not(.art) { position: relative; z-index: 1; }
.mv-card--map .ms-btn { align-self: flex-start; margin-top: calc(8 * var(--px)); }
.mv-card.is-focus {
  border-color: var(--dourado);
  background: rgba(231, 190, 120, 0.08);
  box-shadow: 0 0 0 calc(5 * var(--px)) rgba(231, 190, 120, 0.12), 0 0 calc(50 * var(--px)) rgba(231, 190, 120, 0.25);
}
@container (max-width: 400px) {
  .mv-contact { grid-template-columns: 1fr; grid-template-rows: auto auto minmax(calc(240 * var(--px)), 1fr); }
  .mv-card--map { grid-column: 1; grid-row: auto; }
  .mv-card__label { font-size: calc(19 * var(--px)); }
}

.ms-fab {
  position: absolute;
  z-index: 4;
  right: calc(18 * var(--px));
  bottom: calc(22 * var(--px));
  display: none;
  place-items: center;
  width: calc(54 * var(--px));
  height: calc(54 * var(--px));
  border: 0;
  border-radius: 50%;
  background: var(--dourado);
  color: var(--preto);
  box-shadow: 0 calc(10 * var(--px)) calc(26 * var(--px)) rgba(0, 0, 0, 0.5);
}
.ms-fab svg { width: 46%; height: 46%; }
@container (max-width: 400px) { .ms-fab { display: grid; } }

.ms-toast {
  position: absolute;
  z-index: 6;
  left: 50%;
  bottom: calc(18 * var(--px));
  max-width: 86%;
  padding: calc(10 * var(--px)) calc(16 * var(--px));
  border-radius: 999px;
  background: rgba(245, 237, 224, 0.94);
  color: var(--preto);
  font-size: calc(13 * var(--px));
  text-align: center;
  transform: translate(-50%, 20%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.35s, transform 0.45s var(--ease);
}
.ms-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
@container (max-width: 400px) { .ms-toast { bottom: calc(92 * var(--px)); font-size: calc(14 * var(--px)); border-radius: calc(14 * var(--px)); } }

/* ==========================================================================
   PROTÓTIPO · SISTEMA DE EVENTOS
   ========================================================================== */
.app-frame {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(390px, 100%);
  height: min(760px, calc(100svh - var(--hud-h) - 96px));
  min-height: 620px;
  overflow: hidden;
  border: 1px solid rgba(231, 190, 120, 0.3);
  border-radius: 40px;
  background: var(--carvao);
  box-shadow: 0 0 0 7px #1A1815, 0 0 0 8px rgba(231, 190, 120, 0.22), 0 50px 90px -30px rgba(0, 0, 0, 0.9);
}
.bk { display: flex; flex-direction: column; height: 100%; min-height: 0; color: var(--creme); }
.bk__urlbar {
  flex: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 18px 10px;
  background: #12110F;
  border-bottom: 1px solid rgba(231, 190, 120, 0.12);
  font-size: 12.5px;
  color: var(--texto-suave);
}
.bk__lock { width: 13px; height: 13px; flex: none; color: var(--texto-fraco); }
.bk__url {
  flex: 1;
  min-width: 0;
  min-height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 10px;
  border-radius: 8px;
  background: #1D1B18;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bk__caret {
  display: inline-block;
  width: 1px;
  height: 1.05em;
  margin-left: 1px;
  background: var(--dourado);
  vertical-align: -0.15em;
  animation: caret 1s steps(1) infinite;
}
@keyframes caret { 50% { opacity: 0; } }
.bk__head {
  flex: none;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 22px 8px;
}
.bk__brand { font-family: var(--f-display); font-size: 15px; font-weight: 500; letter-spacing: 0.16em; }
.bk__title { font-size: 13px; color: var(--texto-suave); }
.bk__progress { flex: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; padding: 6px 22px 0; }
.bk__progress span { height: 3px; border-radius: 2px; background: rgba(231, 190, 120, 0.16); transition: background-color 0.4s; }
.bk__progress span.is-on { background: var(--dourado); }
.bk__stepinfo { flex: none; padding: 10px 22px 0; font-size: 12.5px; color: var(--texto-fraco); font-variant-numeric: tabular-nums; }
.bk__body { position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 12px 22px 18px; }
.bk__panel { display: grid; gap: 16px; }
.bk__q { font-family: var(--f-display); font-size: 27px; font-weight: 500; line-height: 1.15; }
.bk__note { font-size: 12.5px; color: var(--texto-fraco); }
.bk__error { min-height: 1.3em; font-size: 13px; color: #F2B98E; }

.bk__options { display: grid; gap: 9px; }
.bk__opt {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 52px;
  padding: 10px 16px;
  border: 1px solid rgba(231, 190, 120, 0.22);
  border-radius: 12px;
  background: rgba(245, 237, 224, 0.02);
  cursor: pointer;
  transition: border-color 0.3s, background-color 0.3s;
}
.bk__opt:hover { border-color: rgba(231, 190, 120, 0.5); }
.bk__opt input { position: absolute; opacity: 0; pointer-events: none; }
.bk__radio {
  flex: none;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(231, 190, 120, 0.55);
  border-radius: 50%;
}
.bk__radio::after {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--dourado);
  transform: scale(0);
  transition: transform 0.3s var(--ease);
}
.bk__opt:has(input:checked) { border-color: var(--dourado); background: rgba(231, 190, 120, 0.1); }
.bk__opt:has(input:checked) .bk__radio::after { transform: scale(1); }
.bk__opt:has(input:focus-visible) { outline: 2px solid var(--dourado); outline-offset: 2px; }
.bk__opt.is-checked { border-color: var(--dourado); background: rgba(231, 190, 120, 0.1); }
.bk__opt.is-checked .bk__radio::after { transform: scale(1); }

.bk__chips { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.bk__chip { min-height: 50px; justify-content: center; padding: 0 8px; font-variant-numeric: tabular-nums; }
.bk__chip .bk__radio { display: none; }

/* calendário */
.cal { display: grid; gap: 10px; }
.cal__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.cal__month { font-family: var(--f-display); font-size: 19px; }
.cal__nav {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid rgba(231, 190, 120, 0.28);
  border-radius: 50%;
  background: none;
  color: var(--creme);
}
.cal__nav svg { width: 16px; height: 16px; }
.cal__nav:disabled { opacity: 0.3; cursor: default; }
.cal__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; text-align: center; }
.cal__dow { padding: 4px 0; font-size: 11.5px; color: var(--texto-fraco); }
.cal__day {
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background: none;
  color: var(--creme);
  font-size: 14.5px;
  font-variant-numeric: tabular-nums;
  transition: background-color 0.25s, color 0.25s;
}
.cal__day:hover:not(:disabled) { background: rgba(231, 190, 120, 0.15); }
.cal__day:disabled { color: rgba(245, 237, 224, 0.24); cursor: default; }
.cal__day.is-today { box-shadow: inset 0 0 0 1px rgba(231, 190, 120, 0.5); }
.cal__day[aria-pressed="true"],
.cal__day[aria-pressed="true"]:hover:not(:disabled) { background: var(--dourado); color: var(--preto); font-weight: 600; }
.cal__selected { min-height: 1.4em; font-size: 13.5px; color: var(--texto-suave); }

/* pessoas */
.stepper {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 56px;
  align-items: center;
  gap: 10px;
  padding: 18px 12px;
  border: 1px solid rgba(231, 190, 120, 0.22);
  border-radius: 18px;
}
.stepper__btn {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(231, 190, 120, 0.35);
  border-radius: 50%;
  background: none;
  color: var(--creme);
}
.stepper__btn svg { width: 18px; height: 18px; }
.stepper__btn:disabled { opacity: 0.3; cursor: default; }
.stepper__value { display: grid; justify-items: center; line-height: 1; }
.stepper__num { font-family: var(--f-display); font-size: 64px; font-weight: 500; font-variant-numeric: lining-nums tabular-nums; }
.stepper__unit { margin-top: 6px; font-size: 13px; color: var(--texto-suave); }
.quick { display: flex; flex-wrap: wrap; gap: 8px; }
.quick button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid rgba(231, 190, 120, 0.22);
  border-radius: 999px;
  background: none;
  font-size: 13.5px;
  color: var(--texto-suave);
}
.quick button:hover { border-color: var(--dourado); color: var(--creme); }

/* campos */
.field { display: grid; gap: 7px; }
.field label { font-size: 13px; color: var(--texto-suave); }
.field input {
  height: 50px;
  padding: 0 14px;
  border: 1px solid rgba(231, 190, 120, 0.26);
  border-radius: 12px;
  background: rgba(245, 237, 224, 0.03);
  color: var(--creme);
  font-size: 16px;
  transition: border-color 0.3s, box-shadow 0.3s;
}
.field input::placeholder { color: var(--texto-fraco); }
.field input:focus { border-color: var(--dourado); box-shadow: 0 0 0 3px rgba(231, 190, 120, 0.18); }
.field input[aria-invalid="true"] { border-color: #F2B98E; }

/* rodapé do app */
.bk__foot {
  flex: none;
  display: flex;
  gap: 10px;
  padding: 14px 22px 22px;
  border-top: 1px solid rgba(231, 190, 120, 0.12);
  background: var(--carvao);
}
.bk__btn {
  flex: 1;
  min-height: 50px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: var(--dourado);
  color: var(--preto);
  font-size: 15px;
  font-weight: 500;
  transition: transform 0.3s var(--ease), box-shadow 0.3s, opacity 0.3s;
}
.bk__btn:hover { box-shadow: 0 10px 28px -12px rgba(231, 190, 120, 0.8); }
.bk__btn:active { transform: scale(0.98); }
.bk__btn--ghost { flex: 0 0 auto; padding: 0 20px; background: none; color: var(--creme); border-color: rgba(231, 190, 120, 0.35); }
.bk__btn--ghost:hover { box-shadow: none; border-color: var(--dourado); }
.bk__btn--wa { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.bk__btn--wa svg { width: 18px; height: 18px; }

/* prévia da conversa */
.chat {
  display: grid;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 20% 10%, rgba(231, 190, 120, 0.06), transparent 40%),
    #100F0D;
  border: 1px solid rgba(231, 190, 120, 0.12);
}
.chat__head { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid rgba(231, 190, 120, 0.1); }
.chat__avatar {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--dourado);
  color: var(--preto);
  font-family: var(--f-display);
  font-weight: 600;
}
.chat__name { font-size: 14px; }
.chat__sub { font-size: 11.5px; color: var(--texto-fraco); }
.chat__typing { display: inline-flex; gap: 4px; justify-self: end; padding: 12px 14px; border-radius: 14px 14px 4px 14px; background: rgba(231, 190, 120, 0.16); }
.chat__typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--creme); opacity: 0.4; animation: typing 1.1s infinite; }
.chat__typing i:nth-child(2) { animation-delay: 0.15s; }
.chat__typing i:nth-child(3) { animation-delay: 0.3s; }
@keyframes typing { 30% { opacity: 1; transform: translateY(-2px); } }
.chat__bubble {
  justify-self: end;
  max-width: 94%;
  padding: 12px 14px 8px;
  border-radius: 14px 14px 4px 14px;
  background: rgba(231, 190, 120, 0.17);
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.chat__time { display: block; margin-top: 4px; text-align: right; font-size: 11px; color: var(--texto-suave); }
.preview__note { font-size: 12.5px; color: var(--texto-suave); }
.preview__actions { display: grid; gap: 9px; }
.preview__actions .bk__btn { width: 100%; flex: none; }

@media (max-width: 899px) {
  .app-frame {
    width: 100%;
    max-width: 480px;
    height: auto;
    min-height: 0;
    border-radius: 24px;
    box-shadow: 0 0 0 5px #1A1815, 0 0 0 6px rgba(231, 190, 120, 0.2);
  }
  .bk__body { overflow: visible; }
}

/* ==========================================================================
   PROTÓTIPO · SITE DO HOTEL
   ========================================================================== */
.hotel-device { height: min(74svh, 660px); min-height: 460px; }
.hotel-device .device__screen { overflow-y: auto; }
@media (max-width: 699px) { .hotel-device { height: 62svh; min-height: 420px; } }
.is-motion .hotel-device--driven .device__screen { overflow: hidden; }

.hsite {
  --px: calc(100cqi / 1280);
  position: relative;
  background: var(--manha-3);
  color: var(--tinta);
  font-family: var(--f-texto);
  font-size: calc(16 * var(--px));
  line-height: 1.5;
  will-change: transform;
}
@container (max-width: 480px) { .hsite { --px: calc(100cqi / 390); } }

.hs-tag {
  display: none;
  align-self: flex-start;
  margin-bottom: calc(12 * var(--px));
  padding: calc(4 * var(--px)) calc(10 * var(--px));
  border-radius: 999px;
  background: var(--tinta);
  color: var(--manha);
  font-size: calc(12 * var(--px));
  letter-spacing: 0.04em;
  justify-self: start;
  width: max-content;
}
@container (max-width: 480px) { .hs-tag { display: inline-block; } }

.hs-nav {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(20 * var(--px));
  padding: calc(24 * var(--px)) calc(56 * var(--px));
  color: var(--manha-3);
}
.hs-brand { font-family: var(--f-display); font-size: calc(26 * var(--px)); font-weight: 500; line-height: 1.1; }
.hs-brand small {
  display: block;
  font-family: var(--f-texto);
  font-size: calc(11 * var(--px));
  font-weight: 400;
  letter-spacing: 0.18em;
  opacity: 0.85;
}
.hs-links { display: flex; gap: calc(26 * var(--px)); font-size: calc(14 * var(--px)); }
.hs-burger { display: none; gap: calc(5 * var(--px)); width: calc(24 * var(--px)); }
.hs-burger i { display: block; height: 1px; background: currentColor; }
@container (max-width: 480px) {
  .hs-nav { padding: calc(18 * var(--px)) calc(20 * var(--px)); }
  .hs-links { display: none; }
  .hs-burger { display: grid; }
  .hs-brand { font-size: calc(20 * var(--px)); }
}

.hs-section { position: relative; display: flex; flex-direction: column; padding: calc(84 * var(--px)) calc(56 * var(--px)); }
@container (max-width: 480px) { .hs-section { padding: calc(44 * var(--px)) calc(20 * var(--px)); } }
.hs-h2 { font-family: var(--f-display); font-size: calc(48 * var(--px)); font-weight: 500; line-height: 1.08; }
.hs-p { max-width: 52ch; font-size: calc(18 * var(--px)); color: var(--tinta-suave); }
@container (max-width: 480px) {
  .hs-h2 { font-size: calc(32 * var(--px)); }
  .hs-p { font-size: calc(15 * var(--px)); }
}
.hs-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: calc(50 * var(--px));
  padding: 0 calc(24 * var(--px));
  border-radius: 999px;
  background: var(--tinta);
  color: var(--manha-3);
  font-size: calc(15 * var(--px));
  white-space: nowrap;
}
.hs-btn--light { background: var(--manha-3); color: var(--tinta); }
.hs-btn--ghost { background: transparent; border: 1px solid currentColor; }

.hs-hero { height: calc(700 * var(--px)); padding: 0; justify-content: flex-end; color: var(--manha-3); }
.hs-hero .art { position: absolute; inset: 0; }
.hs-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(to bottom, rgba(31, 28, 24, 0.35), rgba(31, 28, 24, 0) 30%, rgba(31, 28, 24, 0.62));
}
.hs-hero__content {
  position: relative;
  z-index: 2;
  display: grid;
  gap: calc(20 * var(--px));
  padding: calc(56 * var(--px));
}
.hs-hero__title { max-width: 14ch; font-family: var(--f-display); font-size: calc(76 * var(--px)); font-weight: 500; line-height: 1.02; }
.hs-hero__btns { display: flex; flex-wrap: wrap; gap: calc(10 * var(--px)); }
@container (max-width: 480px) {
  .hs-hero { height: calc(640 * var(--px)); }
  .hs-hero__content { padding: calc(24 * var(--px)) calc(20 * var(--px)); }
  .hs-hero__title { font-size: calc(44 * var(--px)); }
}

.hs-about { display: grid; grid-template-columns: 1fr 1fr; gap: calc(56 * var(--px)); align-items: center; }
.hs-about__text { display: grid; gap: calc(16 * var(--px)); align-content: center; }
.hs-about .art { aspect-ratio: 4 / 3; border-radius: calc(18 * var(--px)); }
@container (max-width: 480px) { .hs-about { grid-template-columns: 1fr; gap: calc(22 * var(--px)); } }

.hs-rooms { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: calc(20 * var(--px)); margin-top: calc(28 * var(--px)); }
.hs-room { display: grid; gap: calc(10 * var(--px)); }
.hs-room .art { aspect-ratio: 4 / 5; border-radius: calc(14 * var(--px)); }
.hs-room__name { font-family: var(--f-display); font-size: calc(22 * var(--px)); }
.hs-room__meta { font-size: calc(14 * var(--px)); color: var(--tinta-suave); }
@container (max-width: 480px) { .hs-rooms { grid-template-columns: 1fr; } .hs-room .art { aspect-ratio: 16 / 10; } }

.hs-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: calc(230 * var(--px)) calc(230 * var(--px));
  gap: calc(14 * var(--px));
  margin-top: calc(28 * var(--px));
}
.hs-gallery .art { border-radius: calc(12 * var(--px)); }
.hs-gallery .art:first-child { grid-row: span 2; }
@container (max-width: 480px) {
  .hs-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: calc(220 * var(--px)) calc(130 * var(--px)) calc(130 * var(--px)); }
  .hs-gallery .art:first-child { grid-row: auto; grid-column: span 2; }
}

.hs-services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: calc(14 * var(--px)); margin-top: calc(28 * var(--px)); }
.hs-service {
  display: grid;
  gap: calc(12 * var(--px));
  padding: calc(22 * var(--px));
  border: 1px solid var(--linha-clara);
  border-radius: calc(14 * var(--px));
  font-size: calc(16 * var(--px));
}
.hs-service svg { width: calc(26 * var(--px)); height: calc(26 * var(--px)); color: var(--ambar-tinta); }
@container (max-width: 480px) { .hs-services { grid-template-columns: 1fr 1fr; } }

.hs-location { display: grid; grid-template-columns: 1.3fr 1fr; gap: calc(40 * var(--px)); align-items: center; }
.hs-location .art { aspect-ratio: 16 / 10; border-radius: calc(16 * var(--px)); }
.hs-location__text { display: grid; gap: calc(16 * var(--px)); justify-items: start; }
@container (max-width: 480px) { .hs-location { grid-template-columns: 1fr; } }

.hs-reserve {
  align-items: center;
  text-align: center;
  gap: calc(16 * var(--px));
  background: var(--tinta);
  color: var(--manha-3);
}
.hs-reserve .hs-p { color: rgba(251, 247, 240, 0.78); margin-inline: auto; }
.hs-reserve .hs-tag { align-self: center; background: var(--manha-3); color: var(--tinta); }
.hs-footer {
  padding: calc(26 * var(--px)) calc(56 * var(--px));
  font-size: calc(13 * var(--px));
  color: var(--tinta-suave);
  border-top: 1px solid var(--linha-clara);
}

/* ==========================================================================
   QUARTOS
   ========================================================================== */
.room__btn {
  display: grid;
  gap: 16px;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  text-align: left;
}
.room__media {
  height: clamp(240px, 27vw, 400px);
  border-radius: var(--r-m);
}
.room__media > svg,
.room__media > img { transition: transform 1.2s var(--ease); }
.room__btn:hover .room__media > svg,
.room__btn:hover .room__media > img { transform: scale(1.045); }
.room__tag {
  position: absolute;
  z-index: 2;
  left: 14px;
  top: 14px;
  padding: 4px 11px;
  border-radius: 999px;
  background: rgba(251, 247, 240, 0.9);
  color: var(--tinta);
  font-size: 12px;
}
.room__meta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 18px; }
.room__name { font-family: var(--f-display); font-size: var(--t-2); font-weight: 500; line-height: 1.1; }
.room__specs { font-size: var(--t-small); color: var(--tinta-suave); }
.room__open {
  font-size: var(--t-small);
  color: var(--ambar-tinta);
  border-bottom: 1px solid currentColor;
  white-space: nowrap;
  transition: color 0.3s;
}
.room__btn:hover .room__open { color: var(--tinta); }
@media (max-width: 699px) { .room__media { height: auto; aspect-ratio: 4 / 5; } }

/* folha de detalhes */
.sheet {
  width: min(1180px, calc(100% - 32px));
  max-width: none;
  max-height: calc(100svh - 40px);
  padding: 0;
  border: 0;
  border-radius: var(--r-l);
  background: var(--manha-3);
  color: var(--tinta);
  overflow: hidden;
  box-shadow: 0 40px 120px -20px rgba(20, 14, 6, 0.6);
}
.sheet::backdrop { background: rgba(21, 20, 18, 0.62); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.sheet[open] { display: block; }
.sheet__inner {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  grid-template-rows: minmax(0, 1fr);
  height: min(820px, calc(100svh - 40px));
}
.sheet__close {
  position: absolute;
  z-index: 5;
  top: 14px;
  right: 14px;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(31, 28, 24, 0.16);
  border-radius: 50%;
  background: rgba(251, 247, 240, 0.92);
  color: var(--tinta);
}
.sheet__close svg { width: 18px; height: 18px; }

.gal { display: grid; grid-template-rows: minmax(0, 1fr) auto; min-height: 0; background: var(--manha-2); }
.gal__viewport { position: relative; overflow: hidden; min-height: 320px; touch-action: pan-y; }
.gal__track { display: flex; height: 100%; transition: transform 0.75s var(--ease); }
.gal__slide { position: relative; flex: 0 0 100%; height: 100%; }
.gal__slide .art { position: absolute; inset: 0; }
.gal__nav {
  position: absolute;
  z-index: 3;
  top: 50%;
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 50%;
  background: rgba(251, 247, 240, 0.92);
  color: var(--tinta);
  transform: translateY(-50%);
  transition: transform 0.3s var(--ease), background-color 0.3s;
}
.gal__nav:hover { background: #fff; }
.gal__nav svg { width: 18px; height: 18px; }
.gal__nav--prev { left: 14px; }
.gal__nav--next { right: 14px; }
.gal__count {
  position: absolute;
  z-index: 3;
  right: 14px;
  bottom: 14px;
  padding: 4px 11px;
  border-radius: 999px;
  background: rgba(31, 28, 24, 0.72);
  color: var(--manha-3);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
}
.gal__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 12px; }
.gal__thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  padding: 0;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 9px;
  background: none;
  opacity: 0.62;
  transition: opacity 0.3s, border-color 0.3s;
}
.gal__thumb .art { position: absolute; inset: 0; }
.gal__thumb:hover { opacity: 0.9; }
.gal__thumb[aria-current="true"] { opacity: 1; border-color: var(--ambar-tinta); }

.sheet__info {
  display: grid;
  align-content: start;
  gap: 22px;
  min-height: 0;
  overflow-y: auto;
  padding: clamp(24px, 3vw, 44px);
  padding-top: clamp(64px, 6vw, 72px);
}
.sheet__tag {
  justify-self: start;
  padding: 4px 11px;
  border-radius: 999px;
  border: 1px solid rgba(31, 28, 24, 0.2);
  font-size: 12px;
  color: var(--tinta-suave);
}
.sheet__title { font-family: var(--f-display); font-size: var(--t-2); font-weight: 500; line-height: 1.08; }
.sheet__desc { font-size: var(--t-small); color: var(--tinta-suave); }
.specs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--linha-clara); }
.specs > div { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--linha-clara); }
.specs dt { font-size: 12px; color: var(--tinta-suave); }
.specs dd { font-family: var(--f-display); font-size: 1.12rem; line-height: 1.3; }
.sheet__subtitle { font-size: var(--t-small); font-weight: 500; }
.amenities { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.amenities li { padding: 6px 12px; border: 1px solid var(--linha-clara); border-radius: 999px; font-size: 13.5px; }
.sheet__cta { display: grid; gap: 12px; }
.sheet__notes { display: grid; gap: 8px; font-size: 12.5px; color: var(--tinta-suave); }

.chat--light {
  background: var(--manha);
  border-color: var(--linha-clara);
}
.chat--light .chat__head { border-bottom-color: var(--linha-clara); }
.chat--light .chat__avatar { background: var(--tinta); color: var(--manha); }
.chat--light .chat__sub { color: var(--tinta-suave); }
.chat--light .chat__bubble { background: #E4D3B5; color: var(--tinta); }
.chat--light .chat__time { color: var(--tinta-suave); }

@media (max-width: 899px) {
  .sheet {
    width: 100%;
    height: 100%;
    max-height: 100%;
    border-radius: 0;
    margin: 0;
    inset: 0;
  }
  .sheet__inner {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    height: 100%;
    max-height: 100svh;
    overflow-y: auto;
    padding-top: env(safe-area-inset-top, 0px);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .gal__viewport { min-height: 0; aspect-ratio: 4 / 3; }
  .sheet__info { overflow: visible; padding-top: 24px; }
  .sheet__close { top: calc(env(safe-area-inset-top, 0px) + 12px); right: max(12px, env(safe-area-inset-right, 0px)); }
}

/* ==========================================================================
   ECOSSISTEMA
   ========================================================================== */
.eco__panel {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 28px;
  min-height: 560px;
  padding: clamp(24px, 3.4vw, 48px);
}
.eco__panel--dark { background: var(--carvao-2); color: var(--texto); }
.eco__panel--light { background: var(--manha); color: var(--tinta); }
.eco__panel-title { font-family: var(--f-display); font-size: var(--t-2); font-weight: 500; line-height: 1.1; }
.eco__diagram { position: relative; display: grid; align-content: center; }
.eco__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.eco__line { fill: none; stroke-width: 1.5; transition: opacity 0.4s; }
.eco__flow { fill: none; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 2 16; transition: opacity 0.4s; }
.is-motion .eco__flow { animation: eco-flow 1.8s linear infinite; }
@keyframes eco-flow { to { stroke-dashoffset: -36; } }
.eco__panel--dark .eco__line { stroke: rgba(231, 190, 120, 0.5); }
.eco__panel--dark .eco__flow { stroke: var(--dourado); }
.eco__panel--light .eco__line { stroke: rgba(122, 82, 25, 0.45); }
.eco__panel--light .eco__flow { stroke: var(--ambar-tinta); }
.eco__svg .is-dim { opacity: 0.18; }

.eco__tree {
  position: relative;
  z-index: 1;
  display: grid;
  justify-content: center;
  justify-items: start;
  gap: 16px;
}
.eco__tree--chain { gap: 30px; }
.eco__tree:not(.eco__tree--chain) .eco__node:nth-child(2) { margin-block: 10px 6px; }
.eco__node--leaf { margin-left: 52px; }
.eco__node {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 46px;
  max-width: 100%;
  padding: 0 18px;
  border: 1px solid;
  border-radius: 999px;
  font-size: var(--t-small);
  line-height: 1.2;
  text-align: center;
  transition: background-color 0.4s, color 0.4s, box-shadow 0.5s var(--ease), border-color 0.4s;
}
.eco__panel--dark .eco__node:hover { border-color: var(--dourado); }
.eco__panel--light .eco__node:hover { border-color: var(--tinta); }
.eco__node-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: currentColor; opacity: 0.75; }
.eco__panel--dark .eco__node { border-color: var(--linha-forte); background: var(--carvao-2); color: var(--texto); }
.eco__panel--dark .eco__node.is-active {
  border-color: var(--dourado);
  background: var(--dourado);
  color: var(--preto);
  box-shadow: 0 0 40px rgba(231, 190, 120, 0.4);
}
.eco__panel--light .eco__node { border-color: rgba(31, 28, 24, 0.24); background: var(--manha-3); color: var(--tinta); }
.eco__panel--light .eco__node.is-active { border-color: var(--tinta); background: var(--tinta); color: var(--manha); box-shadow: 0 16px 40px -18px rgba(31, 28, 24, 0.6); }
.eco__caption { min-height: 3.2em; font-size: var(--t-small); }
.eco__panel--dark .eco__caption { color: var(--texto-suave); }
.eco__panel--light .eco__caption { color: var(--tinta-suave); }
.eco__caption strong { font-weight: 500; }
.eco__panel--dark .eco__caption strong { color: var(--texto); }
.eco__panel--light .eco__caption strong { color: var(--tinta); }

@media (max-width: 699px) {
  .eco__panel { min-height: 0; }
  .eco__node { padding: 0 14px; font-size: 0.875rem; }
  .eco__node--leaf { margin-left: 40px; }
}

/* ==========================================================================
   ORÇAMENTO
   ========================================================================== */
.cost {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 24px;
  padding: 22px 24px;
  border: 1px solid var(--linha);
  border-radius: var(--r-m);
  background: var(--carvao-2);
  transition: border-color 0.4s, background-color 0.4s, box-shadow 0.5s var(--ease);
}
.cost:hover { border-color: var(--linha-forte); background: #221F1B; box-shadow: 0 18px 40px -24px rgba(231, 190, 120, 0.35); }
.cost__name { font-family: var(--f-display); font-size: var(--t-3); font-weight: 500; line-height: 1.25; }
.cost__value {
  align-self: start;
  font-size: var(--t-3);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--dourado);
}
.cost__includes { grid-column: 1 / -1; max-width: 54ch; font-size: var(--t-small); color: var(--texto-suave); }

.total {
  position: sticky;
  top: calc(var(--hud-h) + 24px);
  display: grid;
  gap: 22px;
  overflow: hidden;
  padding: clamp(28px, 3vw, 44px);
  border: 1px solid var(--linha-forte);
  border-radius: var(--r-l);
  background:
    radial-gradient(120% 90% at 50% 0%, rgba(231, 190, 120, 0.16), rgba(231, 190, 120, 0) 62%),
    var(--preto);
}
.total__label { font-size: var(--t-small); color: var(--texto-suave); }
.total__value {
  display: flex;
  align-items: flex-start;
  gap: 0.14em;
  font-family: var(--f-display);
  font-weight: 500;
  line-height: 1;
  color: var(--creme);
  white-space: nowrap;
}
.total__cur { margin-top: 0.3em; font-size: clamp(1.2rem, 1.8vw, 1.6rem); color: var(--dourado); }
.total__num { font-size: clamp(3rem, 6.2vw, 5.4rem); letter-spacing: -0.015em; font-variant-numeric: lining-nums; }
.total__rows { display: grid; border-top: 1px solid var(--linha); }
.total__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--linha);
  font-size: var(--t-small);
  color: var(--texto-suave);
}
.total__row strong { font-weight: 500; color: var(--texto); font-variant-numeric: tabular-nums; white-space: nowrap; }
.total__renewal { display: grid; gap: 4px; }
.total__renewal-line { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: var(--t-small); }
.total__renewal-line strong { font-weight: 500; color: var(--dourado); font-variant-numeric: tabular-nums; white-space: nowrap; }
.total__small { font-size: var(--t-micro); color: var(--texto-fraco); }
.total .text-link { justify-self: start; font-size: var(--t-small); color: var(--texto-suave); }

@media (max-width: 899px) { .total { position: relative; top: 0; } }

/* ==========================================================================
   LINHA DO TEMPO
   ========================================================================== */
.timeline { position: relative; margin-top: clamp(44px, 6vw, 72px); }
.timeline__rail,
.timeline__fill {
  position: absolute;
  left: 23px;
  right: 0;
  top: 23px;
}
.timeline__rail { height: 1px; background: var(--linha-forte); }
.timeline__fill {
  height: 2px;
  margin-top: -0.5px;
  background: linear-gradient(90deg, var(--ambar), var(--dourado));
  transform-origin: 0 50%;
  transform: scaleX(var(--fill, 1));
}
.timeline__stages {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 2.6vw, 40px);
}
.stage { display: grid; gap: 12px; align-content: start; }
.stage__dot {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--linha-forte);
  border-radius: 50%;
  background: var(--preto);
  color: var(--texto-suave);
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-variant-numeric: lining-nums;
  transition: background-color 0.5s var(--ease), color 0.5s, box-shadow 0.6s var(--ease), border-color 0.5s;
}
.stage.is-lit .stage__dot { border-color: var(--dourado); background: var(--dourado); color: var(--preto); box-shadow: 0 0 40px rgba(231, 190, 120, 0.42); }
.stage__title { margin-top: 6px; font-family: var(--f-display); font-size: var(--t-3); font-weight: 500; line-height: 1.2; }
.stage__text { max-width: 30ch; font-size: var(--t-small); color: var(--texto-suave); }

@media (max-width: 899px) {
  .timeline__rail,
  .timeline__fill {
    left: 23px;
    right: auto;
    top: 23px;
    bottom: 23px;
    width: 1px;
    height: auto;
  }
  .timeline__fill { width: 2px; margin: 0 0 0 -0.5px; transform-origin: 50% 0; transform: scaleY(var(--fill, 1)); }
  .timeline__stages { grid-template-columns: 1fr; gap: 30px; }
  .stage { grid-template-columns: 46px minmax(0, 1fr); column-gap: 18px; row-gap: 4px; }
  .stage__dot { grid-row: span 2; }
  .stage__title { margin-top: 10px; }
}

.big-num { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; }
.big-num__value {
  font-family: var(--f-display);
  font-size: clamp(4.4rem, 10vw, 8.5rem);
  font-weight: 500;
  line-height: 0.9;
  color: var(--dourado);
}
.big-num__unit { font-family: var(--f-display); font-size: var(--t-2); font-style: italic; }
.big-num__text { max-width: 52ch; font-size: var(--t-small); color: var(--texto-suave); }

.split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--linha-forte);
  border-radius: var(--r-m);
}
.split > div { display: grid; gap: 6px; align-content: start; padding: 22px; }
.split > div + div { border-left: 1px solid var(--linha-forte); background: rgba(231, 190, 120, 0.08); }
.split__share { font-family: var(--f-display); font-size: clamp(2.2rem, 3.6vw, 3rem); font-weight: 500; line-height: 1; color: var(--dourado); }
.split__text { font-size: var(--t-small); color: var(--texto-suave); }
.terms__payment-note { font-size: var(--t-small); color: var(--texto-suave); }

@media (max-width: 420px) {
  .split { grid-template-columns: 1fr; }
  .split > div + div { border-left: 0; border-top: 1px solid var(--linha-forte); }
}

/* ==========================================================================
   AJUSTES COMPLEMENTARES
   ========================================================================== */
html.is-locked { overflow: hidden; }

.bk__fieldset { display: grid; gap: 16px; min-width: 0; margin: 0; padding: 0; border: 0; }
.bk__fieldset > legend { margin-bottom: 16px; padding: 0; }

.invest__group-label { font-size: var(--t-small); font-weight: 500; letter-spacing: 0.02em; color: var(--texto-suave); }
.terms__text--space { margin-top: 16px; }
.terms__list--space { margin-top: 18px; }
.contact__label { color: var(--texto-fraco); }

.hs-section--tint { background: var(--manha); }

.room__specs { flex-basis: 100%; }

.sheet .btn { background: var(--tinta); color: var(--manha); justify-self: start; }
.sheet .btn::before { background: radial-gradient(160px circle at var(--mx) var(--my), rgba(231, 190, 120, 0.5), transparent 62%); }
.sheet .btn:hover { box-shadow: 0 14px 40px -16px rgba(60, 40, 10, 0.55); }

.terms__subtitle--space { margin-top: 28px; }

.preview__restart { justify-self: start; font-size: 13.5px; color: var(--texto-suave); }
