.theme-modern {
  --modern-ink: #17231e;
  --modern-muted: #526159;
  --modern-paper: #f4f1e8;
  --modern-card: #fffdf8;
  --modern-line: #d9d8cd;
  --modern-forest: #155e46;
  --modern-forest-dark: #0d4533;
  --modern-mint: #dff1e8;
  --modern-shadow: 0 14px 34px rgba(33, 48, 40, .075);
  background: var(--modern-paper);
  color: var(--modern-ink);
}

.theme-modern .shell { width: min(800px, calc(100% - 28px)); }
.theme-modern .booking-page { padding-top: 28px; }
.theme-modern .legacy-header {
  margin-bottom: 18px;
  padding: 26px 24px;
  border: 1px solid var(--modern-line);
  border-radius: 18px;
  background: var(--modern-card);
  box-shadow: var(--modern-shadow);
  text-align: center;
}
.theme-modern .legacy-header h1,
.theme-modern .booking-section > h2,
.theme-modern .purchase-section > h2 { color: var(--modern-ink); }
.theme-modern .event-date { color: var(--modern-forest); }
.theme-modern .demo-copy,
.theme-modern .product-note,
.theme-modern .supporting-info,
.theme-modern .section-description,
.theme-modern .quote-note,
.theme-modern .guidance ul,
.theme-modern .footer { color: var(--modern-muted); }

.theme-modern .booking-grid {
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
}
.theme-modern .booking-products { gap: 16px; }
.theme-modern .booking-section,
.theme-modern .purchase-section {
  padding: 23px;
  border: 1px solid var(--modern-line);
  border-radius: 16px;
  background: var(--modern-card);
  box-shadow: var(--modern-shadow);
}
.theme-modern .booking-section > h2,
.theme-modern .purchase-section > h2 { font-size: 20px; }
.theme-modern .guidance-section { margin-top: 16px; }

.theme-modern .lodging-list {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
}
.theme-modern .product-option {
  min-height: 96px;
  border-color: #c6cbc5;
  border-radius: 11px;
  background: #fffefa;
  color: var(--modern-ink);
  box-shadow: 0 2px 8px rgba(33, 48, 40, .035);
}
.theme-modern .primary-price { color: var(--modern-ink); }
.theme-modern .stock-note { color: var(--modern-forest); }
.theme-modern .product-option.selected {
  border-color: var(--modern-forest);
  background: #edf7f1;
  box-shadow: 0 0 0 2px rgba(21, 94, 70, .12), inset 3px 0 var(--modern-forest);
}
.theme-modern .product-option:disabled {
  border-color: var(--modern-line);
  background: #efeee8;
}
.theme-modern .product-option.sold-out {
  border-color: var(--modern-line);
  background: #efeee8;
}
.theme-modern .product-option:focus-visible {
  outline-color: rgba(21, 94, 70, .2);
}
.theme-modern .inline-panel {
  border: 1px solid #d7ded8;
  background: #eef4ef;
}

.theme-modern input,
.theme-modern select,
.theme-modern textarea {
  border-color: #bcc5bf;
  border-radius: 10px;
  background: #fff;
  color: var(--modern-ink);
}
.theme-modern input:focus,
.theme-modern select:focus,
.theme-modern textarea:focus {
  outline: 3px solid rgba(21, 94, 70, .16);
  border-color: var(--modern-forest);
}
.theme-modern .quote-line { border-bottom-color: #ccd9d0; }
.theme-modern .entrance-guidance {
  border-left-color: #6f897a;
  background: #eef4ef;
  color: #344c40;
}
.theme-modern .entrance-guidance.warning {
  border-left-color: #a94f12;
  background: #fff1df;
  color: #71300d;
}
.theme-modern .wide-button {
  min-height: 52px;
  border-radius: 11px;
  background: var(--modern-forest);
  box-shadow: 0 7px 17px rgba(21, 94, 70, .17);
  font-size: 17px;
}
.theme-modern .wide-button:hover { background: var(--modern-forest-dark); }

@media (hover: hover) and (pointer: fine) {
  .theme-modern .product-option:not(:disabled):not(.sold-out):hover {
    border-color: #7b988b;
    background: #fbfcf8;
    box-shadow: 0 5px 14px rgba(33, 48, 40, .07);
  }
  .theme-modern .product-option.selected:hover { background: #e8f4ed; }
}

@media (max-width: 720px) {
  .theme-modern .shell { width: min(100% - 22px, 800px); }
  .theme-modern .booking-page { padding-top: 14px; }
  .theme-modern .legacy-header { padding: 21px 17px; border-radius: 14px; }
  .theme-modern .booking-grid,
  .theme-modern .booking-products { gap: 13px; }
  .theme-modern .booking-section,
  .theme-modern .purchase-section { padding: 18px; border-radius: 13px; }
  .theme-modern .lodging-list { grid-template-columns: minmax(0, 1fr); }
  .theme-modern .guidance-section { margin-top: 13px; }
}
