
/* Calendário estilo print, harmonizado com UI Premium/Ultra */
.cal-wrap{
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  overflow:hidden;
  background:rgba(255,255,255,.04);
}
.cal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 12px;
  background:linear-gradient(180deg, rgba(59,130,246,.35), rgba(59,130,246,.18));
  border-bottom:1px solid rgba(255,255,255,.10);
}
.cal-head .cal-title{
  font-weight:800;
  letter-spacing:.6px;
  text-transform:uppercase;
}
.cal-head button{
  width:38px;height:38px;border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(10,16,30,.35);
  color:rgba(234,240,255,.90);
  cursor:pointer;
}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-dow{
  padding:10px 0;text-align:center;
  color:rgba(234,240,255,.75);
  font-size:12px;
  background:rgba(59,130,246,.12);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.cal-day{
  height:46px;
  display:flex;align-items:center;justify-content:center;
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:1px solid rgba(255,255,255,.08);
  user-select:none;
  cursor:pointer;
}
.cal-day:nth-child(7n){border-right:none}
.cal-day.off{
  color:rgba(234,240,255,.35);
  background:rgba(255,255,255,.02);
  cursor:not-allowed;
}
.cal-day.past{
  color:rgba(234,240,255,.25);
  background:rgba(255,255,255,.02);
  cursor:not-allowed;
  text-decoration: line-through;
  text-decoration-color: rgba(255,255,255,.14);
}
.cal-day.on{
  background:rgba(59,130,246,.28);
  color:#eaf0ff;
}
.cal-day.sel{
  outline:3px solid rgba(250,204,21,.28);
  outline-offset:-3px;
  background:rgba(59,130,246,.40);
}
.slots{
  display:flex;gap:10px;flex-wrap:wrap;margin-top:10px
}
.slot{
  display:flex;flex-direction:column;gap:4px;
  padding:10px 12px;border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  cursor:pointer;
  min-width:160px;
}
.slot small{color:rgba(234,240,255,.70);font-size:12px}
.slot b{font-size:14px}
.slot.on{border-color:rgba(59,130,246,.40)}
.slot.sel{
  background:rgba(59,130,246,.35);
  border-color:rgba(250,204,21,.40);
}
.helper{
  color:rgba(234,240,255,.70);
  font-size:12px;
}

/* =========================
   Quantidade (Adulto + Criança)
========================= */
.qtybox{
  margin-top:8px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.qtyrow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.qtylabel{
  display:flex;
  flex-direction:column;
  line-height:1.1;
}
.qtylabel b{font-size:14px}
.qtylabel small{
  font-size:12px;
  color:rgba(234,240,255,.70);
}

.qtyctrl{
  display:flex;
  align-items:center;
  gap:10px;
}

.qtybtn{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.06);
  color:#eaf0ff;
  cursor:pointer;
}
.qtybtn:hover{background:rgba(255,255,255,.10)}

.qtynum{
  width:54px;
  text-align:center;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#eaf0ff;
}

.qtysummary{
  margin-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:14px;
}

.qtysummary .sumtitle{
  font-size:13px;
  letter-spacing:.04em;
  opacity:.9;
}

.qtysummary .sumtext{
  color:rgba(234,240,255,.80);
  font-size:13px;
}

.qtysummary .subtext{
  font-size:12px;
  color:rgba(234,240,255,.70);
}

.qtysummary .subprice{
  font-size:16px;
  font-weight:700;
  margin-top:2px;
}

