/* ====== 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%);
}

/* Schnee-Kreise (dezent) zwischen Hintergrund und Inhalt */
.snow {
      position: fixed;
      inset: 0;
      pointer-events: none;
      background-repeat: repeat;
      z-index: 2;
}

.snow-back {
      background-image: radial-gradient(3.6px 3.6px at 20px 30px, rgba(255, 255, 255, .55) 50%, transparent 51%), radial-gradient(3.0px 3.0px at 50px 80px, rgba(255, 255, 255, .48) 50%, transparent 51%);
      background-size: 140px 140px, 220px 220px;
      animation: snowfallBack 28s linear infinite;
      opacity: .52;
}

.snow-front {
      background-image: radial-gradient(4.2px 4.2px at 10px 10px, rgba(255, 255, 255, .62) 50%, transparent 51%), radial-gradient(3.4px 3.4px at 70px 50px, rgba(255, 255, 255, .56) 50%, transparent 51%);
      background-size: 160px 160px, 260px 260px;
      animation: snowfallFront 16s linear infinite;
      opacity: .78;
}

@keyframes snowfallBack {
      from {
            background-position: 0 -1200px, 0 -700px;
      }

      to {
            background-position: 0 0, 0 0;
      }
}

@keyframes snowfallFront {
      from {
            background-position: 0 -1200px, 0 -700px;
      }

      to {
            background-position: 0 0, 0 0;
      }
}

/* 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;
}