.reservation-package-row {
  grid-template-columns: minmax(0, 1fr) !important;
}

.reservation-package-row > .form-group:first-child {
  max-width: 440px;
}

.reservation-package-choices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.reservation-package-choice {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-height: 185px;
  padding: 17px;
  border: 1px solid #ded8ce;
  border-radius: 12px;
  background: #fff;
  color: #25211e;
  text-align: left;
  font: inherit;
  cursor: pointer;
}

.reservation-package-choice:hover,
.reservation-package-choice:focus-visible,
.reservation-package-choice.selected {
  border-color: #c9000b;
  outline-color: #c9000b;
  background: #fff7f6;
}

.reservation-package-choice .reservation-package-tier {
  color: #b90008;
  font-size: .74rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
}

.reservation-package-choice strong { font-size: 1.04rem; }
.reservation-package-choice .reservation-package-price { font-weight: 750; }
.reservation-package-choice small { color: #746e67; line-height: 1.4; }
.reservation-review-contact,
.reservation-review-sample { margin: 14px 0 0; line-height: 1.5; }
.reservation-review-sample { color: #8b4e00; }

@media (max-width: 850px) {
  .reservation-package-choices { grid-template-columns: 1fr; }
  .reservation-package-choice { min-height: 0; }
}

.reservation-package-help {
  margin: 9px 0 0;
  color: #716b63;
  font-size: 0.82rem;
  line-height: 1.5;
}

.reservation-ai-help-button,
.reservation-text-button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 11px;
  padding: 0;
  border: 0;
  color: #c9000b;
  background: transparent;
  font: inherit;
  font-size: 0.86rem;
  font-weight: 700;
  cursor: pointer;
}

.reservation-ai-help-button:hover,
.reservation-text-button:hover {
  color: #930008;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.reservation-ai-help-button svg {
  width: 19px;
  height: 19px;
}

.reservation-ai-advice {
  margin: -2px 0 22px;
  padding: 18px 20px;
  border: 1px solid #f0c6c8;
  border-left: 4px solid #d20a13;
  border-radius: 10px;
  background: #fff8f7;
}

.reservation-ai-advice[hidden] {
  display: none;
}

.reservation-ai-advice .reservation-ai-label {
  display: block;
  margin-bottom: 6px;
  color: #c9000b;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.reservation-ai-advice strong {
  display: block;
  color: #1c1b19;
  font-size: 1.05rem;
}

.reservation-ai-advice p {
  margin: 7px 0 0;
  color: #625d56;
  font-size: 0.9rem;
  line-height: 1.6;
}

.reservation-contact-fields {
  margin: 28px 0 22px;
  padding: 22px;
  border: 1px solid #e2ddd5;
  border-radius: 10px;
  background: #faf8f4;
}

.reservation-contact-fields legend {
  padding: 0 8px;
  color: #1b1a18;
  font-size: 1rem;
  font-weight: 750;
}

.reservation-contact-fields > p {
  margin: 0 0 18px;
  color: #716b63;
  font-size: 0.84rem;
}

.reservation-direct-review {
  margin-top: 30px;
  padding-top: 30px;
  border-top: 1px solid #e1dbd2;
  scroll-margin-top: 110px;
}

.reservation-direct-review[hidden],
.reservation-otp-panel[hidden],
.reservation-success-card[hidden] {
  display: none;
}

.reservation-review-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.reservation-review-heading .section-label {
  margin: 0 0 5px;
}

.reservation-review-heading h3 {
  margin: 0;
  color: #171614;
  font-size: 1.35rem;
}

.reservation-package-review {
  padding: 22px;
  border: 1px solid #ded8ce;
  border-radius: 10px;
  background: #fff;
}

.reservation-review-summary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 24px;
}

.reservation-review-summary > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.reservation-review-summary span {
  color: #756e66;
  font-size: 0.77rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.reservation-review-summary strong {
  color: #1a1917;
  font-size: 1rem;
}

.reservation-review-summary .reservation-review-total strong {
  color: #c9000b;
  font-size: 1.25rem;
}

.reservation-package-review h4 {
  margin: 22px 0 10px;
  padding-top: 18px;
  border-top: 1px solid #e8e3db;
  color: #272421;
  font-size: 0.92rem;
}

.reservation-package-review ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
  margin: 0;
  padding-left: 20px;
  color: #615b54;
  font-size: 0.88rem;
}

.reservation-package-confirm {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  margin: 18px 0;
  color: #393531;
  font-size: 0.9rem;
  line-height: 1.5;
  cursor: pointer;
}

.reservation-package-confirm input {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  accent-color: #d20812;
}

.reservation-otp-panel {
  margin-top: 18px;
  padding: 20px;
  border: 1px solid #e2ddd5;
  border-radius: 10px;
  background: #faf8f4;
}

.reservation-otp-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
}

.reservation-otp-row .form-input {
  letter-spacing: 0.22em;
  font-weight: 750;
}

.reservation-success-card {
  margin-top: 20px;
  padding: 22px;
  border: 1px solid #b9dbc6;
  border-radius: 10px;
  background: #f1faf4;
}

.reservation-success-card h3 {
  margin: 0 0 7px;
  color: #17693a;
}

.reservation-success-card strong {
  display: block;
  color: #17231b;
  font-size: 1.25rem;
}

.reservation-success-card p {
  margin: 8px 0 0;
  color: #466151;
  line-height: 1.55;
}

.ai-floating-icon svg,
.chat-avatar svg {
  width: 22px;
  height: 22px;
}

@media (max-width: 720px) {
  .reservation-review-summary,
  .reservation-package-review ul,
  .reservation-otp-row {
    grid-template-columns: 1fr;
  }

  .reservation-review-heading {
    flex-direction: column;
    gap: 2px;
  }

  .reservation-contact-fields,
  .reservation-package-review,
  .reservation-otp-panel {
    padding: 17px;
  }
}
