/* Alpenedelweiss – alpin im Inhalt, nordisch in der Gestaltung (siehe docs/DESIGN.md) */
:root {
    --bg: #f8f7f4;
    --surface: #ffffff;
    --ink: #24313a;
    --muted: #7b8186;
    --line: #e6e3dd;
    --accent: #2e7d92;       /* Gletscher dunkel – Links/Buttons (Kontrast ≥ 4.5) */
    --glacier: #5fb4c8;      /* Logofarbe */
    --accent-soft: #eef6f8;
    --warm: #b59d72;

    --font-head: "Cormorant Garamond", "Iowan Old Style", "Palatino Linotype", Georgia, serif;
    --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --radius: 4px;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }   /* sonst überschreibt display:flex das hidden-Attribut (Cookie-Banner) */
body {
    margin: 0; background: var(--bg); color: var(--ink);
    font: 300 17px/1.7 var(--font-body);
    -webkit-font-smoothing: antialiased;
}
.wrap { max-width: 1120px; margin: 0 auto; padding-inline: 24px; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
h1, h2, h3 { font-family: var(--font-head); font-weight: 400; letter-spacing: .01em; line-height: 1.2; }

/* Header */
.site-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.site-header .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-block: 22px; }
.brand { display: flex; align-items: center; gap: 14px; text-decoration: none; color: var(--muted); }
.brand img { display: block; height: 52px; width: auto; }
.brand small { font-size: .72rem; text-transform: uppercase; letter-spacing: .18em; max-width: 14ch; line-height: 1.4; }
@media (max-width: 600px) { .brand small { display: none; } }
nav { display: flex; flex-wrap: wrap; }
.site-header nav { gap: 28px; }
.site-header nav a {
    font-size: .78rem; text-transform: uppercase; letter-spacing: .16em;
    text-decoration: none; color: var(--muted); padding-block: 4px; border-bottom: 1px solid transparent;
    transition: color .2s, border-color .2s;
}
.site-header nav a:hover, .site-header nav a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--accent); }

/* Inhalt */
main { padding-block: 72px 96px; }
.hero { max-width: 760px; margin-bottom: 72px; }
.hero-logo { display: block; width: min(420px, 80%); height: auto; margin-bottom: 40px; }
.hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin: 0 0 20px; }
.hero p { color: var(--muted); font-size: 1.15rem; max-width: 56ch; margin: 0; }

.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); }
.card { display: block; padding: 32px 28px; background: var(--surface); text-decoration: none; color: inherit; transition: background .25s; }
.card:hover { background: var(--accent-soft); }
.card h2 { margin: 0 0 8px; font-size: 1.6rem; color: var(--ink); }
.card p { margin: 0; color: var(--muted); font-size: .95rem; }

.btn {
    display: inline-block; padding: 12px 26px; border: 1px solid var(--accent); border-radius: var(--radius);
    color: var(--accent); text-decoration: none; font-size: .8rem; text-transform: uppercase; letter-spacing: .14em;
    transition: background .2s, color .2s;
}
.btn:hover { background: var(--accent); color: #fff; }
.muted { color: var(--muted); }

/* Footer */
.site-footer { border-top: 1px solid var(--line); background: var(--surface); color: var(--muted); font-size: .85rem; padding-block: 40px; }
.site-footer p { margin: 4px 0; }
.badge { display: inline-block; margin-top: 12px; padding: 2px 10px; border: 1px solid var(--glacier); color: var(--accent); font-size: .7rem; letter-spacing: .16em; }

/* Seitenkopf */
.page-head { max-width: 720px; margin-bottom: 40px; }
.eyebrow { font-size: .72rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); margin: 0 0 10px; }
.eyebrow a { color: inherit; text-decoration: none; }
.page-head h1, .recipe h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); margin: 0 0 16px; }
.lead { color: var(--muted); font-size: 1.1rem; margin: 0; }

/* Filter-Chips */
.chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; }
.chip { padding: 6px 16px; border: 1px solid var(--line); border-radius: 999px; font-size: .8rem; letter-spacing: .06em; color: var(--muted); text-decoration: none; background: var(--surface); }
.chip:hover { border-color: var(--glacier); color: var(--ink); }
.chip.is-active { border-color: var(--accent); color: var(--accent); }

/* Rezept-Raster */
.recipe-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 36px 28px; }
.recipe-card { text-decoration: none; color: inherit; display: block; }
.recipe-card img, .recipe-card .ph { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; border-radius: var(--radius); background: var(--accent-soft); transition: opacity .3s; }
.recipe-card:hover img { opacity: .88; }
.recipe-card .body { padding-top: 14px; }
.recipe-card h2 { font-size: 1.35rem; margin: 0 0 4px; }
.recipe-card .meta { margin: 0; font-size: .82rem; color: var(--muted); letter-spacing: .04em; }
.lang-note { font-family: var(--font-body); font-size: .62rem; letter-spacing: .12em; border: 1px solid var(--line); color: var(--muted); padding: 1px 6px; margin-left: 8px; vertical-align: middle; border-radius: 3px; }

/* Rezept-Detail */
.recipe { max-width: 900px; }
.lang-switch { display: flex; flex-wrap: wrap; gap: 18px; margin-bottom: 24px; font-size: .78rem; text-transform: uppercase; letter-spacing: .14em; }
.lang-switch a { color: var(--muted); text-decoration: none; }
.lang-switch a[aria-current] { color: var(--accent); border-bottom: 1px solid var(--accent); }
.recipe-hero { margin: 0 0 32px; }
.recipe-hero img { width: 100%; max-height: 560px; object-fit: cover; border-radius: var(--radius); display: block; }
.facts { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 32px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.facts div { padding: 16px 28px 16px 0; margin-right: 28px; }
.facts dt { font-size: .68rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); }
.facts dd { margin: 4px 0 0; font-family: var(--font-head); font-size: 1.25rem; }
.intro { font-size: 1.08rem; max-width: 68ch; }
.notice { background: var(--accent-soft); border-left: 2px solid var(--glacier); padding: 12px 18px; color: var(--ink); font-size: .95rem; }
.recipe-body { display: grid; grid-template-columns: minmax(220px, 1fr) 2fr; gap: 56px; margin-top: 48px; }
@media (max-width: 760px) { .recipe-body { grid-template-columns: 1fr; gap: 32px; } }
.recipe-body h2 { font-size: 1.7rem; margin: 0 0 16px; }
.recipe-body h3 { font-family: var(--font-body); font-size: .74rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); margin: 24px 0 8px; font-weight: 500; }
.ingredients ul { list-style: none; padding: 0; margin: 0; }
.ingredients li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.steps ol { padding-left: 0; margin: 0; list-style: none; counter-reset: step; }
.steps li { counter-increment: step; position: relative; padding: 0 0 22px 48px; }
.steps li::before { content: counter(step); position: absolute; left: 0; top: -2px; font-family: var(--font-head); font-size: 1.6rem; color: var(--glacier); }

