/* MeisterKlug – Feiertags-Radar (#feiertags-radar), Backlog B9
   Baut auf den Tokens aus site.css auf. Nur Siegel-Farben: Theme-Tokens (var(--gold-gross), var(--gruen) …) für alles auf
   Seitenflächen, feste Logofarben für „Materialien“ (Radar-Schirm, Kalenderblatt), helle Spurfarben als Mischung mit Creme.
   Kategorien: gesetzlich = Gold, Brückentag = Grün, Religion = Lila, International = Messing/Creme, Grillwetter = Rot,
   Raclette = Blau. Internationale Tage tragen das Länderkürzel auf der Siegel-Plakette (.plakette aus site.css), keine Flaggen.
   Dynamik nur über CSS-Variablen (--x, --w, --p, --anteil), die feiertage.js per style.setProperty setzt. */

.fr{position:relative;overflow:hidden}
.fr [hidden]{display:none!important}

/* Kategorie-Farben: k = Theme-Farbe, fest = Materialfarbe, fest-text = Schrift darauf, hell = Spur auf dem dunklen Radar */
.fr-kat-gesetzlich{--fr-k:var(--gold-gross);--fr-fest:#C27F0A;--fr-fest-text:#0B2519;--fr-hell:#F6AF2F}
.fr-kat-bruecke{--fr-k:var(--gruen);--fr-fest:#1F5A3A;--fr-fest-text:#F9EFDC;--fr-hell:color-mix(in srgb,#1F5A3A 22%,#F9EFDC)}
.fr-kat-religion{--fr-k:var(--lila);--fr-fest:#5B1A62;--fr-fest-text:#F9EFDC;--fr-hell:color-mix(in srgb,#5B1A62 28%,#F9EFDC)}
.fr-kat-grill{--fr-k:var(--rot);--fr-fest:#B0090D;--fr-fest-text:#F9EFDC;--fr-hell:color-mix(in srgb,#B0090D 48%,#F9EFDC)}
.fr-kat-raclette{--fr-k:var(--blau);--fr-fest:#2A3FB0;--fr-fest-text:#F9EFDC;--fr-hell:color-mix(in srgb,#2A3FB0 38%,#F9EFDC)}
.fr-kat-international{--fr-k:var(--brass);--fr-fest:#9A6510;--fr-fest-text:#F9EFDC;--fr-hell:#F9EFDC}
.fr-unsichtbar{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------------------------------------------------------------
   Pult: drei Schritte
   --------------------------------------------------------------- */
.fr-pult{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-bottom:26px}
.fr-schritt{display:flex;flex-direction:column;gap:16px;min-width:0;margin:0;padding:20px 20px 22px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:var(--schatten-weich)}
.fr-schritt legend{float:left;display:flex;align-items:center;gap:10px;width:100%;padding:0;font-family:var(--f-display);font-weight:700;font-size:21px;line-height:1.2}
.fr-nr{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--logo-gold);color:var(--logo-gruen);font-family:var(--f-body);font-size:16px;box-shadow:inset 0 0 0 2px var(--logo-gold),inset 0 0 0 4px var(--logo-creme)}
.fr-feld{display:flex;flex-direction:column;gap:8px;min-width:0}
.fr-feldname{font-weight:700;font-size:14px;color:var(--muted)}

/* Auswahlliste Bundesland */
.fr-auswahl{position:relative;display:block}
.fr-auswahl::after{content:"";position:absolute;right:18px;top:50%;width:9px;height:9px;border-right:2.5px solid var(--fg);border-bottom:2.5px solid var(--fg);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.fr-auswahl select{width:100%;min-height:48px;padding:0 46px 0 14px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);color:var(--fg);font:inherit;font-weight:700;font-size:16px;-webkit-appearance:none;appearance:none;cursor:pointer}
.fr-auswahl select:hover{border-color:var(--gold-gross)}
.fr-auswahl select:focus-visible{outline:3px solid var(--brass);outline-offset:2px}

/* Zeitraum: Segment */
.fr-segment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1.5px solid var(--line);border-radius:999px;background:var(--bg)}
.fr-segment label{position:relative;display:block}
.fr-segment input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fr-segment span{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 6px;border-radius:999px;color:var(--muted);font-weight:700;font-size:14.5px;text-align:center;transition:background-color .2s ease,color .2s ease}
.fr-segment input:checked+span{background:var(--ink);color:var(--ink-fg)}
.fr-segment input:focus-visible+span{outline:3px solid var(--brass);outline-offset:2px}

/* Branche (nur Übersicht) */
.fr-chips{display:flex;flex-wrap:wrap;gap:6px}
.fr-chip{min-height:36px;padding:0 12px;border:1.5px solid var(--line);border-radius:999px;background:var(--bg);color:var(--fg);font:inherit;font-weight:600;font-size:14px;cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .15s ease}
.fr-chip:hover{border-color:var(--gold-gross);transform:translateY(-1px)}
.fr-chip[aria-pressed="true"]{background:var(--logo-gold);border-color:var(--logo-gold);color:var(--logo-gruen)}
.fr-chip:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.fr-fest{margin:0;padding:12px 14px;border-radius:14px;background:var(--brass-soft)}

/* Schalter je Kategorie */
.fr-schalterliste{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fr-schalter{position:relative;display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 10px;border:1.5px solid var(--line);border-radius:14px;background:var(--bg);font-weight:700;font-size:14px;line-height:1.25;cursor:pointer;transition:border-color .2s ease}
.fr-schalter:hover{border-color:var(--fr-k)}
.fr-schalter input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fr-schalter-bahn{position:relative;flex:none;width:40px;height:24px;border-radius:999px;background:var(--line);transition:background-color .2s ease}
.fr-schalter-bahn::after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.35);transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.fr-schalter input:checked+.fr-schalter-bahn{background:var(--fr-fest)}
.fr-schalter input:checked+.fr-schalter-bahn::after{transform:translateX(16px)}
.fr-schalter input:focus-visible+.fr-schalter-bahn{outline:3px solid var(--brass);outline-offset:2px}
.fr-schalter input:not(:checked)~.fr-schalter-text{color:var(--muted)}

/* Religionen: Optionshaken */
.fr-religionen{display:flex;flex-direction:column;gap:8px}
.fr-religionen-kopf{display:flex;align-items:center;justify-content:space-between;gap:10px}
.fr-mini-gruppe{display:inline-flex;gap:4px}
.fr-mini{min-height:30px;padding:0 10px;border:1.5px solid var(--line);border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.fr-mini:hover{border-color:var(--lila)}
.fr-mini:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.fr-haken{display:flex;flex-wrap:wrap;gap:6px}
.fr-haken-feld{position:relative;display:inline-flex}
.fr-haken-feld input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.fr-haken-feld span{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 11px 0 8px;border:1.5px solid var(--line);border-radius:999px;color:var(--muted);font-weight:600;font-size:13.5px;transition:background-color .2s ease,border-color .2s ease,color .2s ease}
.fr-haken-feld span::before{content:"";flex:none;width:16px;height:16px;border:1.5px solid currentColor;border-radius:5px;transition:background-color .2s ease,border-color .2s ease}
.fr-haken-feld span::after{content:"";position:absolute;left:14px;top:50%;width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translate(0,-62%) rotate(45deg) scale(0);transition:transform .2s cubic-bezier(.3,1.5,.5,1)}
.fr-haken-feld input:checked+span{border-color:var(--lila);background:color-mix(in srgb,var(--lila) 10%,transparent);color:var(--fg)}
.fr-haken-feld input:checked+span::before{border-color:#5B1A62;background:#5B1A62}
.fr-haken-feld input:checked+span::after{transform:translate(0,-62%) rotate(45deg) scale(1)}
.fr-haken-feld input:focus-visible+span{outline:3px solid var(--brass);outline-offset:2px}

/* Internationale Tage: Schalter im Kopf, darunter die Regionen als Optionshaken in Messing */
.fr-regionen{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px dashed var(--line)}
.fr-schalter-schmal{min-height:40px;padding:0;border:0;background:transparent}
.fr-schalter-schmal:hover{border-color:transparent}
.fr-regionen .fr-haken-feld input:checked+span{border-color:var(--fr-k);background:color-mix(in srgb,var(--fr-k) 12%,transparent)}
.fr-regionen .fr-haken-feld input:checked+span::before{border-color:#9A6510;background:#9A6510}
.fr-regionen .fr-mini:hover{border-color:var(--fr-k)}
.fr-regionen.ist-aus .fr-haken{opacity:.45}

/* Regler Grill und Raclette */
.fr-regler{display:flex;flex-direction:column;gap:6px;padding:12px 14px 10px;border:1.5px solid var(--line);border-radius:16px;background:var(--bg)}
.fr-regler-kopf{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-weight:700}
.fr-regler-kopf output{font-family:var(--f-mono);font-weight:500;font-size:21px;line-height:1;color:var(--fr-k)}
.fr-regler input[type="range"]{--anteil:50%;width:100%;height:30px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
.fr-regler input[type="range"]:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:8px}
/* Grill: der Bereich ab der Schwelle ist gefüllt, Raclette: der Bereich darunter */
.fr-kat-grill input[type="range"]::-webkit-slider-runnable-track{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--line) var(--anteil),var(--fr-fest) var(--anteil))}
.fr-kat-raclette input[type="range"]::-webkit-slider-runnable-track{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--fr-fest) var(--anteil),var(--line) var(--anteil))}
.fr-kat-grill input[type="range"]::-moz-range-track{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--line) var(--anteil),var(--fr-fest) var(--anteil))}
.fr-kat-raclette input[type="range"]::-moz-range-track{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--fr-fest) var(--anteil),var(--line) var(--anteil))}
.fr-regler input[type="range"]::-webkit-slider-thumb{width:26px;height:26px;margin-top:-8px;border:3px solid var(--fr-fest);border-radius:50%;background:var(--logo-creme);box-shadow:0 4px 10px -3px rgba(0,0,0,.5);-webkit-appearance:none;appearance:none;transition:transform .15s ease}
.fr-regler input[type="range"]::-moz-range-thumb{width:20px;height:20px;border:3px solid var(--fr-fest);border-radius:50%;background:var(--logo-creme);box-shadow:0 4px 10px -3px rgba(0,0,0,.5)}
.fr-regler input[type="range"]:active::-webkit-slider-thumb{transform:scale(1.15)}
.fr-skala{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}
.fr-skala span:nth-child(2){text-align:center}
.fr-wetterhinweis{margin:0;padding:10px 12px;border-left:4px solid var(--logo-gold);border-radius:0 12px 12px 0;background:var(--brass-soft);font-size:13.5px;line-height:1.45}

