/* ====== Farben & Grundlayout ====== */
:root {
      --bg: #0f172a;
      --muted: #94a3b8;
      --text: #e5e7eb;
      --accent: #b45309;
      --accent-2: #b91c1c;
}

* {
      box-sizing: border-box;
}

html {
      scroll-behavior: smooth;
}

body {
      margin: 0;
      font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background: var(--bg);
      color: var(--text);
}

/* Hintergrundfoto über die ganze Seite */
.mast {
      position: fixed;
      inset: 0;
      z-index: 0;
      pointer-events: none;
      background-image: url('assets/background.jpg');
      background-size: cover;
      background-position: center;
      background-attachment: fixed;
      opacity: .3;
      /* Transparenz hier anpassen */
}

.mast::after {
      content: "";
      position: absolute;
      inset: 0;
      z-index: -1;
      background: linear-gradient(180deg, rgba(15, 23, 42, .10), rgba(15, 23, 42, .55)),
            radial-gradient(900px 500px at 80% 0%, rgba(185, 28, 28, .14), transparent 60%),
            radial-gradient(1200px 600px at 10% -10%, rgba(180, 83, 9, .10), transparent 55%);
}

/* Headings nie wie Links darstellen */
h1,
h2,
h3,
h4,
h5,
h6 {
      color: var(--text);
}

h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
      color: inherit;
      text-decoration: none;
}

h1 a:hover,
h2 a:hover,
h3 a:hover,
h4 a:hover,
h5 a:hover,
h6 a:hover {
      color: inherit;
      text-decoration: none;
}



/* Link-Hover global lassen, aber Buttons/Listen klar halten */
a {
      color: var(--text);
      text-decoration: none;
}

a:hover {
      color: var(--accent);
}

.card a.btn {
      text-decoration: none;
}



/* Global link reset (verhindert blaue Standard-Links) */
a {
      color: var(--text);
      text-decoration: none;
}

a:hover {
      color: var(--accent);
}

.card a.btn {
      text-decoration: none;
}

.list a {
      text-decoration: none;
}

/* Layout */
.container {
      max-width: 1100px;
      margin: 0 auto;
      padding: 0 1rem;
}

.two {
      display: grid;
      grid-template-columns: 1fr;
      gap: 1rem;
}

@media(min-width:720px) {
      .two {
            grid-template-columns: 1fr 1fr;
      }
}

/* Header */
header {
      position: sticky;
      top: 0;
      z-index: 10;
      background: rgba(15, 23, 42, .65);
      backdrop-filter: blur(10px);
      border-bottom: 1px solid rgba(148, 163, 184, .2);
}

.site-header {
      align-items: center;
      display: flex;
      flex-direction: column;
      /* immer untereinander */

      gap: .75rem;
      /* Abstand zwischen Titel und Menü */
}

/* Falls das Menü absolut positioniert war: */
.main-nav {
      position: static;
}

/* Menü-Optik (optional) */
.main-nav ul {
      display: flex;
      /* Menüpunkte nebeneinander */
      gap: 1rem;
      margin: 0;
      padding: 0;
      list-style: none;
}

.site-title {
      margin: 0;
}

nav {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: .75rem 0;
}

nav .brand {
      font-weight: 800;
      letter-spacing: .3px;
}

nav ul {
      display: flex;
      gap: 1rem;
      list-style: none;
      margin: 0;
      padding: 0;
}

/* Hero */
.hero {
      padding: 4rem 0 2rem;
      text-align: center;
}

.hero h1 {
      font-size: clamp(2rem, 3vw + 1rem, 3rem);
      margin: .25rem 0;
      text-shadow: 0 0 8px rgba(180, 83, 9, .25), 0 0 14px rgba(185, 28, 28, .18);
}

.hero p {
      color: var(--muted);
      max-width: 60ch;
      margin: .5rem auto 0;
}

.pill {
      display: inline-block;
      padding: .35rem .6rem;
      border-radius: 999px;
      border: 1px solid rgba(148, 163, 184, .25);
      color: var(--muted);
      font-size: .8rem;
}

/* Kartenabschnitt & Kacheln mit konsistentem Rand */
.card {
      background: linear-gradient(180deg, rgba(255, 255, 255, .03), rgba(255, 255, 255, .01));
      border: 1px solid rgba(148, 163, 184, .18);
      border-radius: 18px;
      padding: 1rem;
}

.card h2 {
      margin: .25rem 0 2rem;
      font-size: 1.4rem;
}

.muted {
      color: var(--muted);
}

.btn {
      display: inline-block;
      padding: .75rem 1rem;
      border-radius: 12px;
      border: 1px solid rgba(148, 163, 184, .25);
      background: rgba(255, 255, 255, .03);
      color: var(--text);
}

.btn:hover {
      border-color: rgba(245, 158, 11, .6);
      color: var(--accent);
}

