@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/playfair-display-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:300;font-display:swap;src:url(fonts/inter-tight-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-tight-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-tight-latin-600-normal.woff2) format("woff2")}
/* Layout: Branding 1:1 aus vo-seewiu.ch (Astra-Palette: #060097, #ffcd57, #1e293b, #67768e, #f9f6fe; Playfair Display + Inter Tight) – blauer Hero mit Suche, entdecken, Karte, goldenes "Mach mit" */
:root{
  --blue:#060097; --gold:#ffcd57; --on-gold:#060097; --logo-blue:#322382; --logo-gold:#fecc55;
  --bg:#f9f6fe; --surface:#ffffff; --ink:#1e293b; --muted:#67768e; --line:#e6e2f3;
  --accent:#060097; --accent-ink:#ffffff; --accent-soft:#ecebfb;
  --sun:#ffcd57; --sun-soft:#fff4d6; --purple:#c10fff; --tile-filter:none; --lake:#7c9fd8; --field:#eeedf8; --road:#ffffff; --danger:#b3261e;
  --display:"Playfair Display", Georgia, "Times New Roman", serif;
  --body:"Inter Tight", "Helvetica Neue", Arial, system-ui, sans-serif;
  --r:14px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0b0a22; --surface:#15133a; --ink:#ecebff; --muted:#a9a6d8; --line:#2a2764; --logo-blue:#dcd8ff;
  --accent:#b9b4ff; --accent-ink:#0b0a22; --accent-soft:#221f55;
  --sun:#ffcd57; --sun-soft:#2e2a3c; --lake:#5c7fc0; --field:#1a1846; --road:#2c2970; --danger:#f2867e; --tile-filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.6); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0b0a22; --surface:#15133a; --ink:#ecebff; --muted:#a9a6d8; --line:#2a2764; --logo-blue:#dcd8ff;
  --accent:#b9b4ff; --accent-ink:#0b0a22; --accent-soft:#221f55;
  --sun:#ffcd57; --sun-soft:#2e2a3c; --lake:#5c7fc0; --field:#1a1846; --road:#2c2970; --danger:#f2867e; --tile-filter:invert(1) hue-rotate(180deg) brightness(.82) contrast(.92) saturate(.6); color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:300 16px/1.6 var(--body);padding:0;overflow-x:clip}
img{max-width:100%}
[hidden]{display:none!important}
.wrap{max-width:1152px;margin-inline:auto;padding-inline:16px}
:root{--topbar-h:84px}
h1,h2,h3{font-family:var(--display);line-height:1.08;text-wrap:balance;margin:0}
h2{font-size:clamp(1.8rem,3.8vw,2.6rem);font-weight:400;color:var(--accent)}
h2 em,h1 em{font-weight:700}
h2 em,h1 em{font-style:normal}
h3{font-size:1.2rem;font-weight:600}
p{margin:0}
a{color:var(--accent)}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

/* header */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:30;background:linear-gradient(90deg,var(--gold),var(--purple));transform-origin:0 50%;transform:scaleX(0);display:none}
@supports (animation-timeline: scroll()){.progress{display:block;animation:grow linear both;animation-timeline:scroll(root)}}
@keyframes grow{to{transform:scaleX(1)}}
.topbar{position:sticky;top:calc(env(safe-area-inset-top,0px) + 10px);z-index:15;padding-inline:16px;margin-block:10px 14px}
.top{max-width:1120px;margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 8px 8px 20px;
  background:color-mix(in srgb,var(--surface) 94%,transparent);transition:background .35s,border-color .35s,box-shadow .35s;-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-radius:999px;box-shadow:0 8px 30px -12px rgba(6,0,151,.25)}
