:root {
  --bs-link-color-rgb: 194, 202, 255;
  --bs-link-hover-color-rgb: 255, 255, 255;
}

/* Native radios keep the prototype's time buttons keyboard accessible. */
.slot-choice { position: relative; cursor: pointer; }
.slot-radio { position: absolute; opacity: 0; width: 1px; height: 1px; }
.slot-check { display: none; }
.slot-choice:has(.slot-radio:checked) { background: #2920b5; border-color: #b7b1ff; }
.slot-choice:has(.slot-radio:checked) .slot-check { display: inline; }
.slot-choice:has(.slot-radio:focus-visible) { outline: 3px solid #f2d268; outline-offset: 4px; }
.slot-choice:hover { border-color: #b7b1ff; }

.gift-preview .form-control:disabled { background: #0e1625; color: var(--nemo-muted); border-color: #45536c; }

/* Verwaltung verwendet dieselben Komponenten wie der abgestimmte Prototyp. */
.admin-preline { white-space: pre-line; overflow-wrap: anywhere; }
.admin-stars { color: #ffc45b; font-size: 1.5rem; letter-spacing: .08em; }
.admin-main .table td { overflow-wrap: anywhere; }
.admin-main .admin-record { overflow-wrap: anywhere; }
.admin-main details > summary { cursor: pointer; }
.admin-main .btn { white-space: normal; }
.admin-main .tag { height: fit-content; }
.admin-shell { grid-template-columns: 195px minmax(0, 1fr); }
.admin-view .site-footer { display: block; }
.admin-view .admin-nav a:hover { color: #fff; background: #292456; }
@media (max-width: 767px) {
  .admin-shell { grid-template-columns: minmax(0, 1fr); }
  .admin-main .stats { grid-template-columns: 1fr; }
}

.admin-main { overflow: visible; }

/* Gemeinsamer Rhythmus für Checkout, Textseiten und Verwaltung. */
:root {
  --nemo-title-size: 1.75rem;
  --nemo-section-size: 1.25rem;
  --nemo-page-space: 3rem;
  --nemo-gold: #ffc83d;
}
.checkout-shell { margin: var(--nemo-page-space) auto; }
.checkout-shell > .panel { padding: 0; }
main h1 {
  font-size: var(--nemo-title-size);
  line-height: 1.25;
  margin-bottom: 1.25rem;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.checkout-panel h1 { font-size: var(--nemo-title-size); }
.checkout-shell h2:not(.selected-date), .admin-main h2 {
  font-size: var(--nemo-section-size);
  line-height: 1.4;
  margin-bottom: 1rem;
  text-wrap: balance;
}
.checkout-shell h3, .admin-main h3 { font-size: 1.125rem; line-height: 1.4; }
.checkout-shell legend {
  float: none;
  width: auto;
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.4;
  margin-bottom: 1rem;
}
.checkout-shell .form-check { padding-left: 1.8rem; }
.checkout-shell .form-check-input { margin-left: -1.8rem; }
.checkout-shell .btn { white-space: normal; }
.checkout-shell .summary-line > :last-child { flex-shrink: 0; }
.checkout-shell .selected-date { margin-bottom: 1rem; }
.checkout-nav a { text-underline-offset: .3em; }
.site-footer a { text-underline-offset: .2em; }
.site-footer a:hover { color: #fff; }
.review-stars, .admin-stars, .stars {
  color: var(--nemo-gold);
  font-size: 1.75rem;
  letter-spacing: .08em;
  line-height: 1.25;
}
.booking-testimonials figure { max-width: 65ch; }
.booking-testimonials figcaption { line-height: 1.6; }
.legal-page { max-width: 760px; overflow-wrap: anywhere; }
.legal-page address { font-style: normal; }
.legal-page dt { color: var(--nemo-muted); font-size: .875rem; font-weight: 400; }
.legal-page dd { margin: .25rem 0 1.25rem; }
.legal-copy { line-height: 1.75; }
.legal-copy > h2 { margin-top: 2.5rem; margin-bottom: .75rem; }
.legal-copy > p { margin-bottom: 1.25rem; }
.legal-copy > :last-child { margin-bottom: 0; }
.page-intro { padding: var(--nemo-page-space) 0 2rem; }
.page-intro h1 { margin-bottom: 0; }
.page-intro .eyebrow { margin-bottom: .75rem; }
.admin-main > .panel { padding: 0; }
.admin-main > section + section { margin-top: 2rem; }
@media (max-width: 575.98px) {
  :root { --nemo-title-size: 1.5rem; --nemo-page-space: 2rem; }
  .checkout-nav { gap: .8rem; }
  .legal-copy > h2 { margin-top: 2rem; }
  .site-footer .container { gap: 1.25rem !important; }
  .site-footer .container > div { column-gap: 1.25rem !important; row-gap: 1rem !important; }
}