.tag {
      font: inherit;
      font-size: .85rem;
      color: #111;
      background: linear-gradient(90deg, #f59e0b, #b91c1c);
      border: none;
      border-radius: 999px;
      padding: .2rem .6rem;
}

/* Map responsive */
.map-wrap {
      position: relative;
      width: 100%;
      padding-top: 58%;
      border-radius: 14px;
      overflow: hidden;
}

.map-wrap iframe {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      border: 0;
}

#kontakt p {
      margin: 5px 0;
      /* kleiner Abstand oben/unten */
      line-height: 1.5;
      /* optional: engerer Zeilenabstand */
}

/* Mobile: Karte höher darstellen */
@media (max-width: 720px) {
      #karte .map-wrap {
            /* bisher ~58% – erhöhe für mehr Höhe */
            padding-top: 120%;
      }
}

/* Footer */
footer {
      margin-top: 3rem;
      padding: rem 0;
      border-top: 1px solid rgba(148, 163, 184, .2);
      color: var(--muted);
      text-align: center;
}

#footer {
      margin: 3rem auto;
}

.powered {
      font-size: 0.8rem;
      color: #888;
      margin-top: 1em;
}

#termine .board {
      display: grid;
      gap: 1rem;
}

@media (min-width: 900px) {
      #termine .board {
            grid-template-columns: 1fr 1fr;
            align-items: start;
      }

      #termine .board>.card:first-child {
            grid-row: 1 / span 3;
      }
}

.list-item {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: .25rem;
}

.list-item .top {
      font-weight: 600;
      line-height: 1.2;
}

.list-item .meta {
      margin-left: 1.25rem;
      /* Einrückung wie Aufzählung */
      display: flex;
      flex-wrap: wrap;
      gap: .5rem .75rem;
      color: var(--muted);
}

.list-item .meta .addr {
      white-space: normal;
}

.list-item .meta .tag {
      margin-left: 0;
      margin-left: auto;
      text-align: end;
}

.list-item+.list-item {
      border-top: 1px dashed rgba(148, 163, 184, .22);
      padding-top: 1.1rem;
      /* gleichen optischen Abstand wahren */
      margin-top: .6rem;
}

.right-stack {
      display: flex;
      flex-direction: column;
      gap: 1rem;
}

[hidden] { display: none !important; }
.main-nav ul { flex-wrap: wrap; justify-content: center; }
.registration-form { display: grid; gap: 1rem; }
.registration-form label { display: grid; gap: .4rem; }
.registration-form input:not([type="checkbox"]), .registration-form select {
      width: 100%; min-width: 0; padding: .75rem; border-radius: 8px;
      border: 1px solid #94a3b8; background: #0f172a; color: #e5e7eb; font: inherit;
}
.registration-form .check-label { display: flex; align-items: flex-start; gap: .65rem; }
.check-label input { margin-top: .25rem; flex-shrink: 0; }
button.btn { font: inherit; cursor: pointer; }
button:disabled { opacity: .55; cursor: not-allowed; }
:focus-visible { outline: 3px solid #fbbf24; outline-offset: 3px; }
.registration-slots { padding: 0; list-style: none; display: grid; gap: .5rem; }
.slot { border-left: 3px solid #94a3b8; padding: .5rem .75rem; background: #0f172a; }
.slot-free { border-color: #4ade80; }
.slot-pending { border-color: #fbbf24; }
.slot-confirmed { border-color: #93c5fd; }
.slot span { display: block; color: #cbd5e1; margin-top: .3rem; overflow-wrap: anywhere; }
.slot .open-window-badge { display: inline-block; color: #111; margin-top: .5rem; padding: .35rem .75rem; font-weight: 600; background: linear-gradient(90deg, #fbbf24, #fb923c); }
.slot-info { min-width: 0; overflow-wrap: anywhere; }
@media (min-width: 900px) {
      .slot { display: flex; align-items: center; gap: .75rem; }
      .slot-info { flex: 1; }
      .slot .open-window-badge {
            flex: 0 1 auto; max-width: 45%; margin-top: 0; text-align: center;
      }
}
.form-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.admin-page { padding-top: 2rem; padding-bottom: 3rem; max-width: 850px; }
.reservation-entry { margin-bottom: 1rem; overflow-wrap: anywhere; }
.admin-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.form-message, #registration-result:not(:empty) { padding: 1rem; border: 1px solid #fbbf24; border-radius: 8px; }
.archive-section { margin-top: 2rem; scroll-margin-top: 8rem; }
.advent-map { display: block; width: 100%; height: 500px; border: 0; border-radius: 8px; }
.archive-list { list-style: none; padding: 0; margin: 0; }
.archive-list li + li { border-top: 1px solid #475569; margin-top: 1rem; padding-top: 1rem; }
.archive-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