.brand{display:block;line-height:0;flex:0 1 auto;min-width:0}
.brand svg{width:clamp(180px,26vw,270px);height:auto;display:block}
/* Logo im hellen Header: Schriftzug-Gold etwas kräftiger, damit es auf Weiss lesbar bleibt */
.top .brand svg{--logo-gold:#c9971e}
.top .brand svg path{transition:fill .35s}
/* Header über dem blauen Startbereich: dunkel-transparent, Logo weiss */
.topbar.on-dark .top{background:rgba(6,0,151,.28);border-color:rgba(255,255,255,.18);box-shadow:none}
.topbar.on-dark .brand svg{--logo-blue:#ffffff;--logo-gold:#ffcd57}
.topbar.on-dark .nav a{color:#fff}
.topbar.on-dark .nav a:hover{background:rgba(255,255,255,.12)}
.topbar.on-dark .nav a.cta{background:var(--gold);color:var(--on-gold)}
.topbar.on-dark .nav a.cta:hover{background:var(--gold);box-shadow:0 8px 20px -8px rgba(0,0,0,.5)}
.nav{display:flex;gap:4px;align-items:center}
.nav a{padding:8px 14px;border-radius:999px;text-decoration:none;color:var(--ink);font-weight:400;font-size:.95rem;transition:background .2s}
@media (max-width:620px){.nav a:not(.cta){display:none}}
.nav a:hover{background:var(--accent-soft)}
.nav a.cta{background:var(--blue);color:#fff;font-weight:600;transition:transform .2s,box-shadow .2s}
.nav a.cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px var(--blue);background:var(--blue)}

/* hero */
.hero{position:relative;isolation:isolate;z-index:2;color:#fff;
  margin-top:calc(-1 * var(--topbar-h) - 10px);padding-block:calc(var(--topbar-h) + clamp(40px,7vw,96px)) clamp(56px,8vw,112px);
  background:radial-gradient(70% 90% at 100% 0%,rgba(193,15,255,.42),transparent 60%),radial-gradient(60% 80% at 0% 100%,rgba(255,205,87,.26),transparent 65%),var(--blue)}
.hero-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:860px){.hero-inner{grid-template-columns:minmax(0,1fr)}.stack{display:none!important}}
.hero-copy{display:grid;gap:20px;min-width:0}
.hero-bg{position:absolute;inset:0;overflow:hidden;z-index:-1;pointer-events:none}
.blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(60px);opacity:.55;pointer-events:none}
.blob.b1{width:340px;height:340px;background:var(--purple);top:-120px;right:-80px;animation:drift 14s ease-in-out infinite alternate}
.blob.b2{width:280px;height:280px;background:var(--gold);bottom:-140px;left:10%;opacity:.35;animation:drift 18s ease-in-out infinite alternate-reverse}
.grain{position:absolute;inset:0;z-index:-1;opacity:.12;background-image:radial-gradient(rgba(255,255,255,.6) 1px,transparent 1px);background-size:22px 22px;mask-image:linear-gradient(180deg,#000,transparent 80%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 80%)}
@keyframes drift{to{transform:translate(-60px,50px) scale(1.15)}}
.hero h1 .w{display:inline-block;animation:wordIn .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 70ms + 100ms)}
@keyframes wordIn{from{opacity:0;transform:translateY(.5em) rotate(2deg);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.hero .fade{animation:fadeUp .9s .5s cubic-bezier(.2,.7,.2,1) both}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.stats{display:flex;gap:clamp(18px,4vw,40px);flex-wrap:wrap;padding-top:6px}
.stat b{display:block;font-family:var(--display);font-size:clamp(1.9rem,4vw,2.6rem);color:var(--gold);line-height:1;font-variant-numeric:tabular-nums}
.stat span{font-size:.85rem;color:#c9c6f2}
.stack{position:relative;height:360px;min-width:0;align-self:start;margin-top:8px}
.float-card{position:absolute;top:40px;left:18%;width:min(240px,62%);background:rgba(255,255,255,.97);color:#1e293b;border-radius:20px;padding:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.45);display:grid;gap:8px;text-align:left;border:0;cursor:pointer;
  animation:bob 6s ease-in-out infinite;transform-origin:50% 80%;
  transition:transform .9s cubic-bezier(.65,0,.25,1),opacity .7s ease,box-shadow .6s;will-change:transform}
.float-card .ph{aspect-ratio:4/3;border-radius:14px;height:auto}
.float-card b{font-family:var(--display);font-size:1.15rem;color:var(--blue);padding-inline:6px}
.float-card small{color:#67768e;padding:0 6px 6px}
/* Positionen im Kartenstapel: 0 = vorne */
.float-card.p0{transform:translate(18%,70px) rotate(-2deg) scale(1);z-index:3}
.float-card.p1{transform:translate(-22%,10px) rotate(-8deg) scale(.92);z-index:2;animation-delay:-2s}
.float-card.p2{transform:translate(52%,-28px) rotate(6deg) scale(.86);z-index:1;animation-delay:-4s}
.float-card.p1,.float-card.p2{box-shadow:0 20px 40px -22px rgba(0,0,0,.5)}
.float-card.p1 b,.float-card.p1 small,.float-card.p2 b,.float-card.p2 small{opacity:.75;transition:opacity .6s}
.float-card.out{transform:translate(95%,140px) rotate(14deg) scale(.9);opacity:0;z-index:4}
.float-card.hid{transform:translate(52%,-28px) rotate(6deg) scale(.8);opacity:0;z-index:0;pointer-events:none}
.float-card.snap{transition:none}
.stack-dots{position:absolute;left:18%;width:min(240px,62%);transform:translateX(18%);bottom:-48px;display:flex;justify-content:center;gap:6px;z-index:5}
.stack-dots button{width:8px;height:8px;border-radius:50%;border:0;padding:0;background:rgba(255,255,255,.35);cursor:pointer;transition:width .3s,background .3s}
.stack-dots button[aria-current="true"]{width:22px;border-radius:4px;background:var(--gold)}
@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -12px}}
.hero .eyebrow{color:var(--gold)}
.hero h1{font-size:clamp(2.5rem,7vw,4.4rem);font-weight:400;max-width:15ch;color:#f9f6fe}
.hero h1 em{color:var(--gold)}
.hero .lead{font-size:1.15rem;color:#dcdaf7;max-width:52ch}
.hero .search{border-color:transparent;color:#1e293b;background:#fff;box-shadow:0 20px 40px -18px rgba(0,0,0,.5);transition:box-shadow .25s,transform .25s}
.hero .search:focus-within{transform:translateY(-2px);box-shadow:0 24px 50px -16px rgba(255,205,87,.55)}
.hero .chip{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero .chip:hover{border-color:var(--gold)}
.hero .chip[aria-pressed="true"]{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.hero .filters .lbl{color:#c9c6f2}
.heart{display:flex;align-items:center;gap:14px;color:var(--accent);margin-block:8px}
.heart::before,.heart::after{content:"";flex:1;height:1px;background:var(--line)}
.search{display:flex;gap:8px;align-items:center;background:var(--surface);border:1.5px solid var(--line);border-radius:999px;padding:6px 6px 6px 18px;max-width:620px}
.search input{flex:1;min-width:0;border:0;background:transparent;padding:10px 0;font-size:1.05rem;outline:none}
.search:focus-within{border-color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 14px;cursor:pointer;font-weight:400;font-size:.92rem;transition:background .2s,border-color .2s,transform .2s}
.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.filters{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center}
.filters .grp{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filters .lbl{font-size:.8rem;color:var(--muted);margin-right:2px}

/* season band */
.season{margin-block:26px;background:var(--sun-soft);border-radius:24px;padding:clamp(18px,3vw,28px);display:grid;gap:14px}
.season-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.season-head h2{font-size:1.5rem}
.season-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}
.s-item{flex:0 0 220px;scroll-snap-align:start;background:var(--surface);border-radius:18px;overflow:hidden;cursor:pointer;border:0;padding:0;text-align:left;display:grid;transition:transform .3s}
.s-item:hover{transform:translateY(-4px) rotate(-1deg)}
.s-item .ph{aspect-ratio:4/3}
.s-item div.t{padding:10px 12px;display:grid;gap:2px}
.s-item strong{font-weight:600}
.s-item small{color:var(--muted)}

/* section */
section.block{padding-block:clamp(40px,7vw,80px)}
.sec-head h2{font-size:clamp(2.2rem,5vw,3.4rem)}
.eyebrow.pill{display:inline-block;background:var(--accent-soft);color:var(--accent);padding:5px 12px;border-radius:999px;margin-bottom:12px}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.count{color:var(--muted);font-variant-numeric:tabular-nums}

/* cards */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px}
.card{position:relative;background:var(--surface);border-radius:24px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;cursor:pointer;border:1px solid var(--line);text-align:left;padding:0;
  box-shadow:0 1px 2px rgba(6,0,151,.04);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover{transform:translateY(-6px);box-shadow:0 26px 50px -24px rgba(6,0,151,.35)}
.card .mosaic{overflow:hidden}
.card .ph{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.card:hover .ph{transform:scale(1.06)}
.card .go{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center;transform:scale(.6) rotate(-45deg);opacity:0;transition:.35s cubic-bezier(.2,.7,.2,1)}
.card:hover .go,.card:focus-visible .go{opacity:1;transform:none}
.mosaic{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:3px;aspect-ratio:3/2;background:var(--line)}
.mosaic > :first-child{grid-row:1/3}
.mosaic.n1{grid-template-columns:1fr;grid-template-rows:1fr}
.mosaic.n1 > :first-child{grid-row:auto}
.mosaic.n2{grid-template-rows:1fr}
.mosaic.n2 > :first-child{grid-row:auto}
.ph{width:100%;height:100%;object-fit:cover;display:block;min-height:0;max-width:100%}
.ph-empty{display:grid;place-items:center;background:
  repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--accent) 8%,transparent) 10px 20px),var(--accent-soft);
  color:var(--accent);font-family:var(--display);font-weight:800;font-size:2.6rem}
.ph-empty.small{font-size:1.6rem}
.card-body{padding:16px 18px 18px;display:grid;gap:10px;align-content:start}
.card-top{display:flex;justify-content:space-between;align-items:start;gap:10px}
.card h3{font-size:1.5rem;color:var(--accent)}
.zeile{color:var(--muted)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:.8rem;padding:3px 10px;border-radius:999px;background:var(--bg);color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.tag i{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}
.tag.dl i{background:var(--lake)}
.kat{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
.now{font-size:.75rem;font-weight:600;background:var(--gold);color:var(--on-gold);border-radius:999px;padding:3px 10px;white-space:nowrap}
.empty{background:var(--surface);border-radius:var(--r);padding:28px;color:var(--muted);display:grid;gap:8px}

/* map */
.mapbox{background:var(--surface);border-radius:24px;border:1px solid var(--line);padding:12px;display:grid;gap:10px}
.lmap{height:clamp(340px,52vw,520px);border-radius:16px;overflow:hidden;background:var(--field);z-index:0}
.lmap.is-grey .leaflet-tile-pane{filter:var(--tile-filter)}
.leaflet-container{font:inherit;font-size:.85rem}
.leaflet-control-attribution{font-size:.7rem}
.leaflet-bar a{color:var(--blue)}
.lpin{background:none;border:0}
.lpin span{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--c,#060097);color:#fff;font-family:var(--display);font-weight:700;font-size:1.15rem;border:3px solid #fff;box-shadow:0 6px 16px -4px rgba(0,0,0,.45);cursor:pointer;transition:transform .2s}
.lpin span:hover,.leaflet-marker-icon:focus-visible span{transform:scale(1.15)}
.leaflet-marker-icon:focus-visible{outline:none}
.leaflet-marker-icon:focus-visible span{outline:3px solid var(--gold);outline-offset:2px}
.ltip{font:inherit;font-size:.9rem;border-radius:10px;padding:6px 10px;color:#1e293b}
.ltip b{font-family:var(--display);color:#060097;font-size:1rem}
.seg{display:inline-flex;gap:6px}
.map-note{margin-left:10px;color:var(--danger)}
.maplinks{display:flex;flex-wrap:wrap;gap:6px 16px}
.pickmap{height:300px;border-radius:12px;overflow:hidden;border:1.5px solid var(--line);background:var(--field)}
.pickmap.is-grey .leaflet-tile-pane{filter:var(--tile-filter)}
.geo-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.geo-results{display:flex;flex-wrap:wrap;gap:6px}
.map-legend{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--muted);padding-inline:4px}

/* join */
.join{position:relative;overflow:hidden;background:radial-gradient(60% 120% at 100% 0%,rgba(255,255,255,.55),transparent 60%),radial-gradient(50% 90% at 0% 100%,rgba(193,15,255,.10),transparent 60%),var(--gold);color:var(--on-gold);padding-block:clamp(56px,8vw,110px);margin-top:clamp(24px,4vw,48px)}
.join-inner{display:grid;gap:clamp(22px,4vw,56px);grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center}
@media (max-width:760px){.join-inner{grid-template-columns:minmax(0,1fr)}}
.join .benefits{background:rgba(255,255,255,.45);border-radius:24px;padding:clamp(18px,3vw,32px)}
.join h2{color:var(--on-gold);font-size:clamp(2.2rem,4.6vw,3.4rem);font-weight:400}
.join h2 em{font-weight:700}
.join p{opacity:.9;max-width:52ch}
.benefits{display:grid;gap:14px;align-content:start}
.benefit{display:grid;grid-template-columns:28px 1fr;gap:10px}
.benefit b{display:block}
.benefit svg{margin-top:3px}
.contact-card{background:rgba(255,255,255,.55);border-radius:12px;padding:16px;display:grid;gap:6px}
.copyrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.copy{border:1.5px solid currentColor;background:transparent;border-radius:999px;padding:3px 12px;cursor:pointer;font-size:.85rem;color:inherit}
footer{padding-block:24px 40px;color:var(--muted);font-size:.9rem;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}

/* sheet (detail + editor) */
.sheet{position:fixed;inset:0;z-index:20;background:color-mix(in srgb,var(--ink) 45%,transparent);display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:max(16px,env(safe-area-inset-top,0px)) 12px 40px}
.panel{background:var(--bg);width:100%;max-width:880px;border-radius:20px;overflow:hidden;position:relative}
.close{position:absolute;top:12px;right:12px;z-index:2;border:0;background:var(--surface);border-radius:999px;width:40px;height:40px;cursor:pointer;font-size:1.3rem;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.d-hero{aspect-ratio:2/1;background:var(--line);position:relative;overflow:hidden}
/* Zugeschnittenes Foto: zeigt genau das gespeicherte Rechteck (Behälter hat dasselbe Seitenverhältnis) */
img.cropped{position:absolute;left:calc(var(--x) / var(--w) * -100%);top:calc(var(--y) / var(--h) * -100%);width:calc(100% / var(--w));height:calc(100% / var(--h));max-width:none;object-fit:fill}
/* Zuschnitt-Werkzeug im Admin */
.croppanel{display:grid;gap:12px;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:14px;margin-top:6px}
.croppanel .seg{display:flex;flex-wrap:wrap;gap:6px}
.crophint{font-size:.88rem;color:var(--muted);margin:0}
.croprow{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;align-items:start}
@media (max-width:640px){.croprow{grid-template-columns:minmax(0,1fr)}}
.cropper{position:relative;overflow:hidden;border-radius:10px;background:#000;touch-action:none;user-select:none;line-height:0;justify-self:start;max-width:100%}
.cropper img{display:block;max-width:100%;max-height:380px;width:auto;height:auto;opacity:.95;cursor:crosshair}
.cbox{position:absolute;box-shadow:0 0 0 9999px rgba(0,0,30,.55);outline:2px solid #fff;outline-offset:-1px;cursor:move;touch-action:none;
  background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:33.333% 33.333%;background-position:-1px -1px}
.cbox.drag{outline-color:var(--gold)}
.cbox:focus-visible{outline:3px solid var(--gold)}
.cprev{display:grid;gap:6px;font-size:.8rem;color:var(--muted)}
.cprev-box{position:relative;overflow:hidden;border-radius:10px;background:var(--line);width:100%}
.cropctl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cropctl input[type=range]{flex:1;min-width:140px;accent-color:var(--accent)}
.d-hero .ph-empty{font-size:4rem}
.d-body{padding:22px clamp(16px,4vw,32px) 32px;display:grid;gap:22px}
.d-title{display:grid;gap:6px}
.d-title h2{font-size:clamp(2.1rem,5vw,3.2rem)}
.d-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:20px;align-items:start}
.d-text{white-space:pre-line;max-width:62ch;min-width:0}
.kontakt{background:var(--surface);border-radius:var(--r);padding:16px;display:grid;gap:10px;min-width:0}
.kontakt .row{display:grid;gap:2px}
.kontakt .row span{font-size:.78rem;color:var(--muted)}
.kontakt .val{display:flex;gap:8px;align-items:center;flex-wrap:wrap;word-break:break-word}
.kontakt .copy{color:var(--accent)}
.offers{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr))}
.offer{background:var(--surface);border-radius:var(--r);overflow:hidden;display:grid;grid-template-rows:auto 1fr}
.offer .ph{aspect-ratio:4/3;height:auto}
.offer .ob{padding:14px 16px 16px;display:grid;gap:8px;align-content:start}
.offer .typ{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.months{display:grid;grid-template-columns:repeat(12,1fr);gap:2px}
.months span{font-size:.62rem;text-align:center;padding:3px 0;border-radius:4px;background:var(--bg);color:var(--muted);font-variant-numeric:tabular-nums}
.months span.on{background:var(--accent);color:var(--accent-ink)}
.months span.cur{outline:2px solid var(--sun);outline-offset:-1px}
.allyear{font-size:.82rem;color:var(--muted)}

/* admin */
.adminbar{display:none;background:var(--ink);color:var(--bg);border-radius:12px;padding:10px 14px;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:6px}
.adminbar.show{display:flex}
.btn{border:0;border-radius:999px;padding:9px 18px;cursor:pointer;font-weight:600;background:var(--accent);color:var(--accent-ink)}
.btn.ghost{background:transparent;color:inherit;border:1.5px solid currentColor}
.btn.light{background:var(--bg);color:var(--ink)}
.btn.danger{background:var(--danger);color:#fff}
.btn:disabled{opacity:.5;cursor:default}
.edit-btn{border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 12px;cursor:pointer;font-size:.85rem;font-weight:600}
form.ed{padding:24px clamp(16px,4vw,32px) 30px;display:grid;gap:20px}
.fgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.field{display:grid;gap:5px;min-width:0}
.field label{font-size:.85rem;font-weight:600}
.field small{color:var(--muted);font-size:.8rem}
.field input,.field textarea,.field select{background:var(--surface);border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
.field textarea{min-height:96px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);outline:none}
.full{grid-column:1/-1}
.fs{border:1.5px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:14px;background:var(--surface)}
.fs > .fs-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.offer-ed{border:1.5px dashed var(--line);border-radius:12px;padding:14px;display:grid;gap:12px;background:var(--bg)}
.photo-pick{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.photo-pick .thumb{width:96px;height:72px;border-radius:8px;overflow:hidden;background:var(--line);flex:0 0 auto}
.mtoggle{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.mtoggle button{border:1.5px solid var(--line);background:var(--surface);border-radius:6px;padding:6px 0;font-size:.78rem;cursor:pointer}
.mtoggle button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ed-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;align-items:center}
.ed-actions .r{display:flex;gap:10px;flex-wrap:wrap}
.status{font-size:.9rem;color:var(--muted)}
.status.err{color:var(--danger)}
.confirm{display:flex;gap:8px;align-items:center;flex-wrap:wrap;background:var(--surface);border:1.5px solid var(--danger);border-radius:12px;padding:8px 12px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;z-index:40;font-weight:500}
@supports (animation-timeline: view()){
  .reveal{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 75%}
  .reveal-x{animation:slideIn linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
  .parallax{animation:para linear both;animation-timeline:scroll(root);animation-range:0 600px}
  .steps .line i{animation:draw linear both;animation-timeline:view();animation-range:entry 20% cover 50%}
}
@keyframes rise{from{opacity:0;translate:0 48px;scale:.97}to{opacity:1;translate:0 0;scale:1}}
@keyframes slideIn{from{opacity:0;translate:-40px 0}to{opacity:1;translate:0 0}}
@keyframes para{to{translate:0 60px;opacity:.55}}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.mapbox.inview .lpin span{animation:drop .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i,0) * 120ms)}
@keyframes drop{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;grid-column:1/-1}
@media (max-width:720px){.steps{grid-template-columns:minmax(0,1fr)}.steps .line{display:none}}
.steps .line{position:absolute;top:26px;left:8%;right:8%;height:2px;background:rgba(6,0,151,.15)}
.steps .line i{display:block;height:100%;background:var(--blue);transform-origin:0 50%}
.step{position:relative;display:grid;gap:8px;background:rgba(255,255,255,.6);border-radius:20px;padding:18px}
.step .n{width:52px;height:52px;border-radius:50%;background:var(--blue);color:var(--gold);display:grid;place-items:center;font-family:var(--display);font-size:1.4rem;box-shadow:0 0 0 6px var(--gold)}
.step b{font-family:var(--display);font-size:1.25rem;font-weight:400}
footer{border-top:0}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- Unterseiten: Anmeldung, Impressum, Datenschutz ---------- */
footer a{color:inherit}
.login,.legal{max-width:640px;padding-block:clamp(24px,6vw,64px) 56px;display:grid;gap:16px;align-content:start}
.login h1,.legal h1{font-size:clamp(2.4rem,6vw,3.4rem);font-weight:400;color:var(--accent)}
.legal h2{font-size:1.35rem;margin-top:14px}
.legal p{max-width:62ch}
.login-form{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:20px}
.note{border-radius:12px;padding:12px 14px}
.note.ok{background:var(--accent-soft);color:var(--ink)}
.note.err{background:color-mix(in srgb,var(--danger) 12%,var(--surface));color:var(--danger)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
a.btn{display:inline-block;text-decoration:none}
.adminbar .btn.ghost{color:var(--bg)}

/* ---------- Teilen ---------- */
.sharebar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sharebar .btn{display:inline-flex;align-items:center;gap:8px;font-size:.92rem;padding:8px 16px}
.sharebar .btn.ghost{color:var(--accent);border-color:var(--line);background:var(--surface)}
.btn.ghost.dark{color:var(--accent);border:1.5px solid var(--line)}

/* ---------- Anbieterseite ---------- */
.profile{display:grid;gap:clamp(28px,5vw,56px);padding-block:8px 64px}
.crumbs a{color:var(--muted);text-decoration:none;font-size:.95rem}
.crumbs a:hover{color:var(--accent)}
.p-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(24px,4vw,56px);align-items:center}
@media (max-width:820px){.p-head{grid-template-columns:minmax(0,1fr)}.p-photo{order:-1}}
.p-intro{display:grid;gap:16px;min-width:0}
.p-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.p-badges .eyebrow.pill{margin:0}
.p-intro h1{font-size:clamp(2.8rem,8vw,5rem);font-weight:400;color:var(--accent);line-height:1}
.p-zeile{font-size:1.25rem;color:var(--muted);max-width:40ch}
.p-photo{border-radius:28px;overflow:hidden;aspect-ratio:4/3;position:relative;background:var(--line);box-shadow:0 30px 60px -30px rgba(6,0,151,.45)}
.p-photo .ph-empty{font-size:6rem}
.p-cols{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(20px,4vw,48px);align-items:start}
@media (max-width:820px){.p-cols{grid-template-columns:minmax(0,1fr)}}
.p-text{display:grid;gap:12px;max-width:62ch}
.p-text h2,.p-section h2{font-size:clamp(1.8rem,4vw,2.4rem)}
.p-section{display:grid;gap:18px}
.p-map{height:clamp(260px,40vw,380px)}
.notfound{min-height:50vh}

a.card{text-decoration:none;color:inherit}
a.card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}

/* ---------- Suche: Sofort-Ergebnisse ---------- */
.search-wrap{position:relative;z-index:5;max-width:620px}
.search-wrap .search{max-width:none}
.suggest{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:6;background:#fff;color:#1e293b;border-radius:22px;box-shadow:0 30px 60px -20px rgba(0,0,40,.55);padding:8px;display:grid;gap:2px;max-height:min(62vh,460px);overflow:auto;animation:sugIn .18s ease-out}
@keyframes sugIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.sug{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 10px;border-radius:14px;cursor:pointer;text-decoration:none;color:inherit}
.sug:hover,.sug[aria-selected="true"]{background:#f1effc}
.sug .th{width:44px;height:44px;border-radius:12px;overflow:hidden;background:#ecebfb}
.sug .th .ph{width:100%;height:100%}
.sug .th .ph-empty{font-size:1.1rem}
.sug b{font-family:var(--display);font-weight:700;color:#060097;font-size:1.05rem;display:block;line-height:1.2}
.sug small{display:block;color:#67768e;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sug .k{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#67768e}
.sug-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 10px 4px;border-top:1px solid #ecebfb;margin-top:4px;font-size:.88rem;color:#67768e}
.sug-foot button{border:0;background:#060097;color:#fff;border-radius:999px;padding:8px 14px;font-weight:600;cursor:pointer}
.sug-empty{padding:14px 12px;display:grid;gap:6px}
.sug-empty b{color:#060097;font-family:var(--display);font-size:1.1rem;font-weight:400}
.sug-empty button{justify-self:start;border:1.5px solid #e6e2f3;background:#fff;border-radius:999px;padding:6px 12px;cursor:pointer;color:#060097}
mark{background:rgba(255,205,87,.6);color:inherit;border-radius:3px;padding:0 1px}

/* ---------- Live-Treffer im Startbereich ---------- */
.hero-foot{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;padding-top:6px}
.showres{display:inline-flex;align-items:center;gap:10px;border:0;border-radius:999px;background:var(--gold);color:var(--on-gold);font-weight:600;font-size:1rem;padding:12px 20px;cursor:pointer;box-shadow:0 14px 30px -12px rgba(0,0,0,.5);transition:transform .2s}
.showres:hover{transform:translateY(-2px)}
.showres .n{font-family:var(--display);font-size:1.35rem;line-height:1;font-variant-numeric:tabular-nums}
.showres svg{animation:nudge 1.6s ease-in-out infinite}
.showres.bump{animation:bump .35s ease-out}
@keyframes nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.07)}100%{transform:scale(1)}}

/* ---------- Ergebniszeile über den Karten ---------- */
#entdecken{scroll-margin-top:92px}
.resbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;background:var(--accent-soft);border-radius:18px;padding:12px 14px 12px 18px;margin-bottom:22px}
.resbar .sum{font-size:1.02rem}
.resbar .sum b{font-family:var(--display);color:var(--accent);font-size:1.2rem;font-weight:700}
.resbar .fchips{display:flex;flex-wrap:wrap;gap:6px}
.fchip{display:inline-flex;align-items:center;gap:6px;border:0;background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 8px 5px 12px;font-size:.88rem;cursor:pointer}
.fchip span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--bg);font-size:.9rem;line-height:1}
.fchip:hover span{background:var(--accent);color:var(--accent-ink)}
.resbar .reset{margin-left:auto;border:0;background:none;color:var(--accent);text-decoration:underline;cursor:pointer;font-size:.92rem}
.resbar.flash{animation:flash 1.1s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(255,205,87,.9)}100%{box-shadow:0 0 0 14px rgba(255,205,87,0)}}
.tag.hit{background:var(--gold);color:var(--on-gold)}
.tag.hit i{background:var(--on-gold)}
.snip{font-size:.88rem;color:var(--muted)}
.linkbtn{border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit}
.tag.hit mark{background:rgba(255,255,255,.7)}
.showres .n{font-weight:700}

/* ---------- Galerie in Angeboten ---------- */
.gal{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--line)}
.gal-track{display:flex;height:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.gal-track::-webkit-scrollbar{display:none}
.gal-track img{flex:0 0 100%;width:100%;height:100%;object-fit:cover;scroll-snap-align:start;cursor:zoom-in}
.gal-track img:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#060097;font-size:1.4rem;line-height:1;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.25);opacity:0;transition:opacity .2s}
.gal-nav.prev{left:8px}.gal-nav.next{right:8px}
.gal:hover .gal-nav,.gal:focus-within .gal-nav{opacity:1}
.gal-nav:disabled{opacity:0!important;pointer-events:none}
@media (hover:none){.gal-nav{display:none}}
.gal-count{position:absolute;top:8px;right:8px;background:rgba(6,0,40,.6);color:#fff;font-size:.75rem;padding:2px 8px;border-radius:999px;font-variant-numeric:tabular-nums;pointer-events:none}
.gal-dots{position:absolute;left:0;right:0;bottom:8px;display:flex;justify-content:center;gap:5px}
.gal-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.6);cursor:pointer;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.gal-dots i.on{background:#fff;width:16px;border-radius:4px}
.gal-zoom{position:absolute;left:8px;top:8px;width:26px;height:26px;border-radius:50%;background:rgba(6,0,40,.55);color:#fff;display:grid;place-items:center;pointer-events:none;opacity:0;transition:opacity .2s}
.gal:hover .gal-zoom{opacity:1}

/* ---------- Grossansicht ---------- */
.lb{position:fixed;inset:0;z-index:50;background:rgba(4,2,30,.92);display:grid;place-items:center;padding:56px 16px;touch-action:pan-y}
.lb figure{margin:0;display:grid;gap:10px;justify-items:center;max-width:min(1200px,100%)}
.lb img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;border-radius:8px;user-select:none;-webkit-user-drag:none}
.lb figcaption{color:#dcdaf7;font-size:.9rem;font-variant-numeric:tabular-nums}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;border-radius:50%;width:48px;height:48px;font-size:1.8rem;line-height:1;cursor:pointer;display:grid;place-items:center}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb .lb-close{top:calc(14px + env(safe-area-inset-top,0px));right:14px}
.lb .lb-nav.prev{left:14px;top:50%;transform:translateY(-50%)}
.lb .lb-nav.next{right:14px;top:50%;transform:translateY(-50%)}

/* ---------- Mehrere Fotos im Admin ---------- */
.ofotos{display:flex;flex-wrap:wrap;gap:10px}
.ofoto{position:relative;width:110px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--line)}
.ofoto .ph{width:100%;height:100%}
.ofoto-main,.ofoto-first{position:absolute;left:6px;bottom:6px;font-size:.68rem;border-radius:999px;padding:2px 8px;border:0}
.ofoto-main{background:var(--gold);color:var(--on-gold);font-weight:600}
.ofoto-first{background:rgba(255,255,255,.9);color:var(--accent);cursor:pointer}
.ofoto-rm{position:absolute;top:5px;right:5px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(6,0,40,.7);color:#fff;cursor:pointer;line-height:1;font-size:1rem}
.ofoto.add{display:grid;place-items:center;border:1.5px dashed var(--line);background:var(--surface);color:var(--accent);font-weight:600;cursor:pointer}
.ofoto.add input{position:absolute;width:1px;height:1px;opacity:0}
.ofoto.add:focus-within{outline:3px solid var(--gold)}

/* ---------- Mehrere Anbieter an einer Adresse ---------- */
.lmulti{background:none;border:0}
.lmulti .multi{position:relative;display:block;height:40px;cursor:pointer}
.lmulti .multi i{position:absolute;top:0;left:calc(var(--k) * 20px);width:40px;height:40px;border-radius:50%;background:var(--c);color:#fff;border:3px solid #fff;display:grid;place-items:center;font:700 1.05rem var(--display);font-style:normal;box-shadow:0 6px 16px -4px rgba(0,0,0,.45);z-index:calc(3 - var(--k))}
.lmulti .multi b{position:absolute;right:-8px;top:-8px;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:var(--gold);color:var(--on-gold);font:700 .78rem var(--body);display:grid;place-items:center;border:2px solid #fff;z-index:4}
.mapbox.inview .lmulti .multi{animation:drop .7s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--i,0) * 120ms)}
.lpop .leaflet-popup-content-wrapper{border-radius:16px}
.lpop .leaflet-popup-content{margin:14px 14px 10px;font:inherit}
.mpop{display:grid;gap:4px;color:#1e293b}
.mpop>b{font-family:var(--display);color:#060097;font-size:1.05rem;font-weight:700}
.mpop>small{color:#67768e}
.mpop ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.mpop button{display:flex;gap:10px;align-items:center;width:100%;text-align:left;border:0;background:#f1effc;border-radius:12px;padding:8px 10px;cursor:pointer;font:inherit;color:inherit}
.mpop button:hover{background:#e3e0fa}
.mpop i{flex:0 0 30px;height:30px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font:700 .9rem var(--display);font-style:normal}
.mpop span{display:grid;line-height:1.25}
.mpop span small{color:#67768e;font-size:.8rem}
.samehere .nb{display:flex;flex-wrap:wrap;gap:6px}
.samehere .nb a{display:inline-flex;align-items:center;gap:6px;background:var(--bg);border-radius:999px;padding:3px 10px 3px 3px;text-decoration:none;color:var(--accent);font-size:.9rem}
.samehere .nb i{width:22px;height:22px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font:700 .75rem var(--display);font-style:normal}

/* ---------- Kompakter Kopf: Kontaktleiste statt Kontaktbox ---------- */
.cbar{display:flex;flex-wrap:wrap;gap:8px}
.cchip{display:inline-flex;align-items:center;gap:7px;min-width:0;max-width:100%;padding:7px 13px;border-radius:999px;background:var(--surface);border:1px solid var(--line);color:var(--accent);text-decoration:none;font-size:.92rem;transition:background .2s,border-color .2s}
.cchip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cchip svg{flex:0 0 auto}
a.cchip:hover{background:var(--accent-soft);border-color:var(--accent-soft)}
span.cchip{color:var(--ink)}
p.samehere{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:.9rem;color:var(--muted);margin:0}
p.samehere a{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 10px 2px 2px;text-decoration:none;color:var(--accent)}
p.samehere i{width:22px;height:22px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;font:700 .75rem var(--display);font-style:normal}
.clamp{display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;max-width:68ch}
.clamp.open{display:block;-webkit-line-clamp:unset;line-clamp:unset}
.clamp p{margin:0 0 .6em}.clamp p:last-child{margin:0}
.more{justify-self:start;border:0;background:none;padding:0;color:var(--accent);text-decoration:underline;cursor:pointer;font:inherit;font-size:.92rem;margin-top:-6px}

/* Fenster */
.d-body{gap:16px}
.d-titlerow{display:flex;justify-content:space-between;align-items:center;gap:10px}
.d-actions{display:flex;gap:8px;align-items:center}
.iconbtn{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--accent);display:grid;place-items:center;cursor:pointer}
.iconbtn:hover{background:var(--accent-soft)}
.d-offers{display:grid;gap:12px;margin-top:6px}
.d-offers h3{font-size:1.5rem;color:var(--accent);font-weight:400}
.d-share{border-top:1px solid var(--line);padding-top:16px;margin-top:6px}
.d-share .lbl{font-size:.9rem;color:var(--muted);margin-right:auto}

/* Anbieterseite */
.p-intro{gap:14px}
.p-intro .clamp{-webkit-line-clamp:4;line-clamp:4}
.p-intro .clamp.open{-webkit-line-clamp:unset;line-clamp:unset}
.profile{gap:clamp(24px,4vw,44px)}
.p-head{align-items:start}
.p-photo{margin-top:8px}

/* Mehrere Kategorien im Admin */
.katpick{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.katpick .chip[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.katnew{display:inline-flex;gap:6px;align-items:center}
.katnew input{width:160px;padding:6px 12px!important;border-radius:999px!important}
.p-badges .eyebrow.pill+.eyebrow.pill{margin-left:0}
/* ---------- «Gerade aktuell» ---------- */
.aktuell{margin-block:26px 0;background:var(--blue);color:#fff;border-radius:24px;padding:clamp(18px,3vw,28px);display:grid;gap:14px;position:relative;overflow:hidden}
.aktuell::after{content:"";position:absolute;right:-60px;top:-80px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,205,87,.35),transparent 70%);pointer-events:none}
.aktuell h2{color:#fff;font-size:1.5rem;display:flex;align-items:center;gap:10px}
.aktuell .count{color:rgba(255,255,255,.75)}
.live{width:10px;height:10px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(255,205,87,.7);animation:livepulse 1.8s infinite}
@keyframes livepulse{70%{box-shadow:0 0 0 10px rgba(255,205,87,0)}100%{box-shadow:0 0 0 0 rgba(255,205,87,0)}}
.akt-row{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory;position:relative;z-index:1}
.akt-item{flex:0 0 min(320px,82%);scroll-snap-align:start;background:#fff;color:#1e293b;border:0;border-radius:18px;padding:10px;display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:transform .3s}
.akt-item:hover{transform:translateY(-3px)}
.akt-item .th{width:72px;height:72px;border-radius:12px;overflow:hidden;display:block}
.akt-item .th .ph{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;border-radius:0}
.akt-item .t{display:grid;gap:2px;min-width:0}
.akt-item small{color:#67768e;font-size:.8rem}
.akt-item strong{font-weight:600;line-height:1.3;color:#060097;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.akt-item em{font-style:normal;font-size:.78rem;color:#67768e}
.akt-badge{font-size:.72rem;font-weight:600;letter-spacing:.04em;background:var(--blue);color:#fff;border-radius:999px;padding:3px 10px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.akt-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.card-top .akt-badge{margin-left:auto}
.card-top .akt-badge+.now{margin-left:0}
.akt-line{display:flex;gap:7px;align-items:flex-start;font-size:.9rem;font-weight:400;color:var(--accent);background:var(--accent-soft);border-radius:10px;padding:6px 10px;line-height:1.35}
.akt-line svg{flex:0 0 auto;margin-top:2px}
.aktbox{display:flex;gap:12px;align-items:flex-start;background:var(--sun-soft);border-left:4px solid var(--gold);border-radius:12px;padding:12px 14px;max-width:62ch}
.aktbox svg{flex:0 0 auto;color:var(--accent);margin-top:3px}
.aktbox .lbl{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.aktbox p{font-weight:600;color:var(--ink);line-height:1.4;margin:1px 0 2px}
.aktbox small{color:var(--muted);font-size:.8rem}
.p-intro .aktbox{margin-block:4px}
.lpin.has-akt span{position:relative}
.lpin.has-akt::after{content:"";position:absolute;right:-1px;top:-1px;width:13px;height:13px;border-radius:50%;background:var(--gold);border:2px solid #fff;box-shadow:0 0 0 0 rgba(255,205,87,.8);animation:livepulse 1.8s infinite;pointer-events:none}
.lpin.lmulti.has-akt::after{right:2px}
.ltip-akt{color:#060097;font-weight:600}
/* Editor */
.ed-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
a.edit-btn{text-decoration:none;color:inherit;display:inline-flex;align-items:center;gap:6px}
.akted-off .edit-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 14px}
.akted{background:var(--sun-soft);border-radius:14px;padding:12px 14px}
.aktinput{position:relative}
.aktinput input{padding-right:64px}
.aktinput .cnt{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:.75rem;color:var(--muted)}
.aktrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.aktrow label{font-weight:500;font-size:.9rem}
.aktrow input[type=date]{width:auto}
.aktrow .seg{display:flex;gap:6px;flex-wrap:wrap}
.aktrow #aktRm{margin-left:auto}
@media (prefers-reduced-motion: reduce){.live,.lpin.has-akt::after{animation:none}}
.akt-kind{display:inline-block;font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:#060097;color:#fff;border-radius:999px;padding:1px 7px;margin-right:6px;vertical-align:1px}
.akt-kind.saison{background:#ffcd57;color:#060097}
.top .nav a{white-space:nowrap}
@media (max-width:380px){.brand svg{width:150px}}
/* ---------- Statistik (Admin) ---------- */
.statpage{display:grid;gap:22px;padding-block:10px 60px}
.st-head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}
.st-head h1{font-size:clamp(2rem,4vw,2.8rem);color:var(--accent);font-weight:400}
.st-range{display:flex;gap:6px;flex-wrap:wrap}
.st-range .chip{text-decoration:none}
.st-range .chip[aria-current="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.st-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,45%),1fr));gap:12px}
@media (max-width:520px){.st-tile b{font-size:1.9rem}.st-tile{padding:12px 14px}}
.st-tile{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:16px 18px;display:grid;gap:2px}
.st-tile span{font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.st-tile b{font-family:var(--display);font-size:2.4rem;font-weight:700;color:var(--accent);line-height:1.1}
.st-tile small{color:var(--muted);font-size:.85rem}
.st-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(16px,2.5vw,24px);display:grid;gap:10px;align-content:start;min-width:0}
.st-card h2{font-size:1.4rem}
.st-sub,.st-note{color:var(--muted);font-size:.88rem}
.st-note{margin-top:8px}
.st-empty{color:var(--muted);padding:24px 0}
.st-chart{position:relative;padding:0 0 22px 0;outline:none}
.st-chart:focus-visible{outline:3px solid var(--sun);outline-offset:4px;border-radius:8px}
.st-chart svg{display:block;width:calc(100% - 32px);margin-left:32px;height:240px}
.st-chart .grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.st-chart .axis{stroke:var(--muted);stroke-width:1;vector-effect:non-scaling-stroke;opacity:.6}
.st-chart .fill{fill:var(--accent);opacity:.88;transition:opacity .15s}
.st-chart .hit{fill:transparent}
.st-chart .bar.on .fill{opacity:1}
.st-chart .bar.on .hit{fill:var(--accent-soft);opacity:.6}
.st-y{position:absolute;left:0;top:0;height:240px;width:26px;display:flex;flex-direction:column;justify-content:space-between;padding:4px 0 22px;font-size:.72rem;color:var(--muted);text-align:right;pointer-events:none}
.st-y span{line-height:1;transform:translateY(-2px)}
.st-x{position:absolute;left:0;right:0;bottom:0;height:20px;font-size:.72rem;color:var(--muted);pointer-events:none}
.st-x span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.st-tip{position:absolute;top:-6px;background:var(--ink);color:var(--bg);font-size:.8rem;padding:5px 10px;border-radius:8px;white-space:nowrap;pointer-events:none;box-shadow:0 8px 20px -10px rgba(0,0,0,.5)}
.st-cols{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:860px){.st-cols{grid-template-columns:1fr}}
.st-table{width:100%;border-collapse:collapse;font-size:.95rem}
.st-table th,.st-table td{padding:9px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.st-table thead th{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.st-table tbody th{font-weight:500}
.st-table tbody th a{color:var(--ink);text-decoration:none}
.st-table tbody th a:hover{color:var(--accent);text-decoration:underline}
.st-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.st-table td small{display:block;color:var(--muted);font-size:.75rem}
.st-table tr:target{background:var(--sun-soft)}
.st-bar{display:block;height:4px;border-radius:4px;background:var(--accent-soft);margin-top:5px;position:relative;overflow:hidden}
.st-bar::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--accent);border-radius:4px}
.st-refs{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.st-refs li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}
.st-refs .lbl{font-weight:500}
.st-refs .st-bar{grid-column:1 / -1;grid-row:2;margin:0}
.st-refs b{font-variant-numeric:tabular-nums}
