/* ============================================================
   BLISS MOTEL — booking, reservas, info pages
   ============================================================ */

/* ---------- stepper ---------- */
.stepper{ display:flex; gap:10px; margin-bottom:26px; flex-wrap:wrap; }
.stepper__i{ display:flex; align-items:center; gap:10px; padding:10px 16px 10px 10px; border-radius:999px; background:var(--glass); border:1px solid var(--stroke); color:var(--muted); transition:.25s; }
.stepper__n{ width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.06); font-family:var(--display); font-weight:700; font-size:13px; color:var(--muted); border:1px solid var(--stroke); }
.stepper__l{ font-family:var(--display); font-weight:600; font-size:13.5px; }
.stepper__i.active{ border-color:var(--red); color:var(--ink); background:rgba(255,45,85,.08); }
.stepper__i.active .stepper__n{ background:linear-gradient(135deg,var(--red),var(--red-deep)); color:#fff; border-color:transparent; }
.stepper__i.done{ color:var(--ink); cursor:pointer; }
.stepper__i.done .stepper__n{ background:rgba(255,45,85,.16); color:var(--red-soft); border-color:var(--red-glow); }
.stepper__i:disabled{ cursor:not-allowed; }

/* ---------- bookgrid ---------- */
.bookgrid{ display:grid; grid-template-columns:1.55fr 1fr; gap:28px; align-items:start; }
.bookgrid__main{ padding:30px; border-radius:var(--r-lg); }
.step h3{ letter-spacing:-.02em; }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field-label{ font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; font-family:var(--display); }

/* pick list */
.pick-list{ display:flex; flex-direction:column; gap:10px; }
.pick{ display:flex; align-items:center; gap:16px; padding:12px; padding-right:18px; border-radius:var(--r); background:rgba(255,255,255,.03); border:1px solid var(--stroke); color:var(--ink); text-align:left; transition:.2s; cursor:pointer; }
.pick:hover{ border-color:var(--stroke-2); }
.pick.active{ border-color:var(--red); background:rgba(255,45,85,.07); box-shadow:0 0 0 1px var(--red-glow); }
.pick img{ width:78px; height:64px; object-fit:cover; border-radius:12px; flex:none; }
.pick__body{ flex:1; display:flex; flex-direction:column; gap:4px; }
.pick__body strong{ font-family:var(--display); font-weight:600; font-size:16px; }
.pick__tier{ font-size:12px; color:var(--faint); }
.pick__price{ display:flex; flex-direction:column; align-items:flex-end; font-family:var(--display); font-weight:700; font-size:17px; }
.pick__radio{ width:24px; height:24px; border-radius:50%; border:1.5px solid var(--stroke-2); display:flex; align-items:center; justify-content:center; flex:none; color:#fff; }
.pick.active .pick__radio{ background:var(--red); border-color:var(--red); }

/* slots */
.slots{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.slot{ padding:11px 0; border-radius:10px; background:rgba(255,255,255,.03); border:1px solid var(--stroke); color:var(--muted); font-family:var(--display); font-weight:600; font-size:13.5px; transition:.18s; }
.slot:hover{ border-color:var(--stroke-2); color:var(--ink); }
.slot.active{ background:linear-gradient(135deg,var(--red),var(--red-deep)); color:#fff; border-color:transparent; box-shadow:0 6px 16px -8px var(--red-glow); }

/* number stepper */
.stepper-num{ display:inline-flex; align-items:center; gap:4px; padding:5px; border-radius:999px; background:rgba(255,255,255,.03); border:1px solid var(--stroke); width:max-content; }
.stepper-num button{ width:40px; height:40px; border-radius:50%; border:0; background:var(--glass-2); color:var(--ink); display:flex; align-items:center; justify-content:center; transition:.2s; }
.stepper-num button:hover:not(:disabled){ background:var(--red); }
.stepper-num button:disabled{ opacity:.35; cursor:not-allowed; }
.stepper-num span{ min-width:54px; text-align:center; font-family:var(--display); font-weight:700; font-size:16px; }

.privacy{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--faint); }
.privacy svg{ color:var(--red-soft); }

/* review */
.review{ display:flex; gap:22px; }
.review__img{ width:180px; height:140px; object-fit:cover; border-radius:var(--r); flex:none; }
.review__body{ flex:1; }

.step-actions{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:30px; padding-top:24px; border-top:1px solid var(--stroke); }

/* resume rows */
.resume{ display:flex; flex-direction:column; gap:11px; }
.resume > div{ display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:14px; }
.resume > div span{ color:var(--muted); }
.resume > div b{ font-family:var(--display); font-weight:600; text-align:right; }

/* booking summary */
.booksum{ position:sticky; top:96px; }
.booksum__card{ padding:24px; border-radius:var(--r-lg); }
.booksum__suite{ display:flex; align-items:center; gap:14px; }
.booksum__suite img{ width:64px; height:56px; object-fit:cover; border-radius:12px; }
.booksum__suite strong{ display:block; font-family:var(--display); font-weight:600; }
.booksum__total{ display:flex; align-items:baseline; justify-content:space-between; margin-top:18px; padding-top:18px; border-top:1px solid var(--stroke); }
.booksum__total span{ color:var(--muted); font-size:14px; }
.booksum__total strong{ font-family:var(--display); font-weight:700; font-size:30px; }
.booksum__empty{ text-align:center; padding:30px 10px; color:var(--red-soft); }

/* success */
.success{ max-width:640px; margin:0 auto; text-align:center; }
.success__check{ width:84px; height:84px; border-radius:50%; margin:0 auto 22px; display:flex; align-items:center; justify-content:center; color:#fff; background:linear-gradient(135deg,var(--red),var(--red-deep)); box-shadow:0 16px 40px -10px var(--red-glow); animation:pop .5s cubic-bezier(.2,1.4,.4,1); }
@keyframes pop{ 0%{ transform:scale(0); } 100%{ transform:scale(1); } }
.success__card{ padding:28px; border-radius:var(--r-lg); text-align:left; }
.success__code{ display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.success__code strong{ font-family:var(--display); font-weight:700; font-size:30px; letter-spacing:.02em; }

/* ---------- minhas reservas ---------- */
.empty{ text-align:center; padding:64px 28px; border-radius:var(--r-lg); max-width:560px; margin:0 auto; }
.empty__ico{ width:76px; height:76px; border-radius:50%; margin:0 auto; display:flex; align-items:center; justify-content:center; background:var(--glass-2); border:1px solid var(--stroke); color:var(--red-soft); }
.res-count{ font-size:13.5px; letter-spacing:.04em; }
.res-list{ display:flex; flex-direction:column; gap:14px; }
.rescard{ display:grid; grid-template-columns:120px 1fr auto; gap:20px; padding:14px; border-radius:var(--r-lg); align-items:center; transition:.3s; }
.rescard__media{ border-radius:var(--r); overflow:hidden; aspect-ratio:11/8; }
.rescard__media img{ width:100%; height:100%; object-fit:cover; }
.rescard__top{ display:flex; align-items:center; gap:12px; margin-bottom:8px; }
.rescard__code{ font-family:var(--display); font-weight:700; font-size:13px; color:var(--faint); letter-spacing:.06em; }
.rescard__name{ font-size:21px; }
.rescard__meta{ display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; }
.rescard__meta span{ display:inline-flex; align-items:center; gap:7px; font-size:13.5px; color:var(--muted); }
.rescard__meta svg{ color:var(--red-soft); }
.rescard__side{ display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.rescard__total{ text-align:right; }
.rescard__total strong{ display:block; font-family:var(--display); font-weight:700; font-size:24px; }
.rescard__confirm{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.rescard--off{ opacity:.55; }
.rescard--off .rescard__name{ text-decoration:line-through; text-decoration-color:var(--faint); }
.status{ display:inline-flex; align-items:center; gap:7px; font-family:var(--display); font-weight:600; font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.status i{ width:8px; height:8px; border-radius:50%; }
.status--ok{ color:#67e8a0; } .status--ok i{ background:#3ddc84; box-shadow:0 0 8px #3ddc84; }
.status--off{ color:var(--faint); } .status--off i{ background:var(--faint); }
.res-help{ display:flex; align-items:center; gap:10px; font-size:13px; }
.res-help svg{ color:var(--red-soft); }

/* ---------- features grid (o motel) ---------- */
.feat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.feat{ padding:26px 22px; border-radius:var(--r); display:flex; flex-direction:column; gap:12px; transition:transform .3s, border-color .3s; }
.feat:hover{ transform:translateY(-4px); border-color:var(--stroke-2); }
.feat__ico{ width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:rgba(255,45,85,.1); border:1px solid var(--red-glow); color:var(--red-soft); }
.feat h4{ font-size:17px; }
.feat p{ font-size:13.5px; }

/* masonry-ish gallery */
.mason{ columns:3; column-gap:16px; }
.mason__i{ position:relative; break-inside:avoid; margin-bottom:16px; border-radius:var(--r); overflow:hidden; }
.mason__i img{ width:100%; display:block; aspect-ratio:4/3; object-fit:cover; transition:transform .6s; }
.mason__i--tall img{ aspect-ratio:3/4; }
.mason__i:hover img{ transform:scale(1.05); }

/* cortesias large + promo */
.cort-grid--lg{ grid-template-columns:repeat(2,1fr); }
.cort-grid--lg .cort{ padding:32px; }
.cort-grid--lg .cort h4{ font-size:21px; }
.promo{ position:relative; overflow:hidden; padding:44px; border-radius:var(--r-xl); }
.promo__glow{ position:absolute; inset:auto -10% -60% 30%; height:120%; background:radial-gradient(50% 60% at 50% 50%, rgba(255,45,85,.35), transparent 70%); filter:blur(40px); }
.promo__in{ position:relative; z-index:2; max-width:640px; }

/* ---------- localização ---------- */
.loc{ display:grid; grid-template-columns:1.5fr 1fr; gap:24px; align-items:stretch; }
.loc__map{ border-radius:var(--r-lg); overflow:hidden; min-height:460px; padding:0; }
.loc__map iframe{ width:100%; height:100%; min-height:460px; border:0; filter:grayscale(.4) invert(.92) hue-rotate(180deg) contrast(.9); }
.loc__info{ display:flex; flex-direction:column; gap:12px; }
.loc__block{ display:flex; gap:16px; padding:18px 20px; border-radius:var(--r); }
.loc__ico{ width:44px; height:44px; border-radius:12px; flex:none; display:flex; align-items:center; justify-content:center; background:rgba(255,45,85,.1); border:1px solid var(--red-glow); color:var(--red-soft); }
.loc__block strong{ font-family:var(--display); font-size:15px; }
.loc__block p{ font-size:14px; margin-top:3px; }

/* ---------- contato ---------- */
.contato{ display:grid; grid-template-columns:1fr 1.1fr; gap:24px; align-items:start; }
.contato__methods{ display:flex; flex-direction:column; gap:12px; }
.cmethod{ display:flex; align-items:center; gap:16px; padding:20px 22px; border-radius:var(--r); transition:.25s; }
.cmethod:hover{ transform:translateX(4px); border-color:var(--red-glow); }
.cmethod__ico{ width:48px; height:48px; border-radius:13px; flex:none; display:flex; align-items:center; justify-content:center; background:rgba(255,45,85,.1); border:1px solid var(--red-glow); color:var(--red-soft); }
.cmethod strong{ display:block; font-family:var(--display); font-size:16px; }
.cmethod span{ font-size:13.5px; }
.cmethod__go{ margin-left:auto; color:var(--faint); transition:transform .25s, color .25s; }
.cmethod:hover .cmethod__go{ color:var(--red-soft); transform:translateX(3px); }
.contato__form{ padding:32px; border-radius:var(--r-lg); }
textarea.input{ resize:vertical; min-height:96px; font-family:var(--body); }
.formok{ text-align:center; padding:20px 0; }
.formok .success__check{ margin-bottom:0; }

/* ---------- veja também ---------- */
.veja-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.veja{ text-align:left; padding:28px 24px; border-radius:var(--r); color:var(--ink); display:flex; flex-direction:column; gap:10px; transition:transform .3s, border-color .3s; cursor:pointer; }
.veja:hover{ transform:translateY(-4px); border-color:var(--stroke-2); }
.veja__ico{ width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; background:var(--glass-2); border:1px solid var(--stroke); color:var(--red-soft); margin-bottom:4px; }
.veja h4{ font-size:19px; }
.veja p{ font-size:14px; }
.veja__go{ display:inline-flex; align-items:center; gap:7px; margin-top:6px; font-family:var(--display); font-weight:600; font-size:14px; color:var(--red-soft); }
.veja__go svg{ transition:transform .25s; }
.veja:hover .veja__go svg{ transform:translateX(4px); }

/* ---------- responsive ---------- */
@media (max-width: 980px){
  .bookgrid{ grid-template-columns:1fr; }
  .booksum{ position:static; order:-1; }
  .feat-grid{ grid-template-columns:repeat(2,1fr); }
  .mason{ columns:2; }
  .cort-grid--lg{ grid-template-columns:1fr; }
  .loc{ grid-template-columns:1fr; }
  .contato{ grid-template-columns:1fr; }
  .veja-grid{ grid-template-columns:1fr; }
  .rescard{ grid-template-columns:90px 1fr; }
  .rescard__side{ grid-column:1 / -1; flex-direction:row; align-items:center; justify-content:space-between; padding-top:12px; border-top:1px solid var(--stroke); }
}
@media (max-width: 640px){
  .grid2{ grid-template-columns:1fr; }
  .slots{ grid-template-columns:repeat(3,1fr); }
  .mason{ columns:1; }
  .feat-grid{ grid-template-columns:1fr; }
  .review{ flex-direction:column; }
  .review__img{ width:100%; height:160px; }
  .bookgrid__main{ padding:18px 16px; }
  .stepper__l{ display:none; }
  .stepper__i{ padding:8px; }
  .stepper{ gap:6px; margin-bottom:18px; }
  .pick img{ width:60px; height:50px; }
  .pick__body strong{ font-size:14px; }
  .pick__price{ font-size:15px; }
  .pick{ gap:10px; padding:10px; }
  .step-actions{ flex-wrap:wrap; gap:10px; }
  .step-actions .btn{ flex:1; min-width:120px; }
  .booksum__card{ padding:18px; }
  .rescard{ grid-template-columns:80px 1fr; gap:12px; padding:12px; }
  .rescard__name{ font-size:17px; }
  .rescard__meta{ gap:10px; }
  .rescard__meta span{ font-size:12px; }
  .success__code strong{ font-size:22px; }
  .contato__form{ padding:20px 16px; }
  .cmethod{ padding:14px 16px; gap:12px; }
  .period-opt{ padding:11px 14px; }
}
/* Prevent iOS input zoom */
@media (max-width: 768px){
  .input, .select{ font-size:16px; }
}
/* Touch target improvements */
.btn{ touch-action:manipulation; }
.slot, .period-opt, .pick{ touch-action:manipulation; }
