.public-footer {
  flex-wrap: wrap;
}

.public-theme-control:not([hidden]) {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.public-theme-control label {
  font-size: 13px;
  font-weight: 750;
}

.public-theme-control select {
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  max-width: 100%;
  min-height: 44px;
  padding: 8px;
}

.public-theme-control select:focus-visible {
  outline: 2px solid var(--sun);
  outline-offset: 3px;
}

:root[data-public-theme="dark"] {
  color-scheme: dark;
  --bg: #17191c;
  --panel: #222529;
  --line: #454a51;
  --text: #edf0f2;
  --muted: #b7bdc5;
  --brand: #ff9e93;
  --brand-dark: #ffb7ad;
  --accent: #70d6c7;
}

[data-public-theme="dark"] :is(
  .public-header, .show-detail-header, .public-search-input,
  .cart-quantity-input, .cart-line-quantity input, .promo-form input,
  .checkout-form input, .calendar-day, .meta-consent-banner, .meta-consent-dialog
) {
  background: var(--panel);
  color: var(--text);
}

[data-public-theme="dark"] :is(.artist-social-link-website, .artist-social-link-other) {
  background: var(--panel);
}

[data-public-theme="dark"] .public-brand-logo {
  background: #ffffff;
  border-radius: 4px;
}

/* Keep white text on red buttons; the lighter brand color is for text and links. */
[data-public-theme="dark"] :is(.public-button, .public-search-button) {
  background: #a92118;
  border-color: #a92118;
  color: #ffffff;
}

[data-public-theme="dark"] :is(.public-button, .public-search-button):hover {
  background: #911d14;
}

[data-public-theme="dark"] .public-button-secondary,
[data-public-theme="dark"] .promo-form-readonly .public-button-secondary:disabled {
  background: var(--panel);
  border-color: var(--line);
  color: var(--text);
}

[data-public-theme="dark"] .public-button-secondary:hover {
  background: #32373d;
}

[data-public-theme="dark"] .public-button:disabled {
  background: #454a51;
  border-color: #454a51;
  color: #d0d5db;
}

[data-public-theme="dark"] :is(
  .booking-calendar-weekdays, .booking-calendar-grid, .order-status,
  .checkout-legal, .meta-current-choice, .price-row-sold-out
) {
  background: var(--bg);
}

[data-public-theme="dark"] .price-row-sold-out .cart-quantity-input {
  background: #32373d;
  color: var(--muted);
}

[data-public-theme="dark"] .calendar-day-outside > span {
  color: #8d959f;
}

[data-public-theme="dark"] :is(.show-meta span, .public-message) {
  background: #193b35;
  border-color: #3b776c;
  color: #9ce7d7;
}

[data-public-theme="dark"] .calendar-day-available {
  border-color: #3b776c;
}

[data-public-theme="dark"] .calendar-day-available a {
  background: #193b35;
}

[data-public-theme="dark"] :is(.public-message-error, .checkout-form-errors) {
  background: #492723;
  border-color: #b76b61;
  color: #ffb7ad;
}

[data-public-theme="dark"] .calendar-day-selected a {
  background: #492723;
}

[data-public-theme="dark"] :is(.checkout-field-error, .checkout-field-status-error) {
  color: #ffb7ad;
}

[data-public-theme="dark"] .meta-dialog-close {
  color: var(--text);
}

[data-public-theme="dark"] input::placeholder {
  color: var(--muted);
  opacity: 1;
}

@media (max-width: 720px) {
  [data-public-theme="dark"] .price-table tr {
    background: var(--panel);
  }

  [data-public-theme="dark"] .price-table .price-row-sold-out {
    background: var(--bg);
  }
}