/* ---------------------------------------------------------------
   Radar-Schirm (dunkles Siegel-Grün in hell und dunkel)
   --------------------------------------------------------------- */
.fr-radar{position:relative;isolation:isolate;margin-bottom:34px;padding:24px 24px 16px;border-radius:26px;color:#F9EFDC;background:radial-gradient(110% 140% at 0% 0%,rgba(246,175,47,.17),transparent 55%),linear-gradient(160deg,#1F5A3A 0%,#0B2519 62%);box-shadow:0 30px 60px -34px rgba(11,37,25,.9);overflow:hidden}
.fr-radar::before{content:"";position:absolute;z-index:-1;right:-170px;top:-190px;width:420px;height:420px;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 38px,rgba(246,175,47,.14) 38px 39.5px);pointer-events:none}
.fr-radar::after{content:"";position:absolute;z-index:-1;right:-170px;top:-190px;width:420px;height:420px;border-radius:50%;background:conic-gradient(from 0deg,rgba(246,175,47,.12),transparent 18%);animation:fr-dreh 9s linear infinite;pointer-events:none}
@keyframes fr-dreh{to{transform:rotate(360deg)}}

.fr-radar-kopf{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;margin-bottom:18px}
.fr-titelzeile{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0}
.fr-landname{font-family:var(--f-script);font-size:clamp(38px,4.6vw,56px);line-height:1;color:#F6AF2F}
.fr-landname.ist-neu{animation:fr-wort .5s cubic-bezier(.2,.8,.2,1)}
@keyframes fr-wort{from{opacity:0;transform:translateY(10px) rotate(-2deg)}}
.fr-spanne{font-size:14.5px;color:rgba(249,239,220,.8)}
.fr-zahlen{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.fr-zahl{display:flex;flex-direction:column;min-width:96px;padding:8px 12px 9px;border:1px solid rgba(249,239,220,.14);border-radius:14px;background:rgba(249,239,220,.06);transition:opacity .3s ease}
.fr-zahl b{font-family:var(--f-display);font-size:30px;line-height:1;color:var(--fr-hell);text-shadow:0 0 14px color-mix(in srgb,var(--fr-hell) 45%,transparent)}
.fr-zahl span{font-size:12.5px;color:rgba(249,239,220,.82)}
.fr-zahl.ist-aus{opacity:.35}

/* Streifen: eine Zeile für die Monate, darunter eine Spur je Kategorie */
.fr-streifen{position:relative;display:flex;flex-direction:column;gap:6px}
.fr-zeile{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:12px}
.fr-spur-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:700;color:rgba(249,239,220,.88);white-space:nowrap}
.fr-spur .fr-spur-name::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--fr-hell);box-shadow:0 0 8px var(--fr-hell)}
.fr-spur.ist-aus{opacity:.3}
.fr-bahn{position:relative;height:26px;border-radius:9px;background:rgba(249,239,220,.06)}
.fr-monate{height:24px;background:none}
.fr-monat{position:absolute;top:0;bottom:0;left:var(--x);padding:3px 0 0 5px;border-left:1px solid rgba(249,239,220,.28);font-size:11.5px;font-weight:600;color:rgba(249,239,220,.72);white-space:nowrap}
.fr-heute{position:absolute;left:0;top:0;padding:0 7px;border-radius:999px;background:#F6AF2F;color:#0B2519;font-size:11px;font-weight:800;line-height:18px}
.fr-linie{position:absolute;top:0;bottom:0;left:var(--x);width:1px;background:rgba(249,239,220,.12)}
.fr-wochenende{position:absolute;top:0;bottom:0;left:var(--x);width:var(--w);background:rgba(249,239,220,.035)}

/* Marker */
.fr-marke{position:absolute;top:50%;left:var(--x);width:max(var(--w),8px);height:14px;margin:0;padding:0;border:0;border-radius:7px;background:var(--fr-hell);box-shadow:0 0 0 1px rgba(11,37,25,.55),0 0 10px color-mix(in srgb,var(--fr-hell) 65%,transparent);transform:translateY(-50%);cursor:pointer;transition:transform .15s ease,filter .15s ease}
.fr-marke:hover{z-index:2;filter:brightness(1.15);transform:translateY(-50%) scaleY(1.45)}
.fr-marke.ist-unsicher{background:repeating-linear-gradient(135deg,var(--fr-hell) 0 4px,color-mix(in srgb,var(--fr-hell) 45%,transparent) 4px 7px)}
.fr-marke.ist-oertlich{background:transparent;box-shadow:inset 0 0 0 2px var(--fr-hell)}
.fr-streifen.ist-animiert .fr-marke{animation:fr-pop .5s cubic-bezier(.3,1.5,.5,1) calc(var(--p,0) * 1.1s) backwards}
@keyframes fr-pop{from{opacity:0;transform:translateY(-50%) scale(.2)}}

/* Radarstrahl läuft bei jeder Änderung einmal über den Streifen */
.fr-strahl{position:absolute;top:0;bottom:0;left:0;width:90px;background:linear-gradient(90deg,transparent,rgba(246,175,47,.22) 65%,rgba(246,175,47,.7) 97%,transparent);opacity:0;pointer-events:none}
.fr-streifen.ist-animiert .fr-strahl{animation:fr-strahl 1.25s cubic-bezier(.4,.1,.3,1) both}
@keyframes fr-strahl{0%{opacity:0;transform:translateX(var(--start,112px))}12%{opacity:1}88%{opacity:1}100%{opacity:0;transform:translateX(var(--ende,900px))}}
.fr-radar-fuss{margin:14px 0 0;font-size:12.5px;color:rgba(249,239,220,.7)}

/* ---------------------------------------------------------------
   Karten
   --------------------------------------------------------------- */
.fr-liste-kopf{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;margin-bottom:18px}
.fr-liste-titel{font-size:clamp(26px,3vw,32px)}
.fr-plan{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 14px;border-radius:999px;background:var(--logo-gold);color:var(--logo-gruen);font-weight:700;font-size:14.5px}
.fr-plan.ist-neu{animation:fr-hupf .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes fr-hupf{40%{transform:scale(1.12)}}
.fr-plan-funkel{flex:none;width:15px;height:15px;background:currentColor;-webkit-mask:url("../img/grafik/funkel.svg") center/contain no-repeat;mask:url("../img/grafik/funkel.svg") center/contain no-repeat}

.fr-karten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none}
.fr-karte{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);align-items:start;gap:14px;min-width:0;padding:18px 18px 18px 16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:inset 5px 0 0 var(--fr-k);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.fr-karte:hover{transform:translateY(-4px);box-shadow:inset 5px 0 0 var(--fr-k),0 24px 44px -30px rgba(15,30,22,.6)}
.fr-karte.ist-neu{animation:fr-rein .5s cubic-bezier(.2,.8,.2,1) calc(var(--i,0) * 40ms) backwards}
@keyframes fr-rein{from{opacity:0;transform:translateY(18px) scale(.97)}}
.fr-karte.ist-ziel{animation:fr-blink 1.6s ease}
@keyframes fr-blink{25%,60%{box-shadow:inset 5px 0 0 var(--fr-k),0 0 0 4px var(--fr-k)}}
.fr-karte.ist-geplant{border-color:var(--fr-k)}

/* Kalenderblatt */
.fr-blatt{display:flex;flex-direction:column;align-items:center;width:64px;padding-bottom:7px;border-radius:12px;background:#F9EFDC;color:#0B2519;text-align:center;box-shadow:0 10px 18px -12px rgba(0,0,0,.6),inset 0 0 0 1px rgba(11,37,25,.14);overflow:hidden}
.fr-blatt-wt{display:block;width:100%;padding:3px 0 2px;background:var(--fr-fest);color:var(--fr-fest-text);font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.fr-blatt-tag{margin-top:2px;font-family:var(--f-display);font-weight:700;font-size:30px;line-height:1.05}
.fr-blatt-monat{font-size:12.5px;font-weight:700;color:#9A6510}

.fr-karte-text{display:flex;flex-direction:column;gap:7px;min-width:0}
.fr-plaketten{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin:0}
.fr-plakette{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.25}
.fr-plakette-kat{background:color-mix(in srgb,var(--fr-k) 15%,transparent);color:var(--fr-k)}
.fr-plakette-genau{border:1.5px dashed currentColor;color:var(--muted)}
.fr-plakette-lang{background:var(--logo-gold);color:var(--logo-gruen)}
.fr-karte-titel{margin:0;font-family:var(--f-display);font-weight:700;font-size:23px;line-height:1.15;text-wrap:balance;overflow-wrap:anywhere}
.fr-wann{margin:0;color:var(--muted);font-weight:600;font-size:14px}
.fr-erkl{margin:0;font-size:15px;line-height:1.5}
.fr-hinweis{margin:0;padding-left:10px;border-left:2px solid var(--fr-k);color:var(--muted);font-size:13.5px;line-height:1.45}
.fr-tipps{display:grid;gap:6px;margin:4px 0 0}
.fr-tipp{padding:8px 10px;border-radius:10px;background:var(--bg)}
.fr-tipp dt{color:var(--muted);font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.fr-tipp dd{margin:2px 0 0;font-size:14.5px;line-height:1.45}
.fr-tipp-angebot{box-shadow:inset 3px 0 0 var(--fr-k)}
.fr-tipp-oeffnung{background:var(--brass-soft)}

/* Länderkürzel auf der Siegel-Plakette; Welttage und mehrere Länder zeigen den Funkel aus dem Logo */
.fr-land{--pk:34px;margin-right:2px;color:#F9EFDC}
.fr-land-kuerzel{font-family:var(--f-display);font-weight:700;font-size:11.5px;line-height:1;letter-spacing:.04em}
.fr-land-funkel{width:44%;height:44%;background:#F6AF2F;-webkit-mask:url("../img/grafik/funkel.svg") center/contain no-repeat;mask:url("../img/grafik/funkel.svg") center/contain no-repeat}
.fr-land-welt{--m-fest:#0B2519}
.fr-land-nl{--m-fest:#C27F0A;color:#0B2519}
.fr-land-fr,.fr-land-gr{--m-fest:#2A3FB0}
.fr-land-se{--m-fest:#2A3FB0;color:#F6AF2F}
.fr-land-gb,.fr-land-pl,.fr-land-tr{--m-fest:#B0090D}
.fr-land-cn,.fr-land-vn{--m-fest:#B0090D;color:#F6AF2F}
.fr-land-ie,.fr-land-it{--m-fest:#1F5A3A}
.fr-land-mx{--m-fest:#1F5A3A;color:#F6AF2F}
.fr-land-us,.fr-land-th{--m-fest:#5B1A62}
.fr-land-ir{--m-fest:#3A0A3F;color:#F6AF2F}

/* Passendes Aktionspaket im Eventkalender */
.fr-paket{align-self:flex-start;display:inline-flex;align-items:center;gap:7px;color:var(--fg);font-weight:700;font-size:14px;text-decoration:underline;text-decoration-color:var(--fr-k);text-decoration-thickness:2px;text-underline-offset:4px}
.fr-paket::before{content:"";flex:none;width:14px;height:14px;background:var(--fr-k);-webkit-mask:url("../img/grafik/funkel.svg") center/contain no-repeat;mask:url("../img/grafik/funkel.svg") center/contain no-repeat}
.fr-paket:hover{text-decoration-thickness:3px}
.fr-paket:focus-visible{outline:3px solid var(--brass);outline-offset:3px;border-radius:4px}

.fr-planen{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:42px;margin-top:6px;padding:0 16px;border:2px solid var(--fr-k);border-radius:999px;background:transparent;color:var(--fg);font:inherit;font-weight:700;font-size:14.5px;cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .15s ease}
.fr-planen::before{content:"+";font-size:19px;line-height:1;color:var(--fr-k)}
.fr-planen:hover{transform:translateY(-2px)}
.fr-planen:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.fr-planen[aria-pressed="true"]{border-color:var(--fr-fest);background:var(--fr-fest);color:var(--fr-fest-text)}
.fr-planen[aria-pressed="true"]::before{content:"✓";font-size:16px;color:inherit}
.fr-bestaetigt{margin:0;padding:9px 12px;border-radius:12px;background:var(--brass-soft);font-size:13.5px;line-height:1.45;animation:fr-rein .4s ease}
.fr-bestaetigt:empty{display:none}

.fr-leer{margin:0;padding:20px 22px;border:1px dashed var(--line);border-radius:16px;background:var(--surface);color:var(--muted)}
.fr-mehr{display:flex;margin:22px auto 0}

/* Siegel-Konfetti beim Vormerken */
.fr-konfetti{position:absolute;left:0;top:0;z-index:5;width:10px;height:14px;border-radius:2px;background:var(--farbe,#F6AF2F);pointer-events:none;animation:fr-konfetti 1.5s cubic-bezier(.15,.7,.35,1) both}
.fr-konfetti.ist-rund{width:10px;height:10px;border-radius:50%}
.fr-konfetti.ist-funkel{width:16px;height:16px;border-radius:0;-webkit-mask:url("../img/grafik/funkel.svg") center/contain no-repeat;mask:url("../img/grafik/funkel.svg") center/contain no-repeat}
@keyframes fr-konfetti{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx,0px),var(--dy,-160px)) rotate(var(--dreh,360deg))}}

.fr-fuss{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 28px;margin-top:34px;padding:22px 26px;border-radius:18px;background:var(--brass-soft)}
.fr-fuss p{max-width:64ch;margin:0}

/* Ohne JavaScript: nur die Karten für das Standardland */
html:not(.js) .fr-pult,html:not(.js) .fr-streifen,html:not(.js) .fr-radar-fuss,html:not(.js) .fr-planen,html:not(.js) .fr-mehr{display:none}

/* ---------------------------------------------------------------
   Breiten
   --------------------------------------------------------------- */
@media (max-width:1100px){
  .fr-pult{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fr-pult .fr-schritt:last-child{grid-column:1/-1}
  .fr-karten{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .fr-pult{grid-template-columns:minmax(0,1fr)}
  .fr-karten{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:620px){
  .fr-schritt{padding:18px 14px 18px}
  .fr-schalterliste{grid-template-columns:minmax(0,1fr)}
  .fr-radar{padding:18px 14px 14px;border-radius:20px}
  .fr-zahlen{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .fr-zahl{min-width:0;padding:7px 9px}
  .fr-zahl b{font-size:24px}
  .fr-zahl span{font-size:11.5px;line-height:1.25}
  .fr-zeile{grid-template-columns:minmax(0,1fr);gap:2px}
  .fr-zeile-monate .fr-spur-name{display:none}
  .fr-spur-name{font-size:12px}
  .fr-bahn{height:20px}
  .fr-marke{height:12px}
  .fr-monat{font-size:10.5px;padding-left:3px}
  .fr-streifen[data-monate="12"] .fr-monat:nth-child(odd) .fr-monat-name{visibility:hidden}
  .fr-karte{grid-template-columns:52px minmax(0,1fr);gap:12px;padding:16px 14px 16px 12px}
  .fr-blatt{width:52px}
  .fr-blatt-tag{font-size:25px}
  .fr-karte-titel{font-size:20px}
  .fr-fuss{padding:18px 16px}
}
@media (prefers-reduced-motion:reduce){
  .fr-radar::after{animation:none;display:none}
}
