@font-face {
  font-family: Silkscreen;
  src: url('/files/fonts/Silkscreen-Regular.ttf') format('truetype');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
/* Gemeinsame Gestaltung für Website, Checkout und Verwaltung. */
:root {
  color-scheme: dark;
  --bs-body-bg: #000;
  --bs-body-color: #fff;
  --bs-body-font-family: Arial, Helvetica, sans-serif;
  --bs-primary: #0c00d2;
  --bs-primary-rgb: 12, 0, 210;
  --bs-link-color: #fff;
  --bs-link-color-rgb: 255, 255, 255;
  --bs-link-hover-color: #fff;
  --bs-link-hover-color-rgb: 255, 255, 255;
  --bs-border-color: #595959;
  --bs-secondary-color: #bfbfbf;
  --nemo-blue: #0c00d2;
  --nemo-panel: #111;
  --nemo-muted: #bfbfbf;
  --nemo-title-size: 2rem;
  --nemo-section-size: 1.25rem;
  --nemo-page-space: 3.5rem;
}
body { background: #000; color: #fff; font-family: Arial, Helvetica, sans-serif; }
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6, legend {
  font-family: Arame, Arial, sans-serif;
  font-weight: 700;
  letter-spacing: .025em;
}
h1, h2, h3, legend { overflow-wrap: anywhere; text-wrap: balance; }
a, a:hover, a:focus { text-decoration: none !important; }
p.fw-bold, .form-label, .eyebrow, .brand-footer-bottom nav {
  font-family: Arame, Arial, sans-serif;
  letter-spacing: .035em;
}
p.fw-bold { line-height: 1.45; }
.booking-testimonials p.fw-bold { font-size: 1.125rem; margin-bottom: .75rem !important; }
.form-label { font-size: .875rem; }
p a:not(.btn), li a:not(.btn), .form-check-label a, .text-button { font-weight: 700; }
p a:not(.btn):hover, li a:not(.btn):hover, .form-check-label a:hover, .text-button:hover { background: #fff; color: #000 !important; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, summary:focus-visible {
  outline: 3px solid #fff !important;
  outline-offset: 4px;
  box-shadow: 0 0 0 2px #000 !important;
}
.brand-container { width: 100%; padding-inline: 1.25rem; margin-inline: auto; }
.brand-header { background: #000; padding-block: 2rem; }
.brand-header, .brand-footer { font-size: 1rem; line-height: 1.6; }
.brand-footer .small { font-size: .875rem; }
.brand-logo { display: inline-flex; align-items: center; text-decoration: none; }
.brand-logo img { display: block; width: 145px; height: auto; }
.brand-nav .btn { padding-inline: 1rem; }
.brand-footer { background: #000; margin-top: 4rem; padding-block: 3rem 2rem; border: 0; }
.brand-footer a { color: #fff; display: inline-block; padding-block: .2rem; }
.brand-footer .h6 { font-size: 1rem; margin-bottom: 1rem; }
.brand-footer p { color: #bfbfbf; line-height: 1.7; }
.brand-footer-bottom { margin-top: 2.5rem; padding-top: 0; border: 0; font-size: .8125rem; color: #bfbfbf; }
.brand-footer-bottom a { color: #bfbfbf; }
.brand-footer a:hover { color: #fff; background: #171717; }
.brand-footer .brand-logo:hover { background: transparent; }
.brand-footer h2 { color: #bfbfbf; letter-spacing: .08em; }
.checkout-shell, .checkout-narrow, .legal-page { width: 100%; max-width: none; margin-inline: 0; }
.checkout-narrow form, .legal-copy > p { max-width: 780px; }
.checkout-narrow .panel > p { max-width: 70ch; }
.legal-copy > h2 { max-width: 40ch; }
.legal-page > .row { max-width: 100%; }
.checkout-shell legend { font-family: Arame, Arial, sans-serif; }
.selected-date { font-family: Arame, Arial, sans-serif; }
.text-secondary, .eyebrow { color: #bfbfbf !important; }
.panel, .site-header { background: transparent; }
.calendar-day, .slot, .form-control, .form-select { background-color: #111; color: #fff; border-color: #737373; }
.badge { --bs-badge-border-radius: 0; border-radius: 0; }
.form-control, .form-select { border-radius: 0; border-width: 2px; border-color: #bfbfbf; background-color: #080808; padding: .8rem; }
.form-check-input[type="checkbox"] { border-radius: 0; border-width: 2px; }
.form-control:focus, .form-select:focus { background-color: #111; color: #fff; border-color: #fff; }
.form-control::placeholder { color: #aaa; }
input.form-control, textarea.form-control, select.form-select {
  font-family: Silkscreen, monospace;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
  letter-spacing: 0;
}
.calendar-day.selected, .slot.selected, .slot-choice:has(.slot-radio:checked) { background: #0c00d2; border-color: #fff; color: #fff; }
.calendar-day.today { border-bottom-color: #fff; }
.calendar-day:disabled { background: transparent; border-color: transparent; color: #aaa; }
.slot:disabled { background: #191919; border-color: #333; color: #aaa; }
.slot small, .slot:disabled small, .calendar-grid .weekday { color: #bfbfbf; }
.slot-choice:hover, .package-card:hover { border-color: #fff; }
.slot-choice:has(.slot-radio:focus-visible) { outline-color: #fff; }
.slot-request:hover { background: #0c00d2; }
.form-check-input { background-color: #111; border-color: #aaa; }
.form-check-input:checked { background-color: #0c00d2; border-color: #fff; }
.form-check-label a, .text-button, .checkout-codes summary { color: #fff; }
.checkout-codes summary { border-color: #737373; }
.gift-delivery { border-left-color: #fff; }
.tag { background: #0c00d2; color: #fff; }
.tag.neutral { background: #333; color: #fff; }
.ticket, .summary-card, .stat, .package-card, dialog { background: #111; border-color: #595959; }
.ticket { border-top-color: #0c00d2; }
.info-box { background: #111; color: #fff; border-left-color: #fff; }
.admin-nav a { color: #bfbfbf; }
.admin-nav a.active, .admin-view .admin-nav a:hover { background: #0c00d2; color: #fff; border-color: #fff; }
.calendar-has-rides { border-color: #fff; box-shadow: inset 4px 0 #0c00d2; }
.calendar-ride { background: #0c00d2; border-color: #fff; color: #fff; }
.calendar-ride:hover { background: #000; }
.ride-relative { background: #fff; color: #000; }
.table { --bs-table-color: #fff; --bs-table-border-color: #595959; }
.table th { color: #bfbfbf; }
.table-responsive { border-color: #595959; }
.checkout-total, .checkout-timer, .short-notice, .booking-testimonials,
.summary-total, .summary-footnote, .agenda-row, .review { border-color: #595959; }
.package-card.selected { background: #0c00d2; border-color: #fff; }
.package-card.selected .choice-dot { background: #fff; color: #000; border-color: #fff; }
.summary-footnote, .section-number, .table th { color: #bfbfbf; }
.booking-row { background: #111; border-left-color: #0c00d2; }
.booking-row.free { background: #111; border-left-color: #737373; }
.notice { background: #fff; color: #000; }
code, .gift-preview .form-control:disabled { color: #bfbfbf; }
.gift-preview .form-control:disabled { background: #191919; border-color: #595959; }

/* Feste 8-px-Schrägen bleiben auch bei breiten Buttons gleich groß. */
.btn {
  --bs-btn-border-radius: 0;
  border-radius: 0;
  font-family: Arame, Arial, sans-serif;
  font-weight: 700;
  font-size: .875rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  line-height: 1.5;
  padding: .8rem 1.25rem;
  clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
  transition: background-color .15s, color .15s;
}
.btn.small, .btn-primary.small { font-size: .8125rem; letter-spacing: .06em; }
.btn::before { content: none; }
.btn:hover, .btn:active { clip-path: polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px); }
.btn-primary {
  --bs-btn-bg: #0c00d2;
  --bs-btn-border-color: #0c00d2;
  --bs-btn-hover-bg: #fff;
  --bs-btn-hover-color: #000;
  --bs-btn-hover-border-color: #fff;
  --bs-btn-active-bg: #fff;
  --bs-btn-active-color: #000;
  --bs-btn-disabled-bg: #333;
  --bs-btn-disabled-color: #bfbfbf;
  background: #0c00d2;
  color: #fff;
  border: 1px solid #0c00d2;
}
.btn-primary:hover, .btn-primary:active { background: #fff; color: #000; border-color: #fff; }
.btn-primary:disabled { background: #333; border-color: #333; color: #bfbfbf; }
.btn-primary:focus-visible { background: #0c00d2; color: #fff; }
.btn-outline-light { --bs-btn-color: #fff; --bs-btn-border-color: #fff; --bs-btn-hover-color: #000; --bs-btn-hover-bg: #fff; --bs-btn-active-bg: #fff; --bs-btn-active-color: #000; }
.btn-light { --bs-btn-bg: #fff; --bs-btn-color: #000; --bs-btn-hover-bg: #ddd; --bs-btn-hover-color: #000; }
.btn:focus-visible { clip-path: none; }
.calendar-head .btn { clip-path: none; }

/* Startseite und Anwendungsseiten verwenden denselben äußeren Seitenrahmen. */
.nemo-site .site-hero { min-height: 75vh; display: flex; flex-direction: column; }
.nemo-site .site-hero > .brand-header { position: relative; z-index: 1; background: transparent; }
.nemo-site .site-hero-content { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: end; padding-top: 1rem !important; }
.nemo-site .site-hero-video { filter: brightness(.55); }
.nemo-site .site-booking-float { left: 50%; bottom: 1.5rem; transform: translateX(-50%); }
.nemo-site .bg-image .bg-lines { background-color: rgba(0, 0, 0, .1); }
.nemo-site .bg-image:not(.site-contact) { min-height: 75vh; }
.nemo-site .bg-image h2, .nemo-site .bg-image p { text-shadow: none; }
.nemo-site .bg-image .bg-lines > h2, .nemo-site .bg-image .bg-lines > p {
  width: fit-content;
  background: rgba(0, 0, 0, .72);
  padding: .35rem .6rem;
  margin-inline: -.6rem;
}
.nemo-site .site-hero-content > .row { padding-inline: 0; margin-inline: -.75rem; }
.nemo-site .bg-blue { background-color: #000; }
.nemo-site .booking-testimonials { max-width: none; padding: 2rem 0; background: transparent; }
.nemo-site .brand-footer .row { padding-inline: 0; }
.nemo-site .brand-footer h2 { font-size: 1rem; }
.nemo-site .brand-footer p { margin-bottom: 0; }
.nemo-site .brand-footer { padding-bottom: 6rem; }
@media (width >= 900px) {
  .brand-container { width: 80%; padding-inline: 0; }
}
@media (max-width: 767.98px) {
  :root { --nemo-title-size: 1.5rem; --nemo-page-space: 2rem; }
  .brand-header { padding-block: 1.5rem; }
  .brand-header > .brand-container { flex-direction: column; justify-content: center !important; }
  .brand-nav { justify-content: center; }
  .brand-nav .btn { padding: .7rem .9rem; }
  .brand-footer { margin-top: 3rem; padding-top: 2rem; }
  .brand-footer-bottom { margin-top: 2rem; }
  .nemo-site .brand-footer { padding-bottom: 2rem; }
  .nemo-site .site-hero-content { padding-top: 0 !important; }
  .nemo-site .container-fluid > .row { padding-inline: .5rem; }
}
/* Schmale Bildschirmkante mit ruhiger Vignette; alle Bedienelemente bleiben erreichbar. */
body:is(.nemo-site, .guest-view, .admin-view):not(.effect-preview)::before {
  content: '';
  position: fixed;
  inset: 6px;
  z-index: 10000;
  pointer-events: none;
  border: 1px solid rgba(0, 0, 0, 1);
  border-radius: 18px;
  box-shadow: 0 0 0 6px #080808, inset 0 0 0 1px rgba(0, 0, 0, .8),
    inset 0 0 18px 3px rgba(0, 0, 0, .55), inset 0 0 70px rgba(0, 0, 0, .18);
}
@media (max-width: 767.98px) {
  body:is(.nemo-site, .guest-view, .admin-view):not(.effect-preview)::before {
    inset: 3px;
    border-radius: 12px;
    box-shadow: 0 0 0 3px #080808, inset 0 0 0 1px rgba(0, 0, 0, .8),
      inset 0 0 10px 2px rgba(0, 0, 0, .45);
  }
}
/* Ruhige Monitorstruktur auf allen Website- und Verwaltungsseiten. */
body:is(.nemo-site, .guest-view, .admin-view):not(.effect-preview)::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 9999;
  pointer-events: none;
  opacity: .1;
  background-image: repeating-linear-gradient(to bottom, transparent 0 2px, #000 2px 3px);
}
@media print {
  .nemo-site .bg-image:not(.site-contact) { min-height: 0; }
  body:is(.nemo-site, .guest-view, .admin-view)::before,
  body:is(.nemo-site, .guest-view, .admin-view)::after { display: none; }
  .brand-header, .brand-footer { display: none; }
  body { background: #fff; color: #000; }
  .brand-container { width: 100%; padding: 0; }
  .ticket, .panel, .summary-card { background: #fff; color: #000; border-color: #777; }
  .text-secondary, .eyebrow { color: #333 !important; }
}

/* Vollständige Bewertungen, kompakt und ohne JavaScript aufklappbar. */
.review-card { background: #0b0b0b; border: 1px solid #595959; }
.review-card-summary {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .75rem 1rem;
  padding: 1rem;
  cursor: pointer;
  list-style: none;
}
.review-card-summary::-webkit-details-marker { display: none; }
.review-card-summary:hover { background: #191919; }
.review-card-title { font: 700 1rem/1.5 Arame, Arial, sans-serif; overflow-wrap: anywhere; }
.review-card .review-stars { font-size: 1.5rem; line-height: 1; white-space: nowrap; }
.review-card-indicator { width: 1rem; font: 400 1.5rem/1 monospace; text-align: center; }
.review-card-indicator::before { content: '+'; }
.review-card[open] .review-card-indicator::before { content: '−'; }
.review-card-content { padding: 0 1rem 1rem; overflow-wrap: anywhere; }
.review-card-content blockquote { max-width: 75ch; }
@media (max-width: 767.98px) {
  .review-card-summary { grid-template-columns: 1fr auto; gap: .5rem; }
  .review-card-summary .review-stars { grid-column: 1; }
  .review-card-title { grid-column: 1; grid-row: 2; }
  .review-card-indicator { grid-column: 2; grid-row: 1 / 3; }
}


/* Je Bildschirmbreite wird nur die verwendete Bilddatei geladen. */
.nemo-site .site-image-story { background-image: var(--scene-image-desktop); }

/* Mobil bleibt das gesamte Motiv sichtbar; die Beschreibung folgt darunter. */
@media (max-width: 699.98px) {
  .nemo-site .bg-image { background-size: contain; background-position: center top; }
  .nemo-site .bg-blue { background-image: url("/files/media/site/bg-lines-optimized.webp"); }
  .nemo-site .bg-image.site-image-story {
    background-image: var(--scene-image-mobile);
    min-height: 0;
    padding-inline: 0;
  }
  .nemo-site .site-image-story > .site-scene-media {
    order: -1;
    width: 100%;
    aspect-ratio: var(--scene-aspect-ratio);
    padding: 0;
  }
  .nemo-site .site-image-story > .bg-lines {
    width: 100%;
    padding: 1.5rem 1.25rem 2rem !important;
    background: #000;
  }
  .nemo-site .site-image-story .bg-lines > h2,
  .nemo-site .site-image-story .bg-lines > p {
    width: auto;
    margin-inline: 0;
    padding: 0;
    background: transparent;
  }
  .nemo-site .site-image-story .bg-lines > p:last-child { margin-bottom: 0; }
}
