/* Booking Summary: Check In — [N Night] — Check Out */
.brv-dates {
  grid-template-columns: 1fr auto 1fr; align-items: end; gap: 8px;
  padding: 4px 0 12px; border: 0; border-radius: 0;
}
.brv-dates > div { min-width: 0; }
.brv-dates > div:last-child { text-align: right; align-items: flex-end; }
.brv-dates small { font-size: 12.5px; color: var(--brv-mute); }
.brv-dates b { font-size: 16px; font-weight: 800; margin: 3px 0; color: #0a1b63; }
.brv-dates span { font-size: 13px; color: var(--brv-mute); }
.brv-dates .brv-dates-n {
  align-self: end; margin-bottom: 2px; padding: 5px 11px; white-space: nowrap;
  border: 1.5px solid #c6d3ec; border-radius: 10px; background: #fff;
  font-size: 13px; font-weight: 700; color: #0b1233;
}
.brv-chips { grid-template-columns: repeat(2, 1fr); }

/* Bed Type: Reset (shown only when a bed is selected) */
.brv-reset { border: 0; background: none; padding: 4px 2px; font-size: 14px; font-weight: 700; color: var(--brv-mute); cursor: pointer; }
.brv-reset:hover { color: var(--brv-ink); }

/* Additional Requests: red note under a ticked option */
.brv-reqs { grid-template-columns: 1fr; gap: 8px; }
.brv-req-note { grid-column: 1 / -1; margin: -2px 2px 4px; font-size: 13.5px; line-height: 1.4; color: #d63a3a; }

/* Primary Contact card */
.brv-pc-t { margin: 0 0 8px; font-size: 19px; font-weight: 800; color: var(--brv-ink); }
.brv-pc-d { margin: 0 0 16px; font-size: 14.5px; line-height: 1.55; color: var(--brv-mute); }
.brv-pc { gap: 14px; }
.brv-pc .brv-ph-flag { display: none; }
.brv-pc .brv-ph { height: 48px; border-radius: 10px; border-color: #d5dae3; }
.brv-pc .brv-ph-cc { background: #edf1f6; padding: 0 12px; }
.brv-pc .brv-ph-cc svg { color: #0a1b63; }
.brv-pc .brv-f-e { margin-top: 6px; font-size: 14px; color: #d63a3a; }

.brv-cs { position: relative; }
.brv-cs-in {
  width: 100%; height: 48px; padding: 0 44px 0 14px; border: 1px solid #d5dae3; border-radius: 10px;
  background: #fff; font-size: 16px; color: var(--brv-ink); outline: 0;
}
.brv-cs-in::placeholder { color: #8b94a7; }
.brv-cs.is-open .brv-cs-in { border: 1.5px solid #0a1b63; }
.brv-cs.is-invalid .brv-cs-in { border-color: #d63a3a; }
.brv-cs-chev { position: absolute; right: 14px; top: 14px; color: #5d6679; pointer-events: none; transition: transform .2s; }
.brv-cs.is-open .brv-cs-chev { transform: rotate(180deg); color: #3d4659; }
.brv-cs-menu {
  position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 8px); max-height: 240px; overflow: auto;
  background: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(11, 18, 51, .14); padding: 6px;
}
.brv-cs-opt { display: block; width: 100%; padding: 12px; border: 0; border-radius: 8px; background: none; text-align: left; font-size: 15px; color: var(--brv-ink); }
.brv-cs-opt:hover, .brv-cs-opt.is-on { background: #eaf0ff; }
.brv-cs-empty { margin: 0; padding: 16px 12px; text-align: center; font-size: 16px; color: #6b7385; }

/* Guest Details: "Guest N (Adult)" labels + field errors */
.brv-grow-n { width: auto; min-width: 104px; white-space: nowrap; }
.brv-gsheet .brv-f-e { margin-top: 4px; font-size: 13.5px; }
/* highlight the section that needs attention after a failed "Next" */
@keyframes bhFlash { 0%,100% { box-shadow: 0 0 0 0 rgba(220,38,38,0); transform: translateX(0); } 15% { transform: translateX(-5px); } 30% { transform: translateX(5px); } 45% { transform: translateX(-3px); } 60% { transform: translateX(3px); box-shadow: 0 0 0 5px rgba(220,38,38,.18); } }
.bh-flash { animation: bhFlash .7s ease; }

/* v038: toasts appear at the TOP-centre of the screen (3s) so they never cover the Next bar */
.bh-toast-vp { top: calc(env(safe-area-inset-top, 0px) + 12px) !important; bottom: auto !important; left: 50% !important; right: auto !important; transform: translateX(-50%); width: min(360px, calc(100vw - 24px)) !important; }