/* Konto / Formulare */
.account-link { font-size: .78rem; text-transform: uppercase; letter-spacing: .16em; text-decoration: none; color: var(--accent); border: 1px solid var(--line); padding: 6px 14px; border-radius: 999px; }
.account-link:hover, .account-link[aria-current] { border-color: var(--accent); }
.auth { max-width: 460px; }
.auth h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0 0 12px; }
.form { display: grid; gap: 18px; margin-top: 28px; }
.field { display: grid; gap: 6px; }
.field span { font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); }
.field input { font: inherit; font-weight: 400; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.field input:focus { outline: none; border-color: var(--glacier); box-shadow: 0 0 0 3px var(--accent-soft); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.btn-solid { background: var(--accent); color: #fff; cursor: pointer; font: inherit; font-size: .8rem; }
.btn-solid:hover { background: var(--ink); border-color: var(--ink); }
button.btn { cursor: pointer; font: inherit; font-size: .8rem; background: transparent; }
button.btn:hover { background: var(--accent); color: #fff; }
.btn.btn-solid, button.btn.btn-solid { background: var(--accent); border-color: var(--accent); color: #fff; }
.btn.btn-solid:hover, button.btn.btn-solid:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.auth-foot { margin-top: 24px; font-size: .9rem; color: var(--muted); }
.flash { padding: 12px 18px; border-left: 2px solid var(--glacier); background: var(--accent-soft); margin: 0 0 24px; }
.flash-error { border-left-color: #b4544a; background: #f8eeec; }
.flash-success { border-left-color: var(--accent); }

/* Einwilligung */
.cc-bar { position: fixed; left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); z-index: 50; max-width: 980px; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding: 20px 24px; background: var(--surface); border: 1px solid var(--line);
  border-radius: 6px; box-shadow: 0 10px 40px rgba(36, 49, 58, .08); }
.cc-bar__text { flex: 1 1 320px; font-size: .92rem; }
.cc-bar__text strong { font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; }
.cc-bar__text p { margin: 4px 0 0; color: var(--muted); }
.cc-bar__actions { display: flex; flex-wrap: wrap; gap: 8px; }
.cc-bar .btn, .cc-dialog .btn { padding: 9px 16px; font-size: .72rem; }
.cc-dialog { max-width: min(720px, calc(100vw - 32px)); border: 1px solid var(--line); border-radius: 6px; padding: 28px; color: var(--ink); background: var(--surface); }
.cc-dialog::backdrop { background: rgba(36, 49, 58, .25); }
.cc-dialog h2 { margin: 0 0 16px; font-size: 1.8rem; }
.cc-dialog fieldset { border: 0; border-top: 1px solid var(--line); padding: 16px 0; margin: 0; overflow-x: auto; }
.cc-cat { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.cc-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.cc-table th, .cc-table td { text-align: left; padding: 6px 8px 6px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.cc-table th { font-weight: 500; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; }
.cc-dialog__actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; margin-top: 16px; }
.footer-links a { color: var(--muted); }

/* Rezepte – Muster waldschatzfinder */
.crumbs { display: block; font-size: .78rem; color: var(--muted); letter-spacing: .04em; margin-bottom: 28px; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--accent); }
.crumbs span { margin: 0 6px; color: var(--line); }
.chip-accent { border-color: var(--glacier); }
.tag { display: inline-block; font-size: .62rem; text-transform: uppercase; letter-spacing: .16em; color: var(--accent); margin-bottom: 4px; }
.tag-veg { color: #4f7a3a; }
.stars { letter-spacing: 1px; font-size: .9em; white-space: nowrap; }
.stars .on { color: #c9a227; }
.stars .off { color: var(--line); }
.byline { color: var(--muted); font-size: .9rem; margin: -6px 0 8px; }
.rating-top { display: inline-block; text-decoration: none; color: var(--muted); font-size: .9rem; margin-bottom: 16px; }
.steps li { scroll-margin-top: 24px; }
.steps li:target { background: var(--accent-soft); }
.step-images { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.step-images img { width: min(260px, 100%); aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius); }
.step-images.extra { margin-top: 24px; }
.nutrition { margin-top: 48px; border-top: 1px solid var(--line); padding-top: 24px; }
.nutrition h2, .reviews-wrap h2, .related h2 { font-size: 1.7rem; margin: 0 0 16px; }
.nutrition ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 0; }
.reviews-wrap { margin-top: 56px; border-top: 1px solid var(--line); padding-top: 24px; max-width: 720px; }
.reviews { list-style: none; padding: 0; margin: 0 0 24px; }
.reviews li { padding: 14px 0; border-bottom: 1px solid var(--line); }
.reviews li p { margin: 4px 0; }
.review-form { max-width: 520px; }
.review-form textarea { font: inherit; font-weight: 400; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); resize: vertical; }
.star-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 4px; font-size: 1.8rem; }
.star-input input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.star-input label { color: var(--line); cursor: pointer; transition: color .15s; }
.star-input input:checked ~ label, .star-input label:hover, .star-input label:hover ~ label { color: #c9a227; }
.star-input input:focus-visible + label { outline: 2px solid var(--glacier); outline-offset: 2px; }
.related { margin-top: 72px; border-top: 1px solid var(--line); padding-top: 32px; }

/* Rechtliches */
.legal { max-width: 760px; }
.legal h1 { font-size: clamp(2rem, 4vw, 2.8rem); margin: 0 0 20px; }
.legal h2 { font-size: 1.5rem; margin: 40px 0 10px; }
.legal h3 { font-family: var(--font-body); font-size: .74rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); margin: 22px 0 6px; font-weight: 500; }
.legal p { margin: 0 0 12px; }

/* Seitenhintergrund: Edelweiß im Nebel (Postkartenmotiv, Fundus Immich) – fest stehend, Inhalt auf heller Fläche */
body { background: #3d4650; }
.page-bg { position: fixed; inset: 0; z-index: -1; background: #3d4650 url("/assets/img/bg-edelweiss.webp") center 62% / cover no-repeat; }
.page-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(36, 49, 58, .10) 0%, rgba(36, 49, 58, .28) 100%); }
@media (max-width: 720px) { .page-bg { background-image: url("/assets/img/bg-edelweiss-720.webp"); } }
@supports not (background-image: url("x.webp")) { .page-bg { background-image: url("/assets/img/bg-edelweiss.jpg"); } }

.site-header { background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); position: relative; z-index: 2; }
main.wrap { background: var(--bg); margin: 56px auto 0; padding-block: 64px 80px; padding-inline: clamp(20px, 5vw, 56px);
  border-radius: 6px 6px 0 0; box-shadow: 0 -10px 60px rgba(20, 28, 34, .18); max-width: 1120px; }
body.is-home main.wrap { margin-top: 42vh; }
body.is-home .page-bg { background-position: center 88%; }   /* Blüte im freien Bereich über der Inhaltsfläche */
@media (max-width: 720px) {
  main.wrap { margin-top: 24px; border-radius: 0; padding-inline: 20px; }
  body.is-home main.wrap { margin-top: 30vh; }
}
.site-footer { background: rgba(28, 36, 42, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); border-top: 0; color: rgba(255, 255, 255, .78); }
.site-footer a, .site-footer .footer-links a { color: #fff; }
.site-footer .badge { border-color: rgba(255, 255, 255, .5); color: #fff; }

/* Glasflächen (Axel, 10.11.): transparent mit leichtem Blur – das Edelweiß bleibt überall sichtbar */
:root {
  --glass: rgba(250, 249, 246, .66);
  --glass-strong: rgba(255, 255, 255, .74);
  --glass-soft: rgba(255, 255, 255, .42);
  --glass-line: rgba(255, 255, 255, .55);
  --glass-blur: saturate(1.25) blur(18px);
}
.site-header { background: var(--glass-strong); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border-bottom: 1px solid var(--glass-line); }
main.wrap { background: var(--glass); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-line); border-bottom: 0; box-shadow: 0 -10px 60px rgba(20, 28, 34, .14); }
.card, .recipe-card .ph, .chip, .field input, .review-form textarea, .account-link { background: var(--glass-soft); }
.cards { background: var(--glass-line); border-color: var(--glass-line); }
.card:hover { background: rgba(255, 255, 255, .7); }
.facts, .ingredients li, .reviews li, .nutrition, .reviews-wrap, .related, .cc-table th, .cc-table td { border-color: rgba(36, 49, 58, .12); }
.notice, .flash { background: rgba(238, 246, 248, .7); }
.cc-bar { background: var(--glass-strong); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border-color: var(--glass-line); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  main.wrap { background: rgba(250, 249, 246, .93); }
  .site-header, .cc-bar { background: rgba(255, 255, 255, .96); }
}

/* Handy: kompakter Header, Navigation in einer scrollbaren Zeile */
@media (max-width: 720px) {
  .site-header .wrap { flex-wrap: nowrap; gap: 12px; padding-block: 12px; }
  .brand img { height: 40px; }
  .site-header nav { order: 3; flex-wrap: nowrap; overflow-x: auto; gap: 20px; scrollbar-width: none; -webkit-overflow-scrolling: touch;
    position: absolute; left: 0; right: 0; top: 100%; padding: 10px 20px; background: var(--glass-strong); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border-bottom: 1px solid var(--glass-line); }
  .site-header nav::-webkit-scrollbar { display: none; }
  .site-header nav a { white-space: nowrap; }
  .site-header .wrap { position: relative; justify-content: space-between; }
  .account-link { padding: 5px 12px; font-size: .7rem; }
  main.wrap { margin-top: 64px; }
  body.is-home main.wrap { margin-top: 34vh; }
  body.is-home .page-bg { background-position: center 70%; }
}

/* Helles Glas, dunkle Schrift (Axel, 10.11.2026: „lieber helles Glas – das Logo sieht sonst nicht gut aus“).
   Glas etwas durchsichtiger als zuvor, dafür Schrift dunkler (Schiefer), damit der Kontrast auf dem durchscheinenden Bild hält. */
:root {
  --ink: #1b252c;
  --muted: #47525a;
  --line: rgba(27, 37, 44, .14);
  --glass: rgba(250, 249, 246, .58);
  --glass-strong: rgba(255, 255, 255, .68);
  --glass-soft: rgba(255, 255, 255, .38);
  --glass-line: rgba(255, 255, 255, .6);
  --glass-blur: saturate(1.3) brightness(1.35) blur(20px);   /* hellt das Bild hinter dem Glas auf: weißeres Glas, Logo kommt klar heraus */
}
body { font-weight: 400; }
.lead, .intro { font-weight: 400; }
.site-header nav a { color: #3b464d; }
.muted, .lead, .meta, .crumbs, .crumbs a, .byline, .eyebrow, .field span, .facts dt { color: var(--muted); }
.facts, .ingredients li, .reviews li, .nutrition, .reviews-wrap, .related, .cc-table th, .cc-table td { border-color: var(--line); }

/* Wanderkarte */
body.is-map main.wrap { max-width: 1440px; padding-inline: clamp(16px, 3vw, 36px); padding-block: 40px 48px; }
.page-head--tight { margin-bottom: 20px; }
.page-head--tight h1 { margin-bottom: 8px; }
.wk-tools { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-bottom: 14px; }
.wk-search { position: relative; flex: 1 1 320px; max-width: 520px; }
.wk-search input { width: 100%; font: inherit; padding: 11px 16px; border: 1px solid var(--line); border-radius: 999px; background: var(--glass-strong); color: var(--ink); }
.wk-search input:focus { outline: none; border-color: var(--glacier); box-shadow: 0 0 0 3px var(--accent-soft); }
.wk-hits { position: absolute; z-index: 1000; left: 0; right: 0; top: calc(100% + 6px); list-style: none; margin: 0; padding: 6px; background: rgba(255,255,255,.96);
  border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 12px 40px rgba(20,28,34,.18); max-height: 360px; overflow: auto; }
.wk-hits li { padding: 0; }
.wk-hits li.muted { padding: 8px 10px; }
.wk-hits button { display: block; width: 100%; text-align: left; font: inherit; background: none; border: 0; padding: 8px 10px; border-radius: 6px; cursor: pointer; color: var(--ink); }
.wk-hits button:hover, .wk-hits button:focus { background: var(--accent-soft); outline: none; }
.wk-hits button span { color: var(--muted); font-size: .85rem; }
.wk-layers { display: flex; flex-wrap: wrap; gap: 8px; }
.wk-layers .chip { cursor: pointer; font: inherit; font-size: .8rem; }
.wk-main { display: grid; grid-template-columns: 1fr 360px; gap: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--glass-soft); }
.wk-map { height: min(72vh, 760px); min-height: 420px; background: #e8ecec; }
.wk-panel { border-left: 1px solid var(--line); background: var(--glass-strong); overflow: auto; max-height: min(72vh, 760px); }
.wk-panel__body { padding: 22px 22px 26px; }
.wk-panel h2 { font-size: 1.5rem; margin: 0 0 8px; }
.wk-coord { font-size: .78rem; margin-top: -4px; }
.wk-hint { font-size: .85rem; color: var(--accent); }
@media (max-width: 900px) {
  .wk-main { grid-template-columns: 1fr; }
  .wk-map { height: 62vh; min-height: 340px; }
  .wk-panel { border-left: 0; border-top: 1px solid var(--line); max-height: none; }
}
.wk-shade { mix-blend-mode: multiply; }
.leaflet-container { font: inherit; }
.wk-spot { display: grid; place-items: center; }
.wk-spot span { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: rgba(255,255,255,.92); border: 1px solid rgba(27,37,44,.35);
  font-size: 11px; line-height: 1; color: #1b252c; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.wk-spot--peak span { color: #7a4b2a; }
.wk-spot--viewpoint span { color: #2e7d92; }
.wk-spot--alm span, .wk-spot--shelter span { color: #5f7a6e; }
.wk-spot--parking span { font-weight: 700; color: #2e5d9e; font-size: 10px; }
.wk-ek span { width: 22px; height: 22px; font-size: 12px; }
.wk-ek--open span { border-color: #3d8b5a; box-shadow: 0 0 0 2px rgba(61,139,90,.25); }
.wk-ek--closed span { opacity: .65; }
.wk-tip { font-family: var(--font-body); font-size: .78rem; border-radius: 4px; }
.wk-pop .leaflet-popup-content { font-family: var(--font-body); font-size: .88rem; line-height: 1.5; }
.wk-days { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 0; }
.wk-day { display: grid; gap: 2px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--glass-soft); font-size: .85rem; }
.wk-day__n { text-transform: uppercase; letter-spacing: .12em; font-size: .66rem; color: var(--muted); }
.wk-day__t { font-family: var(--font-head); font-size: 1.35rem; }
.wk-day__t small { font-size: .85rem; color: var(--muted); }
.wk-day__r { color: var(--muted); font-size: .78rem; }
.wk-day__x { font-size: .7rem; color: var(--accent); }
.wk-facts div { padding: 10px 18px 10px 0; margin-right: 12px; }
.wk-facts dd { font-size: 1.1rem; }
.wk-prof { margin: 12px 0; }
.wk-prof svg { width: 100%; height: 90px; display: block; border-bottom: 1px solid var(--line); }
.wk-prof figcaption { font-size: .75rem; color: var(--muted); }
.wk-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.wk-actions .btn { padding: 9px 14px; font-size: .72rem; }
.wk-credit { font-size: .75rem; color: var(--muted); margin: 10px 0 0; }

/* Header mit 7 Menüpunkten: enger, Zusatz „Der Alpenraum“ erst ab breiten Fenstern */
.site-header .wrap { flex-wrap: nowrap; max-width: 1280px; }
.site-header nav { gap: 22px; }
@media (max-width: 1320px) { .brand small { display: none; } .site-header nav { gap: 18px; } }
@media (max-width: 1060px) and (min-width: 721px) { .site-header nav a { font-size: .7rem; letter-spacing: .12em; } .site-header nav { gap: 14px; } }

/* Startseite kompakt (Axel 10.11.): kleine Blüte statt Logo, kleinere Schrift, Glas höher – Inhalt ohne Scrollen sichtbar */
.hero-flower { display: block; width: 60px; height: auto; margin: 0 0 12px; filter: drop-shadow(0 1px 2px rgba(27, 37, 44, .35)) drop-shadow(0 0 8px rgba(27, 37, 44, .12)); }   /* weiße Blüte: zarter Schatten für Kontur auf hellem Glas */
body.is-home .hero { margin-bottom: 36px; }
body.is-home .hero h1 { font-size: clamp(1.7rem, 3.2vw, 2.5rem); margin-bottom: 12px; }
body.is-home .hero p { font-size: 1.02rem; }
body.is-home main.wrap { margin-top: 18vh; padding-block: 40px 64px; }
body.is-home .page-bg { background-position: center 80%; }
@media (max-width: 720px) { body.is-home main.wrap { margin-top: 22vh; } }

/* Typografie (Axel 10.11.: „edler, nordisch filigraner“) – selbst gehostet, assets/fonts/fonts.css
   Überschriften: Cormorant Garamond Light · Fließtext: Jost · Menü/Etiketten/Buttons behalten die bisherige Schrift (gefiel so). */
:root {
  --font-head: "Cormorant Garamond", "Cormorant", Garamond, "Times New Roman", serif;
  --font-body: "Jost", "Futura", "Century Gothic", system-ui, sans-serif;
  --font-ui: system-ui, -apple-system, "Segoe UI", "Noto Sans", sans-serif;
}
body { font-family: var(--font-body); font-weight: 400; font-size: 17px; line-height: 1.7; letter-spacing: .005em; }
h1, h2, h3, .brand, .card h2, .recipe-card h2, .facts dd, .cc-bar__text strong, .steps li::before, .wk-day__t {
  font-family: var(--font-head); font-weight: 300; letter-spacing: .005em;
}
h1 { font-weight: 300; letter-spacing: -.005em; }
.hero h1, body.is-home .hero h1 { font-size: clamp(2rem, 3.8vw, 3rem); line-height: 1.12; }
.page-head h1, .recipe h1, .legal h1, .auth h1 { font-size: clamp(2.5rem, 5vw, 3.8rem); line-height: 1.08; }
.card h2 { font-size: 1.9rem; }
.recipe-card h2 { font-size: 1.55rem; line-height: 1.2; }
.recipe-body h2, .nutrition h2, .reviews-wrap h2, .related h2, .legal h2, .wk-panel h2 { font-size: 2rem; font-weight: 300; }
.facts dd { font-size: 1.45rem; font-weight: 400; }
.steps li::before { font-size: 1.9rem; font-weight: 300; }
.lead, .intro, .hero p { font-weight: 300; font-size: 1.12rem; letter-spacing: .01em; }
strong { font-weight: 500; }
/* bisherige Schrift für Menü & Bedienelemente */
.site-header nav a, .account-link, .brand small, .eyebrow, .chip, .btn, button.btn, .tag, .lang-switch, .crumbs, .facts dt, .field span,
.recipe-body h3, .legal h3, .lang-note, .badge, .wk-day__n, .cc-table th, .footer-links { font-family: var(--font-ui); }

/* Zahlen in Eckdaten/Wetter als Versalziffern (Cormorant setzt sonst Mediävalziffern) */
.facts dd, .wk-day__t, .steps li::before, .stars, .rating-top { font-variant-numeric: lining-nums tabular-nums; }

/* Startseiten-Kacheln: getrennte Glasboxen mit Radius und Abstand, 4 je Reihe (Axel 10.11.) */
.cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; background: none; border: 0; margin-top: 28px; }
.card { padding: 26px 24px 24px; border-radius: 10px; border: 1px solid var(--glass-line);
  background: rgba(255, 255, 255, .34); backdrop-filter: saturate(1.2) blur(10px); -webkit-backdrop-filter: saturate(1.2) blur(10px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .5) inset, 0 6px 24px rgba(27, 37, 44, .06); transition: background .25s, transform .25s, box-shadow .25s; }
.card:hover { background: rgba(255, 255, 255, .6); transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255, 255, 255, .6) inset, 0 10px 30px rgba(27, 37, 44, .1); }
.card h2 { font-size: 1.75rem; margin: 0 0 6px; }
.card p { font-size: .92rem; line-height: 1.5; }
@media (max-width: 980px) { .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .cards { grid-template-columns: 1fr; gap: 10px; } }

/* ===== Hochmodern, aber alpin (Axel 10.11.) ===== */

/* Film-Grain: feines animiertes Rauschen über der ganzen Seite – kaum wahrnehmbar, nicht klickbar */
.grain { position: fixed; inset: -50%; z-index: 9999; pointer-events: none; opacity: .055; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 1.1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.6s steps(6) infinite; will-change: transform; }
@keyframes grain {
  0% { transform: translate(0, 0); } 17% { transform: translate(-3%, 2%); } 33% { transform: translate(2%, -3%); }
  50% { transform: translate(-2%, -1%); } 67% { transform: translate(3%, 3%); } 83% { transform: translate(-1%, 3%); } 100% { transform: translate(0, 0); } }

/* Höhenlinien im Glas (topografisches Motiv) */
main.wrap { position: relative; isolation: isolate; }
main.wrap::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: inherit;
  background: url("/assets/img/contours.svg") right -120px top -60px / 1100px auto no-repeat; opacity: .085; }
body.is-map main.wrap::before { opacity: .05; }

/* Header beim Scrollen dichter, ruhiger Übergang */
.site-header { position: sticky; top: 0; z-index: 50; transition: background .35s, box-shadow .35s; }
.site-header.is-scrolled { background: rgba(255, 255, 255, .82); box-shadow: 0 6px 30px rgba(27, 37, 44, .08); }

/* Sanftes Einblenden */
.js-reveal .reveal { opacity: 0; transform: translateY(14px); transition: opacity .9s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms), transform .9s cubic-bezier(.2, .7, .2, 1) var(--d, 0ms); }
.js-reveal .reveal.is-in { opacity: 1; transform: none; }

/* Kacheln: Nummer, Pfeil, feine Akzentlinie */
.card { position: relative; overflow: hidden; display: flex; flex-direction: column; min-height: 168px; }
.card__no { font-family: var(--font-ui); font-size: .66rem; letter-spacing: .2em; color: var(--muted); margin-bottom: 18px; }
.card p { margin-bottom: 18px; }
.card__go { margin-top: auto; font-size: 1.1rem; color: var(--accent); opacity: 0; transform: translateX(-6px); transition: opacity .3s, transform .3s; }
.card:hover .card__go, .card:focus-visible .card__go { opacity: 1; transform: none; }
.card::after { content: ""; position: absolute; left: 24px; right: 24px; bottom: 0; height: 2px; background: linear-gradient(90deg, var(--glacier), transparent);
  transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
.card:hover::after { transform: scaleX(1); }

/* Rezeptkarten: Bild zoomt sacht */
.recipe-card { overflow: hidden; }
.recipe-card img { transition: transform 1.2s cubic-bezier(.2, .7, .2, 1), opacity .3s; }
.recipe-card:hover img { transform: scale(1.035); opacity: 1; }

/* Fokus sichtbar, aber fein */
a:focus-visible, button:focus-visible, .card:focus-visible { outline: 2px solid var(--glacier); outline-offset: 3px; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
  .grain { animation: none; }
  .js-reveal .reveal { opacity: 1; transform: none; transition: none; }
  .card, .card__go, .card::after, .recipe-card img { transition: none; }
}

/* ===== Ideen aus weatherforecast, alpin-hell übersetzt ===== */
/* Aura: weiches Morgenlicht, wandert langsam hinter dem Startbereich */
.hero { position: relative; }
.aura { position: absolute; z-index: -1; width: 520px; height: 360px; left: -120px; top: -140px; border-radius: 50%; pointer-events: none;
  background: radial-gradient(circle, rgba(255, 236, 196, .75) 0%, rgba(255, 236, 196, .18) 45%, transparent 72%);
  filter: blur(40px); animation: aura-idle 16s ease-in-out infinite; }
@keyframes aura-idle {
  0%, 100% { opacity: .55; transform: scale(1) translate(0, 0); }
  33% { opacity: .8; transform: scale(1.1) translate(24px, -10px); }
  66% { opacity: .6; transform: scale(.95) translate(-14px, 8px); } }

/* Edelweiß schwebt sacht */
.hero-flower { animation: float 5s ease-in-out infinite; }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

/* Kennzahlen: große, dünne Ziffern mit Gletscher-Verlauf */
.stats { display: flex; flex-wrap: wrap; gap: 8px 44px; margin: 22px 0 0; }
.stats div { display: flex; flex-direction: column-reverse; }
.stats dt { font-family: var(--font-ui); font-size: .64rem; text-transform: uppercase; letter-spacing: .2em; color: var(--muted); }
.stats dd { margin: 0; font-family: var(--font-head); font-weight: 300; font-size: 2.6rem; line-height: 1; letter-spacing: -.02em;
  font-variant-numeric: lining-nums; background: linear-gradient(180deg, #1b252c 25%, #5fb4c8 120%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Kacheln kompakter + Rahmen leuchtet beim Überfahren */
.card { min-height: 0; padding: 20px 22px 18px; }
.card__no { margin-bottom: 10px; }
.card p { margin-bottom: 10px; }
.card:hover { border-color: rgba(95, 180, 200, .55); }
body.is-home .hero { margin-bottom: 24px; }

/* Live-Punkt (jetzt geöffnet) */
.live-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #3d8b5a; margin-right: 4px; vertical-align: 1px;
  box-shadow: 0 0 0 0 rgba(61, 139, 90, .5); animation: pulse-dot 2s ease-in-out infinite; }
@keyframes pulse-dot { 0% { box-shadow: 0 0 0 0 rgba(61, 139, 90, .5); } 70% { box-shadow: 0 0 0 7px rgba(61, 139, 90, 0); } 100% { box-shadow: 0 0 0 0 rgba(61, 139, 90, 0); } }

/* Schimmer-Platzhalter beim Laden */
.skel { display: grid; gap: 10px; margin-top: 12px; }
.skel span { display: block; height: 14px; border-radius: 4px; background: linear-gradient(90deg, rgba(27,37,44,.06) 0%, rgba(27,37,44,.13) 50%, rgba(27,37,44,.06) 100%);
  background-size: 200% 100%; animation: shimmer 1.1s ease-in-out infinite; }
.skel span.short { width: 60%; }
@keyframes shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

/* Temperatur-Spanne als Verlaufsbalken (Wanderkarte) */
.wk-range { position: relative; display: block; height: 4px; border-radius: 2px; background: rgba(27, 37, 44, .08); margin: 4px 0 2px; }
.wk-range i { position: absolute; top: 0; bottom: 0; border-radius: 2px; background: linear-gradient(90deg, #5badf0, #f2b25c); }

@media (prefers-reduced-motion: reduce) { .aura, .hero-flower, .live-dot, .skel span { animation: none; } }

/* ===== Atmosphärisches Licht (Axel: „gaaanz leichte Bewegung, lebendig, nicht statisch“) ===== */
/* 1. Bild atmet: kaum merklicher Zoom über 90 s */
.page-bg { animation: breathe 90s ease-in-out infinite alternate; transform-origin: 50% 70%; will-change: transform; }
@keyframes breathe { from { transform: scale(1); } to { transform: scale(1.06) translate(-.6%, -.4%); } }

/* Ebene über dem Bild, unter dem Glas */
.atmo { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.atmo i { position: absolute; display: block; }

/* 2. Wandernde Lichtschleier: warmes Sonnen- und kühles Gletscherlicht */
.atmo__warm { width: 70vmax; height: 70vmax; left: -20vmax; top: -30vmax; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 228, 180, .38) 0%, rgba(255, 228, 180, .10) 40%, transparent 68%);
  mix-blend-mode: screen; animation: drift-warm 70s ease-in-out infinite alternate; }
.atmo__cool { width: 60vmax; height: 60vmax; right: -25vmax; top: 20vh; border-radius: 50%;
  background: radial-gradient(circle, rgba(170, 220, 235, .26) 0%, rgba(170, 220, 235, .07) 42%, transparent 70%);
  mix-blend-mode: screen; animation: drift-cool 85s ease-in-out infinite alternate; }
@keyframes drift-warm { 0% { transform: translate(0, 0) scale(1); opacity: .85; } 50% { opacity: 1; } 100% { transform: translate(18vw, 10vh) scale(1.12); opacity: .75; } }
@keyframes drift-cool { 0% { transform: translate(0, 0) scale(1.05); opacity: .7; } 100% { transform: translate(-16vw, -8vh) scale(.95); opacity: 1; } }

/* 3. Sonnenstrahlen: schwacher Lichtfächer von oben links, pulsiert leise */
.atmo__rays { inset: -20%; background: repeating-conic-gradient(from 205deg at 8% -6%, rgba(255, 244, 220, .07) 0deg 3deg, transparent 3deg 9deg);
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 10% 0%, #000 0%, transparent 70%); mask-image: radial-gradient(ellipse 70% 60% at 10% 0%, #000 0%, transparent 70%);
  mix-blend-mode: screen; animation: rays 18s ease-in-out infinite alternate; }
@keyframes rays { from { opacity: .45; transform: rotate(-1.2deg); } to { opacity: .9; transform: rotate(1.2deg); } }

/* 4. Lichtpartikel steigen langsam auf und flimmern */
.atmo__motes { position: absolute; inset: 0; }
.atmo__motes i { position: absolute; border-radius: 50%; background: radial-gradient(circle, rgba(255, 252, 240, .95) 0%, rgba(255, 252, 240, .3) 45%, transparent 70%);
  filter: blur(.6px); animation-name: mote-rise, mote-twinkle; animation-timing-function: linear, ease-in-out; animation-iteration-count: infinite, infinite;
  animation-direction: normal, alternate; }
@keyframes mote-rise { from { transform: translate(0, 0); } 50% { transform: translate(14px, -26vh); } to { transform: translate(-10px, -55vh); } }
@keyframes mote-twinkle { from { filter: blur(.6px) brightness(.8); } to { filter: blur(1.4px) brightness(1.25); } }

@media (prefers-reduced-motion: reduce) { .page-bg, .atmo__warm, .atmo__cool, .atmo__rays { animation: none; } .atmo__motes { display: none; } }

/* Kacheln flacher (Axel 10.11.): Nummer oben rechts, Pfeil neben dem Titel, knappere Abstände */
.card { padding: 16px 20px 15px; min-height: 0; display: grid; grid-template-columns: 1fr auto; grid-template-areas: "t go" "p p"; column-gap: 8px; align-items: baseline; }
.card__no { position: absolute; top: 12px; right: 16px; margin: 0; font-size: .6rem; opacity: .7; }
.card h2 { grid-area: t; margin: 0 0 4px; font-size: 1.6rem; line-height: 1.15; }
.card p { grid-area: p; margin: 0; font-size: .86rem; line-height: 1.45; }
.card__go { grid-area: go; margin: 0 14px 0 0; align-self: center; }
.cards { gap: 12px; }
.card { align-content: start; }

/* Rezeptbilder (Axel 10.11.: „zu hoch, man sieht das Essen nicht“) – Fotos sind fast alle 3:2 */
.recipe-card img, .recipe-card .ph { aspect-ratio: 3 / 2; object-position: 50% 58%; }
.recipe-hero { margin: 0 0 28px; border-radius: 8px; overflow: hidden; }
.recipe-hero img { width: 100%; aspect-ratio: 16 / 9; max-height: 440px; object-fit: cover; object-position: 50% 60%; border-radius: 0;
  transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.recipe-hero:hover img { transform: scale(1.02); }
.step-images img { aspect-ratio: 3 / 2; object-position: 50% 55%; }
@media (max-width: 720px) { .recipe-hero img { aspect-ratio: 3 / 2; max-height: none; } }
.recipe-card img, .recipe-card .ph { height: auto; }
.recipe-hero img { height: auto; }

/* Heller für Annika (10.11.): hell, dezent, nicht übersättigt – Stimmung bleibt */
.page-bg { filter: brightness(1.26) saturate(.84) contrast(.9); }
.page-bg::after { background: linear-gradient(180deg, rgba(252, 250, 246, .26) 0%, rgba(252, 250, 246, .14) 45%, rgba(248, 247, 244, .22) 100%); }
body { background: #8d969c; }
.site-footer { background: rgba(255, 255, 255, .55); backdrop-filter: saturate(1.2) blur(16px); -webkit-backdrop-filter: saturate(1.2) blur(16px);
  color: var(--muted); border-top: 1px solid rgba(255, 255, 255, .6); }
.site-footer a, .site-footer .footer-links a { color: var(--ink); }
.site-footer .badge { border-color: var(--glacier); color: var(--accent); }
.atmo__warm { opacity: .9; }

/* Überschrift oben, Blüte rechts daneben (spart Höhe) */
.hero-title { display: flex; align-items: center; gap: 18px; }
.hero-title h1 { margin: 0; }
.hero-title .hero-flower { flex: 0 0 auto; width: 52px; margin: 0; }
body.is-home .hero p { margin-top: 12px; }
body.is-home .hero { max-width: none; }
.hero-title { justify-content: flex-start; }
.hero-title h1 { flex: 0 1 auto; }
.hero-title .hero-flower { width: 54px; height: auto; align-self: center;
  filter: drop-shadow(0 1px 1.5px rgba(27, 37, 44, .5)) drop-shadow(0 0 10px rgba(27, 37, 44, .18)); }
@media (max-width: 600px) { .hero-title .hero-flower { width: 40px; } }
/* Blüte: weiter rechts, 30 % kleiner, kaum Bewegung */
.hero-title { justify-content: space-between; }
.hero-title .hero-flower { width: 38px; margin-right: 4%; animation: float-soft 9s ease-in-out infinite; }
@keyframes float-soft { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@media (max-width: 600px) { .hero-title .hero-flower { width: 28px; margin-right: 0; } }
.wk-cam span { color: #2e5d9e; font-size: 12px; }

/* Routenplaner */
.pl { display: grid; grid-template-columns: 340px 1fr; gap: 18px; align-items: start; }
@media (max-width: 960px) { .pl { grid-template-columns: 1fr; } }
.pl-form { display: grid; gap: 16px; padding: 20px; border: 1px solid var(--glass-line); border-radius: 10px; background: rgba(255, 255, 255, .42); }
.pl-field { display: grid; gap: 6px; position: relative; }
.pl-label { font-family: var(--font-ui); font-size: .66rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); }
.pl-form input[type=search], .pl-form select, .pl-form input[type=time] { font: inherit; padding: 10px 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255, 255, 255, .7); color: var(--ink); width: 100%; }
.pl-form input:focus, .pl-form select:focus { outline: none; border-color: var(--glacier); box-shadow: 0 0 0 3px var(--accent-soft); }
.pl-form input[type=range] { accent-color: #2e7d92; width: 100%; }
.pl-form output { font-family: var(--font-head); font-size: 1.05rem; letter-spacing: 0; text-transform: none; color: var(--ink); }
.pl-seg { display: flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; background: rgba(255, 255, 255, .5); }
.pl-seg label { flex: 1; text-align: center; font-family: var(--font-ui); font-size: .74rem; padding: 8px 6px; cursor: pointer; color: var(--muted); transition: background .2s, color .2s; }
.pl-seg input { position: absolute; opacity: 0; pointer-events: none; }
.pl-seg label:has(input:checked) { background: #2e7d92; color: #fff; }
.pl-seg label:has(input:focus-visible) { outline: 2px solid var(--glacier); outline-offset: -2px; }
.pl-wish { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pl-wish .pl-label { width: 100%; }
.chip-check { display: inline-flex; gap: 6px; align-items: center; padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; font-family: var(--font-ui); font-size: .78rem; cursor: pointer; background: rgba(255,255,255,.5); }
.chip-check:has(input:checked) { border-color: #2e7d92; color: #2e7d92; background: var(--accent-soft); }
.chip-check input { accent-color: #2e7d92; }
.pl-row { grid-template-columns: 1fr 1fr; gap: 10px; }
.pl-row label { display: grid; gap: 6px; }
.pl-go { width: 100%; padding: 13px; }
.pl-go:disabled { opacity: .6; cursor: progress; }
.pl-msg { margin: 0; font-size: .88rem; color: var(--accent); min-height: 1.2em; }
.pl-spin { display: inline-block; width: 12px; height: 12px; border: 2px solid var(--glacier); border-right-color: transparent; border-radius: 50%; vertical-align: -1px; animation: plspin .8s linear infinite; margin-right: 6px; }
@keyframes plspin { to { transform: rotate(360deg); } }
.pl-mapwrap { position: relative; }
.pl-map { height: min(70vh, 680px); min-height: 420px; border-radius: 10px; border: 1px solid var(--line); overflow: hidden; background: #e8ecec; }
.pl-maphint { position: absolute; left: 50%; top: 12px; transform: translateX(-50%); z-index: 500; margin: 0; padding: 6px 14px; border-radius: 999px; font-size: .8rem;
  background: rgba(255,255,255,.88); box-shadow: 0 2px 10px rgba(0,0,0,.1); pointer-events: none; white-space: nowrap; }
.pl-pin span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; font: 700 12px/1 var(--font-ui); border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.pl-pin--start span { background: #2e7d92; }
.pl-pin--ziel span { background: #b4544a; }
.pl-result { margin-top: 22px; padding: 24px; border: 1px solid var(--glass-line); border-radius: 10px; background: rgba(255, 255, 255, .42); }
.pl-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: end; }
.pl-head h2 { margin: 0; font-size: clamp(1.8rem, 3vw, 2.4rem); }
.pl-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.pl-actions .btn { padding: 9px 14px; font-size: .72rem; }
.pl-alts { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 4px; }
.pl-alts .chip { cursor: pointer; font: inherit; font-size: .78rem; }
.pl-facts { margin: 16px 0; }
.pl-prof { margin: 8px 0 18px; }
.pl-prof svg { width: 100%; height: 150px; display: block; border-bottom: 1px solid var(--line); }
.pl-prof figcaption { display: flex; justify-content: space-between; font-size: .75rem; color: var(--muted); margin-top: 4px; }
.pl-result h3 { font-family: var(--font-ui); font-size: .7rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); font-weight: 500; margin: 18px 0 8px; }
.pl-ways { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
@media (max-width: 700px) { .pl-ways { grid-template-columns: 1fr; } }
.pl-bar { display: flex; height: 8px; border-radius: 4px; overflow: hidden; background: rgba(27,37,44,.06); }
.pl-bar i { display: block; }
.pl-legend { font-size: .78rem; color: var(--muted); margin: 6px 0 0; }
.pl-dot { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 4px; vertical-align: 0; }
.pl-bar--path { background: #5f7a6e; } .pl-bar--track { background: #a8b88f; } .pl-bar--quiet { background: #9fb7c0; } .pl-bar--road { background: #b4544a; }
.pl-bar--natural { background: #6d8b5a; } .pl-bar--loose { background: #c2a878; } .pl-bar--firm { background: #9aa5ab; } .pl-bar--paved { background: #59646b; }
.pl-days { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.pl-day { display: grid; gap: 2px; padding: 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.4); font-size: .8rem; }
.pl-day span { font-family: var(--font-ui); font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.pl-day strong { font-family: var(--font-head); font-weight: 300; font-size: 1.5rem; font-variant-numeric: lining-nums; }
.pl-day small { color: var(--muted); line-height: 1.3; }
.pl-day.is-best { border-color: #2e7d92; box-shadow: 0 0 0 2px rgba(95,180,200,.25); background: rgba(255,255,255,.7); }
.pl-ek { list-style: none; padding: 0; margin: 0; }
.pl-ek li { padding: 8px 0; border-bottom: 1px solid var(--line); }
.pl-ek__at { display: inline-block; min-width: 52px; font-variant-numeric: tabular-nums; color: var(--accent); font-family: var(--font-ui); font-size: .82rem; }
.pl-note { font-size: .92rem; margin: 12px 0 0; }
.leaflet-routes-pane path.leaflet-interactive { cursor: pointer; }
.pl-fs { border: 0; padding: 0; margin: 0; display: grid; gap: 16px; min-width: 0; }
.pl-fs:disabled { opacity: .55; }
.pl-fs:disabled * { cursor: not-allowed; }
.pl-demo { padding: 14px 16px; border-radius: 8px; background: rgba(95, 180, 200, .14); border: 1px solid rgba(95, 180, 200, .4); font-size: .9rem; }
.pl-demo p { margin: 0 0 10px; }
.pl-demo__cta { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 !important; }
.pl-demo__cta .btn { padding: 9px 14px; font-size: .72rem; }

/* Orte / Betriebe: Karten-Grafik */
.rmap-wrap { margin: 0 0 22px; border-radius: 12px; overflow: hidden; border: 1px solid var(--glass-line);
  background: radial-gradient(ellipse at 30% 20%, rgba(255,255,255,.7), rgba(255,255,255,.25) 70%); }
.rmap { display: block; width: 100%; height: auto; }
.rmap__ghost { fill: rgba(27, 37, 44, .05); stroke: rgba(255, 255, 255, .8); stroke-width: 1; }
.rmap__area { fill: url(#rg); stroke: #fff; stroke-width: 1.6; stroke-linejoin: round; transition: fill .25s; vector-effect: non-scaling-stroke; }
.rmap__a:hover .rmap__area, .rmap__a:focus .rmap__area { fill: url(#rgh); }
.rmap__a:focus { outline: none; }
.rmap__a:focus-visible .rmap__area { stroke: #2e7d92; stroke-width: 2.5; }
.rmap__label { font-family: var(--font-head); font-size: 19px; font-weight: 400; fill: #1b252c; pointer-events: none;
  paint-order: stroke; stroke: rgba(255, 255, 255, .85); stroke-width: 4px; stroke-linejoin: round; }
.rmap-wrap--region .rmap__label { font-size: 26px; }
.rcards { margin-top: 0; }
.rcard p { color: var(--muted); }
.rregion { display: grid; grid-template-columns: 1fr 1.2fr; gap: 24px; align-items: center; }
.rregion .page-head { margin-bottom: 0; }
.rregion__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.rregion__links .btn { padding: 9px 14px; font-size: .72rem; }
@media (max-width: 860px) { .rregion { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .rmap__label { font-size: 26px; } }
.rview__switch { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; margin: 0 0 12px; background: rgba(255,255,255,.5); }
.rview__switch button { font: inherit; font-family: var(--font-ui); font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; padding: 7px 16px; border: 0; background: none; color: var(--muted); cursor: pointer; }
.rview__switch button[aria-selected="true"] { background: #2e7d92; color: #fff; }

/* Kennzahlen neben den Brotkrumen */
.crumbs-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 10px 24px; margin-bottom: 28px; }
.crumbs-row .crumbs { margin: 0; }
.crumbs__stats { display: flex; flex-wrap: wrap; gap: 6px 26px; margin: 0; }
.crumbs__stats div { display: flex; align-items: baseline; gap: 6px; }
.crumbs__stats dd { margin: 0; font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; line-height: 1; font-variant-numeric: lining-nums;
  background: linear-gradient(180deg, #1b252c 25%, #5fb4c8 130%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.crumbs__stats dt { font-family: var(--font-ui); font-size: .6rem; text-transform: uppercase; letter-spacing: .18em; color: var(--muted); }
@media (max-width: 600px) { .crumbs__stats dd { font-size: 1.3rem; } }

/* Betriebe */
.biz-list { margin-top: 8px; }
.biz-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.biz-card { display: block !important; padding: 14px 16px 14px 52px !important; position: relative; }
.biz-card__icon { position: absolute; left: 14px; top: 14px; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.7); font-size: .95rem; }
.biz-card h3 { margin: 0 0 2px; font-family: var(--font-head); font-weight: 400; font-size: 1.2rem; line-height: 1.2; }
.biz-card p { margin: 0; font-size: .8rem; color: var(--muted); }
.biz-badge { display: inline-block; margin-top: 6px; font-family: var(--font-ui); font-size: .58rem; text-transform: uppercase; letter-spacing: .14em; padding: 2px 7px; border-radius: 999px; border: 1px solid var(--glacier); color: var(--accent); }
.biz-badge--partner { background: #2e7d92; color: #fff; border-color: #2e7d92; }
.pager { display: flex; justify-content: center; align-items: center; gap: 16px; margin: 22px 0 6px; font-size: .85rem; color: var(--muted); }
.pager .btn { padding: 8px 14px; font-size: .72rem; }
.biz-src { font-size: .78rem; margin-top: 16px; }
.biz h1 { margin: 0 0 6px; }
.biz-body { display: grid; grid-template-columns: 1.2fr 1fr; gap: 28px; margin-top: 18px; align-items: start; }
@media (max-width: 860px) { .biz-body { grid-template-columns: 1fr; } }
.biz-map { height: 320px; border-radius: 10px; border: 1px solid var(--line); overflow: hidden; background: #e8ecec; }
.biz-links { display: flex; flex-wrap: wrap; gap: 8px; }
.biz-links .btn { padding: 9px 14px; font-size: .72rem; }
.biz-oh { font-size: .9rem; }
.biz-claim { max-width: 520px; }
.table-wrap { overflow-x: auto; }
.admin-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.admin-table th, .admin-table td { text-align: left; padding: 10px 10px 10px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.admin-table form.inline { display: flex; gap: 6px; }
.admin-table .btn { padding: 6px 10px; font-size: .66rem; }
.rmap-src { font-size: .68rem; color: var(--muted); padding: 6px 14px 8px; text-align: right; }
.biz-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0 0 14px; }
.biz-tools input[type=search] { flex: 1 1 280px; max-width: 520px; font: inherit; padding: 10px 16px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.7); color: var(--ink); }
.biz-tools input[type=search]:focus { outline: none; border-color: var(--glacier); box-shadow: 0 0 0 3px var(--accent-soft); }
.biz-sort { display: flex; align-items: center; gap: 8px; font-family: var(--font-ui); font-size: .66rem; text-transform: uppercase; letter-spacing: .16em; color: var(--muted); }
.biz-sort select { font: inherit; font-size: .85rem; text-transform: none; letter-spacing: 0; padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.7); color: var(--ink); }
.biz-tools .btn { padding: 9px 16px; font-size: .72rem; }
.biz-reset { font-size: .82rem; color: var(--muted); }
.biz-hits { font-size: .9rem; color: var(--muted); margin: 0 0 12px; }
.biz-card__where { font-size: .74rem !important; color: var(--accent) !important; margin-top: 2px !important; }

/* Abstand Inhalt ↔ Footer (Axel 10.11.: Footer klebte an den Boxen) */
main.wrap { margin-bottom: 56px; border-radius: 6px; border-bottom: 1px solid var(--glass-line); }
.site-footer { margin-top: 0; }
@media (max-width: 720px) { main.wrap { margin-bottom: 32px; } }
.rc-search { margin-bottom: 18px; }

/* Wetterkarte */
.wx-mapwrap { position: relative; }
.wx-ctl { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 500; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 10px 14px;
  border-radius: 10px; background: rgba(255,255,255,.86); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 4px 18px rgba(27,37,44,.12); }
.wx-play { width: 36px; height: 36px; border-radius: 50%; border: 0; background: #2e7d92; color: #fff; cursor: pointer; font-size: .9rem; flex: 0 0 auto; }
.wx-ctl input[type=range] { flex: 1 1 180px; accent-color: #2e7d92; }
.wx-time { font-family: var(--font-head); font-size: 1.25rem; min-width: 150px; font-variant-numeric: lining-nums tabular-nums; }
.wx-time small { font-family: var(--font-ui); font-size: .66rem; text-transform: uppercase; letter-spacing: .12em; color: var(--muted); margin-left: 6px; }
.wx-time.is-fc small { color: #b4544a; }
.wx-layers { display: flex; gap: 6px; }
.wx-legend { position: absolute; right: 12px; top: 12px; z-index: 500; display: flex; align-items: center; gap: 6px; font-size: .7rem; color: var(--muted);
  background: rgba(255,255,255,.85); padding: 5px 10px; border-radius: 999px; }
.wx-legend i { display: block; width: 90px; height: 6px; border-radius: 3px; background: linear-gradient(90deg, #a9e2f5, #3a9be0, #2d4fd1, #e8d43a, #e8862c, #d12d2d, #b42dc4); }
.wx-radar { image-rendering: auto; transition: opacity .35s; }
.wx-note { font-size: .82rem; color: var(--muted); }
@media (max-width: 700px) { .wx-legend { display: none; } .wx-time { min-width: 0; } }

/* Wetter-Symbol rechts neben dem Menü */
.wx-link { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--glass-line); background: rgba(255,255,255,.45);
  transition: background .25s, border-color .25s, transform .25s; flex: 0 0 auto; margin-left: auto; }
.wx-link:hover, .wx-link[aria-current] { background: rgba(255,255,255,.85); border-color: var(--glacier); }
.wx-link .wx-sun { transform-origin: 12px 12px; animation: wx-sun-spin 40s linear infinite; }
.wx-link:hover .wx-cloud { transform: translateX(1.5px); }
.wx-link .wx-cloud { transition: transform .4s; }
@keyframes wx-sun-spin { to { transform: rotate(360deg); } }
.site-header .wrap { gap: 14px; }
.site-header nav { margin-right: 6px; }
@media (prefers-reduced-motion: reduce) { .wx-link .wx-sun { animation: none; } }
@media (max-width: 720px) { .wx-link { width: 34px; height: 34px; } .wx-link svg { width: 22px; height: 22px; } }
.wx-modes { margin-bottom: 12px; }
.wx-modes .chip { cursor: pointer; font: inherit; font-size: .8rem; }
.wx-ctl.is-snow .wx-play, .wx-ctl.is-snow input[type=range] { display: none; }
.wx-legend__img { display: block; max-height: 220px; }
#wxLegend:has(.wx-legend__img) { border-radius: 8px; padding: 6px; background: rgba(255,255,255,.9); }
.wx-snow span { display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; font: 600 11px/1 var(--font-ui); color: #10202a;
  border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.25); }
.wx-snow--0 span { background: rgba(160, 170, 175, .55); border-width: 1px; }
.wx-snow--1 span { background: #d6ecf5; }
.wx-snow--2 span { background: #8fd0e8; }
.wx-snow--3 span { background: #3f9bd1; color: #fff; }
.wx-snowdot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin: 0 3px 0 8px; vertical-align: -1px; }
.wx-snowdot--0 { background: rgba(160,170,175,.6); } .wx-snowdot--1 { background: #d6ecf5; border: 1px solid #9fc6d6; } .wx-snowdot--2 { background: #8fd0e8; } .wx-snowdot--3 { background: #3f9bd1; }

/* Betriebe: Empfehlung & Formulare (anlegen / vorschlagen) */
.biz-badge--rec { background: #fff7e6; border-color: #d9b36a; color: #8a6419; }
.biz-rec { margin: 0 0 18px; padding: 14px 18px; border-radius: 14px; background: rgba(255, 249, 236, .72); border: 1px solid rgba(217, 179, 106, .55); }
.biz-rec p { margin: 4px 0; }
.biz-rec__t { font-family: var(--font-ui); font-size: .68rem; letter-spacing: .16em; text-transform: uppercase; color: #8a6419; }
.biz-admin { margin: 0 0 12px; }
.bizf { max-width: 860px; margin: 0 auto; }
.bizf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.bizf-grid .bizf-wide { grid-column: 1 / -1; }
.bizf-map { margin: 8px 0 18px; }
.bizf-map .biz-map { height: 320px; cursor: crosshair; }
.bizf-maphint { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; font-size: .9rem; }
.bizf-rec { border: 1px solid var(--glacier); border-radius: 14px; padding: 12px 16px; margin: 8px 0 18px; }
.bizf-rec legend { font-family: var(--font-ui); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; padding: 0 6px; }
@media (max-width: 640px) { .bizf-grid { grid-template-columns: 1fr; } }

/* Geheimtipp-Pille, Pillen im Kopf */
.biz-badge--tipp { background: linear-gradient(135deg, #c2445e, #e0794f); border-color: transparent; color: #fff; font-weight: 600; box-shadow: 0 2px 10px rgba(194, 68, 94, .25); }
.biz-pills { margin: 4px 0 6px; } .biz-pills:empty { display: none; }
.biz-pills .biz-badge { font-size: .66rem; padding: 3px 10px; }
.mod-list { list-style: none; padding: 0; } .mod-list li { margin: 4px 0; }

/* Galerie */
.bizg { margin: 28px 0; }
.bizg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bizg-item { margin: 0; border-radius: 14px; overflow: hidden; background: var(--glass, rgba(255,255,255,.6)); box-shadow: 0 6px 24px rgba(30, 50, 70, .08); }
.bizg-item--lead { grid-column: span 2; grid-row: span 2; }
.bizg-item a { display: block; overflow: hidden; }
.bizg-item img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.bizg-item--lead img { aspect-ratio: auto; height: 100%; min-height: 100%; }
.bizg-item a:hover img { transform: scale(1.03); }
.bizg-item figcaption { padding: 8px 12px 10px; font-size: .84rem; line-height: 1.4; color: var(--ink, #23313d); }
.bizg-box { border: 0; padding: 0; background: transparent; max-width: 96vw; max-height: 96vh; overflow: visible; }
.bizg-box::backdrop { background: rgba(18, 26, 34, .82); backdrop-filter: blur(6px); }
.bizg-box figure { margin: 0; text-align: center; }
.bizg-box img { max-width: 92vw; max-height: 84vh; border-radius: 10px; display: block; margin: 0 auto; }
.bizg-box figcaption { color: #fff; margin-top: 10px; font-size: .95rem; max-width: 70ch; margin-inline: auto; }
.bizg-x, .bizg-nav { position: fixed; border: 0; background: rgba(255, 255, 255, .16); color: #fff; width: 44px; height: 44px; border-radius: 50%; font-size: 1.6rem; line-height: 1; cursor: pointer; }
.bizg-x { top: 16px; right: 16px; } .bizg-prev { left: 12px; top: 50%; } .bizg-next { right: 12px; top: 50%; }
.bizg-x:hover, .bizg-nav:hover { background: rgba(255, 255, 255, .3); }
@media (max-width: 720px) { .bizg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .bizg-item--lead { grid-row: auto; } .bizg-item--lead img { aspect-ratio: 3 / 2; height: auto; } }

/* Foto-Verwaltung */
.bizp-row { display: grid; grid-template-columns: 180px 1fr; gap: 14px; padding: 12px 0; border-top: 1px solid var(--glacier); }
.bizp-row img { width: 100%; border-radius: 10px; }
.bizp-row__ops { display: flex; gap: 14px; align-items: end; } .bizp-sort input { width: 90px; }
@media (max-width: 560px) { .bizp-row { grid-template-columns: 1fr; } }

/* Karten mit Titelbild: rundes Vorschaubild statt Symbol */
.biz-card__thumb { width: 30px; height: 30px; padding: 0; object-fit: cover; box-shadow: 0 0 0 2px #fff, 0 2px 8px rgba(0,0,0,.15); }
.feat-media { display: flex; flex-direction: column; }
.feat-img { flex: 1; min-height: 300px; }
.feat-img img { height: 100%; aspect-ratio: auto; }
.bizg-item--lead { display: flex; flex-direction: column; }
.bizg-item--lead a { flex: 1; min-height: 0; }
.bizg-item--lead img { height: 100%; }

/* Startseite: Feature „Geheimtipp!“ */
.feat { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 28px; margin: 8px 0 34px; padding: 18px; border-radius: 22px;
  background: rgba(255, 255, 255, .62); backdrop-filter: blur(18px) saturate(1.2) brightness(1.05); -webkit-backdrop-filter: blur(18px) saturate(1.2) brightness(1.05);
  border: 1px solid rgba(255, 255, 255, .7); box-shadow: 0 18px 50px rgba(30, 50, 70, .12); }
.feat-img { display: block; border-radius: 16px; overflow: hidden; }
.feat-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.feat-img:hover img { transform: scale(1.025); }
.feat-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 8px; position: relative; }
.feat-strip a { display: block; border-radius: 10px; overflow: hidden; }
.feat-strip img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.feat-more { position: absolute; right: 6px; bottom: 6px; padding: 3px 9px; border-radius: 999px; background: rgba(20, 30, 40, .6); color: #fff !important; font-size: .72rem; text-decoration: none; }
.feat-body { padding: 6px 6px 6px 0; display: flex; flex-direction: column; }
.feat-kicker { margin: 0 0 6px; } .feat-kicker .biz-badge { font-size: .7rem; padding: 4px 12px; }
.feat h2 { margin: 2px 0 4px; font-family: var(--font-head); font-weight: 300; font-size: clamp(1.8rem, 3.4vw, 2.6rem); line-height: 1.08; }
.feat h2 a { color: inherit; text-decoration: none; }
.feat-where { margin: 0 0 14px; color: var(--muted); font-size: .9rem; }
.feat-quote { margin: 0 0 14px; padding: 2px 0 2px 16px; border-left: 2px solid #e0794f; font-family: var(--font-head); font-style: italic; font-size: 1.15rem; line-height: 1.45; }
.feat-body > p { line-height: 1.6; }
.feat-facts { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 6px 0 16px; font-size: .88rem; }
.feat-facts div { display: contents; } .feat-facts dt { color: var(--muted); font-family: var(--font-ui); font-size: .7rem; text-transform: uppercase; letter-spacing: .12em; padding-top: 3px; } .feat-facts dd { margin: 0; }
.feat-links { margin-top: auto; display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 860px) { .feat { grid-template-columns: 1fr; padding: 12px; } .feat-body { padding: 0 4px 4px; } }

/* Region: „Unsere Empfehlungen & Geheimtipps“ */
.picks { margin: 6px 0 26px; padding: 18px 20px 20px; border-radius: 20px; background: rgba(255, 250, 240, .6);
  backdrop-filter: blur(16px) brightness(1.05); -webkit-backdrop-filter: blur(16px) brightness(1.05); border: 1px solid rgba(217, 179, 106, .45); }
.picks h2 { margin: 0 0 2px; font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; }
.picks > .muted { margin: 0 0 14px; font-size: .88rem; }
.picks-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 14px; }
.pick { display: grid; grid-template-columns: 128px 1fr; gap: 14px; padding: 10px; border-radius: 14px; background: rgba(255, 255, 255, .7); color: inherit; text-decoration: none;
  box-shadow: 0 6px 20px rgba(30, 50, 70, .07); transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s; }
.pick:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(30, 50, 70, .12); }
.pick-img { display: block; border-radius: 10px; overflow: hidden; aspect-ratio: 1; }
.pick-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pick-img--none { display: grid; place-items: center; background: rgba(46, 125, 146, .08); font-size: 2rem; }
.pick-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pick-pills .biz-badge { margin-top: 0; }
.pick strong { font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; line-height: 1.2; }
.pick-where { font-size: .8rem; color: var(--muted); }
.pick-text { font-size: .86rem; line-height: 1.45; font-style: italic; }
@media (max-width: 480px) { .pick { grid-template-columns: 92px 1fr; } }

/* Karte: Unsere Tipps */
.wk-tipp span { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; font-size: 15px; color: #8a6419; background: #fff7e6; border: 2px solid #d9b36a; box-shadow: 0 3px 10px rgba(138, 100, 25, .35); }
.wk-tipp--gem span { color: #fff; background: linear-gradient(135deg, #c2445e, #e0794f); border-color: #fff; box-shadow: 0 3px 12px rgba(194, 68, 94, .45); }
.wk-ek--own span { border-color: #d9b36a; }
.wk-pop__img { display: block; width: 100%; max-width: 240px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 8px; margin: 0 0 6px; }
.wk-pop__pills { margin-bottom: 4px; } .wk-pop__pills .biz-badge { margin-top: 0; }

/* Besuchstage: 10-Tage-Wetter mit Farbskala (rot → orange → gelb → hellgrün → grün) */
:root { --wx0: #d9534f; --wx1: #ee8a3c; --wx2: #e8c547; --wx3: #8fcf6b; --wx4: #3fa45b; }
.bizwx { margin: 28px 0; padding: 18px 20px 14px; border-radius: 20px; background: rgba(255, 255, 255, .62); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, .7); }
.bizwx h2 { margin: 0 0 4px; font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; }
.bizwx-lead { margin: 0 0 14px; font-size: 1rem; }
.bizwx-days { display: grid; grid-template-columns: repeat(10, minmax(74px, 1fr)); gap: 8px; overflow-x: auto; padding: 4px 2px 8px; scroll-snap-type: x proximity; }
.wx10 { --c: var(--wx2); position: relative; scroll-snap-align: start; padding: 12px 6px 10px; border-radius: 14px; text-align: center; overflow: hidden;
  background: linear-gradient(180deg, color-mix(in srgb, var(--c) 30%, #fff) 0%, color-mix(in srgb, var(--c) 9%, #fff) 70%); border: 1px solid color-mix(in srgb, var(--c) 45%, transparent);
  transition: transform .4s cubic-bezier(.2, .7, .2, 1), box-shadow .4s; }
.wx10::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--c); }
.wx10:hover { transform: translateY(-3px); box-shadow: 0 10px 24px color-mix(in srgb, var(--c) 35%, transparent); }
.wx10--0 { --c: var(--wx0); } .wx10--1 { --c: var(--wx1); } .wx10--2 { --c: var(--wx2); } .wx10--3 { --c: var(--wx3); } .wx10--4 { --c: var(--wx4); }
.wx10.is-best { box-shadow: 0 0 0 2px var(--c), 0 12px 28px color-mix(in srgb, var(--c) 40%, transparent); }
.wx10.is-best::after { content: "★"; position: absolute; top: 6px; right: 7px; font-size: .7rem; color: var(--c); }
.wx10 p { margin: 0; }
.wx10-d b { display: block; font-family: var(--font-ui); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.wx10-d span { font-size: .7rem; color: var(--muted); }
.wx10 .wxi { width: 42px; height: 42px; margin: 6px auto 2px; display: block; }
.wx10-t b { font-family: var(--font-head); font-weight: 400; font-size: 1.45rem; line-height: 1.1; }
.wx10-t span { margin-left: 4px; font-size: .8rem; color: var(--muted); }
.wx10-r { font-size: .68rem; color: #3b6f9e; margin-top: 2px !important; }
.wx10-l { margin-top: 6px !important; font-family: var(--font-ui); font-size: .58rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 600; color: color-mix(in srgb, var(--c) 70%, #222); }
.wx10-legend { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; font-size: .7rem; color: var(--muted); }
.wx10-legend i { flex: 0 1 180px; height: 6px; border-radius: 3px; background: linear-gradient(90deg, var(--wx0), var(--wx1), var(--wx2), var(--wx3), var(--wx4)); }
.bizwx-src { margin: 8px 0 0; font-size: .74rem; }
/* Icons */
.wxi { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.wxi-sun circle { fill: #ffd25e; stroke: #f0a92e; stroke-width: 2; } .wxi-sun path { stroke: #f0a92e; stroke-width: 2.4; }
.wxi-cloud { fill: #fff; stroke: #8aa3b5; stroke-width: 2; } .wxi-cloud--grey { fill: #eef2f5; stroke: #8496a4; } .wxi-cloud--dark { fill: #c9d2da; stroke: #5e6f7c; }
.wxi-rain { stroke: #3b82c4; stroke-width: 2.4; } .wxi-snow circle { fill: #9cc7ea; stroke: #5d9bd1; stroke-width: 1; }
.wxi-bolt { fill: #ffc93c; stroke: #d99a00; stroke-width: 1.4; } .wxi-fog path { stroke: #9aaab6; stroke-width: 3; }
/* „Bester Tag“-Pille (Feature-Box) */
.feat-wx { margin: 0 0 14px; }
.wx10-pill { --c: var(--wx3); display: inline-flex; align-items: center; gap: 8px; padding: 4px 14px 4px 6px; border-radius: 999px; font-size: .86rem;
  background: color-mix(in srgb, var(--c) 16%, #fff); border: 1px solid color-mix(in srgb, var(--c) 55%, transparent); }
.wx10-pill .wxi { width: 30px; height: 30px; }
@media (max-width: 760px) { .bizwx-days { grid-template-columns: repeat(10, 82px); } }
/* Reisezeit-Box (11.11.2026) */
.ssn { margin: 28px 0; padding: 18px 20px 14px; border-radius: 20px; background: rgba(255, 255, 255, .62); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255, 255, 255, .7); }
.ssn-head h2 { margin: 0 0 4px; font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; }
.ssn-head p { margin: 0 0 12px; }
.ssn-months { display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 8px; scrollbar-width: thin; }
.ssn-m { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; min-width: 48px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); font: inherit; font-size: .86rem; cursor: pointer; color: inherit; }
.ssn-m small { font-size: .62rem; opacity: .6; }
.ssn-m.is-active { background: var(--accent); border-color: var(--accent); color: #fff; }
.ssn-body h3 { margin: 10px 0 8px; font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; }
.ssn-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 8px; }
.ssn-k { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: rgba(255, 255, 255, .7); border: 1px solid var(--line); }
.ssn-k--wide { grid-column: 1 / -1; }
.ssn-k strong { display: block; font-size: 1rem; }
.ssn-k small { display: block; font-size: .74rem; opacity: .7; }
.ssn-ic { font-size: 1.3rem; }
.ssn-crowd--0 { color: #4f7a3a; } .ssn-crowd--1 { color: #a07a12; } .ssn-crowd--2 { color: #b04a2e; }
.ssn-open { margin: 10px 0 0; padding: 8px 12px; border-radius: 12px; font-size: .9rem; }
.ssn-open--yes { background: #eaf3e4; } .ssn-open--part { background: #fbf3dc; } .ssn-open--no { background: #f8e6e1; }
.ssn-hol { margin: 10px 0 0; font-size: .88rem; }
.ssn-hol summary { cursor: pointer; font-weight: 500; }
.ssn-hol ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 4px; }
.ssn-ev { margin: 10px 0 0; font-size: .9rem; }
.ssn-yearwrap { margin-top: 14px; }
.ssn-chart { width: 100%; max-width: 520px; height: auto; display: block; }
.ssn-bar { fill: #9cc6d6; opacity: .55; }
.ssn-tx { fill: none; stroke: #c4572e; stroke-width: 2.2; }
.ssn-tn { fill: none; stroke: #2e7d92; stroke-width: 2.2; }
.ssn-zero { stroke: #999; stroke-dasharray: 3 3; stroke-width: 1; }
.ssn-lbl { font-size: 9px; text-anchor: middle; fill: currentColor; opacity: .65; }
.ssn-lbl--tx { text-anchor: end; fill: #c4572e; opacity: 1; }
.ssn-legend { margin: 2px 0 0; font-size: .74rem; opacity: .75; }
.ssn-legend i { display: inline-block; width: 14px; height: 3px; vertical-align: middle; margin: 0 2px 0 8px; }
.ssn-l-tx { background: #c4572e; } .ssn-l-tn { background: #2e7d92; } .ssn-l-bar { background: #9cc6d6; height: 8px !important; }
.ssn-best { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 10px 0 0; font-size: .9rem; }
.ssn-best__h { flex-basis: 100%; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; }
.ssn-links { margin: 12px 0 0; font-size: .9rem; }
.ssn-src { margin: 6px 0 0; font-size: .72rem; }

/* Rezept: Komfort wie bei waldschatzfinder */
.rc-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: -6px 0 8px; font-size: .85rem; }
.rc-meta .chip { padding: 3px 12px; font-size: .72rem; }
.rc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 22px; }
.rc-actions .btn { padding: 7px 14px; font-size: .72rem; }
.rc-actions .btn.is-active { background: #2e7d92; color: #fff; border-color: #2e7d92; }
.recipe-hero a { display: block; cursor: zoom-in; }
.step-images a { display: block; cursor: zoom-in; }
.ing-for { margin: -4px 0 8px; font-size: .85rem; color: var(--muted); }
.ingredients li label { display: flex; gap: 10px; align-items: baseline; cursor: pointer; }
.ingredients li input[type=checkbox] { flex: none; width: 17px; height: 17px; accent-color: #2e7d92; transform: translateY(2px); }
.ingredients li.is-done span { text-decoration: line-through; color: var(--muted); }
.rc-hint { font-size: .76rem; margin: 10px 0 0; }
.steps .step-title { margin: 0 0 4px; font-size: 1.12rem; font-family: var(--font-head); font-weight: 400; }
.steps li p { margin: 0; }
.rc-keywords { display: flex; flex-wrap: wrap; gap: 6px; margin: 22px 0; }
.rc-keywords .chip { font-size: .72rem; padding: 3px 11px; }
.rc-count { display: inline-block; min-width: 1.6em; padding: 0 .45em; border-radius: 999px; background: rgba(46, 125, 146, .12); color: #2e7d92; font-size: .9rem; text-align: center; vertical-align: middle; }
.rc-summary { display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: center; margin: 6px 0 20px; max-width: 520px; }
.rc-summary__score { display: flex; flex-direction: column; align-items: center; gap: 2px; }
.rc-summary__score b { font-family: var(--font-head); font-weight: 300; font-size: 2.8rem; line-height: 1; }
.rc-summary__score small { color: var(--muted); font-size: .76rem; }
.rc-summary__bars { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; }
.rc-summary__bars li { display: grid; grid-template-columns: 34px 1fr 24px; gap: 8px; align-items: center; font-size: .76rem; }
.rc-summary__bars div { height: 7px; border-radius: 4px; background: rgba(27, 37, 44, .08); overflow: hidden; }
.rc-summary__bars div span { display: block; height: 100%; background: linear-gradient(90deg, #d9b36a, #e0a24f); border-radius: 4px; }
.rc-toast { position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%); padding: 10px 18px; border-radius: 999px; background: rgba(27, 37, 44, .88); color: #fff; font-size: .85rem; z-index: 9999; }
.rc-search select { padding: 10px 12px; border-radius: 12px; border: 1px solid var(--line); background: rgba(255, 255, 255, .8); font: inherit; font-size: .85rem; }

@media print {
  .grain, .site-header, .site-footer, .page-bg, .atmo, .crumbs, .rc-actions, .reviews-wrap, .related, .rc-keywords, .rc-hint, .lang-switch, .cc-bar, dialog, .rating-top { display: none !important; }
  html, body { background: #fff !important; color: #000 !important; }
  main.wrap::before, main.wrap::after { display: none !important; }
  main, .recipe { max-width: none !important; margin: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; backdrop-filter: none !important; }
  .recipe-hero img { max-height: 9cm; }
  .recipe-body { display: grid !important; grid-template-columns: 7cm 1fr; gap: 1cm; }
  .ingredients li input { display: none; } .ingredients li.is-done span { text-decoration: none; color: #000; }
  .steps li, .ingredients li { break-inside: avoid; }
  .step-images { display: none; }
  * { animation: none !important; transition: none !important; opacity: 1 !important; transform: none !important; }
}

/* Sprachumschalter DE | EN */
.lang-sw { display: flex; gap: 2px; margin-left: 8px; font-family: var(--font-ui); font-size: .66rem; letter-spacing: .12em; }
.lang-sw a { padding: 4px 6px; border-radius: 6px; text-decoration: none; color: var(--muted); }
.lang-sw a[aria-current] { color: var(--accent); font-weight: 600; background: rgba(46, 125, 146, .08); }
.lang-sw a:hover { color: var(--accent); }

/* ---------- Dokumentation (/doc, nur Staging) ---------- */
.doc-index, .doc-page { padding-top: 24px; padding-bottom: 64px; }
.doc-index .lead { max-width: 720px; }
.doc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; margin-top: 28px; }
.doc-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.doc-card h2 { font-size: 1.45rem; margin: 0; line-height: 1.15; }
.doc-card h2 a { color: var(--ink); text-decoration: none; }
.doc-card h2 a:hover { color: var(--accent); }
.doc-card p { margin: 0; }
.doc-card--feat { grid-column: 1 / -1; border-color: var(--glacier); background: linear-gradient(135deg, var(--accent-soft), var(--surface) 70%); }
.doc-card--feat h2 { font-size: 2rem; }
.doc-meta { font-family: var(--font-ui); font-size: .74rem; color: var(--muted); margin-top: auto !important; padding-top: 6px; }
.doc-dl { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 0; }
.doc-dl .btn { padding: 6px 14px; font-size: .74rem; }
.doc-head { max-width: 860px; margin-bottom: 26px; }
.doc-head h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); line-height: 1.08; margin: 0 0 14px; }
.doc-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 40px; align-items: start; }
.doc-layout:not(:has(.doc-toc)) { grid-template-columns: minmax(0, 1fr); }
.doc-toc { position: sticky; top: 90px; font-family: var(--font-ui); font-size: .82rem; }
.doc-toc ol { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.doc-toc a { color: var(--muted); text-decoration: none; }
.doc-toc a:hover { color: var(--accent); }
.doc-body { max-width: 860px; min-width: 0; }
.doc-body h2 { font-size: 1.9rem; font-weight: 300; margin: 42px 0 12px; scroll-margin-top: 90px; }
.doc-body h3 { font-size: 1.25rem; margin: 26px 0 8px; scroll-margin-top: 90px; }
.doc-body h4 { font-family: var(--font-ui); font-size: .76rem; text-transform: uppercase; letter-spacing: .14em; color: var(--muted); margin: 20px 0 6px; }
.doc-body p, .doc-body li { line-height: 1.6; }
.doc-body ul, .doc-body ol { padding-left: 22px; margin: 0 0 14px; }
.doc-body li { margin: 3px 0; }
.doc-body li > ul, .doc-body li > ol { margin: 4px 0 4px; }
.doc-body code { font-size: .86em; background: rgba(46,125,146,.08); padding: 1px 5px; border-radius: 5px; overflow-wrap: anywhere; }
.doc-body pre { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; overflow-x: auto; font-size: .84rem; }
.doc-body pre code { background: none; padding: 0; }
.doc-body blockquote { margin: 14px 0; padding: 4px 0 4px 16px; border-left: 3px solid var(--glacier); color: var(--muted); font-style: italic; }
.doc-body hr { border: 0; border-top: 1px solid var(--line); margin: 28px 0; }
.doc-table { overflow-x: auto; margin: 14px 0 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.doc-table table { border-collapse: collapse; width: 100%; font-size: .88rem; }
.doc-table th, .doc-table td { text-align: left; vertical-align: top; padding: 9px 12px; border-bottom: 1px solid var(--line); }
.doc-table th { font-family: var(--font-ui); font-size: .74rem; letter-spacing: .06em; background: var(--accent-soft); }
.doc-table tr:last-child td { border-bottom: 0; }
.doc-table td { min-width: 120px; }
@media (max-width: 860px) { .doc-layout { grid-template-columns: minmax(0, 1fr); } .doc-toc { position: static; } }
.site-footer a.badge { text-decoration: none; text-transform: uppercase; }
.site-footer a.badge:hover { background: rgba(255,255,255,.12); }

/* ---------- Über uns, Kontakt ---------- */
.about, .contact { padding-top: 24px; padding-bottom: 64px; }
.about h1, .contact h1 { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1.08; margin: 0 0 16px; }
.about .lead, .contact .lead { max-width: 760px; font-size: 1.12rem; }
.about-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 18px; margin: 32px 0; }
.about-grid article { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 20px 24px; }
.about-grid h2, .about > h2 { font-size: 1.6rem; margin: 0 0 10px; }
.about > h2 { margin-top: 12px; }
.about-list { padding-left: 20px; margin: 0; display: grid; gap: 6px; }
.about-promise { border-color: var(--glacier) !important; background: linear-gradient(135deg, var(--accent-soft), var(--surface) 75%) !important; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 20px; }
.contact-form { margin-top: 8px; }
.contact-form textarea, .contact-form select { font: inherit; font-weight: 400; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); resize: vertical; }
.contact-form textarea:focus, .contact-form select:focus { outline: none; border-color: var(--glacier); box-shadow: 0 0 0 3px var(--accent-soft); }
.contact-consent { border-radius: 14px; align-items: flex-start; line-height: 1.4; padding: 10px 14px; }
.contact-card { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 20px 24px; }
.contact-card h2 { font-size: 1.5rem; margin: 0 0 10px; }
@media (max-width: 760px) { .contact-grid { grid-template-columns: 1fr; } }

/* ---------- Inhaber-Bereich: Reichweite (Phase A) ---------- */
.biz-edit__nav { display: flex; flex-wrap: wrap; gap: 8px 18px; font-family: var(--font-ui); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin: 8px 0 22px; }
.biz-edit__nav a { color: var(--accent); text-decoration: none; }
.bst { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px 22px 14px; margin: 0 0 30px; }
.bst h2 { margin: 0 0 14px; font-size: 1.7rem; }
.bst h2 small { font-family: var(--font-ui); font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; margin-left: 8px; }
.bst-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; }
.bst-tile { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.bst-tile--lead { border-color: var(--glacier); background: var(--accent-soft); }
.bst-n { font-family: var(--font-head); font-size: 2rem; line-height: 1; font-variant-numeric: lining-nums; color: var(--ink); }
.bst-l { font-size: .8rem; color: var(--muted); line-height: 1.3; }
.bst-chart { display: flex; align-items: flex-end; gap: 3px; height: 70px; margin: 16px 0 4px; border-bottom: 1px solid var(--line); }
.bst-bar { flex: 1; height: max(2px, var(--h)); background: linear-gradient(180deg, var(--glacier), var(--accent)); border-radius: 3px 3px 0 0; opacity: .85; }
.bst-axis { display: flex; justify-content: space-between; gap: 8px; font-size: .74rem; margin: 0; }
.bst-note { font-size: .8rem; margin: 8px 0 0; }
.biz-code { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0 4px; }
.biz-code input { font: inherit; letter-spacing: .2em; text-transform: uppercase; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); width: 12em; }

/* ---------- Für Betriebe ---------- */
.fb { padding-top: 24px; padding-bottom: 64px; }
.fb h2 { font-size: clamp(1.7rem, 3.4vw, 2.3rem); font-weight: 300; margin: 0 0 14px; }
.fb-hero { max-width: 820px; margin-bottom: 34px; }
.fb-hero h1 { font-size: clamp(2.4rem, 5.4vw, 3.9rem); line-height: 1.06; margin: 0 0 16px; }
.fb-hero .lead { font-size: 1.14rem; }
.fb-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.fb-two { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 28px; align-items: start; margin: 0 0 40px; }
.fb-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.fb-list li { display: grid; gap: 2px; padding: 12px 16px 12px 44px; position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; }
.fb-list li::before { content: "✿"; position: absolute; left: 16px; top: 11px; color: var(--glacier); font-size: 1.05rem; }
.fb-list strong { font-weight: 500; }
.fb-list span { color: var(--muted); font-size: .95rem; }
.fb-ref { display: grid; text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; transition: border-color .2s, transform .2s; }
.fb-ref:hover { border-color: var(--glacier); transform: translateY(-2px); }
.fb-ref img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.fb-ref > span { display: grid; gap: 4px; padding: 14px 18px 16px; }
.fb-ref strong { font-family: var(--font-head); font-size: 1.6rem; font-weight: 400; }
.fb-ref .eyebrow { margin: 0; }
.fb-ref__go { color: var(--accent); font-family: var(--font-ui); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; margin-top: 4px; }
.fb-how { margin: 0 0 44px; }
.fb-steps { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.fb-steps li { display: flex; gap: 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; }
.fb-steps h3 { margin: 2px 0 6px; font-size: 1.25rem; }
.fb-steps p { margin: 0; color: var(--muted); }
.fb-step__n { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #fff; font-family: var(--font-ui); font-size: .9rem; }
.fb-packs-wrap { margin: 0 0 44px; }
.fb-packs-lead { max-width: 760px; }
.fb-packs { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; margin-top: 18px; }
.fb-pack { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px; }
.fb-pack h3 { font-size: 1.5rem; margin: 0 0 6px; }
.fb-pack > p { margin: 0 0 10px; }
.fb-pack ul { margin: 0 0 14px; padding-left: 18px; color: var(--muted); font-size: .94rem; display: grid; gap: 4px; }
.fb-pack__foot { margin: auto 0 0 !important; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); }
.fb-price { font-family: var(--font-ui); font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.fb-promise { border: 1px solid var(--glacier); border-radius: 18px; padding: 18px 22px; background: linear-gradient(135deg, var(--accent-soft), var(--surface) 75%); }
.fb-promise p { margin: 0; }
.fb-soon { background: var(--surface); border: 1px dashed var(--line); border-radius: 18px; padding: 18px 22px; }
.fb-faq { max-width: 820px; margin: 0 0 44px; }
.fb-faq__item { border-bottom: 1px solid var(--line); padding: 12px 0; }
.fb-faq__item summary { cursor: pointer; font-weight: 500; list-style: none; position: relative; padding-right: 28px; }
.fb-faq__item summary::-webkit-details-marker { display: none; }
.fb-faq__item summary::after { content: "+"; position: absolute; right: 4px; top: -2px; font-size: 1.3rem; color: var(--accent); }
.fb-faq__item[open] summary::after { content: "–"; }
.fb-faq__item p { margin: 8px 0 2px; color: var(--muted); }
.fb-end { text-align: center; padding: 28px 18px; border-top: 1px solid var(--line); }
.fb-end p:last-child { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
@media (max-width: 820px) { .fb-two { grid-template-columns: 1fr; } }

/* Handy: Sprachumschalter ist auch ein <nav> – nicht wie das Hauptmenü unter den Kopf legen */
@media (max-width: 720px) {
  .site-header nav.lang-sw { position: static; order: 2; overflow: visible; padding: 0; margin-left: 0; gap: 0; background: none; border: 0;
    backdrop-filter: none; -webkit-backdrop-filter: none; }
  .site-header nav.lang-sw a { padding: 4px 5px; }
}

/* ---------- Hofläden & Erzeuger in Karte und Planer (Phase A) ---------- */
.wk-shop span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; font-size: 13px; background: #f4f8ec; border: 2px solid #8fae5b; box-shadow: 0 2px 8px rgba(76, 102, 38, .3); }
.wk-shop--big span { width: 30px; height: 30px; font-size: 16px; border-width: 2.5px; box-shadow: 0 3px 12px rgba(76, 102, 38, .4); }
.wk-shop--open span { border-color: #4f8a2a; }
.wk-shop--closed span { filter: saturate(.45); opacity: .85; }
.wk-pop__kind { font-family: var(--font-ui); font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: #4f6f2a; }
.pl-closed { color: #9a5a2a; font-size: .9em; }
.chip[data-layer="shops"].is-active { border-color: #8fae5b; }
.about-lead2 { max-width: 760px; margin-top: -4px; color: var(--ink); }
.pl-via { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 8px 0 0; padding: 6px 6px 6px 12px; border: 1px solid #8fae5b; border-radius: 999px; background: #f4f8ec; font-size: .88rem; }
.pl-via__x { border: 0; background: none; font-size: 1.2rem; line-height: 1; cursor: pointer; color: var(--muted); padding: 0 6px; }
.pl-note--shop { border-left: 3px solid #8fae5b; padding-left: 10px; }

/* ---------- Produkte (Phase A) ---------- */
.bprod { margin: 34px 0; }
.bprod h2 { font-size: 2rem; font-weight: 300; margin: 0 0 14px; }
.bprod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; }
.bprod-card { display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; overflow: hidden; }
.bprod-card.is-off { opacity: .62; }
.bprod-card__img { aspect-ratio: 1 / 1; background: #f4f8ec; display: grid; place-items: center; }
.bprod-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.bprod-noimg { font-size: 2rem; opacity: .6; display: grid; place-items: center; }
.bprod-card__body { padding: 12px 14px 14px; display: grid; gap: 4px; }
.bprod-card__body h3 { margin: 0; font-size: 1.3rem; line-height: 1.2; }
.bprod-card__cat { margin: 0; font-family: var(--font-ui); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: #4f6f2a; }
.bprod-card__desc { margin: 2px 0; font-size: .92rem; color: var(--muted); }
.bprod-labels { display: flex; flex-wrap: wrap; gap: 4px; margin: 2px 0; }
.bprod-label { font-family: var(--font-ui); font-size: .64rem; letter-spacing: .06em; padding: 2px 7px; border-radius: 999px; background: #eef4e3; color: #3f5d22; border: 1px solid #cfe0b4; }
.bprod-price { margin: 4px 0 0; font-weight: 500; }
.bprod-price small { font-weight: 400; color: var(--muted); }
.bprod-meta { margin: 2px 0 0; font-size: .82rem; }
.bprod-season.is-now { color: #3f6f22; }
.bprod-note { font-size: .8rem; margin-top: 10px; }
.bprod-admin { margin: 34px 0; }
.bprod-item { border: 1px solid var(--line); border-radius: 14px; background: var(--surface); margin: 0 0 10px; }
.bprod-item > summary { display: flex; gap: 12px; align-items: center; padding: 8px 12px; cursor: pointer; list-style: none; }
.bprod-item > summary::-webkit-details-marker { display: none; }
.bprod-item > summary img, .bprod-item > summary .bprod-noimg { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; background: #f4f8ec; font-size: 1.3rem; flex: 0 0 auto; }
.bprod-item > summary span:last-child { display: grid; }
.bprod-item[open] > summary { border-bottom: 1px solid var(--line); }
.bprod-item--new > summary { color: var(--accent); }
.bprod-f { padding: 4px 14px 2px; margin-top: 10px; }
.bprod-f select, .bprod-f textarea { font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.bprod-season { display: flex; gap: 8px; align-items: center; }
.bprod-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.bprod-sort { width: 5em; font: inherit; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; }
.bprod-f__img { display: flex; gap: 10px; align-items: center; margin: 6px 0; }
.bprod-f__img img { width: 72px; height: 72px; object-fit: cover; border-radius: 10px; }
.bprod-del { padding: 0 14px 12px; }
.wk-pop__now { color: #3f6f22; font-size: .9em; }
.bprod-card__img:has(.bprod-noimg) { aspect-ratio: 4 / 1; }

/* ---------- Events ---------- */
.ev-filter { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.ev-filter .chip { text-decoration: none; }
.ev-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 22px; align-items: start; }
.ev-list { display: grid; gap: 10px; }
.ev-card { display: flex; gap: 14px; align-items: flex-start; padding: 12px 14px; background: var(--surface); border: 1px solid var(--line); border-radius: 16px; text-decoration: none; color: var(--ink); transition: border-color .2s, transform .2s; }
.ev-card:hover { border-color: var(--glacier); transform: translateY(-1px); }
.ev-date { flex: 0 0 58px; display: grid; place-items: center; padding: 6px 0; border-radius: 12px; background: linear-gradient(160deg, #fff1f3, #fbe3e8); border: 1px solid #efc6cf; color: #8e2f45; }
.ev-date b { font-family: var(--font-head); font-weight: 400; font-size: 1.8rem; line-height: 1; }
.ev-date small { font-family: var(--font-ui); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }
.ev-card__body { display: grid; gap: 2px; min-width: 0; }
.ev-card__body strong { font-family: var(--font-head); font-weight: 400; font-size: 1.35rem; line-height: 1.2; }
.ev-cat { font-family: var(--font-ui); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.ev-live, .ev-soon { font-family: var(--font-ui); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.ev-live { color: #3f6f22; } .ev-soon { color: #8e2f45; }
.ev-map { height: 520px; border-radius: 16px; border: 1px solid var(--line); position: sticky; top: 90px; }
.ev-pin span { width: 24px; height: 24px; display: grid; place-items: center; border-radius: 50%; color: #fff; font-size: 12px; background: linear-gradient(135deg, #c2445e, #e0794f); border: 2px solid #fff; box-shadow: 0 2px 8px rgba(194, 68, 94, .4); }
.ev-note { margin-top: 18px; font-size: .84rem; }
.ev-more { margin-top: 34px; }
.ev-more h2 { font-size: 1.8rem; font-weight: 300; }
@media (max-width: 860px) { .ev-layout { grid-template-columns: 1fr; } .ev-map { position: static; height: 320px; order: -1; } }

/* ---------- Aktivitäten ---------- */
.act-tip { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 0; margin: 0 0 34px; background: var(--surface); border: 1px solid var(--glacier); border-radius: 20px; overflow: hidden; }
.act-tip__img img { width: 100%; height: 100%; min-height: 240px; object-fit: cover; display: block; }
.act-tip > div { padding: 22px 26px; }
.act-tip h2 { font-size: clamp(1.7rem, 3.4vw, 2.3rem); font-weight: 300; margin: 0 0 10px; }
.act-sec { margin: 0 0 34px; }
.act-sec h2 { font-size: 1.9rem; font-weight: 300; margin: 0 0 14px; }
.act-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.act-card { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 18px 20px 16px; }
.act-card--now { border-color: var(--glacier); background: linear-gradient(160deg, var(--accent-soft), var(--surface) 60%); }
.act-ic { font-size: 1.7rem; line-height: 1; }
.act-now { position: absolute; top: 16px; right: 16px; font-family: var(--font-ui); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); border: 1px solid var(--glacier); border-radius: 999px; padding: 2px 8px; }
.act-card h3 { font-size: 1.45rem; margin: 10px 0 6px; }
.act-card > p { margin: 0 0 12px; color: var(--muted); }
.act-links { display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 0 !important; }
.act-links .btn { padding: 7px 14px; font-size: .74rem; }
.act-sec--later .act-card { opacity: .82; }
.act-soon { text-align: center; color: var(--muted); padding: 18px; border-top: 1px solid var(--line); }
@media (max-width: 760px) { .act-tip { grid-template-columns: 1fr; } .act-tip__img img { min-height: 180px; max-height: 220px; } }

/* ---------- Tour-Ideen (waldschatzfinder) im Planer ---------- */
.pl-idea select { width: 100%; font: inherit; padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.pl-idea__d { font-size: .84rem; margin: 6px 0 0; min-height: 1em; }
.pl-idea-card { border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; margin: 12px 0; background: var(--surface); }
.pl-idea-card h3 { margin: 0 0 6px; font-size: 1.35rem; }
.pl-idea-card p { margin: 4px 0; }
.pl-idea-card--sled { border-color: #9ec3d6; background: linear-gradient(160deg, #f1f7fb, var(--surface) 70%); }
.pl-idea-card--xmas { border-color: #efc6cf; background: linear-gradient(160deg, #fff4f6, var(--surface) 70%); }
.pl-xmas { margin: 6px 0 0; padding-left: 20px; display: grid; gap: 6px; }
.pl-ok { color: #3f6f22; }
.pl-idea-credit { font-size: .78rem; margin: -4px 0 10px; }
.wk-sled span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: #f1f7fb; border: 2px solid #6fa3c0; font-size: 16px; box-shadow: 0 2px 8px rgba(47, 98, 130, .3); }
.pl-result .pl-idea-card h3 { text-transform: none; letter-spacing: 0; font-family: var(--font-head); font-weight: 400; font-size: 1.45rem; }
.pl-result .pl-idea-card h3 small { font-family: var(--font-ui); font-size: .72rem; letter-spacing: .08em; }
.wk-shop--auto span { border-style: dashed; background: #fbfaf2; }

/* ---------- Profil-Assistent ---------- */
.bw-steps { list-style: none; padding: 0; margin: 14px 0 26px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; counter-reset: s; }
.bw-steps a { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: var(--muted); font-family: var(--font-ui); font-size: .68rem; letter-spacing: .06em; text-align: center; padding-top: 2px; border-top: 3px solid var(--line); }
.bw-steps span { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--line); background: var(--surface); font-size: .78rem; margin-top: -15px; }
.bw-steps .is-done a { border-top-color: var(--glacier); color: var(--ink); }
.bw-steps .is-done span { background: var(--glacier); color: #fff; border-color: var(--glacier); }
.bw-steps .is-cur a { border-top-color: var(--accent); color: var(--accent); font-weight: 600; }
.bw-steps .is-cur span { background: var(--accent); color: #fff; border-color: var(--accent); }
.bw h2 { font-size: 1.9rem; font-weight: 300; margin: 0 0 8px; }
.bw-buttons { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-top: 18px; }
.bw-skip { font-size: .85rem; color: var(--muted); margin-left: auto; }
.bw-days { display: grid; gap: 8px; margin: 10px 0; }
.bw-day { display: grid; grid-template-columns: 140px auto auto 1fr; gap: 10px; align-items: center; padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); }
.bw-day input[type=time] { font: inherit; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.bw-day__name { display: flex; gap: 8px; align-items: center; font-weight: 500; }
.bw-day__off { display: none; }
.bw-day.is-closed .bw-day__t { display: none; }
.bw-day.is-closed .bw-day__off { display: inline; }
.bw-season { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.bw-season select { font: inherit; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); }
.bw-tips { margin: 6px 0 14px; padding-left: 20px; color: var(--muted); display: grid; gap: 4px; }
.bw-count { font-size: .84rem; margin: -6px 0 8px; }
.bw-meter { height: 10px; border-radius: 999px; background: var(--line); overflow: hidden; margin: 10px 0 6px; }
.bw-meter span { display: block; height: 100%; width: var(--p); background: linear-gradient(90deg, var(--glacier), var(--accent)); border-radius: 999px; }
.bw-check { list-style: none; padding: 0; display: grid; gap: 6px; margin: 10px 0; }
.bw-check li { color: var(--muted); }
.bw-check li.is-ok { color: #3f6f22; }
.bw-teaser { border: 1px solid var(--glacier); border-radius: 16px; padding: 12px 18px; margin: 0 0 18px; background: linear-gradient(135deg, var(--accent-soft), var(--surface) 70%); }
.bw-teaser p { margin: 4px 0; }
@media (max-width: 640px) { .bw-steps a { font-size: 0; } .bw-steps span { font-size: .78rem; } .bw-day { grid-template-columns: 1fr; } }
.auth.bw { max-width: 900px; }
.bw-steps a { font-size: .62rem; hyphens: auto; overflow-wrap: anywhere; }
.bw-day { grid-template-columns: 150px minmax(0, auto) minmax(0, auto) 1fr; }
.bw-day__t { white-space: nowrap; }
.pl-stops { flex-basis: 100%; margin-top: 6px; }
.pl-stopf { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 8px 12px; margin-top: 4px; }
.pl-stopf label { display: flex; align-items: center; gap: 6px; font-size: .85rem; }
.pl-stopf label[hidden] { display: none; }
.pl-stopf select { padding: 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); font: inherit; }
.pl-stop-hint { margin: 6px 0 0; font-size: .82rem; }
.pl-stoplist { list-style: none; padding: 0; margin: 4px 0 0; display: grid; gap: 4px; max-height: 260px; overflow-y: auto; }
.pl-stoplist li { display: flex; align-items: flex-start; gap: 6px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.pl-stoplist label { display: flex; gap: 8px; align-items: flex-start; flex: 1; cursor: pointer; font-size: .9rem; line-height: 1.35; }
.pl-stoplist li:has(input:checked) { border-color: var(--glacier); background: var(--accent-soft); }
.pl-stoplist__more { text-decoration: none; color: var(--accent); padding: 0 4px; }

/* ---------- In meiner Nähe (Locator) ---------- */
.near-wrap { position: relative; }
.near-btn { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--glass-line); background: rgba(255,255,255,.45); color: var(--muted); cursor: pointer; }
.near-btn:hover { background: rgba(255,255,255,.85); border-color: var(--glacier); color: var(--accent); }
.near-btn.is-on { color: #fff; background: var(--accent); border-color: var(--accent); }
.near-btn__km { position: absolute; right: -6px; bottom: -4px; font-family: var(--font-ui); font-size: .58rem; line-height: 1; padding: 2px 4px; border-radius: 999px; background: #fff; color: var(--accent); border: 1px solid var(--glacier); }
.near-btn__km:empty { display: none; }
.near-pop { position: absolute; right: 0; top: calc(100% + 10px); width: min(320px, calc(100vw - 32px)); z-index: 1200; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.96); border: 1px solid var(--line); box-shadow: 0 16px 40px rgba(27,37,44,.18); }
.near-pop p { margin: 0 0 8px; }
.near-pop__t { font-weight: 600; }
.near-pop__lbl { font-family: var(--font-ui); font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.near-pop__radii { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 10px; }
.near-pop__radii .chip { cursor: pointer; }
.near-pop__act { display: flex; flex-wrap: wrap; gap: 6px; }
.near-pop__act .btn { padding: 6px 10px; font-size: .7rem; }
.near-pop__note { font-size: .74rem; margin: 6px 0 0 !important; }
.near-bar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 14px; border-radius: 12px; background: var(--accent-soft); border: 1px solid var(--glacier); font-size: .9rem; margin: 0 0 14px; }
.near-bar__btn { border: 0; background: none; color: var(--accent); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.near-km { display: inline-block; margin-left: 8px; font-family: var(--font-ui); font-size: .66rem; letter-spacing: .06em; padding: 1px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); vertical-align: middle; }
.near-page { padding-top: 24px; padding-bottom: 56px; }
.near-page h1 { font-size: clamp(2.2rem, 5vw, 3.2rem); margin: 0 0 12px; }
.near-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px; }
.near-sec { background: var(--surface); border: 1px solid var(--line); border-radius: 18px; padding: 14px 18px; margin: 0 0 14px; }
.near-sec h2 { font-size: 1.5rem; margin: 0 0 8px; }
.near-sec h2 small { font-family: var(--font-ui); font-size: .7rem; color: var(--muted); margin-left: 6px; }
.near-list { list-style: none; padding: 0; margin: 0 0 6px; display: grid; gap: 6px; }
.near-list li { display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: baseline; }
.near-list .near-km { margin-left: auto; }
@media (max-width: 720px) { .near-btn { width: 34px; height: 34px; } .near-pop { position: fixed; right: 16px; top: 64px; } }
/* Kopfleiste mit Standort-Knopf: Menü einzeilig halten, Sprachumschalter nebeneinander */
@media (min-width: 721px) {
  .site-header nav:not(.lang-sw) { flex-wrap: nowrap; }
  .site-header nav a { white-space: nowrap; }
  .site-header nav.lang-sw { flex-wrap: nowrap; margin-left: 0; }
}
@media (max-width: 1480px) and (min-width: 721px) { .brand small { display: none; } .site-header nav:not(.lang-sw) { gap: 18px; } .site-header .wrap { gap: 12px; } }
@media (max-width: 1240px) and (min-width: 721px) { .site-header nav a { font-size: .7rem; letter-spacing: .1em; } .site-header nav:not(.lang-sw) { gap: 13px; } .near-btn, .wx-link { width: 36px; height: 36px; } }
@media (max-width: 1060px) and (min-width: 721px) { .site-header nav a { font-size: .64rem; letter-spacing: .06em; } .site-header nav:not(.lang-sw) { gap: 10px; } .account-link { padding: 5px 10px; } }
@media (min-width: 721px) { .site-header nav:not(.lang-sw) { min-width: 0; flex: 0 1 auto; overflow-x: auto; scrollbar-width: none; } .site-header nav:not(.lang-sw)::-webkit-scrollbar { display: none; } .site-header .brand, .near-wrap, .wx-link, .account-link, .lang-sw { flex-shrink: 0; } }

/* ---------- Startseite: In deiner Nähe ---------- */
.near-home { margin: 22px 0; padding: 18px 22px; background: var(--surface); border: 1px solid var(--glacier); border-radius: 20px; }
.near-home--ask { display: flex; flex-wrap: wrap; gap: 14px 24px; align-items: center; justify-content: space-between; background: linear-gradient(135deg, var(--accent-soft), var(--surface) 70%); }
.near-home h2 { font-size: clamp(1.6rem, 3.2vw, 2.1rem); font-weight: 300; margin: 0 0 4px; }
.near-home--ask p { margin: 0; }
.near-home__act { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.near-home__act small { flex-basis: 100%; font-size: .74rem; }
.near-home__head { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }
.near-home__head .eyebrow { margin: 0; }
.near-home__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.near-home__col h3 { font-family: var(--font-ui); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); margin: 0 0 8px; font-weight: 500; }
.near-home__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.near-home__col li { display: grid; grid-template-columns: 1fr auto; column-gap: 8px; }
.near-home__col li a { font-weight: 500; text-decoration: none; color: var(--ink); }
.near-home__col li a:hover { color: var(--accent); }
.near-home__col li .muted { grid-column: 1; font-size: .82rem; }
.near-home__col li .near-km { grid-column: 2; grid-row: 1 / span 2; align-self: center; margin: 0; }

/* ---------- Profil & „Für dich“ ---------- */
.pf { max-width: 860px; }
.pf-info { border: 1px solid var(--glacier); border-radius: 16px; padding: 14px 18px; background: linear-gradient(135deg, var(--accent-soft), var(--surface) 70%); margin: 10px 0 18px; }
.pf-info p { margin: 0 0 6px; }
.pf-form fieldset { border: 1px solid var(--line); border-radius: 16px; padding: 12px 18px 16px; margin: 0 0 16px; background: var(--surface); }
.pf-form legend { font-family: var(--font-ui); font-size: .74rem; letter-spacing: .12em; text-transform: uppercase; padding: 0 6px; color: var(--accent); }
.pf-form select, .pf-form input[type=date], .pf-form input[type=number] { font: inherit; padding: 9px 10px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); color: var(--ink); }
.pf-place__row { display: flex; gap: 8px; }
.pf-place__row input { flex: 1; }
.pf-place__hits { list-style: none; padding: 0; margin: 6px 0 0; display: grid; gap: 4px; }
.pf-place__hits button { width: 100%; text-align: left; font: inherit; font-size: .88rem; padding: 6px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); cursor: pointer; }
.pf-place__hits button:hover { border-color: var(--glacier); background: var(--accent-soft); }
.pf-bday { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.pf-bday input { width: 11em; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.pf-del { margin-top: 18px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.fy { margin: 22px 0; padding: 18px 22px; background: var(--surface); border: 1px solid var(--line); border-radius: 20px; }
.fy-head { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: flex-end; justify-content: space-between; margin-bottom: 14px; }
.fy-head h2 { font-size: clamp(1.6rem, 3.2vw, 2.1rem); font-weight: 300; margin: 0; }
.fy-head .eyebrow, .fy-head p { margin: 0; }
.fy-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.fy-item { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-radius: 14px; text-decoration: none; color: var(--ink); background: linear-gradient(160deg, var(--accent-soft), var(--surface) 70%); transition: border-color .2s, transform .2s; }
.fy-item:hover { border-color: var(--glacier); transform: translateY(-1px); }
.fy-ic { font-size: 1.4rem; }
.fy-go { margin-left: auto; color: var(--accent); }

/* ---------- Tour-Umschalter, Navigation ---------- */
.biz-tour { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.seg { display: inline-flex; border: 1px solid var(--line); border-radius: 999px; padding: 2px; background: var(--surface); }
.seg__b { font: inherit; font-family: var(--font-ui); font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; border: 0; background: none; color: var(--muted); padding: 7px 12px; border-radius: 999px; cursor: pointer; }
.seg__b.is-active { background: var(--accent); color: #fff; }
.biz-maps { font-size: .85rem; color: var(--accent); align-self: center; }
.biz-links { align-items: center; }
.pl-startrow { display: flex; gap: 6px; }
.pl-startrow input { flex: 1; min-width: 0; }
.pl-loc { flex: 0 0 auto; width: 44px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); cursor: pointer; font-size: 1.1rem; }
.pl-loc:hover { border-color: var(--glacier); }
.nav-panel { position: sticky; bottom: 10px; z-index: 900; margin-top: 10px; padding: 12px 16px; border-radius: 16px; background: rgba(255,255,255,.97); border: 2px solid var(--accent); box-shadow: 0 12px 30px rgba(27,37,44,.2); }
.nav-panel__main { display: flex; flex-wrap: wrap; gap: 4px 14px; align-items: baseline; }
.nav-panel__big { font-family: var(--font-head); font-size: 2rem; line-height: 1; }
.nav-panel__sub { color: var(--muted); }
.nav-panel p { margin: 6px 0 0; }
.nav-panel__msg.is-warn { color: #9a3b1f; font-weight: 600; }
.nav-panel__msg.is-ok { color: #3f6f22; font-weight: 600; }
.nav-panel__rain { color: #2d5a87; }
.nav-panel__act { display: flex; gap: 8px; flex-wrap: wrap; }
.nav-panel__act .btn.is-active { border-color: var(--accent); color: var(--accent); }

/* ---------- Handy & Tablet: ruhig statt flackernd (11.11.2026) ----------
   Ursache des Flackerns: bewegter Hintergrund (atmen, Lichtschleier, Partikel) unter großen Weichzeichner-Glasflächen
   → der Weichzeichner wird in jedem Bild neu berechnet; dazu das animierte Korn über der ganzen Seite und auf iOS
   das Neu-Einpassen des festen Hintergrunds, wenn die Adressleiste ein-/ausfährt. Desktop bleibt unverändert. */
@media (hover: none), (pointer: coarse), (max-width: 900px) {
  .page-bg { animation: none !important; transform: none !important; will-change: auto; height: 100lvh; bottom: auto; }
  .atmo__warm, .atmo__cool, .atmo__rays { animation: none !important; }
  .atmo__motes, .grain { display: none !important; }
  .aura { animation: none !important; }
  .hero-title .hero-flower, .hero-flower, .wx-link .wx-sun { animation: none !important; }
  main.wrap { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(250, 249, 246, .9) !important; }
  .bizwx, .ssn, .fd-home, .rinfo, .today, .rh, .biz-head, .feat, .picks, .card { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(255, 255, 255, .86) !important; }
  .site-header { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: #fbfbf9 !important; }
  .site-header nav:not(.lang-sw) { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: #fbfbf9 !important; }
  .site-footer { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(255, 255, 255, .88) !important; }
  .cc-bar { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; background: rgba(255, 255, 255, .97) !important; }
}
/* Ferienkalender (11.11.2026) */
.hc-crowd { margin: 10px 0 24px; padding: 16px 18px; border-radius: 18px; background: rgba(255, 255, 255, .7); border: 1px solid var(--line); }
.hc-crowd h2 { margin: 0 0 10px; font-family: var(--font-head); font-weight: 300; font-size: 1.4rem; }
.hc-bars { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; align-items: end; height: 120px; }
.hc-bar { display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; }
.hc-bar i { display: block; width: 100%; max-width: 34px; border-radius: 6px 6px 2px 2px; background: #9cc6a0; }
.hc-bar--1 i { background: #e2c25e; } .hc-bar--2 i { background: #d27a55; }
.hc-bar span { font-size: .72rem; margin-top: 4px; opacity: .75; }
.hc-note { font-size: .78rem; margin: 8px 0 0; }
.hc-c { margin: 26px 0; }
.hc-c h2 { font-family: var(--font-head); font-weight: 300; font-size: 1.5rem; margin: 0 0 8px; }
.hc-tablewrap { overflow-x: auto; }
.hc-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.hc-table th { text-align: left; white-space: nowrap; padding: 6px 12px 6px 0; vertical-align: top; font-weight: 500; }
.hc-table td { padding: 6px 0; border-bottom: 1px solid var(--line); }
.hc-table tr th { border-bottom: 1px solid var(--line); }
.hc-p { display: inline-block; margin: 0 10px 2px 0; }
.hc-p small { opacity: .7; }
.hc-list { padding-left: 18px; display: grid; gap: 4px; font-size: .9rem; }
.pl-clim { margin: 14px 0; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.7); border: 1px solid var(--line); } .pl-clim h3 { margin: 0 0 4px; } .pl-clim p { margin: 4px 0 0; }
/* Saisonkarte Winter auf der Wanderkarte (11.11.2026) */
.wk-mode { margin: 0 0 8px; }
.wk-layers .wk-w[hidden] { display: none; }
.wk-wnote { margin: 4px 0 0; font-size: .78rem; opacity: .8; }
.wk-w span { background: #eef5fb; border: 2px solid #2f5e80; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 13px; box-shadow: 0 1px 3px rgba(0,0,0,.25); }
.wk-w--nordic span { border-color: #1f7fb8; } .wk-w--ski span { border-color: #5560c9; } .wk-w--icerink span { border-color: #2f9bc4; }
.wk-w--curling span { border-color: #6b7f99; } .wk-w--therme span { border-color: #c75a3a; background: #fbefe9; } .wk-w--winterhike span { border-color: #3b6e8f; }
.wk-w--sled.wk-snow--ok span { border-color: #3c8a3a; background: #e6f4e2; } .wk-w--sled.wk-snow--knapp span { border-color: #d0a21a; background: #fbf3d6; }
.wk-w--sled.wk-snow--nein span { border-color: #9aa3ab; background: #f0f1f2; opacity: .85; }
.wk-snow { font-weight: 500; } .wk-snow--ok { color: #3c8a3a; } .wk-snow--knapp { color: #a07a12; } .wk-snow--nein { color: #7a828a; }
/* Kartensuche: Ort zuerst, dann Betriebe rund um den Ort (11.11.2026) */
.wk-hits { max-height: min(70vh, 560px); overflow-y: auto; }
.wk-hit-place button { padding: 10px 12px; }
.wk-hit-place strong { display: block; font-family: var(--font-head); font-weight: 400; font-size: 1.35rem; line-height: 1.2; }
.wk-hit-place span { display: block; font-size: .8rem; opacity: .7; }
.wk-hit-place.is-more strong { font-size: 1.05rem; }
.wk-hit-sep { height: 0; border-top: 1px solid var(--line); margin: 6px 4px; }
.wk-hit-sep--lbl { border: 0; height: auto; margin: 10px 8px 2px; font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; opacity: .6; }
.wk-hit-tabs { padding: 4px 6px 6px !important; }
.wk-hit-tabs__h { display: block; font-size: .68rem; text-transform: uppercase; letter-spacing: .14em; opacity: .6; margin: 2px 4px 6px; }
.wk-hit-tabs .seg { display: flex; flex-wrap: wrap; }
.wk-hit-tabs .seg__b { width: auto; flex: 1 1 auto; text-align: center; padding: 6px 8px; font-size: .82rem; }
.wk-hit-tabs .seg__b small { opacity: .65; }
.wk-hit-tabs .seg__b[disabled] { opacity: .4; cursor: default; }
.wk-hit-near { list-style: none; margin: 6px 0 0; padding: 0; }
.wk-hit-near .biz-badge { font-size: .62rem; }
.wk-hit-more { font-size: .78rem; padding: 4px 10px !important; }
.wk-hit-tabs .seg { display: grid; grid-template-columns: repeat(4, 1fr); border-radius: 14px; }
.wk-hit-tabs .seg__b { padding: 6px 4px; font-size: .66rem; letter-spacing: .03em; border-radius: 12px; white-space: nowrap; }
/* Reiseziel-Finder (11.11.2026) */
.fd-home { margin: 8px 0 28px; padding: 26px 28px; border-radius: 24px; background: linear-gradient(135deg, rgba(255,255,255,.85), rgba(222,238,243,.85)); border: 1px solid rgba(255,255,255,.8); box-shadow: 0 14px 40px rgba(20,40,50,.10); }
.fd-home h2 { margin: 4px 0 8px; font-family: var(--font-head); font-weight: 300; font-size: clamp(1.6rem, 3.4vw, 2.4rem); line-height: 1.15; }
.fd-home .lead { margin: 0 0 16px; max-width: 760px; }
.fd-form { display: grid; gap: 12px; }
.fd-month { display: flex; align-items: center; gap: 10px; font-size: .9rem; }
.fd-month select { padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); font: inherit; }
.fd-wants > span, .fd-month > span { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; }
.fd-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.fd-go { margin: 4px 0 0; }
.fd-box { margin: 0 0 24px; padding: 18px 20px; border-radius: 20px; background: rgba(255,255,255,.7); border: 1px solid var(--line); }
.fd-results h2 { font-family: var(--font-head); font-weight: 300; font-size: 1.6rem; margin: 0 0 12px; }
.fd-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 20px; align-items: start; }
.fd-map { margin: 0; position: sticky; top: 110px; }
.fd-map .rmap { width: 100%; height: auto; }
.fd-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fd-res { display: flex; gap: 12px; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.78); border: 1px solid var(--line); }
.fd-res__n { flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; }
.fd-res h3 { margin: 2px 0 6px; font-family: var(--font-head); font-weight: 400; font-size: 1.3rem; }
.fd-res h3 small { font-size: .8rem; opacity: .6; font-family: var(--font-ui); }
.fd-why { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 3px; font-size: .88rem; }
.fd-acts { margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.fd-note { font-size: .78rem; margin-top: 14px; }
@media (max-width: 900px) { .fd-grid { grid-template-columns: 1fr; } .fd-map { position: static; } .fd-home { padding: 20px 18px; } }
.fd-map .rmap__ghost { fill: #e6eef0; stroke: #fff; stroke-width: 1.2; }
.fd-map .rmap__area { fill: #2e7d92; stroke: #fff; stroke-width: 1.5; }
.fd-map .rmap__a:hover .rmap__area { fill: #1f5d6d; }
.fd-map .rmap__label { font-size: 22px; font-weight: 700; fill: #fff; paint-order: stroke; stroke: #1f5d6d; stroke-width: 5px; }
.fd-acts .btn { padding: 7px 12px; font-size: .7rem; }
.fd-res { scroll-margin-top: 110px; }
/* Merkliste & Reiseplan (11.11.2026) */
.merk-link { position: relative; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--glass-line); background: rgba(255,255,255,.45); color: #c4572e; text-decoration: none; }
.merk-link:hover, .merk-link[aria-current] { background: var(--accent-soft); }
.merk-count { position: absolute; top: 2px; right: 0; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: #c4572e; color: #fff; font-size: .62rem; font-weight: 700; line-height: 17px; text-align: center; }
.merk-btn .merk-ic { font-size: 1.05em; color: #c4572e; }
.merk-btn.is-on { background: #fbeee8; border-color: #e3b3a0; }
.merk-btn.is-pop .merk-ic { display: inline-block; animation: merkpop .4s ease; }
@keyframes merkpop { 50% { transform: scale(1.5); } }
.mk { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 24px; align-items: start; }
.mk h2 { font-family: var(--font-head); font-weight: 300; font-size: 1.6rem; margin: 0 0 10px; }
.mk h2 small { font-size: 1rem; opacity: .6; }
.mk h3 { margin: 14px 0 6px; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; }
.mk-list, .mk-plan { padding: 18px 20px; border-radius: 20px; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.mk-ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.mk-it { display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); padding: 6px; }
.mk-it__a { flex: 1; display: flex; align-items: center; gap: 10px; text-decoration: none; color: inherit; min-width: 0; }
.mk-it__a img, .mk-it__ic { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: 0 0 44px; display: flex; align-items: center; justify-content: center; background: #eef4f6; font-size: 1.3rem; }
.mk-it__a strong { display: block; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mk-it__a small { display: block; font-size: .76rem; opacity: .7; }
.mk-it__x { border: 0; background: none; font-size: 1.3rem; line-height: 1; padding: 4px 8px; cursor: pointer; color: var(--muted); }
.mk-empty p { margin: 0 0 10px; }
.mk-dates { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; margin: 0 0 14px; }
.mk-dates label { display: grid; gap: 2px; font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; }
.mk-dates input { padding: 7px 10px; border: 1px solid var(--line); border-radius: 10px; font: inherit; background: var(--surface); }
.mk-days { display: grid; gap: 10px; }
.mk-day { padding: 10px 14px; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); }
.mk-day.is-free { opacity: .8; }
.mk-day header { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.mk-day ul { margin: 6px 0 0; padding-left: 18px; display: grid; gap: 3px; }
.mk-day p { margin: 6px 0 0; font-size: .88rem; }
.mk-wx { font-size: .85rem; } .mk-wx--clim { opacity: .75; }
.mk-st { font-size: .7rem; padding: 1px 6px; border-radius: 6px; background: #eef1f3; }
.mk-st--open { background: #e6f4e2; color: #3c6e2a; } .mk-st--closed { background: #f8e6e1; color: #9a3f22; }
.mk-planb { background: #eef4fa; padding: 6px 10px; border-radius: 10px; }
.mk-act .btn { padding: 6px 12px; font-size: .7rem; }
.mk-day--eve { background: #fbf7ef; }
@media (max-width: 900px) { .mk { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .merk-link { width: 34px; height: 34px; } } @media (max-width: 1240px) and (min-width: 721px) { .merk-link { width: 36px; height: 36px; } }
/* Infokachel Orte (11.11.2026) */
.rinfo { margin: 18px 0 22px; padding: 18px 22px; border-radius: 20px; background: rgba(255,255,255,.78); border: 1px solid var(--line); }
.rinfo__h { margin: 0 0 10px; font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; }
.rinfo dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 24px; }
.rinfo__r dt { font-size: .8rem; font-weight: 600; margin-bottom: 2px; }
.rinfo__r dt small { font-weight: 400; opacity: .6; }
.rinfo__r dd { margin: 0; font-size: .95rem; line-height: 1.5; }
/* Hinweis „Näher heranzoomen“ auf der Karte (11.11.2026) */
.wk-zoomhint { font-family: var(--font-ui); max-width: 240px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.95); box-shadow: 0 6px 20px rgba(0,0,0,.15); font-size: .82rem; }
.wk-zoomhint[hidden] { display: none; }
.wk-zoomhint p { margin: 0 0 8px; line-height: 1.35; }
.wk-zoomhint .btn { padding: 6px 12px; font-size: .68rem; }
.wk-stop span { background: #fff; border: 2px solid #7a4b2a; border-radius: 50%; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 12px; box-shadow: 0 1px 3px rgba(0,0,0,.25); } .pl-stops-on { margin: 10px 0 0; font-size: .92rem; }
/* Plan B & Lage-Steckbrief (11.11.2026) */
.planb { margin: 16px 0; padding: 12px 16px; border-radius: 16px; background: rgba(238,244,250,.85); border: 1px solid var(--line); }
.planb summary { cursor: pointer; font-weight: 500; }
.planb__l { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 4px; font-size: .92rem; }
.planb__src { font-size: .72rem; margin: 8px 0 0; }
.pl-planb { margin: 12px 0; padding: 10px 14px; border-radius: 14px; background: #eef4fa; }
.pl-planb h3 { margin: 0 0 6px; font-size: 1rem; } .pl-planb ul { margin: 0; padding-left: 18px; }
.lage { margin: 28px 0; padding: 18px 20px; border-radius: 20px; background: rgba(255,255,255,.75); border: 1px solid var(--line); }
.lage h2 { margin: 0 0 4px; font-family: var(--font-head); font-weight: 300; font-size: 1.6rem; }
.lage__badge { display: inline-block; margin-left: 8px; padding: 3px 10px; border-radius: 999px; background: #e6f4e2; color: #3c6e2a; font-family: var(--font-ui); font-size: .72rem; font-weight: 600; vertical-align: middle; }
.lage__dl { margin: 10px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px 20px; }
.lage__dl dt { font-size: .78rem; font-weight: 600; } .lage__dl dd { margin: 2px 0 0; font-size: .92rem; }
.lage__src { font-size: .72rem; margin: 10px 0 0; }
.fd-row { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; } .fd-prev { margin: 0; font-size: .85rem; flex-basis: 100%; }
.mk-it__a > span { min-width: 0; flex: 1; }
.mk-it__a strong { white-space: normal; overflow-wrap: anywhere; }
.mk-add { margin-left: 6px; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); background: var(--accent); color: #fff; font-size: 1.1rem; line-height: 1; cursor: pointer; vertical-align: middle; }
.mk-dlg { width: min(560px, 92vw); max-height: 80vh; border: 0; border-radius: 20px; padding: 20px 22px; box-shadow: 0 20px 60px rgba(0,0,0,.25); }
.mk-dlg::backdrop { background: rgba(20,30,36,.45); }
.mk-dlg h2 { margin: 0 0 10px; font-family: var(--font-head); font-weight: 300; }
.mk-dlg input { width: 100%; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; font: inherit; margin-bottom: 10px; }
.mk-dlg__x { position: absolute; top: 10px; right: 12px; } .mk-dlg__x button { border: 0; background: none; font-size: 1.5rem; cursor: pointer; }
.mk-res { max-height: 50vh; overflow-y: auto; } .mk-plus { padding: 6px 12px; } .mk-plus.is-on { background: #e6f4e2; }
.mk-dlg__tip { font-size: .8rem; margin: 10px 0 0; }
.map-wheel-tip { position: absolute; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; background: rgba(20,30,36,.35); color: #fff; font-size: 1rem; pointer-events: none; } .map-wheel-tip[hidden] { display: none; }
/* Rundreise (11.11.2026) */
.mk-trip-h { margin: 0 0 10px; font-weight: 500; }
.mk-stage { margin: 0 0 12px; padding: 12px; border-radius: 16px; border: 1px solid var(--line); background: rgba(255,255,255,.6); display: grid; gap: 8px; }
.mk-stage > header { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.mk-stage__n { width: 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; font-size: .85rem; }
.mk-stage__mv { margin-left: auto; display: flex; gap: 4px; } .mk-stage__mv button { border: 1px solid var(--line); background: var(--surface); border-radius: 8px; padding: 2px 8px; cursor: pointer; }
.mk-transfer { margin: 0 0 12px 12px; padding: 8px 12px; border-left: 3px dashed var(--accent); font-size: .88rem; }
/* Temperatur-Felder im Finder (11.11.2026) */
.fd-temp > span { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; } .fd-temp > span small { text-transform: none; letter-spacing: 0; }
.fd-tiles { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; margin-top: 6px; }
.fd-t { position: relative; cursor: pointer; }
.fd-t input { position: absolute; opacity: 0; pointer-events: none; }
.fd-t span { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 74px; padding: 8px 4px; border-radius: 14px; background: var(--c, #e9eef0); color: #fff; text-align: center; border: 3px solid transparent; transition: transform .15s, box-shadow .15s; text-shadow: 0 1px 2px rgba(0,0,0,.25); }
.fd-t--any span { color: var(--ink); text-shadow: none; }
.fd-t b { font-size: .9rem; } .fd-t small { font-size: .7rem; opacity: .95; }
.fd-tn { font-style: normal; font-size: 1.25rem; font-weight: 700; line-height: 1.1; }
.fd-t input:checked + span { border-color: #1b252c; box-shadow: 0 6px 16px rgba(0,0,0,.18); transform: translateY(-2px); }
.fd-t input:focus-visible + span { outline: 2px solid #1b252c; outline-offset: 2px; }
.fd-t.is-off span { opacity: .28; filter: grayscale(.6); cursor: not-allowed; }
@media (max-width: 640px) { .fd-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fd-combo { margin: 0 0 8px; font-size: .86rem; } .merk-mini { border: 0; background: none; padding: 0 2px; cursor: pointer; font: inherit; } .merk-mini .merk-t { display: none; }
/* Monatskalender im Finder (11.11.2026) */
.fd-cal { flex-basis: 100%; }
.fd-cal__h { font-size: .72rem; text-transform: uppercase; letter-spacing: .14em; opacity: .7; }
.fd-cal__grid { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 6px; }
.fd-cal__y { display: flex; flex-direction: column; gap: 4px; }
.fd-cal__yl { font-size: .74rem; font-weight: 600; opacity: .6; }
.fd-cal__ms { display: flex; flex-wrap: wrap; gap: 4px; }
.fd-cal__m { position: relative; cursor: pointer; }
.fd-cal__m input { position: absolute; opacity: 0; pointer-events: none; }
.fd-cal__m span { display: inline-flex; align-items: center; justify-content: center; min-width: 46px; height: 40px; padding: 0 8px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); font-size: .86rem; }
.fd-cal__m input:checked + span { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 600; }
.fd-cal__m input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
/* Temperaturfelder kompakt, gleiche Höhe wie die Monatskacheln (11.11.2026) */
.fd-tiles { display: flex; flex-wrap: wrap; gap: 4px; }
.fd-t span { min-height: 0; height: 44px; min-width: 118px; padding: 0 10px; border-radius: 10px; border-width: 2px; flex-direction: column; gap: 0; line-height: 1.15; }
.fd-t--any span { min-width: 60px; background: var(--surface); border: 1px solid var(--line); }
.fd-t b { font-size: .8rem; white-space: nowrap; } .fd-t b small { font-size: .7rem; font-weight: 400; }
.fd-t em { font-style: normal; font-size: .72rem; opacity: .95; } .fd-tn { font-size: .86rem; }
.fd-t input:checked + span { transform: none; box-shadow: 0 3px 10px rgba(0,0,0,.18); }
.fd-cal__m span { height: 44px; }
/* „Heute“-Empfehlung (11.11.2026) */
.today { margin: 0 0 28px; padding: 20px 22px; border-radius: 22px; background: rgba(255,255,255,.75); border: 1px solid var(--line); }
.today__h h2 { margin: 2px 0 2px; font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; } .today__h p { margin: 0; }
.today__cs { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; margin-top: 14px; }
.today__c { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); text-decoration: none; color: inherit; transition: transform .15s, box-shadow .15s; }
.today__c:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,.08); }
.today__ic { font-size: 1.6rem; line-height: 1; }
.today__c strong { display: block; font-weight: 500; margin-bottom: 2px; } .today__c small { display: block; font-size: .84rem; color: var(--muted); }
.today__src { font-size: .72rem; margin: 10px 0 0; }
/* Das Beste der Region (11.11.2026) */
.rh { margin: 18px 0 22px; padding: 18px 20px; border-radius: 20px; background: rgba(255,255,255,.78); border: 1px solid var(--line); }
.rh h2 { margin: 0 0 10px; font-family: var(--font-head); font-weight: 300; font-size: 1.6rem; }
.rh-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.rh-tabs > input { position: absolute; opacity: 0; pointer-events: none; }
.rh-tabs > label { padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--surface); cursor: pointer; font-size: .86rem; }
.rh-tabs > input:checked + label { background: var(--accent); border-color: var(--accent); color: #fff; }
.rh-tabs > input:focus-visible + label { outline: 2px solid var(--accent); outline-offset: 2px; }
.rh-p { display: none; flex-basis: 100%; margin-top: 12px; }
.rh-tabs > input[id$="a"]:checked ~ .rh-p--a, .rh-tabs > input[id$="b"]:checked ~ .rh-p--b, .rh-tabs > input[id$="c"]:checked ~ .rh-p--c { display: block; }   /* Kennung endet auf den Reiter-Buchstaben (inc/region_hub.php) */
.rh-cs { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.rh-c { display: flex; gap: 10px; padding: 10px 12px; border-radius: 14px; border: 1px solid var(--line); background: var(--surface); text-decoration: none; color: inherit; }
.rh-c:hover { box-shadow: 0 6px 18px rgba(0,0,0,.08); }
.rh-ic { font-size: 1.5rem; line-height: 1; } .rh-c strong, .rh-b strong { display: block; font-weight: 500; } .rh-c small, .rh-b small { display: block; font-size: .8rem; color: var(--muted); }
.rh-note { grid-column: 1 / -1; font-size: .78rem; margin: 2px 0 0; }
.rh-bs { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.rh-b { display: flex; gap: 10px; align-items: center; padding: 6px; border-radius: 12px; border: 1px solid var(--line); background: var(--surface); text-decoration: none; color: inherit; }
.rh-b img, .rh-b__ic { width: 52px; height: 52px; flex: 0 0 52px; border-radius: 9px; object-fit: cover; background: #eef4f6; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.rh-more { grid-column: 1 / -1; margin: 4px 0 0; font-size: .88rem; }
.rh-ev { margin: 0; padding-left: 18px; display: grid; gap: 4px; }
/* Schritt für Schritt (Grundsatz 11.11.2026): neu eingeblendete Frage sanft einblenden */
.fd-form [data-step][hidden] { display: none !important; }
.fd-in { animation: fdIn .35s ease; }
@keyframes fdIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
/* Klappen (11.11.2026, Grundsatz: eine Info nach der anderen) */
.folds { display: grid; gap: 8px; margin: 22px 0; }
.fold { border-radius: 16px; border: 1px solid var(--line); background: rgba(255,255,255,.78); }
.fold > summary { list-style: none; display: flex; align-items: center; gap: 12px; padding: 14px 18px; cursor: pointer; }
.fold > summary::-webkit-details-marker { display: none; }
.fold__ic { font-size: 1.4rem; line-height: 1; }
.fold__t { flex: 1; } .fold__t strong { display: block; font-weight: 500; font-size: 1.05rem; } .fold__t small { display: block; color: var(--muted); font-size: .84rem; }
.fold__x { font-size: 1.2rem; color: var(--accent); transition: transform .2s; }
.fold[open] .fold__x { transform: rotate(45deg); }
.fold__in { padding: 0 18px 16px; }
.fold__in > .ssn, .fold__in > .lage { margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.fold__in .ssn-head h2, .fold__in .lage > h2 { display: none; }
#uebernehmen { margin: 8px 0 22px; }
/* Merkliste Schritt für Schritt: untereinander statt nebeneinander (11.11.2026) */
.mk { grid-template-columns: minmax(0, 1fr) !important; max-width: 860px; }
.mk-plan[hidden] { display: none; }
.mk-q { margin: 0 0 8px; font-size: 1.05rem; }
/* Planer Schritt für Schritt (11.11.2026) */
.pl-form .is-later { display: none !important; }
.pl-stepq { margin: 14px 0 4px; font-family: var(--font-head); font-size: 1.15rem; }
.pl-next { margin: 6px 0 0; }
/* Finder Schritt 0 auf der Startseite (11.11.2026) */
.fd-start { margin: 4px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.fd-home.is-mini { padding: 12px 18px; }
.fd-home.is-mini > *:not(.fd-mini) { display: none !important; }
.fd-mini { margin: 0; }
/* Startseite kompakt (11.11.2026, Grundsatz: eine Info nach der anderen) */
.tiles { display: flex; flex-wrap: wrap; gap: 8px; margin: 28px 0 0; }
.tile { display: inline-flex; align-items: center; gap: 6px; padding: 10px 16px; border-radius: 999px; border: 1px solid var(--glass-line); background: rgba(255,255,255,.75); text-decoration: none; color: var(--ink); font-size: .92rem; transition: background .2s, transform .2s; }
.tile:hover { background: #fff; transform: translateY(-1px); } .tile span { color: var(--accent); }
/* Intro Startseite (11.11.2026) */
.intro { max-width: 860px; margin-top: 18px; }
.intro__lead { font-size: 1.08rem; line-height: 1.65; margin: 0 0 14px; }
.intro__pts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px 22px; }
.intro__pts li { font-size: .92rem; line-height: 1.5; padding-left: 14px; border-left: 3px solid var(--accent); }
.intro__pts strong { display: block; font-weight: 600; }
.intro__pts { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
/* Intro schöner (11.11.2026) */
.hero .intro { max-width: none; margin-top: 22px; }
.hero .intro__lead { max-width: 760px; font-family: var(--font-head); font-weight: 400; font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.55; color: var(--ink); margin: 0 0 26px; }
.intro__lead em { font-style: normal; color: var(--accent); font-weight: 600; }
.intro__pts { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 12px !important; }
.intro__pts li { border-left: 0 !important; padding: 16px 16px 14px !important; border-radius: 16px; background: rgba(255,255,255,.72); border: 1px solid var(--glass-line) !important; font-size: .88rem !important; color: var(--muted); }
.intro__pts strong { color: var(--ink); font-size: .98rem; margin: 6px 0 4px; }
.intro__ic { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--accent-soft); font-size: 1.1rem; }
@media (max-width: 980px) { .intro__pts { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 560px) { .intro__pts { grid-template-columns: 1fr !important; } }
body.is-home .hero .intro__lead { font-size: clamp(1.25rem, 2.1vw, 1.5rem); font-weight: 400; line-height: 1.5; max-width: 820px; }
/* Betriebs-Zeile Startseite (11.11.2026) */
.biz-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 22px 0 0; padding: 14px 18px; border-radius: 16px; background: rgba(255,255,255,.7); border: 1px dashed var(--glass-line); font-size: .95rem; }
.biz-cta strong { font-weight: 600; }
.wk-layers [data-layer].is-more { display: none; } .wk-more { font-weight: 500; }
/* Betriebe: erst „Was suchst du?“ (11.11.2026) */
.ask h2 { font-family: var(--font-head); font-weight: 300; font-size: 1.7rem; margin: 6px 0 12px; }
.ask-ts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.ask-t { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 120px; padding: 16px; border-radius: 18px; background: rgba(255,255,255,.8); border: 1px solid var(--glass-line); text-decoration: none; color: var(--ink); transition: transform .15s, box-shadow .15s; }
.ask-t:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.08); }
.ask-t span { font-size: 2rem; } .ask-t strong { font-weight: 500; text-align: center; }
.ask-more { margin: 16px 0 0; } .ask-more summary { cursor: pointer; color: var(--muted); font-size: .9rem; }
.ask-step { font-family: var(--font-head); font-size: 1.4rem; margin: 6px 0 10px; } .ask-step small { font-family: var(--font-ui); font-size: .85rem; }
@media (max-width: 640px) { .ask-ts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Startseite: vier Empfehlungen (11.11.2026) */
.recs4 { margin: 28px 0 0; }
.recs4__h h2 { margin: 0; font-family: var(--font-head); font-weight: 300; font-size: 1.8rem; } .recs4__h p { margin: 2px 0 12px; }
.recs4__g { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.rec4 { display: flex; flex-direction: column; border-radius: 18px; overflow: hidden; background: rgba(255,255,255,.85); border: 1px solid var(--glass-line); text-decoration: none; color: inherit; transition: transform .2s, box-shadow .2s; }
.rec4:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0,0,0,.1); }
.rec4__img { display: block; aspect-ratio: 4 / 3; background-size: cover; background-position: center; }
.rec4__b { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; }
.rec4__b .biz-badge { align-self: flex-start; font-size: .6rem; }
.rec4__b strong { font-family: var(--font-head); font-weight: 400; font-size: 1.25rem; line-height: 1.2; }
.rec4__b small { color: var(--muted); font-size: .8rem; }
.rec4__b em { font-size: .84rem; color: var(--muted); }
@media (max-width: 980px) { .recs4__g { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .recs4__g { grid-template-columns: 1fr; } }
.ev-when { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 8px; } .ev-q { font-family: var(--font-head); font-size: 1.2rem; margin-right: 6px; } .ev-more { margin: 14px 0 0; text-align: center; }
/* FAQ unten auf der Startseite (12.11.2026) */
.faq { margin: 36px 0 0; max-width: 860px; }
.faq h2 { font-family: var(--font-head); font-weight: 300; font-size: 1.5rem; margin: 0 0 10px; }
.faq__i { border-bottom: 1px solid var(--glass-line); }
.faq__i summary { cursor: pointer; padding: 12px 0; font-size: 1.02rem; list-style: none; display: flex; justify-content: space-between; gap: 12px; }
.faq__i summary::-webkit-details-marker { display: none; }
.faq__i summary::after { content: '＋'; color: var(--accent); transition: transform .2s; }
.faq__i[open] summary::after { transform: rotate(45deg); }
.faq__i p { margin: 0 0 14px; color: var(--muted); line-height: 1.6; }
.faq__i em { font-style: normal; color: var(--accent); font-weight: 600; }
/* Reisekarte Startseite (12.11.2026) – dezent, minimalistisch */
.hmap-wrap { margin: 10px 0 6px; }
.hmap-wrap figcaption { font-size: .82rem; text-align: center; margin-top: 2px; }
.hmap { width: 100%; height: auto; display: block; max-height: 420px; }
.hmap__c { fill: rgba(46,125,146,.07); stroke: rgba(46,125,146,.28); stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.hmap__j { opacity: 0; transition: opacity .8s; }
.hmap__j[data-on] { opacity: 1; }
.hmap__arc { fill: none; stroke: #c4572e; stroke-width: 2; stroke-linecap: round; stroke-dasharray: 1; stroke-dashoffset: 1; opacity: .8; }
.hmap__j[data-on] .hmap__arc { animation: hmapDraw 1.3s ease forwards; animation-delay: calc(var(--i) * 1.7s - 1s); }
.hmap__p { opacity: 0; }
.hmap__p circle { fill: #fff; stroke: rgba(46,125,146,.45); stroke-width: 1.5; }
.hmap__p text { font-size: 17px; }
.hmap__l { font-family: var(--font-ui); font-size: 13px !important; fill: var(--muted); }
.hmap__j[data-on] .hmap__p { animation: hmapPop .6s ease forwards; animation-delay: calc(var(--i) * 1.7s); }
@keyframes hmapDraw { to { stroke-dashoffset: 0; } }
@keyframes hmapPop { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .hmap__j[data-on] .hmap__arc { animation: none; stroke-dashoffset: 0; } .hmap__j[data-on] .hmap__p { animation: none; opacity: 1; } }
@media (max-width: 640px) { .hmap__l { display: none; } }
/* Mini-Karte hinter dem ♡ (12.11.2026) */
.merk-pop { position: fixed; top: 84px; right: 20px; z-index: 1300; width: clamp(290px, 22vw, 380px); padding: 14px 14px 12px; border-radius: 18px; background: rgba(255,255,255,.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: 0 18px 50px rgba(20,30,36,.2); border: 1px solid var(--glass-line); opacity: 0; transform: translateY(-8px) scale(.97); transform-origin: top right; transition: opacity .2s, transform .2s; }
.merk-pop.is-open { opacity: 1; transform: none; }
.merk-pop[hidden] { display: none; }
.merk-pop__h { margin: 0 0 6px; font-weight: 600; font-size: .9rem; } .merk-pop__h small { font-weight: 400; color: var(--muted); }
.merk-pop__map svg { width: 100%; height: auto; display: block; }
.merk-pop__c path { fill: rgba(46,125,146,.08); stroke: rgba(46,125,146,.35); stroke-width: 1; vector-effect: non-scaling-stroke; }
.merk-pop__d circle { fill: #c4572e; stroke: #fff; stroke-width: 2.5; cursor: pointer; } .merk-pop__d circle:hover { fill: #2e7d92; }
.merk-pop__l { list-style: none; margin: 6px 0 0; padding: 0; display: grid; gap: 2px; font-size: .86rem; max-height: 160px; overflow-y: auto; }
.merk-pop__l a { text-decoration: none; color: var(--ink); display: block; padding: 3px 4px; border-radius: 6px; } .merk-pop__l a:hover { background: var(--accent-soft); }
.merk-pop__go { margin: 8px 0 0; } .merk-pop__go .btn { width: 100%; text-align: center; padding: 8px 10px; font-size: .7rem; }
@media (max-width: 720px) { .merk-pop { top: 70px; left: 12px; right: 12px; width: auto; } .merk-pop { background: rgba(255,255,255,.97); backdrop-filter: none; } }
/* Reisekarte: Länder anklickbar, einmaliger Flug ins ♡ (12.11.2026) */
.hmap__a { cursor: pointer; } .hmap__a:hover .hmap__c { fill: rgba(46,125,146,.16); }
.hmap-fly { transition: transform .9s cubic-bezier(.6,.05,.3,1), opacity .9s; transform-origin: center; }
.merk-glow { animation: merkGlow 1.2s ease 3; }
@keyframes merkGlow { 50% { box-shadow: 0 0 0 8px rgba(196,87,46,.25); transform: scale(1.12); } }
.merk-tip { position: fixed; z-index: 1400; max-width: 240px; padding: 10px 12px; border-radius: 12px; background: #1f5d6d; color: #fff; font-size: .84rem; box-shadow: 0 10px 30px rgba(0,0,0,.2); animation: fdIn .3s ease; }
.merk-pop__map svg { aspect-ratio: 2 / 1; }
/* Finder direkt unter der Reisekarte (12.11.2026) */
.fd-home--bare { margin: 4px 0 22px; padding: 16px 20px; box-shadow: none; text-align: center; }
.fd-home--bare .fd-home__q { margin: 0 0 10px; font-family: var(--font-head); font-size: 1.35rem; }
.fd-home--bare .fd-home__q small { display: block; font-family: var(--font-ui); font-size: .85rem; margin-top: 2px; }
.fd-home--bare .fd-start { justify-content: center; }
.fd-home--bare .fd-form { text-align: left; }
.fd-home--bare.is-mini { text-align: left; }
#fdErg { scroll-margin-top: 90px; }
/* Reisekarte: Relief (12.11.2026) – multipliziert, klickt durch zu den Ländern */
.hmap__relief { mix-blend-mode: multiply; pointer-events: none; opacity: .9; }
.hmap__wx { opacity: 0; }
.hmap__wx rect { fill: rgba(255,255,255,.85); stroke: rgba(46,125,146,.3); stroke-width: 1; }
.hmap__wx text { font-size: 16px; }
.hmap__wx .hmap__wxt { font-family: var(--font-ui); font-size: 14px; fill: var(--ink, #2a3a40); font-weight: 600; }
.hmap__j[data-on] .hmap__wx { animation: hmapPop .8s ease forwards; animation-delay: .9s; }
@media (prefers-reduced-motion: reduce) { .hmap__j[data-on] .hmap__wx { animation: none; opacity: 1; } }
/* Relief dezenter, Schriften mit weißem Lichthof (Axel 12.11.2026: „damit man die Schriften erkennt“) */
.hmap__relief { opacity: .5; }
.hmap__l { paint-order: stroke; stroke: rgba(255,255,255,.92); stroke-width: 4px; stroke-linejoin: round; fill: #3d4d54 !important; }
.hmap-wrap[hidden] { display: none !important; }

/* ---------- Teilen & Reisetagebuch (12.11.2026) ---------- */
.share-btn .share-ic { font-weight: 700; }
.share-pop { position: fixed; z-index: 1500; width: 240px; background: #fff; border: 1px solid var(--line, #dfe7ea); border-radius: 14px; box-shadow: 0 14px 40px rgba(20,40,50,.18); padding: 10px; }
.share-pop__h { margin: 2px 6px 6px; font-family: var(--font-ui); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.share-pop ul { list-style: none; margin: 0; padding: 0; }
.share-pop li a, .share-pop li button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 8px; border: 0; background: none; border-radius: 9px; font: inherit; font-size: .95rem; color: var(--ink, #23343a); text-decoration: none; cursor: pointer; text-align: left; }
.share-pop li a:hover, .share-pop li button:hover { background: rgba(46,125,146,.08); }
.share-pop__i { display: inline-grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: rgba(46,125,146,.1); font-size: .85rem; font-weight: 700; color: #2e7d92; }
.share-pop__url { width: 100%; margin-top: 8px; font-size: .75rem; padding: 6px 8px; border: 1px solid var(--line, #dfe7ea); border-radius: 8px; color: var(--muted); }

.tmap { width: 100%; height: auto; display: block; }
.tmap__c { fill: rgba(46,125,146,.07); stroke: rgba(46,125,146,.32); stroke-width: 1.1; vector-effect: non-scaling-stroke; }
.tmap__arc { fill: none; stroke: #c4572e; stroke-linecap: round; opacity: .85; }
.tmap__p circle { fill: #fff; stroke: rgba(46,125,146,.55); }
.tmap__l { font-family: var(--font-ui); fill: #3d4d54; paint-order: stroke; stroke: rgba(255,255,255,.92); stroke-linejoin: round; }
.sh-map { margin: 6px 0 22px; border-radius: 18px; overflow: hidden; background: #f4f7f8; box-shadow: inset 0 0 0 1px rgba(46,125,146,.12); }
.sh-act { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.sh-ul .mk-it { display: flex; align-items: center; gap: 8px; }
.sh-ul .mk-it__a { flex: 1; }
.sh-cta { margin: 34px 0 10px; padding: 22px 24px; border-radius: 18px; background: linear-gradient(135deg, rgba(46,125,146,.08), rgba(196,87,46,.06)); }
.sh-cta h2 { margin-top: 0; }
.dy-items { list-style: none; margin: 6px 0 0; padding: 0; }
.dy-items > li { padding: 6px 0; border-top: 1px dashed rgba(46,125,146,.15); }
.dy-items > li:first-child { border-top: 0; }
.dy-ic { display: inline-block; width: 1.4em; text-align: center; }
.dy-stars { color: #e0a526; letter-spacing: 1px; font-size: .9rem; }
.dy-note, .dy-daynote { margin: 4px 0 0 1.9em; font-size: .95rem; color: #3d4d54; }
.dy-daynote { margin-left: 0; font-style: italic; }
.dy-head .dy-title { width: 100%; font: inherit; border: 0; border-bottom: 1px dashed transparent; background: none; padding: 0; color: inherit; }
.dy-head .dy-title:hover, .dy-head .dy-title:focus { border-bottom-color: rgba(46,125,146,.4); outline: none; }
.dy-acts { display: flex; flex-wrap: wrap; gap: 8px; }
.dy-del { color: #a5452a; }
.dy-shared { margin-top: 10px; font-size: .9rem; } .dy-shared ul { margin: 4px 0 0; padding-left: 18px; }
.dy-sw select { font: inherit; padding: 4px 8px; border-radius: 8px; border: 1px solid var(--line, #dfe7ea); }
.dy-it { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.dy-it .dy-nm { flex: 1 1 auto; min-width: 8em; }
.dy-it.is-skip .dy-nm { text-decoration: line-through; color: var(--muted); }
.dy-it.is-skip .dy-ic { opacity: .4; }
.dy-done { width: 26px; height: 26px; border-radius: 50%; border: 2px solid rgba(46,125,146,.5); background: #fff; color: #fff; font-weight: 700; cursor: pointer; padding: 0; line-height: 1; }
.dy-done[aria-pressed="true"] { background: #2e7d92; border-color: #2e7d92; }
.dy-st button { border: 0; background: none; padding: 0 1px; font-size: 1.05rem; color: #d7dde0; cursor: pointer; }
.dy-st button.is-on { color: #e0a526; }
.dy-x { border: 0; background: none; color: var(--muted); cursor: pointer; font-size: 1rem; padding: 2px 5px; border-radius: 6px; }
.dy-x:hover { background: rgba(46,125,146,.08); }
.dy-it textarea.dy-note, textarea.dy-daynote { flex-basis: 100%; width: 100%; margin: 4px 0 2px 32px; max-width: calc(100% - 32px); font: inherit; font-size: .95rem; padding: 8px 10px; border: 1px solid var(--line, #dfe7ea); border-radius: 10px; resize: vertical; }
textarea.dy-daynote { margin-left: 0; max-width: 100%; }
.dy-dayacts { margin: 8px 0 0; display: flex; gap: 14px; flex-wrap: wrap; }
.linkish { border: 0; background: none; padding: 0; color: #2e7d92; cursor: pointer; font: inherit; font-size: .92rem; }
.linkish:hover { text-decoration: underline; }
.dy-day.is-today { box-shadow: 0 0 0 2px rgba(46,125,146,.35); }
.dy-tip { font-size: .88rem; margin-top: -12px; }
.mk-diary { margin-top: 16px; }
.mk-share { margin-left: 8px; font-size: .8rem; padding: 4px 12px; vertical-align: middle; }
@media print {
  header.site-header, .site-footer, nav.crumbs, .dy-acts, .dy-x, .dy-dayacts, .dy-tip, .dy-shared, .dy-login, .dy-sw, .cc, .merk-pop, .share-pop { display: none !important; }
  .dy-it.is-skip { display: none; }
  .dy-day { break-inside: avoid; box-shadow: none !important; }
  .dy-done { border-color: #2e7d92; }
}
.dy-head h1 { font-size: clamp(1.7rem, 4vw, 2.6rem); }
.dy-head .dy-title { text-overflow: ellipsis; }
/* Reise verschenken (12.11.2026) */
.gf-form { display: grid; gap: 14px; max-width: 520px; margin: 0 0 24px; }
.gf-form label > span { display: block; font-family: var(--font-ui); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.gf-form input:not([type=checkbox]), .gf-form textarea { width: 100%; font: inherit; padding: 10px 12px; border: 1px solid var(--line, #dfe7ea); border-radius: 10px; }
.gf-opts { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0; }
.gf-chk { display: inline-flex; gap: 6px; align-items: center; }
.gf-wrap { display: flex; justify-content: center; }
.gf-card { width: 100%; max-width: 900px; aspect-ratio: 1.414; background: #fffdf9; border-radius: 6px; padding: 18px; box-shadow: 0 18px 50px rgba(20,40,50,.16); }
.gf-in { height: 100%; border: 1.5px solid rgba(46,125,146,.35); outline: 1px solid rgba(46,125,146,.15); outline-offset: -8px; border-radius: 3px; padding: 26px 34px 18px; display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: auto auto auto 1fr auto auto; column-gap: 26px; text-align: left; }
.gf-eyebrow { grid-column: 1 / -1; margin: 0; font-family: var(--font-ui); letter-spacing: .2em; text-transform: uppercase; font-size: .72rem; color: #c4572e; text-align: center; }
.gf-for { grid-column: 1 / -1; margin: 4px 0 0; font-size: clamp(1.8rem, 4.4vw, 3rem); text-align: center; font-weight: 400; }
.gf-ph { color: #c9d3d6; }
.gf-when { grid-column: 1 / -1; text-align: center; margin: 2px 0 12px; color: var(--muted); font-style: italic; }
.gf-map { grid-column: 1; grid-row: 4 / 6; align-self: center; border-radius: 10px; overflow: hidden; background: #f4f7f8; }
.gf-stops { grid-column: 2; grid-row: 4; margin: 0; padding: 0; list-style: none; counter-reset: s; align-self: center; font-size: .95rem; }
.gf-stops li { padding: 4px 0; border-bottom: 1px dotted rgba(46,125,146,.25); }
.gf-stops li small { color: var(--muted); }
.gf-msg { grid-column: 2; grid-row: 5; margin: 10px 0 0; font-family: var(--font-head); font-size: 1.15rem; font-style: italic; color: #3d4d54; }
.gf-from { grid-column: 1 / -1; text-align: right; margin: 10px 0 0; font-family: var(--font-head); font-size: 1.3rem; }
.gf-ew { color: #2e7d92; margin-left: 6px; }
.gf-brand { grid-column: 1 / -1; text-align: center; margin: 4px 0 0; font-family: var(--font-ui); font-size: .7rem; letter-spacing: .25em; text-transform: uppercase; color: var(--muted); }
@media (max-width: 700px) { .gf-card { aspect-ratio: auto; } .gf-in { grid-template-columns: 1fr; padding: 18px; } .gf-map, .gf-stops, .gf-msg { grid-column: 1; grid-row: auto; } .gf-stops { margin-top: 12px; } }
.merk-pop__go { display: flex; flex-wrap: wrap; gap: 6px; }
@media print {
  body:has(#gfCard) * { visibility: hidden; }
  body:has(#gfCard) .gf-card, body:has(#gfCard) .gf-card * { visibility: visible; }
  body:has(#gfCard) .gf-card { position: fixed; inset: 0; max-width: none; width: 100%; height: 100%; box-shadow: none; aspect-ratio: auto; padding: 0; border-radius: 0; }
  body:has(#gfCard) .gf-in { grid-template-columns: 1.25fr 1fr; }
  body:has(#gfCard) .gf-map, body:has(#gfCard) .gf-stops, body:has(#gfCard) .gf-msg { grid-column: auto; }
  body:has(#gfCard) .gf-map { grid-column: 1; grid-row: 4 / 6; } body:has(#gfCard) .gf-stops { grid-column: 2; grid-row: 4; } body:has(#gfCard) .gf-msg { grid-column: 2; grid-row: 5; }
}
@page { margin: 10mm; }
/* Reisekarte: animierte Wetterszenen statt Pille (12.11.2026) + abgebrochene Verbindung / Plan B */
.hmap__wx rect { display: none; }
.hmap__wx .hmap__wxt { font-family: var(--font-ui); font-size: 15px; font-weight: 600; fill: #2a3a40; paint-order: stroke; stroke: rgba(255,255,255,.95); stroke-width: 4px; stroke-linejoin: round; }
.hmw-sun circle { fill: #f6c443; filter: drop-shadow(0 0 4px rgba(246,196,67,.55)); }
.hmw-rays line { stroke: #f6c443; stroke-width: 2.2; stroke-linecap: round; }
.hmw-rays { animation: hmwSpin 26s linear infinite; }
.hmw-cl circle, .hmw-cl rect { fill: #fff; }
.hmw-c .hmw-cl { filter: drop-shadow(0 1px 2px rgba(40,70,85,.25)); }
.hmw-c .hmw-cl circle, .hmw-c .hmw-cl rect { fill: #f3f6f8; stroke: none; }
.hmw-c--dark .hmw-cl circle, .hmw-c--dark .hmw-cl rect { fill: #c9d3da; }
.hmw-drift .hmw-cl { opacity: .8; animation: hmwDrift 7s linear infinite; }
.hmw-drift--2 .hmw-cl { animation-duration: 9.5s; animation-delay: -4s; opacity: .65; }
.hmw-flake { fill: #fff; stroke: #9fc0d0; stroke-width: .6; animation: hmwFall 2.4s linear infinite; animation-delay: var(--d); opacity: 0; }
.hmw-drop { stroke: #5b9cc4; stroke-width: 1.6; stroke-linecap: round; animation: hmwRain .75s linear infinite; animation-delay: var(--d); opacity: 0; }
.hmw-wind path { fill: none; stroke: #8fb4c4; stroke-width: 1.8; stroke-linecap: round; stroke-dasharray: 16 44; animation: hmwWind 2.6s linear infinite; }
.hmw-wind path:nth-child(2) { animation-delay: -.9s; } .hmw-wind path:nth-child(3) { animation-delay: -1.7s; }
.hmap__j:not([data-on]) .hmw-scene * { animation-play-state: paused; }
@keyframes hmwSpin { to { transform: rotate(360deg); } }
@keyframes hmwDrift { 0% { transform: translateX(-26px); opacity: 0; } 15%, 80% { opacity: .85; } 100% { transform: translateX(30px); opacity: 0; } }
@keyframes hmwFall { 0% { transform: translate(0, 0); opacity: 0; } 15% { opacity: 1; } 50% { transform: translate(2px, 11px); } 100% { transform: translate(-1px, 24px); opacity: 0; } }
@keyframes hmwRain { 0% { transform: translateY(0); opacity: 0; } 20% { opacity: .9; } 100% { transform: translateY(17px); opacity: 0; } }
@keyframes hmwWind { from { stroke-dashoffset: 60; } to { stroke-dashoffset: 0; } }
/* geplant, wegen Regen abgebrochen → halb gezeichnet, verblasst; Plan B in Petrol */
.hmap__j[data-on] .hmap__arc--x { animation: hmapHalf 1.3s ease forwards, hmapGone .8s ease forwards; animation-delay: calc(var(--i) * 1.7s - 1s), calc(var(--i) * 1.7s + .6s); }
.hmap__arc--b { stroke: #2e7d92; }
.hmap__p--x circle { stroke-dasharray: 3 3; }
.hmap__j[data-on] .hmap__p--x { animation: hmapPopX 1.6s ease forwards; animation-delay: calc(var(--i) * 1.7s - .3s); }
.hmap__no circle { fill: rgba(255,255,255,.55); stroke: none !important; }
.hmap__no path { stroke: #c4572e; stroke-width: 2.4; stroke-linecap: round; }
.hmap__planb { font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; fill: #2e7d92; paint-order: stroke; stroke: rgba(255,255,255,.95); stroke-width: 4px; stroke-linejoin: round; }
@keyframes hmapHalf { from { stroke-dashoffset: 1; } to { stroke-dashoffset: .5; } }
@keyframes hmapGone { to { opacity: .22; } }
@keyframes hmapPopX { 0% { opacity: 0; } 30% { opacity: 1; } 100% { opacity: .5; } }
@media (prefers-reduced-motion: reduce) { .hmw-scene * { animation: none !important; } .hmw-flake, .hmw-drop { opacity: .8; } .hmap__j[data-on] .hmap__arc--x { animation: none; stroke-dashoffset: .5; opacity: .3; } .hmap__j[data-on] .hmap__p--x { animation: none; opacity: .5; } }
/* Wolken sichtbar machen (weiß auf hellem Relief ging unter) */
.hmw-cl { filter: drop-shadow(0 1px 1.6px rgba(30,60,75,.5)); }
.hmw-drift .hmw-cl circle, .hmw-drift .hmw-cl rect { fill: #fdfefe; }
.hmw-c .hmw-cl circle, .hmw-c .hmw-cl rect { fill: #e2e9ee; }
.hmw-c--dark .hmw-cl circle, .hmw-c--dark .hmw-cl rect { fill: #a9b9c4; }
.hmw-flake { fill: #fff; stroke: #6f9db6; stroke-width: .9; }
.hmw-drop { stroke: #3f86b5; }
.hmw-scene { transform: scale(1.25); }
.hmw-cl { filter: drop-shadow(0 1px 2px rgba(30,60,75,.6)); }
.hmw-c .hmw-cl circle, .hmw-c .hmw-cl rect { fill: #cbd8e1; }
.hmw-c--dark .hmw-cl circle, .hmw-c--dark .hmw-cl rect { fill: #98abb8; }
.hmw-flake { r: 2px; }
.hmap__wx .hmap__wxt { transform: translateX(6px); }
.hmap__arc--x { stroke-dasharray: 1; }
@keyframes hmapGone { to { opacity: .45; } }
@keyframes hmapGone { to { opacity: .75; } }
.hmap__arc--x { stroke-width: 2.4; }
/* ＋-Suche wie die Kartensuche: Orte groß, Trenner, Reiter (12.11.2026) */
.mk-it--town strong { font-size: 1.12rem; }
.mk-it--town .mk-it__ic { font-size: 1.2rem; }
.mk-sep { list-style: none; height: 0; border-top: 1px solid var(--line, #dfe7ea); margin: 8px 0; }
.mk-tabs { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 4px 0 8px; }
.mk-tabs button { border: 1px solid var(--line, #dfe7ea); background: #fff; border-radius: 999px; padding: 4px 12px; font: inherit; font-size: .85rem; cursor: pointer; color: #3d4d54; }
.mk-tabs button.is-on { background: #2e7d92; border-color: #2e7d92; color: #fff; }
.mk-tabs button small { opacity: .75; margin-left: 2px; }
.mk-diary small { display: block; margin-top: 10px; }
.mk-it__a > .mk-it__ic { flex: 0 0 44px; }
/* ＋-Dialog: Tag wählen (12.11.2026) */
.mk-dayq { margin: 0 0 12px; }
.mk-dayq__h { display: block; font-family: var(--font-ui); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 6px; }
.mk-dayq__c { display: flex; flex-wrap: wrap; gap: 6px; }
.mk-dayq__c button { border: 1px solid var(--line, #dfe7ea); background: #fff; border-radius: 999px; padding: 4px 11px; font: inherit; font-size: .85rem; cursor: pointer; color: #3d4d54; }
.mk-dayq__c button.is-on { background: #c4572e; border-color: #c4572e; color: #fff; }
.mk-pin { border: 0; background: none; cursor: pointer; padding: 0 2px; font-size: .9rem; }
.mk-dayq__wx { margin-left: 4px; font-size: .78rem; opacity: .9; }
.mk-dayq__wx.is-clim { opacity: .65; }
.mk-dayq__c button.is-on .mk-dayq__wx { opacity: 1; }
/* Tagebuch: ⋯-Menü, Fotos (12.11.2026) */
.dy-more { flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; margin: 4px 0 2px 32px; padding: 8px 12px; background: rgba(46,125,146,.06); border-radius: 10px; font-size: .9rem; }
.dy-mv select { font: inherit; font-size: .88rem; padding: 2px 6px; border-radius: 8px; border: 1px solid var(--line, #dfe7ea); background: #fff; }
.dy-photos { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 2px 32px; }
.mk-day > .dy-photos { margin-left: 0; }
.dy-photos img { width: 108px; height: 80px; object-fit: cover; border-radius: 8px; display: block; box-shadow: 0 2px 6px rgba(20,40,50,.15); }
.dy-ph { position: relative; }
.dy-ph button { position: absolute; top: 3px; right: 3px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(0,0,0,.55); color: #fff; cursor: pointer; font-size: .8rem; line-height: 1; opacity: 0; transition: opacity .15s; }
.dy-ph:hover button, .dy-ph button:focus { opacity: 1; }
@media (pointer: coarse) { .dy-ph button { opacity: .85; } }
.dy-busy { position: sticky; top: 70px; z-index: 5; background: #fff; padding: 8px 12px; border-radius: 10px; box-shadow: 0 4px 14px rgba(20,40,50,.12); }
@media print { .dy-more, .dy-ph button, .dy-busy { display: none !important; } .dy-photos img { width: 150px; height: 110px; } }
/* Reiseplan: Einträge auf andere Tage ziehen (12.11.2026) */
.mk-grip { display: inline-block; width: 1.1em; margin-right: 4px; color: #9fb2ba; cursor: grab; touch-action: none; user-select: none; font-size: 1.05rem; line-height: 1; vertical-align: -1px; }
.mk-grip:hover { color: #2e7d92; }
.mk-dr.is-dragging { opacity: .35; }
.mk-ghost { position: fixed; z-index: 1600; list-style: none; pointer-events: none; background: #fff; border-radius: 10px; padding: 6px 10px; box-shadow: 0 10px 28px rgba(20,40,50,.25); transform: rotate(-1.5deg); }
.mk-day.is-drop { box-shadow: 0 0 0 2px #c4572e inset; background: rgba(196,87,46,.05); }
body:has(.mk-ghost) { cursor: grabbing; user-select: none; }
.mk-day li.mk-dr { list-style: none; margin-left: -1.1em; }
/* „Alternative jetzt“ (12.11.2026) */
.mk-alt { border: 1px solid rgba(196,87,46,.35); background: #fff; color: #c4572e; border-radius: 999px; padding: 0 8px; font-size: .85rem; cursor: pointer; line-height: 1.5; margin-left: 4px; }
.mk-alt:hover { background: #c4572e; color: #fff; }
.alt-dlg { max-width: 560px; }
.alt-of { margin: -4px 0 6px; }
.alt-here { margin: 0 0 12px; }
.alt-ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; max-height: 62vh; overflow: auto; }
.alt-it { display: flex; gap: 12px; border: 1px solid var(--line, #dfe7ea); border-radius: 14px; padding: 10px; background: #fff; }
.alt-it img, .alt-ic { width: 92px; height: 92px; flex: 0 0 92px; border-radius: 10px; object-fit: cover; display: flex; align-items: center; justify-content: center; background: #eef4f6; font-size: 1.8rem; }
.alt-b { flex: 1; min-width: 0; }
.alt-b strong { font-size: 1.02rem; }
.alt-b small { display: block; color: var(--muted); font-size: .8rem; margin: 1px 0 4px; }
.alt-rec { color: #e0a526; }
.alt-st { display: inline-block; font-size: .75rem; padding: 1px 8px; border-radius: 999px; background: #eef2f4; color: #5d6d73; }
.alt-st.is-open { background: #e5f4ea; color: #23784a; font-weight: 600; }
.alt-st.is-closed { background: #fbeae4; color: #a5452a; }
.alt-act { margin: 8px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.alt-act .btn { font-size: .72rem; padding: 6px 10px; }
@media (max-width: 520px) { .alt-it img, .alt-ic { width: 64px; height: 64px; flex-basis: 64px; } }
/* Gemeinsam planen (12.11.2026) */
.mk-together { border-color: #c4572e; color: #c4572e; }
.mk-tbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 18px; padding: 14px 18px; border-radius: 16px; background: linear-gradient(135deg, rgba(196,87,46,.08), rgba(46,125,146,.08)); border: 1px solid rgba(196,87,46,.2); }
.mk-tbar__h { font-family: var(--font-head); font-size: 1.25rem; }
.mk-tbar__m { display: flex; flex-wrap: wrap; gap: 8px; flex: 1; }
.mk-tm { display: inline-flex; align-items: center; gap: 5px; font-size: .9rem; background: #fff; border-radius: 999px; padding: 2px 10px 2px 3px; }
.mk-who { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: #fff; font-size: .72rem; font-weight: 700; flex: 0 0 22px; }
.mk-it > .mk-who { margin-right: -2px; }
.mk-tbar__a { display: flex; gap: 10px; align-items: center; }
.mk-tbar__n { flex-basis: 100%; margin: 0; font-size: .82rem; }
.mk-inv input { width: 100%; font: inherit; font-size: .9rem; padding: 8px 10px; border: 1px solid var(--line, #dfe7ea); border-radius: 10px; }
.mk-inv__b { display: flex; flex-wrap: wrap; gap: 8px; }
.mk-tname label > span { display: block; font-family: var(--font-ui); font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.mk-tname input { font: inherit; padding: 9px 12px; border: 1px solid var(--line, #dfe7ea); border-radius: 10px; width: min(100%, 280px); }
.tv-list { columns: 2; max-width: 640px; } @media (max-width: 600px) { .tv-list { columns: 1; } }
.tv-join { margin: 22px 0; padding: 20px 22px; border-radius: 16px; background: rgba(46,125,146,.06); max-width: 560px; }
.tv-join label > span { display: block; font-family: var(--font-ui); font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: 4px; }
.tv-join input { font: inherit; padding: 10px 12px; border: 1px solid var(--line, #dfe7ea); border-radius: 10px; width: min(100%, 300px); margin-right: 8px; }
/* Reiseplan: Uhrzeit, Warnung, Weg, Adresse (12.11.2026) */
.mk-time { border: 1px dashed rgba(46,125,146,.4); background: #fff; border-radius: 999px; padding: 0 7px; font-size: .78rem; color: var(--muted); cursor: pointer; line-height: 1.6; }
.mk-time.is-set { border-style: solid; border-color: #2e7d92; color: #2e7d92; font-weight: 600; }
.mk-timein { font: inherit; font-size: .85rem; padding: 1px 4px; border: 1px solid #2e7d92; border-radius: 8px; }
.mk-warn { display: inline-block; font-size: .78rem; padding: 1px 8px; border-radius: 999px; background: #fbeae4; color: #a5452a; font-weight: 600; }
.mk-leg { list-style: none; margin-left: -1.1em; padding: 1px 0 1px 1.6em; font-size: .78rem; color: var(--muted); border-left: 2px dotted rgba(46,125,146,.35); }
.mk-addr { display: block; margin-left: 1.5em; font-size: .78rem; color: var(--muted); }
.mk-addr a { color: #2e7d92; text-decoration: none; }
/* Fahrplan-Heft (Druck der Merkliste, 12.11.2026): nur der Plan, Tag für Tag */
.mk-printhead { display: none; }
@media print {
  body:has(#mk) header.site-header, body:has(#mk) .site-footer, body:has(#mk) nav.crumbs, body:has(#mk) .page-head, body:has(#mk) .notice,
  body:has(#mk) .mk-list, body:has(#mk) .mk-dates, body:has(#mk) .mk-q, body:has(#mk) .mk-diary, body:has(#mk) .mk-tbar__a, body:has(#mk) .mk-tbar__n,
  body:has(#mk) .mk-grip, body:has(#mk) .mk-alt, body:has(#mk) .mk-pin, body:has(#mk) .mk-act, body:has(#mk) .mk-stage__mv, body:has(#mk) dialog, body:has(#mk) .cc { display: none !important; }
  body:has(#mk) .mk-printhead { display: block; font-family: var(--font-ui); letter-spacing: .2em; text-transform: uppercase; font-size: 9pt; color: #777; margin: 0 0 6mm; }
  body:has(#mk) .mk { display: block; }
  body:has(#mk) .mk-plan { border: 0; box-shadow: none; padding: 0; }
  body:has(#mk) .mk-day { break-inside: avoid; box-shadow: none; border: 1px solid #ccc; margin-bottom: 4mm; }
  body:has(#mk) .mk-stage { break-inside: auto; }
  body:has(#mk) .mk-time { border: 0; padding: 0; font-weight: 700; color: #000; }
  body:has(#mk) .mk-time:not(.is-set) { display: none; }
  body:has(#mk) .mk-day a { color: #000; text-decoration: none; }
  body:has(#mk) .mk-addr { color: #444; }
}

/* =========================================================================
   Reiseplaner – Neugestaltung 12.11.2026 (Kopf, nächster Schritt, Tagesleiste, Tages-Board, Karten, Ziehen, Hinweise)
   ========================================================================= */
.rp { --rp-accent: #c4572e; --rp-teal: #2e7d92; --rp-line: rgba(46,125,146,.16); --rp-soft: #f5f8f9; }
.rp-hero { margin: 4px 0 18px; }
.rp-hero .eyebrow { margin-bottom: 4px; }
.rp-printhead { display: none; }
.rp-h1 { margin: 0; }
.rp-title { width: 100%; font: inherit; font-size: clamp(1.9rem, 4.6vw, 3rem); line-height: 1.1; border: 0; border-bottom: 2px dashed transparent; background: none; padding: 2px 0; color: inherit; }
.rp-title::placeholder { color: #9aabb1; }
.rp-title:hover, .rp-title:focus { border-bottom-color: var(--rp-line); outline: none; }
.rp-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 14px; }
.rp-pill { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--rp-line); background: #fff; border-radius: 999px; padding: 6px 14px; font: inherit; font-size: .92rem; color: #2a3a40; cursor: pointer; }
button.rp-pill:hover { border-color: var(--rp-teal); }
.rp-pill--soft { background: var(--rp-soft); cursor: default; }
.rp-team { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rp-team .mk-tm { background: var(--rp-soft); }
.rp-leave { font-size: .82rem; }
.rp-tools { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rp-add { font-size: .9rem; }
.rp-more { position: relative; }
.rp-more > summary { list-style: none; cursor: pointer; }
.rp-more > summary::-webkit-details-marker { display: none; }
.rp-more__m { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; min-width: 240px; background: #fff; border: 1px solid var(--rp-line); border-radius: 14px; box-shadow: 0 14px 34px rgba(20,40,50,.16); padding: 6px; display: grid; }
.rp-more__m a, .rp-more__m button { display: block; text-align: left; padding: 9px 12px; border-radius: 9px; border: 0; background: none; font: inherit; color: #2a3a40; text-decoration: none; cursor: pointer; }
.rp-more__m a:hover, .rp-more__m button:hover { background: var(--rp-soft); }
.rp-note { font-size: .86rem; color: var(--muted); margin: 0 0 16px; }
.rp-when { margin: 0 0 22px; padding: 20px 22px; border-radius: 18px; background: linear-gradient(135deg, rgba(46,125,146,.07), rgba(196,87,46,.05)); border: 1px solid var(--rp-line); }
.rp-when h2 { margin-top: 0; }
/* nächster Schritt */
.rp-coach { position: relative; display: flex; gap: 14px; align-items: flex-start; margin: 0 0 16px; padding: 14px 44px 14px 16px; border-radius: 16px; background: #fff; border: 1px solid var(--rp-line); border-left: 4px solid var(--rp-teal); box-shadow: 0 6px 18px rgba(20,40,50,.05); }
.rp-coach.is-bad { border-left-color: var(--rp-accent); background: #fffaf7; }
.rp-coach.is-ok { border-left-color: #3f8f4f; background: #f7fcf8; }
.rp-coach__ic { flex: 0 0 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--rp-soft); font-size: 1.2rem; }
.rp-coach__b small { font-family: var(--font-ui); font-size: .7rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.rp-coach__b p { margin: 2px 0 0; }
.rp-coach__a { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px !important; }
.rp-coach__x { position: absolute; top: 8px; right: 10px; border: 0; background: none; font-size: 1.1rem; color: var(--muted); cursor: pointer; }
/* Karte */
.rp-mapbox { margin: 0 0 14px; }
.rp-mapbox > summary { cursor: pointer; font-family: var(--font-ui); font-size: .85rem; color: var(--rp-teal); margin-bottom: 8px; }
.rp-map { margin: 0; min-height: 60px; }
/* Tagesleiste */
.rp-strip { position: sticky; top: 64px; z-index: 12; display: flex; gap: 8px; overflow-x: auto; padding: 8px 2px 10px; margin: 0 0 6px; background: linear-gradient(#fff 80%, rgba(255,255,255,0)); scrollbar-width: thin; }
.rp-strip a { position: relative; flex: 0 0 auto; display: grid; justify-items: center; gap: 1px; min-width: 84px; padding: 7px 10px 6px; border-radius: 14px; border: 1px solid var(--rp-line); background: #fff; color: #2a3a40; text-decoration: none; font-size: .82rem; }
.rp-strip a:hover { border-color: var(--rp-teal); }
.rp-strip small { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.rp-strip b { font-weight: 600; }
.rp-strip i { position: absolute; top: -6px; right: -4px; min-width: 18px; height: 18px; border-radius: 9px; background: var(--rp-teal); color: #fff; font-style: normal; font-size: .68rem; display: grid; place-items: center; padding: 0 4px; }
.rp-hint { font-size: .8rem; color: var(--muted); margin: 0 0 10px; }
/* Board */
.rp-plan.is-busy .rp-board { opacity: .55; transition: opacity .2s; }
.rp-board { display: grid; gap: 14px; }
@media (min-width: 900px) {
  .rp-board { grid-auto-flow: column; grid-auto-columns: minmax(270px, 300px); overflow-x: auto; padding: 4px 2px 14px; scroll-snap-type: x proximity; align-items: start; scrollbar-width: thin; }
  .rp-day { scroll-snap-align: start; }
}
.rp-day { background: var(--rp-soft); border: 1px solid var(--rp-line); border-radius: 18px; padding: 10px 10px 8px; transition: box-shadow .15s, background .15s; scroll-margin-top: 130px; }
.rp-day.is-drop { background: #fff6f2; box-shadow: 0 0 0 2px var(--rp-accent) inset; }
.rp-day.is-flash { box-shadow: 0 0 0 3px var(--rp-teal) inset; }
.rp-day.is-dragging { opacity: .4; }
.rp-day__h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 2px 4px 8px; }
.rp-day__n { font-family: var(--font-ui); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.rp-day__h strong { font-size: 1.05rem; }
.rp-day__st { flex-basis: 100%; font-size: .78rem; color: var(--rp-teal); }
.rp-dgrip { cursor: grab; color: #9fb2ba; touch-action: none; user-select: none; padding: 0 2px; }
.rp-dgrip:hover { color: var(--rp-teal); }
.rp-wx { margin-left: auto; font-size: .9rem; white-space: nowrap; }
.rp-wx b { font-weight: 400; font-size: 1.1rem; }
.rp-wx small { color: var(--muted); font-size: .76rem; }
.rp-wx.is-clim { opacity: .75; }
.rp-transfer, .rp-planb { margin: 0 2px 8px; padding: 8px 10px; border-radius: 12px; font-size: .82rem; background: #fff; border: 1px dashed var(--rp-line); }
.rp-planb { background: #f1f6fb; border-style: solid; }
.rp-cards { list-style: none; margin: 0; padding: 0; min-height: 8px; }
.rp-card { position: relative; display: grid; grid-template-columns: 16px 52px 1fr auto; gap: 10px; align-items: start; background: #fff; border-radius: 14px; padding: 9px 8px 9px 6px; box-shadow: 0 1px 2px rgba(20,40,50,.08), 0 4px 12px rgba(20,40,50,.04); margin: 0 0 6px; border: 1px solid transparent; }
.rp-card.is-pinned { border-color: rgba(196,87,46,.25); }
.rp-card.is-eve { background: #fbf8ff; }
.rp-card.is-dragging { opacity: .3; }
.rp-grip { align-self: center; cursor: grab; color: #a9bbc2; font-size: 1.1rem; line-height: 1; touch-action: none; user-select: none; text-align: center; }
.rp-grip:hover { color: var(--rp-teal); }
.rp-grip.is-off { cursor: default; font-size: .8rem; }
.rp-thumb { width: 52px; height: 52px; border-radius: 11px; object-fit: cover; display: block; }
.rp-thumb--ic { display: grid; place-items: center; background: #eef4f6; font-size: 1.45rem; }
.rp-card__b { min-width: 0; }
.rp-card__top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rp-name { font-weight: 600; color: #23343a; text-decoration: none; line-height: 1.25; overflow-wrap: anywhere; }
.rp-name:hover { color: var(--rp-teal); text-decoration: underline; }
.rp-time { border: 1px dashed rgba(46,125,146,.45); background: #fff; border-radius: 8px; padding: 0 6px; font: inherit; font-size: .78rem; line-height: 1.55; color: var(--muted); cursor: pointer; }
.rp-time.is-set { border-style: solid; border-color: var(--rp-teal); background: var(--rp-teal); color: #fff; font-weight: 600; }
.rp-time.is-eve { border: 0; cursor: default; }
.rp-timein { font: inherit; font-size: .85rem; padding: 1px 4px; border: 1px solid var(--rp-teal); border-radius: 8px; }
.rp-card__meta { font-size: .76rem; color: var(--muted); margin-top: 1px; }
.rp-card__chips { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; align-items: center; }
.rp-card__chips:empty { display: none; }
.rp-chip { display: inline-block; font-size: .7rem; padding: 1px 8px; border-radius: 999px; background: #eef2f4; color: #5d6d73; border: 0; font-family: inherit; line-height: 1.6; }
.rp-chip.is-ok { background: #e5f4ea; color: #23784a; }
.rp-chip.is-bad { background: #fbeae4; color: #a5452a; font-weight: 600; }
.rp-chip.is-pin { background: #fff3ee; color: var(--rp-accent); cursor: pointer; }
.rp-card__addr { font-size: .74rem; color: var(--muted); margin-top: 4px; }
.rp-card__addr a { color: var(--rp-teal); text-decoration: none; white-space: nowrap; }
.rp-card__act { display: flex; flex-direction: column; gap: 4px; }
.rp-ibtn { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--rp-line); background: #fff; color: var(--muted); cursor: pointer; font-size: .9rem; line-height: 1; }
.rp-ibtn:hover { border-color: var(--rp-teal); color: var(--rp-teal); }
.rp-ibtn.is-alt { color: var(--rp-accent); border-color: rgba(196,87,46,.35); }
.rp-ibtn.is-alt:hover { background: var(--rp-accent); color: #fff; }
.rp-leg { list-style: none; text-align: center; font-size: .72rem; color: var(--muted); margin: -2px 0 4px; }
.rp-leg span { background: var(--rp-soft); padding: 0 8px; position: relative; }
.rp-leg::before { content: ""; display: block; height: 0; border-top: 1px dotted rgba(46,125,146,.4); margin: 0 20% -0.6em; }
.rp-ph { list-style: none; height: 6px; border-radius: 3px; background: var(--rp-accent); margin: 2px 6px 8px; box-shadow: 0 0 0 4px rgba(196,87,46,.15); }
.rp-free { text-align: center; padding: 10px 6px 12px; color: var(--muted); font-size: .86rem; border: 2px dashed var(--rp-line); border-radius: 14px; margin: 0 0 6px; }
.rp-free p { margin: 0 0 8px; }
.rp-fillbtn { font-size: .78rem; }
.rp-day__f { display: flex; flex-wrap: wrap; gap: 4px 14px; padding: 4px 4px 0; font-size: .82rem; }
.rp-ghost { position: fixed !important; z-index: 1600; pointer-events: none; background: #fff; border-radius: 14px; box-shadow: 0 16px 40px rgba(20,40,50,.28); transform: rotate(-1.5deg); list-style: none; margin: 0; }
body.rp-dragging, body.rp-dragging * { user-select: none; cursor: grabbing !important; }
.rp-extra { margin: 16px 0 0; padding: 12px 16px; border-radius: 14px; background: #fbf8ff; }
.rp-extra h3 { margin: 0 0 4px; font-size: 1rem; }
.rp-stages { margin: 14px 0 0; font-size: .9rem; }
.rp-stage { display: inline-flex; align-items: center; gap: 4px; background: var(--rp-soft); border-radius: 999px; padding: 2px 6px; }
.rp-stage button { border: 0; background: #fff; border-radius: 50%; width: 22px; height: 22px; cursor: pointer; }
.rp-offline { padding: 8px 12px; border-radius: 10px; background: #fff7e6; color: #7a5a12; font-size: .88rem; }
.rp-loading { padding: 20px 0; }
.rp-ideas { margin: 26px 0 0; border-top: 1px solid var(--rp-line); padding-top: 14px; }
.rp-ideas > summary { cursor: pointer; list-style: none; }
.rp-ideas > summary::-webkit-details-marker { display: none; }
.rp-ideas__h { font-family: var(--font-head); font-size: 1.35rem; }
.rp-ideas > summary::after { content: " ▾"; color: var(--muted); }
.rp-ideas[open] > summary::after { content: " ▴"; }
.rp-ideas .mk-items { margin-top: 10px; }
/* Hinweis unten mit „Rückgängig“ */
.rp-toast { position: fixed; left: 50%; bottom: 22px; z-index: 1700; transform: translate(-50%, 20px); opacity: 0; transition: opacity .2s, transform .2s; max-width: min(92vw, 640px);
  background: #23343a; color: #fff; border-radius: 14px; padding: 10px 14px; box-shadow: 0 12px 30px rgba(0,0,0,.25); font-size: .9rem; display: flex; gap: 12px; align-items: center; }
.rp-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.rp-toast small { opacity: .75; }
.rp-toast button { flex: 0 0 auto; border: 1px solid rgba(255,255,255,.5); background: none; color: #fff; border-radius: 999px; padding: 4px 12px; font: inherit; font-size: .82rem; cursor: pointer; }
@media (max-width: 600px) {
  .rp-card { grid-template-columns: 14px 44px 1fr auto; gap: 8px; }
  .rp-thumb { width: 44px; height: 44px; }
  .rp-strip { top: 56px; }
}
/* Druck: Fahrplan-Heft aus dem neuen Planer */
@media print {
  body:has(.rp) .rp-tools, body:has(.rp) .rp-note, body:has(.rp) .rp-coach, body:has(.rp) .rp-strip, body:has(.rp) .rp-hint, body:has(.rp) .rp-ideas,
  body:has(.rp) .rp-grip, body:has(.rp) .rp-dgrip, body:has(.rp) .rp-card__act, body:has(.rp) .rp-day__f, body:has(.rp) .rp-when, body:has(.rp) .rp-toast,
  body:has(.rp) .rp-team .rp-leave, body:has(.rp) .rp-stage button, body:has(.rp) .rp-free button { display: none !important; }
  body:has(.rp) .rp-printhead { display: inline; }
  body:has(.rp) .rp-title { border: 0; }
  body:has(.rp) .rp-board { display: block; }
  body:has(.rp) .rp-day { break-inside: avoid; background: #fff; margin-bottom: 5mm; }
  body:has(.rp) .rp-card { box-shadow: none; border: 1px solid #ddd; grid-template-columns: 40px 1fr; }
  body:has(.rp) .rp-thumb { width: 40px; height: 40px; }
  body:has(.rp) .rp-time:not(.is-set) { display: none; }
  body:has(.rp) .rp-mapbox:not([open]) { display: none; }
}
/* Reiseplaner – Feinschliff nach Test (12.11.2026) */
.rp-strip { flex-wrap: nowrap !important; justify-content: flex-start !important; }
.rp-strip a { min-width: 76px; }
@media (max-width: 600px) { .rp-strip a { min-width: 68px; padding: 6px 8px 5px; font-size: .78rem; } .rp-hint { font-size: .74rem; } }
.rp-map { max-width: 820px; }
@media (min-width: 900px) {
  .rp-board { grid-auto-columns: minmax(300px, 320px); }
  .rp-card { grid-template-columns: 14px 44px 1fr 28px; gap: 8px; }
  .rp-thumb { width: 44px; height: 44px; border-radius: 10px; }
  .rp-thumb--ic { font-size: 1.25rem; }
  .rp-ibtn { width: 26px; height: 26px; font-size: .82rem; }
  .rp-day__h .rp-wx { flex-basis: 100%; margin-left: 0; }
}
/* Finder: weitere Interessen, weitere Regionen, Partner-Hinweis (12.11.2026) */
.fd-more { display: contents; }
.fd-more > summary { list-style: none; cursor: pointer; border-style: dashed !important; }
.fd-more > summary::-webkit-details-marker { display: none; }
.fd-more[open] > summary { display: none; }
.fd-more__c { display: contents; }
.fd-moreres { margin: 18px 0 6px; }
.fd-moreres > summary { cursor: pointer; font-family: var(--font-head); font-size: 1.2rem; }
.fd-mlist { list-style: none; margin: 10px 0 0; padding: 0; columns: 2; column-gap: 24px; }
.fd-mlist li { break-inside: avoid; padding: 5px 0; border-bottom: 1px dotted rgba(46,125,146,.2); }
@media (max-width: 640px) { .fd-mlist { columns: 1; } }
.fd-partner { margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: #eef6f9; font-size: .92rem; }
/* Reisekarte: Wetter 50 % größer (Axel 12.11.2026: „sonst sieht es fast aus wie ein Wegpunkt“) */
.hmw-scene { transform: scale(1.85); }
.hmap__wx .hmap__wxt { font-size: 21px; transform: translateX(22px); stroke-width: 5px; }
/* Finder-Karte: Farbstärke = Passung (12.11.2026) */
.fd-map .rmap__a:hover .rmap__area { fill-opacity: 1 !important; }
.fd-legend { display: flex; align-items: center; gap: 8px; justify-content: center; font-size: .78rem; color: var(--muted); margin-top: 6px; }
.fd-legend i { display: inline-block; width: 110px; height: 10px; border-radius: 5px; background: linear-gradient(90deg, rgba(46,125,146,.22), #2e7d92); }
.fd-legend { flex-wrap: wrap; } .fd-legend__n { flex-basis: 100%; text-align: center; }
/* Reisekarte am Handy: alles doppelt so groß (Axel 12.11.2026: „auf dem Phone kaum zu erkennen“) – Kinder der Punkte skalieren um den Punkt */
@media (max-width: 640px) {
  .hmap__p > * { transform: scale(2); }
  .hmap__arc { stroke-width: 4; }
  .hmw-scene { transform: scale(3.4); }
  .hmap__wx .hmap__wxt { font-size: 38px; transform: translateX(46px); stroke-width: 8px; }
  .hmap__planb { display: none; }
}
/* „Das Beste der Region“: Reiter Erleben (12.11.2026) */
.rh-tabs input[id$="x"]:checked ~ .rh-p--x { display: block; }
.rh-now { font-style: normal; font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; background: #e5f4ea; color: #23784a; border-radius: 999px; padding: 1px 7px; margin-left: 4px; vertical-align: 2px; }
.rh-c.is-now { border-color: rgba(35,120,74,.35); }
/* Reisekarte: Beispieldatum über dem Wetter, Wetter nochmal etwas größer (12.11.2026) */
.hmw-scene { transform: scale(2.15); }
.hmap__wx .hmap__wxt { font-size: 24px; transform: translateX(28px); }
.hmap__wxd { font-family: var(--font-ui); font-size: 15px; font-weight: 600; letter-spacing: .02em; fill: #c4572e; paint-order: stroke; stroke: rgba(255,255,255,.95); stroke-width: 4px; stroke-linejoin: round; }
@media (max-width: 640px) {
  .hmw-scene { transform: scale(3.8); }
  .hmap__wx .hmap__wxt { font-size: 42px; transform: translateX(52px); }
  .hmap__wxd { font-size: 30px; stroke-width: 7px; transform: translate(20px, -44px); }
}
@media (max-width: 640px) {
  .hmw-scene { transform: translate(44px, -18px) scale(3.3); }
  .hmap__wx .hmap__wxt { font-size: 42px; transform: translate(80px, -18px); }
  .hmap__wxd { font-size: 46px; stroke-width: 9px; transform: translate(60px, -66px); }
}
/* Reiseplaner kompakt (12.11.2026, Axel: „Boxen zu groß – vom ersten in den letzten Tag ziehen geht nicht“):
   Tage untereinander (breit: zwei Spalten), Stationen als schlanke Zeilen, Tagesleiste als Ablage, 📅 zum Verschieben */
.rp-board { display: grid !important; grid-auto-flow: row !important; grid-template-columns: 1fr !important; grid-auto-columns: auto !important; overflow: visible !important; gap: 10px; padding: 0; }
@media (min-width: 1000px) { .rp-board { grid-template-columns: 1fr 1fr !important; align-items: start; } }
.rp-day { padding: 8px 8px 6px; border-radius: 14px; scroll-snap-align: none; }
.rp-day__h { padding: 0 2px 6px; }
.rp-day__h .rp-wx { flex-basis: auto !important; margin-left: auto !important; }
.rp-card { grid-template-columns: 14px 34px 1fr auto !important; gap: 8px !important; padding: 6px 6px 6px 4px; margin: 0 0 4px; border-radius: 10px; align-items: center; }
.rp-thumb { width: 34px !important; height: 34px !important; border-radius: 8px !important; }
.rp-thumb--ic { font-size: 1.05rem !important; }
.rp-card__top { gap: 5px; }
.rp-name { font-size: .92rem; }
.rp-card__meta { font-size: .72rem; display: inline; margin-left: 2px; }
.rp-card__chips { margin-top: 2px; }
.rp-card__addr { display: none; }
.rp-card__act { flex-direction: row !important; gap: 3px !important; }
.rp-ibtn { width: 26px !important; height: 26px !important; font-size: .78rem !important; display: inline-grid; place-items: center; text-decoration: none; }
.rp-leg { margin: -1px 0 3px; font-size: .68rem; }
.rp-free { padding: 6px; font-size: .8rem; }
.rp-free p { margin: 0 0 6px; }
.rp-day__f { padding-top: 2px; font-size: .78rem; }
.rp-planb, .rp-transfer { font-size: .76rem; padding: 6px 8px; margin-bottom: 6px; }
.rp-movesel { font: inherit; font-size: .8rem; padding: 2px 4px; border: 1px solid var(--rp-teal, #2e7d92); border-radius: 8px; max-width: 190px; }
.rp-strip a.is-drop { border-color: #c4572e; background: #fff3ee; transform: scale(1.06); box-shadow: 0 4px 12px rgba(196,87,46,.25); }
body.rp-dragging .rp-strip a { border-style: dashed; }
@media print { .rp-card__addr { display: block !important; } body:has(.rp) .rp-board { grid-template-columns: 1fr !important; } }
@media (max-width: 600px) { .rp-card__meta { display: block; margin: 0; } }
.hmap__wxd { fill: #1f2a30 !important; }
.rp-ghost { opacity: .92; } .rp-ghost .rp-card__act, .rp-ghost .rp-card__chips, .rp-ghost .rp-card__meta { display: none !important; }
.rp-week { grid-column: 1 / -1; margin: 10px 2px 0; font-family: var(--font-ui); font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid rgba(46,125,146,.18); padding-bottom: 4px; }
.rp-week:first-child { margin-top: 0; }
.rp-strip__wk { flex: 0 0 auto; align-self: center; font-family: var(--font-ui); font-size: .68rem; letter-spacing: .1em; color: var(--muted); padding: 0 2px 0 6px; }
.hmap-cap { display: grid; gap: 2px; justify-items: center; } .hmap-cap small { font-size: .72rem; opacity: .8; }
.hmap-cap { max-width: 760px; margin-left: auto; margin-right: auto; text-align: center; line-height: 1.5; } .hmap-cap a { color: #2e7d92; }
.hmap-cap__links { font-size: .86rem; } .hmap-cap__links a { text-decoration: none; white-space: nowrap; } .hmap-cap__links a:hover { text-decoration: underline; }
.hmap-cap { display: block !important; } .hmap-cap a { white-space: nowrap; text-decoration: none; } .hmap-cap a:hover { text-decoration: underline; } .hmap-cap small { font-size: .72rem; opacity: .75; white-space: nowrap; }
/* ＋ je Tag (Axel 12.11.2026: „das Haupt-＋ oben ist zu weit weg“) */
.rp-dayadd { width: 26px; height: 26px; border-radius: 50%; border: 0; background: #2e7d92; color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; margin-left: 6px; flex: 0 0 26px; }
.rp-dayadd:hover { background: #1f5d6d; }
.rp-addbtn { border: 1.5px dashed rgba(46,125,146,.45); background: #fff; color: #2e7d92; border-radius: 10px; padding: 5px 12px; font: inherit; font-size: .82rem; cursor: pointer; }
.rp-addbtn:hover { border-style: solid; background: #f2f8fa; }
.rp-day__f { align-items: center; }
@media print { .rp-dayadd { display: none !important; } }
/* =========================== Sepp & Vroni (12.11.2026) =========================== */
.rp-sepp { border-color: #c4572e; color: #c4572e; }
.sp { position: fixed; z-index: 1650; right: 16px; bottom: 16px; width: min(400px, calc(100vw - 32px)); height: min(640px, calc(100vh - 110px)); display: flex; flex-direction: column;
  background: #fff; border-radius: 20px; box-shadow: 0 24px 60px rgba(20,40,50,.28); border: 1px solid rgba(46,125,146,.18); transform: translateY(20px) scale(.98); opacity: 0; pointer-events: none; transition: transform .2s, opacity .2s; }
.sp.is-open { transform: none; opacity: 1; pointer-events: auto; }
.sp-h { display: flex; align-items: center; gap: 6px; padding: 12px 12px 10px 16px; border-bottom: 1px solid rgba(46,125,146,.12); background: linear-gradient(135deg, rgba(46,125,146,.08), rgba(196,87,46,.06)); border-radius: 20px 20px 0 0; }
.sp-h__n { font-family: var(--font-head); font-size: 1.3rem; }
.sp-h__s { color: var(--muted); font-size: .76rem; margin-right: auto; }
.sp-x { border: 0; background: none; width: 30px; height: 30px; border-radius: 50%; cursor: pointer; color: var(--muted); font-size: 1rem; }
.sp-x:hover { background: rgba(46,125,146,.1); }
.sp-log { flex: 1; overflow-y: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; }
.sp-m { display: flex; gap: 8px; align-items: flex-start; max-width: 100%; }
.sp-m > div { padding: 9px 12px; border-radius: 14px; font-size: .92rem; line-height: 1.45; max-width: 85%; overflow-wrap: anywhere; }
.sp-m--a > div { background: #f2f7f9; border-top-left-radius: 4px; }
.sp-m--u { justify-content: flex-end; }
.sp-m--u > div { background: #2e7d92; color: #fff; border-top-right-radius: 4px; }
.sp-m a { color: #2e7d92; }
.sp-av { flex: 0 0 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: #fff; box-shadow: 0 1px 4px rgba(20,40,50,.15); font-size: 1.05rem; }
.sp-li { display: block; }
.sp-quick { display: flex; flex-wrap: wrap; gap: 6px; padding-left: 38px; }
.sp-quick button { border: 1px solid rgba(46,125,146,.35); background: #fff; border-radius: 999px; padding: 5px 11px; font: inherit; font-size: .8rem; cursor: pointer; color: #2e7d92; }
.sp-quick button:hover { background: #f2f8fa; }
.sp-in { display: flex; gap: 8px; padding: 10px; border-top: 1px solid rgba(46,125,146,.12); }
.sp-in textarea { flex: 1; resize: none; font: inherit; font-size: .92rem; padding: 9px 12px; border: 1px solid rgba(46,125,146,.25); border-radius: 14px; max-height: 120px; }
.sp-in .btn { padding: 0 14px; border-radius: 14px; }
.sp-card { margin-top: 8px; padding: 10px; border-radius: 12px; background: #fff; border: 1px solid rgba(46,125,146,.18); }
.sp-subj { margin: 6px 0 2px; font-weight: 600; }
.sp-mail { white-space: pre-wrap; font: inherit; font-size: .84rem; margin: 0 0 8px; max-height: 180px; overflow: auto; background: #fafcfd; padding: 8px; border-radius: 8px; }
.sp-btns { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 0; }
.sp-btns .btn { font-size: .7rem; padding: 6px 10px; }
.sp-dots { display: flex; gap: 4px; padding: 12px 14px !important; }
.sp-dots i { width: 7px; height: 7px; border-radius: 50%; background: #9fb2ba; animation: spDot 1s infinite; }
.sp-dots i:nth-child(2) { animation-delay: .15s; } .sp-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes spDot { 0%, 80%, 100% { opacity: .3; transform: translateY(0); } 40% { opacity: 1; transform: translateY(-3px); } }
.sp-pick { display: grid; gap: 10px; }
.sp-pick > p { margin: 0; font-family: var(--font-head); font-size: 1.25rem; }
.sp-pick button { display: grid; grid-template-columns: 44px 1fr; grid-template-rows: auto auto; column-gap: 10px; text-align: left; border: 1px solid rgba(46,125,146,.25); background: #fff; border-radius: 14px; padding: 10px 12px; cursor: pointer; font: inherit; }
.sp-pick button:hover { border-color: #c4572e; background: #fffaf7; }
.sp-pick button span { grid-row: 1 / 3; font-size: 2rem; align-self: center; }
.sp-pick button small { color: var(--muted); font-size: .8rem; }
.sp-note { font-size: .78rem; margin: 0; }
@media (max-width: 640px) { .sp { right: 0; left: 0; bottom: 0; width: 100%; height: 78vh; border-radius: 20px 20px 0 0; } }
.sp-who { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin: 10px 0 20px; }
.sp-who section { padding: 16px 18px; border-radius: 16px; background: rgba(46,125,146,.06); }
.sp-who h2 { margin-top: 0; }
@media print { .sp { display: none !important; } }
/* Sepp & Vroni: Karte im Gespräch, Vorlesen, Mikrofon (12.11.2026) */
.sp-mapc svg { width: 100%; height: auto; display: block; margin-top: 6px; border-radius: 10px; background: #f4f7f8; }
.sp-say { border: 0; background: none; cursor: pointer; font-size: .8rem; opacity: .5; padding: 0 2px; vertical-align: 1px; }
.sp-say:hover { opacity: 1; }
.sp-x[data-voice].is-on { background: rgba(196,87,46,.12); }
.sp-mic { flex: 0 0 42px; border: 1px solid rgba(46,125,146,.3); background: #fff; border-radius: 14px; cursor: pointer; font-size: 1.1rem; }
.sp-mic.is-on { background: #c4572e; border-color: #c4572e; animation: spMic 1.2s infinite; }
@keyframes spMic { 50% { box-shadow: 0 0 0 6px rgba(196,87,46,.2); } }
/* Sepp & Vroni oben rechts neben dem ♡ (12.11.2026) */
.sepp-link { position: relative; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 0; background: #fff; box-shadow: 0 1px 4px rgba(20,40,50,.12); cursor: pointer; padding: 0; flex: 0 0 40px; }
.sepp-link:hover { box-shadow: 0 2px 10px rgba(196,87,46,.3); }
.sepp-face { position: relative; width: 30px; height: 26px; }
.sepp-face span { position: absolute; font-size: 1.05rem; line-height: 1; top: 3px; }
.sepp-face span:first-child { left: 0; }
.sepp-face span:last-child { right: 0; top: 7px; }
.sepp-face.is-one span { left: 50%; right: auto; top: 50%; transform: translate(-50%, -50%); font-size: 1.35rem; }
body.sp-on .sepp-link { box-shadow: 0 0 0 2px #c4572e; }
@media (max-width: 640px) { .sepp-link { width: 34px; height: 34px; flex-basis: 34px; } .sepp-face { transform: scale(.88); } }
/* gezeichnete Porträts (12.11.2026) */
.sepp-face { width: 34px; height: 34px; }
.sp-lface { position: absolute; width: 30px; height: 30px; border-radius: 50%; display: block; }
.sepp-face.is-one .sp-lface, .sepp-face > .sp-lface:only-child { width: 34px; height: 34px; left: 0; top: 0; transform: none; }
.sp-lface--a { left: -3px; top: 2px; z-index: 1; } .sp-lface--b { right: -3px; left: auto; top: 2px; box-shadow: -1px 0 0 2px #fff; }
.sepp-face span { display: none; }
.sp-av { overflow: hidden; padding: 0; background: none; }
.sp-av .sp-face { width: 30px; height: 30px; border-radius: 50%; display: block; }
.sp-hface { width: 30px; height: 30px; border-radius: 50%; vertical-align: -8px; margin-right: 4px; }
.sp-pface { width: 52px; height: 52px; border-radius: 50%; display: block; }
.sp-pick button span { font-size: inherit; }
.sp-pick button { grid-template-columns: 60px 1fr; }
.sp-big { width: 120px; height: 120px; border-radius: 50%; float: left; margin: 0 16px 6px 0; box-shadow: 0 6px 18px rgba(20,40,50,.15); }
.sp-who section::after { content: ""; display: block; clear: both; }
/* Sepp: Gedächtnis auf /sepp, blinkender Lautsprecher, wenn der Browser den Ton blockiert hat */
.sp-memb { margin: 18px 0; padding: 16px 18px; border-radius: 16px; background: rgba(46,125,146,.06); }
.sp-mem { list-style: none; padding: 0; margin: 10px 0; }
.sp-mem li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-bottom: 1px solid rgba(0,0,0,.06); }
.sp-memf { display: inline; margin: 0; }
.sp-pulse { animation: spPulse 1s ease-in-out 4; }
@keyframes spPulse { 50% { transform: scale(1.3); } }
/* Reiseplaner: Karten-Abschnitte (ganze Reise · Etappe · Tag) und Optimierungs-Hinweis */
.rp-mapf { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 6px; }
.rp-mapf button { border: 1px solid var(--rp-line, #dde6e8); background: #fff; border-radius: 999px; padding: 4px 11px; font: inherit; font-size: .85rem; cursor: pointer; }
.rp-mapf button.is-on { background: var(--rp-teal, #2e7d92); border-color: var(--rp-teal, #2e7d92); color: #fff; }
.rp-map.is-busy { opacity: .55; transition: opacity .2s; }
.rp-route { border-left-color: #c58a1d; background: #fffcf4; }
/* Reise-Steckbrief (Planer) und Multiple Choice bei Sepp */
.rp-chips, .sp-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.rp-chip, .sp-chip { border: 1px solid var(--rp-line, #dde6e8); background: #fff; border-radius: 999px; padding: 6px 13px; font: inherit; font-size: .92rem; cursor: pointer; }
.rp-chip:hover, .sp-chip:hover:not(:disabled) { border-color: var(--rp-teal, #2e7d92); }
.rp-chip.is-on, .sp-chip.is-on { background: var(--rp-teal, #2e7d92); border-color: var(--rp-teal, #2e7d92); color: #fff; }
.sp-chip:disabled:not(.is-on) { opacity: .45; cursor: default; }
.rp-brief { margin: 0 0 16px; padding: 16px 18px; border-radius: 16px; background: #fff; border: 1px solid var(--rp-line, #dde6e8); }
.rp-brief h2 { margin: 0 0 4px; font-size: 1.15rem; }
.rp-brief__q { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 8px 0; border-top: 1px solid rgba(0,0,0,.05); }
.rp-brief__q > span:first-child { min-width: 240px; font-weight: 600; }
.rp-q { display: block; color: #6b7c80; }
@media (max-width: 600px) { .rp-chip, .sp-chip { padding: 9px 14px; font-size: 1rem; } .rp-brief__q > span:first-child { min-width: 0; width: 100%; } }
/* Reiseplaner: zoombare Karte (Leaflet) */
.rp-map.rp-lmap { height: 420px; border-radius: 14px; overflow: hidden; }
@media (max-width: 600px) { .rp-map.rp-lmap { height: 320px; } }
.rp-mk { background: none; border: 0; }
.rp-mk__i { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; border: 2px solid #2e7d92; box-shadow: 0 2px 6px rgba(0,0,0,.25); font-size: 15px; }
.rp-mk b { position: absolute; top: -6px; right: -6px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: #c58a1d; color: #fff; font-size: 11px; line-height: 17px; text-align: center; }
.sp-dots .sp-wait { margin-left: 8px; font-size: .85rem; color: #6b7c80; font-style: italic; }
/* Reiseplaner: Tageszeiten */
.rp-part { list-style: none; margin: 10px 0 2px; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #6b7c80; }
.rp-part:first-child { margin-top: 0; }
.rp-timebox { display: flex; flex-direction: column; gap: 6px; padding: 8px; margin: 4px 0; border-radius: 12px; background: #f4f8f9; }
.rp-timebox .rp-chip { padding: 4px 10px; font-size: .85rem; }
.rp-timebox__ex { font-size: .85rem; color: #6b7c80; }
.rp-day__stress { margin-left: auto; padding: 2px 9px; border-radius: 999px; background: #fff1e6; color: #a2531c; font-size: .8rem; font-weight: 600; }
/* Meine Reisen (/reisen) */
.tv-new { margin: 6px 0 22px; }
.tv-ask { padding: 14px 16px; border-radius: 16px; background: #fff; border: 1px solid var(--rp-line, #dde6e8); }
.tv-kind small { opacity: .7; margin-left: 4px; }
.tv-g { margin: 0 0 26px; }
.tv-g h2 { font-size: 1.2rem; margin: 0 0 10px; }
.tv-g h2 small { font-weight: 400; font-size: .85rem; }
.tv-past > summary { cursor: pointer; list-style: none; }
.tv-past > summary h2 { display: inline; }
.tv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.tv-card { display: flex; gap: 12px; padding: 12px; border-radius: 16px; background: #fff; border: 1px solid var(--rp-line, #dde6e8); box-shadow: 0 4px 14px rgba(20,40,50,.05); }
.tv-card.is-cur { border-color: var(--rp-teal, #2e7d92); box-shadow: 0 0 0 2px rgba(46,125,146,.18); }
.tv-card__img { width: 86px; height: 86px; flex: none; border-radius: 12px; object-fit: cover; }
.tv-card__img--ic { display: flex; align-items: center; justify-content: center; font-size: 2rem; background: #f1f6f7; }
.tv-card__b { min-width: 0; }
.tv-card__b h3 { margin: 2px 0 4px; font-size: 1.05rem; }
.tv-card__b p { margin: 0 0 4px; font-size: .9rem; }
.tv-card__k { font-size: .8rem !important; color: #6b7c80; }
.tv-card__a { margin-top: 8px !important; display: flex; gap: 6px; flex-wrap: wrap; }
.tv-empty { padding: 14px 16px; border-radius: 14px; background: #f7fbfb; }
.rp-journey { background: #f4f8f9; }
.rp-homeask { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.rp-homeask input { flex: 1; min-width: 160px; }

/* Handy-Check 12.11.2026 (Axel: „am Handy ist der Anmeldebutton gerade noch so zu sehen“): Kopfzeile passt auf 360–430 px –
   Anmelden als Symbol, Sprache nur die andere, Symbole kleiner; Reiseplaner-Werkzeuge im 2er-Raster */
.acc-ic { display: none; }
@media (max-width: 520px) {
  .site-header .wrap { gap: 7px; padding-inline: 12px; }
  .brand { flex: 0 1 auto; min-width: 0; }
  .brand img { height: 34px; width: auto; }
  .wx-link, .merk-link, .near-btn, .sepp-link, .account-link { width: 32px !important; height: 32px !important; flex: 0 0 32px; }
  .sepp-link .sepp-face, .sepp-link img { width: 32px; height: 32px; }
  .wx-link svg { width: 20px; height: 20px; } .merk-link svg, .near-btn svg { width: 19px; height: 19px; }
  .account-link { display: inline-grid; place-items: center; padding: 0 !important; border-radius: 50%; font-size: .85rem; letter-spacing: 0; font-weight: 700; text-transform: none; }
  .acc-tx { display: none; } .acc-ic { display: inline-grid; place-items: center; }
  .site-header nav.lang-sw a[aria-current] { display: none; }
  .site-header nav.lang-sw a { padding: 4px 3px; }
  .rp-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
  .rp-tools > .btn, .rp-tools > .rp-more > summary { width: 100%; justify-content: center; text-align: center; padding-inline: 8px; font-size: .78rem; }
  .rp-tools > .rp-add, .rp-tools > .rp-sepp { grid-column: 1 / -1; }
  .rp-more__m { left: auto; right: 0; }
}
@media (max-width: 370px) { .wx-link { display: none !important; } }
@media (max-width: 520px) {   /* Cookie-Hinweis kompakt: kleinere Schrift, Knöpfe in einer Reihe */
  .cc-bar { left: 8px; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); padding: 12px 14px !important; gap: 8px !important; }
  .cc-bar__text { flex-basis: auto; font-size: .82rem; }
  .cc-bar__text strong { font-size: 1.05rem; }
  .cc-bar__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; width: 100%; }
  .cc-bar__actions .btn { padding: 8px 6px; font-size: .68rem; letter-spacing: .06em; justify-content: center; }
  .cc-bar__actions .btn-solid { grid-column: 1 / -1; order: -1; }
}
.sp-chip--other { border-style: dashed; color: #4d6266; }
/* Handy: Porträt über der Sprechblase statt daneben – die Blase bekommt die volle Breite (Axel 12.11.2026) */
@media (max-width: 520px) {
  .sp-m--a { flex-direction: column; gap: 4px; }
  .sp-m--a > div { max-width: 100%; border-top-left-radius: 14px; }
  .sp-m--a .sp-av { flex: 0 0 auto; width: 26px; height: 26px; margin-left: 4px; }
  .sp-m--a .sp-av .sp-face { width: 26px; height: 26px; }
  .sp-m--u > div { max-width: 92%; }
}
/* Für Betriebe: eigener Reiseplaner (SaaS, in Vorbereitung) */
.fb-saas { margin: 34px 0; padding: 26px 24px; border-radius: 22px; background: linear-gradient(135deg, rgba(46,125,146,.10), rgba(197,138,29,.08)); border: 1px solid rgba(46,125,146,.18); }
.fb-saas h2 { margin-top: 2px; }
.fb-saas__list { list-style: none; padding: 0; margin: 18px 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.fb-saas__list li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.75); }
.fb-saas__ic { font-size: 1.5rem; line-height: 1; }
.fb-saas__list strong { display: block; margin-bottom: 3px; }
.fb-saas__list span { font-size: .92rem; color: #4d6266; }
@media (max-width: 520px) { .fb-saas { padding: 18px 14px; margin: 24px -4px; } }
.fb-saas__h { margin: 26px 0 10px; font-size: 1.15rem; }
.fb-saas .fb-steps { margin-top: 6px; }
.fb-saas .fb-pack { background: rgba(255,255,255,.8); }
.fb-saas__paid { display: inline-block; padding: 8px 14px; border-radius: 12px; background: rgba(255,255,255,.85); border: 1px solid rgba(197,138,29,.35); font-size: .95rem; }
/* Für Betriebe: Hotel-Mehrwerte, „Ein Aufenthalt mit eurem Planer“ */
.fb-saas__hook { font-family: var(--font-head); font-size: 1.35rem; line-height: 1.35; margin: 6px 0 12px; color: #24414a; }
.fb-saas__list--value li { background: #fff; border: 1px solid rgba(46,125,146,.15); }
.fb-day { list-style: none; padding: 0; margin: 10px 0 6px; border-left: 3px solid rgba(46,125,146,.35); }
.fb-day li { position: relative; padding: 0 0 14px 18px; }
.fb-day li::before { content: ''; position: absolute; left: -8px; top: 5px; width: 13px; height: 13px; border-radius: 50%; background: #fff; border: 3px solid #2e7d92; }
.fb-day__t { display: block; font-weight: 700; color: #2e7d92; font-size: .9rem; }
.fb-day p { margin: 2px 0 0; }
@media (max-width: 520px) { .fb-saas__hook { font-size: 1.15rem; } }
.fb-saas__list--lux li { background: linear-gradient(135deg, #fff, #fbf6ec); border: 1px solid rgba(197,138,29,.25); }
/* Reiseplaner: Unterkunft fehlt → Vorschläge */
.rp-sleep { margin: 6px 0 10px; padding: 10px 12px; border-radius: 12px; background: #fbf6ec; border: 1px dashed rgba(197,138,29,.45); font-size: .9rem; }
.rp-sleep p { margin: 0 0 6px; }
.rp-sleep ul { list-style: none; padding: 0; margin: 0 0 6px; display: grid; gap: 6px; }
.rp-sleep li { display: flex; align-items: center; gap: 8px; }
.rp-sleep li img, .rp-sleep__ic { width: 36px; height: 36px; border-radius: 8px; object-fit: cover; flex: none; display: grid; place-items: center; background: #fff; }
.rp-sleep li a { font-weight: 600; } .rp-sleep li small { color: #6b7c80; }
.rp-sleep li .mk-plus { margin-left: auto; }
/* Startseite: „Was Alpenedelweiß anders macht“ */
.hdiff { margin: 44px 0 10px; padding: 30px 28px; border-radius: 24px; background: var(--glass-strong, rgba(255,255,255,.82)); backdrop-filter: var(--glass-blur); -webkit-backdrop-filter: var(--glass-blur); border: 1px solid var(--glass-line, rgba(0,0,0,.06)); }
.hdiff h2 { font-family: var(--font-head); font-weight: 300; font-size: clamp(1.6rem, 3.2vw, 2.3rem); margin: 4px 0 8px; }
.hdiff .lead { max-width: 760px; }
.hdiff__g { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-top: 20px; }
.hdiff__c { padding: 18px 20px; border-radius: 18px; background: rgba(255,255,255,.78); border: 1px solid rgba(46,125,146,.12); }
.hdiff__c h3 { margin: 0 0 10px; font-size: 1.08rem; display: flex; gap: 8px; align-items: center; }
.hdiff__c ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 7px; }
.hdiff__c li { position: relative; padding-left: 18px; font-size: .93rem; line-height: 1.45; color: #34494f; }
.hdiff__c li::before { content: ''; position: absolute; left: 2px; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: #c58a1d; opacity: .8; }
.hdiff__go { margin: 22px 0 0; display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 520px) { .hdiff { padding: 20px 14px; margin-top: 30px; } .hdiff__g { grid-template-columns: 1fr; } }

/* [sepp-ausbau] Rückmeldung 👍/👎 an Sepp-/Vroni-Antworten (docs/SEPP_AUSBAU.md) */
.sp-fbok { opacity: .6; font-size: .75rem; }
.sp-fb { display: grid; gap: 6px; margin: 8px 0 4px; padding: 8px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.5); }
.sp-fb textarea { width: 100%; font: inherit; font-size: .85rem; resize: vertical; }
.sp-fb label { font-size: .75rem; line-height: 1.3; display: flex; gap: 6px; align-items: flex-start; }
.sp-fb .btn { justify-self: start; }
/* „Was Alpenedelweiß anders macht“: Spalten statt Raster – keine leeren Flächen bei unterschiedlich langen Karten */
.hdiff__g { display: block; columns: 3 300px; column-gap: 16px; }
.hdiff__c { break-inside: avoid; margin: 0 0 16px; display: inline-block; width: 100%; }
/* Reiseplaner: Symbol vorne an jedem Eintrag, auch über dem Bild */
.rp-thumbw { position: relative; display: block; flex: none; }
.rp-thumb__ic { position: absolute; left: -6px; bottom: -6px; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; background: #fff; box-shadow: 0 1px 5px rgba(20,40,50,.25); font-size: 13px; line-height: 1; }
.rp-ic { margin-right: 5px; font-size: .95em; }
.rp-thumb--ic { font-size: 1.5rem; }
.rp-moredays { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: center; margin: 14px 0 6px; }
.rp-moredays--top { justify-content: flex-start; margin: 0 0 6px; font-size: .9rem; }
/* Eigene Dialoge (AEDialog, site.js) statt Browser-Fenster */
.ae-dlg { border: 0; padding: 0; border-radius: 22px; width: min(420px, calc(100vw - 32px)); background: #fff; color: var(--ink, #1f2d33);
  box-shadow: 0 30px 80px rgba(20,40,50,.35); opacity: 0; transform: translateY(10px) scale(.97); transition: opacity .16s ease, transform .16s ease; }
.ae-dlg.is-open { opacity: 1; transform: none; }
.ae-dlg::backdrop { background: rgba(20,35,42,.38); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.ae-dlg__f { margin: 0; padding: 26px 24px 20px; text-align: center; }
.ae-dlg__ic { width: 54px; height: 54px; margin: 0 auto 12px; border-radius: 50%; display: grid; place-items: center; font-size: 1.6rem; background: rgba(46,125,146,.1); }
.ae-dlg.is-danger .ae-dlg__ic { background: rgba(193,80,60,.12); }
.ae-dlg__t { font-family: var(--font-head); font-weight: 400; font-size: 1.45rem; line-height: 1.2; margin: 0 0 8px; }
.ae-dlg__m { margin: 0 0 18px; color: #4d6266; line-height: 1.5; font-size: .98rem; }
.ae-dlg__in { width: 100%; box-sizing: border-box; font: inherit; padding: 11px 13px; border-radius: 12px; border: 1px solid var(--line, #dde6e8); margin: -6px 0 18px; }
.ae-dlg__b { display: flex; gap: 10px; justify-content: center; margin: 0; }
.ae-dlg__b .btn { flex: 1; justify-content: center; }
.btn.btn-danger { background: #b4472f; border-color: #b4472f; color: #fff; }
.btn.btn-danger:hover { background: #9c3b26; }
@media (prefers-reduced-motion: reduce) { .ae-dlg { transition: none; } }
.ae-dlg { position: fixed; inset: 0; margin: auto; height: fit-content; max-height: calc(100dvh - 32px); left: 0; right: 0; }
.ae-dlg .btn.btn-solid.btn-danger { background: #b4472f; border-color: #b4472f; color: #fff; }
.ae-dlg .btn.btn-solid.btn-danger:hover { background: #9c3b26; border-color: #9c3b26; }
/* Handy: nichts darf seitlich überstehen (12.11.2026: Lichtschein .aura auf der Startseite machte die Seite 421 statt 390 px breit) */
html, body { overflow-x: clip; }
.hero { overflow-x: clip; }
/* Edelweiß-Blüte: weiß mit dünner dunkler Kontur um den Umriss (Axel 12.11.2026), als wiederkehrendes Zeichen */
.ae-flower { width: 40px; height: auto; vertical-align: middle;
  filter: drop-shadow(.7px 0 0 #1b252c) drop-shadow(-.7px 0 0 #1b252c) drop-shadow(0 .7px 0 #1b252c) drop-shadow(0 -.7px 0 #1b252c) drop-shadow(0 2px 4px rgba(27,37,44,.18)); }
.hero-title .hero-flower.ae-flower { filter: drop-shadow(.7px 0 0 #1b252c) drop-shadow(-.7px 0 0 #1b252c) drop-shadow(0 .7px 0 #1b252c) drop-shadow(0 -.7px 0 #1b252c) drop-shadow(0 2px 4px rgba(27,37,44,.18)); }
.ae-fh { display: flex; align-items: center; gap: 14px; }
.ae-fh .ae-flower { width: 34px; flex: none; }
.ae-flower--s { width: 16px; margin-right: 6px; vertical-align: -3px; filter: drop-shadow(.5px 0 0 #1b252c) drop-shadow(-.5px 0 0 #1b252c) drop-shadow(0 .5px 0 #1b252c) drop-shadow(0 -.5px 0 #1b252c); }
.ae-flower--xs { width: 13px; vertical-align: -2px; filter: drop-shadow(.45px 0 0 #1b252c) drop-shadow(-.45px 0 0 #1b252c) drop-shadow(0 .45px 0 #1b252c) drop-shadow(0 -.45px 0 #1b252c); }
.ae-flower--in { width: .8em; vertical-align: -.06em; margin-left: .1em; }
@media (max-width: 520px) { .ae-fh { gap: 10px; } .ae-fh .ae-flower { width: 26px; } }
@media print { .ae-flower { filter: none; } }
/* Kontur halb so stark (Axel 12.11.2026: „die Umrandung ist zu stark, die Hälfte“) */
.ae-flower, .hero-title .hero-flower.ae-flower { filter: drop-shadow(.35px 0 0 #1b252c) drop-shadow(-.35px 0 0 #1b252c) drop-shadow(0 .35px 0 #1b252c) drop-shadow(0 -.35px 0 #1b252c) drop-shadow(0 2px 4px rgba(27,37,44,.14)); }
.ae-flower--s { filter: drop-shadow(.25px 0 0 #1b252c) drop-shadow(-.25px 0 0 #1b252c) drop-shadow(0 .25px 0 #1b252c) drop-shadow(0 -.25px 0 #1b252c); }
.ae-flower--xs { filter: drop-shadow(.22px 0 0 #1b252c) drop-shadow(-.22px 0 0 #1b252c) drop-shadow(0 .22px 0 #1b252c) drop-shadow(0 -.22px 0 #1b252c); }
/* Hintergrundbild höher, damit die Blüte über der Inhaltsfläche frei steht (Axel 12.11.2026) */
body.is-home .page-bg { background-position: center 97%; }
/* noch zarter (Axel 12.11.2026: „noch ein wenig dünner“) – halbe Deckkraft statt dickerer Linie */
.ae-flower, .hero-title .hero-flower.ae-flower { filter: drop-shadow(.35px 0 0 rgba(27,37,44,.45)) drop-shadow(-.35px 0 0 rgba(27,37,44,.45)) drop-shadow(0 .35px 0 rgba(27,37,44,.45)) drop-shadow(0 -.35px 0 rgba(27,37,44,.45)) drop-shadow(0 2px 4px rgba(27,37,44,.12)); }
.ae-flower--s, .ae-flower--xs { filter: drop-shadow(.25px 0 0 rgba(27,37,44,.5)) drop-shadow(-.25px 0 0 rgba(27,37,44,.5)) drop-shadow(0 .25px 0 rgba(27,37,44,.5)) drop-shadow(0 -.25px 0 rgba(27,37,44,.5)); }
body.is-home .page-bg { background-position: center 82%; }
