:root {
    --forest: #1F3323;
    --forest-light: #2C4A32;
    --slate: #45505A;
    --slate-dark: #2E363D;
    --cream: #F4EFE4;
    --paper: #FBF8F1;
    --rust: #C4602E;
    --sun: #E8A93C;
    --ink: #1C201C;
    --font-display: 'Fraunces', Georgia, serif;
    --font-body: 'Inter', -apple-system, sans-serif;
    --font-utility: 'JetBrains Mono', monospace;
  }

  * { margin:0; padding:0; box-sizing:border-box; }

  body {
    font-family: var(--font-body);
    background: var(--paper);
    color: var(--ink);
    line-height: 1.5;
  }

  a { color:inherit; text-decoration:none; }
  img { max-width:100%; display:block; }

  /* ---------- HEADER ---------- */
  header {
    position: sticky; top:0; z-index: 50;
    background: var(--paper);
    border-bottom: 2px solid var(--ink);
    display:flex; align-items:center; justify-content:space-between;
    padding: 16px 32px;
  }
  .logo {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.4rem;
    letter-spacing: -0.02em;
    display:flex; align-items:baseline; gap:6px;
  }
  .logo span { color: var(--rust); }
  nav { display:flex; gap:28px; font-size: 0.95rem; font-weight:600; }
  nav a { position:relative; padding:4px 0; }
  nav a:hover { color: var(--rust); }
  .nav-cta {
    background: var(--forest); color: var(--paper);
    padding: 10px 20px; border-radius: 999px;
    font-size: 0.85rem; font-weight:700;
  }
  .menu-toggle { display:none; font-size:1.6rem; background:none; border:none; cursor:pointer; }

  /* ---------- HERO ---------- */
  .hero {
    background: var(--forest);
    color: var(--paper);
    padding: 72px 32px 100px;
    position: relative;
    overflow: hidden;
  }
  .hero-inner {
    max-width: 1100px; margin: 0 auto;
    display:grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items:stretch;
  }
  .eyebrow {
    font-family: var(--font-utility);
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.78rem;
    color: var(--sun);
    margin-bottom: 18px;
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before {
    content:""; width:22px; height:2px; background: var(--sun);
  }
  .hero h1 {
    font-family: var(--font-display);
    font-size: clamp(2.4rem, 5vw, 3.6rem);
    line-height: 1.05;
    font-weight: 600;
    letter-spacing: -0.01em;
  }
  .hero h1 em { font-style:normal; color: var(--sun); }
  .hero p.lead {
    margin-top: 20px; font-size: 1.1rem; max-width: 46ch; color: #D9DECF;
  }
  .hero-actions { margin-top: 32px; display:flex; gap:14px; flex-wrap:wrap; }
  .btn-primary {
    background: var(--rust); color: var(--paper);
    padding: 14px 26px; border-radius: 999px; font-weight:700; font-size:0.95rem;
  }
  .btn-ghost {
    border: 2px solid #4A5C4A; color: var(--paper);
    padding: 12px 24px; border-radius: 999px; font-weight:700; font-size:0.95rem;
  }

  /* Map widget */
  .map-card {
    background: var(--cream);
    border-radius: 20px;
    padding: 0;
    position: relative;
    box-shadow: 0 20px 50px rgba(0,0,0,0.35);
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden; /* damit die Karte an den abgerundeten Ecken nicht übersteht */
  }
  .hero-map {
    flex: 1;
    height: clamp(560px, 76vh, 900px);
    min-height: 560px;
    width: 100%;
    border-radius: 0; /* Karte geht randlos bis zum Card-Rand, .map-card rundet per overflow:hidden */
    z-index: 1; /* Leaflet-Kontrollelemente sollen nicht über Header/Nav liegen */
  }
  .hero-location-form {
    display: flex;
    gap: 8px;
    margin: 12px 16px 0;
  }
  .hero-location-form input[type="text"] {
    flex: 1;
    padding: 10px 14px;
    border-radius: 999px;
    border: 1px solid #c9c2ae;
    font-size: 0.85rem;
    font-family: var(--font-body);
    min-width: 0; /* verhindert Überlaufen in schmalen Flex-Containern */
  }
  #hero-locate-btn {
    background: var(--forest);
    color: var(--paper);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1.1rem;
    cursor: pointer;
    flex-shrink: 0;
  }
  .hero-location-submit {
    background: var(--rust);
    color: var(--paper);
    border: none;
    padding: 0 18px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.85rem;
    cursor: pointer;
    flex-shrink: 0;
  }
  .map-label {
    font-family: var(--font-utility);
    font-size: 0.7rem;
    color: var(--slate-dark);
    text-transform:uppercase;
    letter-spacing: 0.08em;
    margin: 10px 16px 16px;
    display:flex; justify-content:space-between;
  }
  .map-label a { color: var(--slate-dark); }

  @media (max-width: 600px) {
    .hero-location-form { flex-wrap: wrap; }
    .hero-location-submit { flex: 1; }
  }

  /* ---------- QUICK FILTER STRIP ---------- */
  .filter-strip {
    background: var(--sun);
    padding: 18px 32px;
  }
  .filter-inner {
    max-width: 1100px; margin:0 auto;
    display:flex; gap:12px; flex-wrap:wrap; align-items:center;
    font-weight:700; font-size:0.9rem;
  }
  .filter-inner span.label { font-family: var(--font-utility); text-transform:uppercase; font-size:0.72rem; letter-spacing:0.08em; }
  .chip {
    background: var(--ink); color: var(--sun);
    padding: 8px 16px; border-radius: 999px; font-size:0.85rem;
  }
  .chip.alt { background: var(--paper); color: var(--ink); border:2px solid var(--ink); }

  /* ---------- KATEGORIEN ---------- */
  .section { max-width: 1100px; margin: 0 auto; padding: 88px 32px; }
  .section-head {
    display:flex; justify-content:space-between; align-items:flex-end;
    margin-bottom: 40px; gap: 24px; flex-wrap:wrap;
  }
  .section-head h2 {
    font-family: var(--font-display);
    font-size: clamp(1.8rem, 3vw, 2.4rem);
    font-weight:600;
  }
  .section-head p { color:#5B6259; max-width:40ch; }

  .cat-grid {
    display:grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  }
  .cat-card {
    border: 2px solid var(--ink);
    border-radius: 16px;
    padding: 24px;
    background: var(--paper);
    transition: transform 0.15s ease;
    display:flex; flex-direction:column; gap:14px; min-height: 190px;
  }
  .cat-card:hover { transform: translateY(-4px); }
  .cat-icon {
    width:44px; height:44px; border-radius:10px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.3rem; color: var(--paper);
  }
  .cat-card h3 { font-family: var(--font-display); font-size:1.15rem; font-weight:600; }
  .cat-card p { font-size: 0.88rem; color:#5B6259; }
  .c1 .cat-icon { background: var(--forest); }
  .c2 .cat-icon { background: var(--slate); }
  .c3 .cat-icon { background: #2F6E8A; }
  .c4 .cat-icon { background: var(--rust); }

  /* ---------- KALENDER TEASER ---------- */
  .calendar-teaser {
    background: var(--slate-dark);
    color: var(--paper);
    border-radius: 24px;
    padding: 48px;
    display:grid; grid-template-columns: 1fr 1fr; gap:40px; align-items:center;
  }
  .calendar-teaser h2 { font-family: var(--font-display); font-size:1.9rem; margin-bottom:14px; }
  .calendar-teaser p { color:#C7CDD3; max-width: 42ch; }
  .event-list { display:flex; flex-direction:column; gap:12px; }
  .event-row {
    background: rgba(255,255,255,0.06);
    border-radius: 12px; padding: 14px 18px;
    display:flex; justify-content:space-between; align-items:center;
    font-size: 0.9rem;
  }
  .event-date {
    font-family: var(--font-utility);
    background: var(--sun); color: var(--ink);
    padding: 4px 10px; border-radius: 6px; font-size:0.75rem; font-weight:700;
  }

  /* ---------- INSIDER TIPPS ---------- */
  .tipps-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:20px; }
  .tipp-card {
    background: var(--cream); border-radius:16px; padding:22px;
    display:flex; flex-direction:column; gap:10px;
  }
  .tipp-meta { font-family: var(--font-utility); font-size:0.72rem; text-transform:uppercase; color: var(--rust); letter-spacing:0.06em; }
  .tipp-card h4 { font-family: var(--font-display); font-size:1.05rem; }
  .tipp-card p { font-size:0.88rem; color:#5B6259; }

  /* ---------- NEWSLETTER ---------- */
  .newsletter {
    background: var(--forest); color: var(--paper);
    border-radius: 24px; padding: 56px; text-align:center;
    display:flex; flex-direction:column; align-items:center; gap:18px;
  }
  .newsletter h2 { font-family: var(--font-display); font-size: 1.9rem; max-width: 26ch; }
  .newsletter form { display:flex; flex-direction:column; align-items:center; margin-top:10px; }
  .newsletter input[type="email"] {
    padding: 14px 18px; border-radius: 999px; border:none; width: 280px; font-size:0.95rem;
  }
  .newsletter input[type="checkbox"] { accent-color: var(--sun); }
  .newsletter button {
    background: var(--rust); color:var(--paper); border:none;
    padding: 14px 24px; border-radius:999px; font-weight:700; cursor:pointer;
  }

  /* ---------- FOOTER ---------- */
  footer {
    background: var(--ink); color: #9AA396;
    padding: 48px 32px 24px;
  }
  .footer-inner { max-width:1100px; margin:0 auto; display:grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap:32px; }
  .footer-inner h5 { color:var(--paper); font-family:var(--font-display); font-size:1.1rem; margin-bottom:14px; }
  .footer-inner ul { list-style:none; display:flex; flex-direction:column; gap:8px; font-size:0.88rem; }
  .footer-bottom { max-width:1100px; margin: 32px auto 0; padding-top:20px; border-top:1px solid #333; font-size:0.78rem; display:flex; justify-content:space-between; }

  @media (max-width: 900px) {
    nav, .nav-cta { display:none; }
    .menu-toggle { display:block; }

    header { flex-wrap: wrap; position: relative; }
    header.nav-open nav {
      display: flex;
      flex-direction: column;
      flex-basis: 100%;
      gap: 14px;
      margin-top: 16px;
      padding-top: 16px;
      border-top: 1px solid #ddd6c4;
    }
    header.nav-open .nav-cta {
      display: inline-block;
      flex-basis: 100%;
      margin-top: 12px;
      text-align: center;
    }

    .hero-inner { grid-template-columns: 1fr; }
    .cat-grid { grid-template-columns: repeat(2,1fr); }
    .calendar-teaser { grid-template-columns:1fr; }
    .tipps-grid { grid-template-columns:1fr; }
    .footer-inner { grid-template-columns: 1fr 1fr; }
  }

  /* ---------- COOKIE CONSENT BANNER ---------- */
  .cookie-banner {
    position: fixed; left: 20px; right: 20px; bottom: 20px;
    max-width: 720px; margin: 0 auto;
    background: var(--slate-dark);
    color: var(--paper);
    border-radius: 18px;
    padding: 22px 26px;
    box-shadow: 0 20px 50px rgba(0,0,0,0.35);
    z-index: 200;
  }
  .cookie-inner {
    display:flex; gap:24px; align-items:center; flex-wrap:wrap;
  }
  .cookie-text { flex: 1 1 320px; }
  .cookie-text strong { font-family: var(--font-display); font-size: 1rem; }
  .cookie-text p { font-size: 0.85rem; color:#C7CDD3; margin-top:6px; }
  .cookie-text a { text-decoration: underline; color: var(--paper); }
  .cookie-actions { display:flex; gap:10px; flex-wrap:wrap; }
  .cookie-btn { font-size: 0.82rem; padding: 10px 16px; cursor:pointer; }
  .cookie-settings-panel {
    margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(255,255,255,0.15);
    display:flex; flex-direction:column; gap:12px;
  }
  .cookie-option { display:flex; gap:10px; align-items:flex-start; font-size: 0.85rem; color:#C7CDD3; }
  .cookie-option input { margin-top: 3px; }
  .cookie-option strong { color: var(--paper); }

  @media (max-width: 600px) {
    .cookie-banner { left: 12px; right: 12px; bottom: 12px; padding: 18px; }
    .cookie-actions { width:100%; }
    .cookie-btn { flex:1; text-align:center; }
  }

  /* ---------- LEGAL PAGES (Impressum / Datenschutz) ---------- */
  .legal-page {
    max-width: 780px; margin: 0 auto; padding: 72px 32px 100px;
  }
  .legal-page h1 {
    font-family: var(--font-display); font-size: clamp(2rem, 4vw, 2.6rem);
    margin-bottom: 8px;
  }
  .legal-page .legal-updated {
    font-family: var(--font-utility); font-size: 0.78rem; color:#8A9184;
    text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 40px;
  }
  .legal-page h2 {
    font-family: var(--font-display); font-size: 1.3rem; margin-top: 40px; margin-bottom: 12px;
  }
  .legal-page p, .legal-page li { font-size: 0.95rem; color: #3B423C; margin-bottom: 12px; }
  .legal-page ul { padding-left: 22px; }
  .legal-page .placeholder {
    background: var(--cream); border-left: 3px solid var(--rust);
    padding: 12px 16px; border-radius: 8px; font-size: 0.88rem; color: var(--rust); font-weight:600;
  }

  /* ---------- VERANSTALTUNGEN-SEITE ---------- */
  .events-hero {
    background: var(--forest);
    color: var(--paper);
    padding: 72px 32px 56px;
  }
  .events-hero-inner { max-width: 780px; margin: 0 auto; }
  .events-hero h1 {
    font-family: var(--font-display); font-size: clamp(2rem, 4vw, 2.8rem);
    font-weight: 600; margin-top: 14px;
  }
  .events-filter {
    display:flex; gap:10px; flex-wrap:wrap; margin-top:28px;
  }
  .events-filter input[type="text"],
  .events-filter input[type="month"] {
    padding: 12px 16px; border-radius: 999px; border: none;
    font-size: 0.9rem; font-family: var(--font-body);
  }
  .events-filter input[type="text"] { flex: 1 1 220px; }
  .events-filter button, .events-filter a.btn-ghost {
    color: var(--paper); border-color:#4A5C4A;
  }

  .day-group { margin-bottom: 44px; }
  .day-heading {
    font-family: var(--font-display); font-size: 1.2rem; font-weight:600;
    margin-bottom: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--ink);
  }

  .event-list--page { display:flex; flex-direction:column; gap:10px; }
  .event-row--link {
    background: var(--cream); border-radius: 12px; padding: 16px 18px;
    display:flex; align-items:center; gap:16px;
    color: var(--ink); transition: transform 0.12s ease;
  }
  .event-row--link:hover { transform: translateX(4px); }
  .event-row--link .event-date {
    font-family: var(--font-utility); background: var(--sun); color: var(--ink);
    padding: 6px 10px; border-radius: 6px; font-size:0.75rem; font-weight:700; flex-shrink:0;
  }
  .event-main { flex: 1; display:flex; flex-direction:column; gap:2px; }
  .event-title { font-weight:600; font-size:0.95rem; }
  .event-meta { font-size: 0.82rem; color:#5B6259; }
  .event-source {
    font-family: var(--font-utility); font-size:0.72rem; color:#8A9184; flex-shrink:0;
  }

  .empty-state {
    max-width: 1100px; margin: 0 auto; padding: 40px 32px;
    background: var(--cream); border-radius: 16px; text-align:center;
  }
  .empty-state p { margin-bottom: 8px; }

  @media (max-width: 600px) {
    .event-row--link { flex-wrap:wrap; }
    .event-source { width:100%; }
  }

  /* ---------- ERWEITERTES FILTER-FORMULAR ---------- */
  .events-filter select {
    padding: 12px 16px; border-radius: 999px; border: none;
    font-size: 0.9rem; font-family: var(--font-body); background: var(--paper);
  }
  .filter-checkbox {
    display:flex; align-items:center; gap:8px;
    background: rgba(255,255,255,0.1); padding: 10px 16px; border-radius: 999px;
    font-size: 0.88rem; cursor:pointer;
  }
  .filter-checkbox input { accent-color: var(--sun); }

  /* ---------- ORTSAUSWAHL IM FILTERFORMULAR ---------- */
  .location-picker {
    display: flex;
    gap: 6px;
    align-items: center;
  }
  .location-picker input[type="text"] {
    padding: 12px 16px;
    border-radius: 999px;
    border: none;
    font-size: 0.9rem;
    font-family: var(--font-body);
    min-width: 160px;
  }
  #location-picker-locate {
    background: var(--sun);
    color: var(--ink);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 1rem;
    cursor: pointer;
    flex-shrink: 0;
  }
  .location-picker-active {
    color: var(--paper);
    font-size: 0.82rem;
    margin-top: 10px;
    opacity: 0.85;
  }

  /* ---------- ZIEL-KARTEN (Ausflugsziele-Seite) ---------- */
  .category-block { margin-bottom: 72px; }
  .category-block-head {
    display: flex; align-items: center; gap: 14px; margin-bottom: 28px;
  }
  .category-block-icon {
    width: 48px; height: 48px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.4rem; color: var(--paper); flex-shrink: 0;
  }
  .category-block-head h2 { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; }
  .category-block-head p { font-size: 0.88rem; color: #5B6259; margin-top: 2px; }

  /* Flexibles Raster: passt sich automatisch an, egal wie viele Karten
     pro Kategorie stehen - kein festes Spaltenlimit mehr */
  .destination-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 24px;
  }

  .destination-card {
    background: var(--paper);
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 6px 18px rgba(28, 32, 28, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
  }
  .destination-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 28px rgba(28, 32, 28, 0.16);
  }

  /* Bild-Platzhalter: thematischer Verlauf + Icon + feines Linienmuster,
     im Stil der handgezeichneten Karte im Header. Sobald ein echtes Foto
     verfügbar ist: einfach background-image auf dieses Element setzen
     (per style="background-image:url('bilder/dein-foto.jpg')") und die
     Klasse "has-photo" ergänzen, damit Icon/Muster ausgeblendet werden. */
  .destination-card-image {
    position: relative;
    aspect-ratio: 4 / 3;
    display: flex; align-items: center; justify-content: center;
    background-size: cover; background-position: center;
    overflow: hidden;
  }
  .destination-card-image::before {
    content: "";
    position: absolute; inset: 0;
    background-image:
      repeating-linear-gradient(135deg, rgba(255,255,255,0.10) 0 2px, transparent 2px 22px);
    opacity: 0.6;
  }
  .destination-card-image .card-icon {
    position: relative; z-index: 1;
    font-size: 2.6rem;
    filter: drop-shadow(0 2px 6px rgba(0,0,0,0.25));
  }
  .destination-card-image .card-photo-hint {
    position: absolute; bottom: 10px; right: 12px; z-index: 1;
    font-family: var(--font-utility); font-size: 0.62rem; text-transform: uppercase;
    letter-spacing: 0.06em; color: rgba(255,255,255,0.85);
    background: rgba(0,0,0,0.18); padding: 3px 8px; border-radius: 999px;
  }
  .destination-card-image.has-photo::before,
  .destination-card-image.has-photo .card-icon,
  .destination-card-image.has-photo .card-photo-hint {
    display: none;
  }

  /* Themen-Verläufe je Kategorie */
  .grad-wandern   { background: linear-gradient(135deg, #1F3323, #3A5A3E); }
  .grad-burgen    { background: linear-gradient(135deg, #45505A, #6B7885); }
  .grad-wasser    { background: linear-gradient(135deg, #2F6E8A, #4A93B3); }
  .grad-wetter    { background: linear-gradient(135deg, #C4602E, #E08850); }
  .grad-genuss    { background: linear-gradient(135deg, #C9971F, #E8A93C); }

  .destination-card-body {
    padding: 18px 20px 22px;
    display: flex; flex-direction: column; gap: 8px;
  }
  .destination-card h3 { font-family: var(--font-display); font-size: 1.12rem; font-weight: 600; line-height: 1.25; }
  .destination-card p { font-size: 0.88rem; color: #5B6259; line-height: 1.5; }
  .destination-tag {
    align-self: flex-start; font-family: var(--font-utility); font-size: 0.66rem;
    text-transform: uppercase; letter-spacing: 0.06em; background: var(--cream);
    color: var(--rust); padding: 4px 10px; border-radius: 999px;
  }

  @media (max-width: 640px) {
    .destination-grid { grid-template-columns: 1fr; }
  }

  /* ---------- SAISON-GUIDES ---------- */

  .season-nav {
    display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
    margin: -28px auto 56px; max-width: 1100px; padding: 0 32px;
  }
  .season-nav a {
    display: flex; align-items: center; gap: 8px;
    background: var(--paper); border: 2px solid var(--ink);
    padding: 10px 20px; border-radius: 999px; font-weight: 700; font-size: 0.88rem;
    transition: transform 0.15s ease;
  }
  .season-nav a:hover { transform: translateY(-2px); }
  .season-nav a .dot {
    width: 10px; height: 10px; border-radius: 50%; display: inline-block;
  }

  .guide-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }

  .guide-card {
    background: var(--paper); border-radius: 20px; overflow: hidden;
    box-shadow: 0 6px 18px rgba(28, 32, 28, 0.08);
    scroll-margin-top: 100px; /* damit Anker-Sprünge nicht unter dem Header verschwinden */
  }

  .guide-card-banner {
    position: relative;
    padding: 28px 28px 22px;
    color: var(--paper);
    overflow: hidden;
  }
  .guide-card-banner::before {
    content: "";
    position: absolute; inset: 0;
    background-image: repeating-linear-gradient(135deg, rgba(255,255,255,0.08) 0 2px, transparent 2px 22px);
  }
  .guide-card-banner-content { position: relative; z-index: 1; }
  .guide-card-icon { font-size: 2.2rem; margin-bottom: 10px; display: block; }
  .guide-card .eyebrow-small {
    font-family: var(--font-utility); font-size: 0.72rem; text-transform: uppercase;
    letter-spacing: 0.08em; color: rgba(255,255,255,0.85); margin-bottom: 6px; display:block;
  }
  .guide-card-banner h2 { font-family: var(--font-display); font-size: 1.4rem; color: var(--paper); }

  .guide-card-body { padding: 24px 28px 28px; }
  .guide-card-body > p { font-size: 0.92rem; color: #5B6259; margin-bottom: 16px; }
  .guide-card ul { list-style: none; display: flex; flex-direction: column; gap: 12px; }
  .guide-card li {
    font-size: 0.88rem; padding-left: 32px; position: relative; line-height: 1.4;
  }
  .guide-card li::before {
    counter-increment: tip-counter;
    content: counter(tip-counter);
    position: absolute; left: 0; top: -1px;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--cream); color: var(--rust);
    font-family: var(--font-utility); font-size: 0.7rem; font-weight: 700;
    display: flex; align-items: center; justify-content: center;
  }
  .guide-card ul { counter-reset: tip-counter; }

  .grad-spring { background: linear-gradient(135deg, #2F5233, #6FA05A); }
  .grad-summer { background: linear-gradient(135deg, #2F6E8A, #E8A93C); }
  .grad-autumn { background: linear-gradient(135deg, #A0451F, #C4602E); }
  .grad-winter { background: linear-gradient(135deg, #2E363D, #5B7284); }

  @media (max-width: 900px) {
    .guide-grid { grid-template-columns: 1fr; }
    .season-nav { margin-top: 8px; }
  }

  /* ---------- INSIDER-TIPPS SEITE ---------- */
  .tipps-page-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 56px;
  }
  @media (max-width: 900px) {
    .tipps-page-grid { grid-template-columns: 1fr; }
  }

  .tipp-submit-panel {
    background: var(--forest); color: var(--paper); border-radius: 24px;
    padding: 48px; display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start;
  }
  .tipp-submit-panel h2 { font-family: var(--font-display); font-size: 1.7rem; margin-bottom: 12px; }
  .tipp-submit-panel p { color: #D9DECF; font-size: 0.92rem; }
  .tipp-form { display: flex; flex-direction: column; gap: 12px; }
  .tipp-form input, .tipp-form textarea {
    padding: 12px 16px; border-radius: 10px; border: none; font-family: var(--font-body); font-size: 0.9rem;
  }
  .tipp-form textarea { min-height: 100px; resize: vertical; }
  .tipp-form .hp-field { position: absolute; left: -9999px; }

  @media (max-width: 900px) {
    .tipp-submit-panel { grid-template-columns: 1fr; }
  }

  /* ---------- ÜBER UNS ---------- */
  .about-portrait {
    width: 96px; height: 96px; border-radius: 50%;
    background: var(--cream); border: 2px solid var(--ink);
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-display); font-size: 1.8rem; color: var(--rust);
    margin-bottom: 20px;
  }
  .about-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 8px; }
  .about-value-card {
    background: var(--cream); border-radius: 14px; padding: 18px; text-align: center;
  }
  .about-value-card .value-icon { font-size: 1.6rem; margin-bottom: 8px; }
  .about-value-card h4 { font-family: var(--font-display); font-size: 0.98rem; margin-bottom: 6px; }
  .about-value-card p { font-size: 0.82rem; color: #5B6259; }

  @media (max-width: 700px) {
    .about-values { grid-template-columns: 1fr; }
  }

  /* ---------- EVENTS OHNE ECHTEN EINZEL-LINK ---------- */
  .event-row--no-link {
    cursor: default;
  }
  .event-row--no-link:hover {
    transform: none;
  }
  .event-row--no-link .event-source {
    font-style: italic;
  }

  /* ---------- EVENT-BILD IN DER KALENDERLISTE ---------- */
  .event-thumb {
    width: 48px; height: 48px; border-radius: 8px; object-fit: cover;
    flex-shrink: 0;
  }

  /* ---------- WEITERE KATEGORIE-VERLÄUFE (Ausflugsziel-Datenbank) ---------- */
  .grad-tiere      { background: linear-gradient(135deg, #6B4226, #A87C4F); }
  .grad-rad        { background: linear-gradient(135deg, #1B7A6B, #3FAF9A); }
  .grad-action     { background: linear-gradient(135deg, #B23A2E, #E8603F); }
  .grad-spielplatz { background: linear-gradient(135deg, #C9457A, #E87BA8); }
  .grad-bauernhof  { background: linear-gradient(135deg, #6E7B3D, #9CAA5C); }
  .grad-museum     { background: linear-gradient(135deg, #5B3E75, #8863A8); }
  .grad-fahrten    { background: linear-gradient(135deg, #1F4E6B, #3E7FA3); }
  .grad-saisonal   { background: linear-gradient(135deg, #B8842E, #E0AC4E); }

  /* ---------- BADGES AUF AUSFLUGSZIEL-KARTEN ---------- */
  .dest-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
  .dest-badge {
    font-family: var(--font-utility); font-size: 0.68rem;
    background: var(--cream); color: #5B6259;
    padding: 4px 9px; border-radius: 999px;
  }

  /* ---------- LÖSCH-BUTTON PRO EVENT (events-review.php) ---------- */
  .event-delete-form {
    text-align: right;
    margin: -6px 0 16px;
  }
  .event-delete-form .btn-reject {
    background: transparent;
    color: #8A3315;
    border: 1px solid #F5D9CE;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 0.76rem;
    cursor: pointer;
  }
  .event-delete-form .btn-reject:hover {
    background: #F5D9CE;
  }

  /* ---------- KI-TEXT-UMFORMULIEREN-BUTTON (events-review.php) ---------- */
  .btn-ai-rewrite {
    align-self: flex-start;
    margin-top: 4px;
    background: linear-gradient(135deg, #5B3E75, #8863A8);
    color: white;
    border: none;
    padding: 8px 14px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
  }
  .btn-ai-rewrite:disabled {
    opacity: 0.6;
    cursor: wait;
  }

  /* ---------- AKTIVER ADMIN-NAV-PUNKT ---------- */
  header nav a.active {
    color: var(--rust);
    font-weight: 700;
  }

  /* ---------- MERKLISTE ---------- */
  .merk-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255,255,255,0.92);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
    z-index: 2;
    color: #8A9184;
    transition: transform 0.1s ease;
  }
  .merk-btn:hover { transform: scale(1.08); }
  .merk-btn::before { content: "♡"; }
  .merk-btn.is-saved { color: #C4602E; }
  .merk-btn.is-saved::before { content: "♥"; }

  .merkliste-badge {
    background: var(--rust);
    color: white;
    border-radius: 999px;
    padding: 1px 7px;
    font-size: 0.7rem;
    margin-left: 4px;
    display: inline-flex;
    align-items: center;
  }

  /* Inline-Variante des Merk-Buttons für die Event-Listenansicht
     (dort keine Bild-Fläche zum absolut Positionieren vorhanden) */
  .merk-btn--inline {
    position: static;
    width: 30px;
    height: 30px;
    background: var(--cream);
    flex-shrink: 0;
    margin-left: 8px;
  }

  /* ---------- KALENDER-BUTTON (iCal-Export) ---------- */
  .ical-btn {
    background: var(--cream);
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-size: 0.95rem;
    cursor: pointer;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .ical-btn:hover { background: var(--sun); }
