.booking-section {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  align-items: start; gap: 24px clamp(24px, 6vw, 88px);
  padding: clamp(34px, 6vw, 78px) max(5vw, calc((100vw - 1200px) / 2));
  background: #e8e4de; color: #42272e;
}
.booking-intro { align-self: center; }
.booking-intro h1 { margin: .2em 0; font-size: clamp(2.6rem, 5.5vw, 5.2rem); line-height: 1; text-wrap: balance; }
.booking-card { padding: clamp(15px, 3vw, 28px); background: #f8f7f4; border: 1px solid #d3beb7; border-radius: 4px 24px 4px 24px; }
.booking-card form, .booking-card label { display: grid; gap: 6px; }
.booking-card form { gap: 14px; }
.booking-card label { min-width: 0; font-weight: 650; font-size: .92rem; }
.booking-card select, .booking-card input {
  width: 100%; max-width: 100%; min-width: 0; padding: 10px 11px; min-height: 44px;
  border: 1px solid #bda49d; border-radius: 8px; background: #fff; color: #42272e; font: inherit; font-weight: 400;
}
.booking-pair { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 8px; }
.booking-card .button { justify-self: start; margin: 0; border: 0; font: inherit; font-weight: 700; cursor: pointer; }
.booking-card button:disabled { opacity: .55; cursor: default; }
#booking-status:empty { display: none; }
#booking-status[data-state="success"] { border-left: 3px solid #476447; padding-left: 10px; color: #365135; }
#booking-retry { padding: 7px 10px; border: 1px solid #bda49d; border-radius: 8px; background: #fff; color: #42272e; font: inherit; cursor: pointer; }
.booking-section :focus-visible { outline: 2px solid #713d54; outline-offset: 3px; }
@media (max-width: 720px) {
  .booking-section { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

.booking-card form h2 { margin: 0; font: 700 1.15rem/1.25 system-ui, sans-serif; }
.booking-card form h2:not(:first-child) { margin-top: .35rem; padding-top: .65rem; border-top: 1px solid #dfd3ce; }

.booking-card .booking-highlights[hidden] { display: none; }
.booking-card .booking-highlights { display: flex; align-items: center; gap: .45rem; }
.booking-card .booking-highlights input { width: 1rem; min-height: 1rem; accent-color: #713d54; }

.owner-login { position: relative; margin-inline-start: .4rem; }
.owner-login summary { cursor: pointer; font-weight: 650; list-style-position: inside; padding: .45rem .7rem; border: 1px solid #cdb7bb; border-radius: 999px; color: #623749; background: #f8f3f3; font-size: .85rem; }
.owner-login form { position: absolute; z-index: 5; inset-inline-end: 0; top: calc(100% + .4rem); display: grid; gap: .7rem; width: min(280px, 82vw); padding: 1rem; border: 1px solid #d3beb7; border-radius: 12px; background: #fff; color: #42272e; box-shadow: 0 8px 25px #42272e26; }
.owner-login label { display: grid; gap: .3rem; font-size: .9rem; }
.owner-login input { width: 100%; min-height: 44px; padding: .45rem; font: inherit; border: 1px solid #bda49d; border-radius: 7px; }
.owner-login button { margin: 0; justify-self: start; }
#owner-login-status { color: #713d54; margin: 0; }
@media (max-width: 850px) {
  .owner-login form { position: static; margin-top: .4rem; }
}