/* Buttons */
.fp-btn{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:48px;padding:.82rem 1.25rem;border:1px solid transparent;border-radius:var(--kv-radius-pill);background:var(--kv-prime);color:#fff;font-weight:700;font-size:.92rem;line-height:1;text-decoration:none;cursor:pointer;transition:transform var(--kv-duration) var(--kv-ease),background var(--kv-duration) var(--kv-ease),color var(--kv-duration) var(--kv-ease),box-shadow var(--kv-duration) var(--kv-ease)}
.fp-btn::after{content:"↗";font-size:1.05em;line-height:1;transition:transform var(--kv-duration) var(--kv-ease)}
.fp-btn:hover{color:#fff;background:var(--kv-prime);transform:translateY(-2px);box-shadow:0 10px 30px rgba(217,243,106,.16)}.fp-btn:hover::after{transform:translate(2px,-2px)}
.fp-btn--secondary{background:transparent;border-color:rgba(255,255,255,.32);color:#fff}.fp-btn--secondary:hover{background:#fff;color:var(--kv-ink-950);border-color:#fff;box-shadow:none}
.fp-btn--ink{background:var(--kv-ink-950);color:#fff}.fp-btn--ink:hover{background:var(--kv-ink-800);color:#fff;box-shadow:none}
.fp-btn--quiet{min-height:auto;padding:.45rem .15rem;background:transparent;color:inherit;border:0;border-radius:0;box-shadow:none}.fp-btn--quiet::after{display:none}.fp-btn--quiet:hover{background:transparent;color:inherit;transform:none;box-shadow:none}
.fp-btn--danger{background:var(--kv-danger);color:#fff}.fp-btn--danger:hover{background:#8e2e26;color:#fff}
.fp-btn--large{min-height:58px;padding:1rem 1.55rem;font-size:1rem}.fp-btn[disabled],.fp-btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;transform:none}

/* Badges */
.fp-badge{display:inline-flex;align-items:center;padding:.42rem .7rem;border-radius:var(--kv-radius-pill);font-family:var(--kv-font-mono);font-size:.66rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.fp-badge--ok{background:var(--kv-ok-pale);color:var(--kv-ok)}.fp-badge--warn{background:var(--kv-warn-pale);color:var(--kv-warn)}.fp-badge--danger{background:var(--kv-danger-pale);color:var(--kv-danger)}.fp-badge--muted{background:rgba(16,35,29,.07);color:var(--kv-ink-soft)}

/* Media */
.fp-media{position:relative;display:block;overflow:hidden;border-radius:inherit;background:var(--kv-paper-2)}.fp-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--kv-ease)}.fp-media--placeholder{min-height:140px;background:var(--kv-ink-900);color:var(--kv-prime)}.fp-media__mark{position:absolute;inset:0;display:grid;place-items:center;opacity:.8}.fp-media__tag{position:absolute;left:.75rem;bottom:.75rem;padding:.35rem .55rem;background:rgba(11,23,19,.78);color:#fff;border-radius:var(--kv-radius-pill);font-size:.68rem;backdrop-filter:blur(10px)}

/* Pass */
.fp-pass{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 88px;min-height:260px;border-radius:26px;overflow:hidden;background:linear-gradient(145deg,#18352b,#0d1d18 68%);color:#fff;box-shadow:var(--kv-shadow-lg);transform:rotate(2.5deg);isolation:isolate}
.fp-pass::before{content:"";position:absolute;inset:-40% auto auto -10%;width:220px;height:220px;border-radius:50%;background:rgba(217,243,106,.12);filter:blur(6px)}.fp-pass::after{content:"";position:absolute;right:22%;top:-12%;width:1px;height:130%;background:rgba(255,255,255,.14);transform:rotate(7deg)}
.fp-pass__body{position:relative;z-index:1;padding:1.75rem 1.7rem}.fp-pass__brand{font-family:var(--kv-font-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--kv-prime);margin-bottom:2.4rem}.fp-pass__brand em{font-style:normal;color:#fff}.fp-pass__holder{font-family:var(--kv-font-display);font-size:1.8rem;line-height:1.05;margin-bottom:1.8rem}.fp-pass__rows{display:grid;gap:.65rem}.fp-pass__row{display:grid;grid-template-columns:90px 1fr;gap:.5rem;margin:0;font-size:.72rem}.fp-pass__row span:first-child{color:rgba(255,255,255,.5)}.fp-pass__row span:last-child{font-weight:600}.fp-pass__stub{position:relative;z-index:1;padding:1.5rem .75rem;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:.65rem;background:rgba(255,255,255,.05)}.fp-pass__qr{width:42px;height:42px;border:6px solid #fff;background:repeating-linear-gradient(90deg,#fff 0 4px,transparent 4px 8px),repeating-linear-gradient(0deg,transparent 0 5px,#fff 5px 8px);opacity:.9}.fp-pass__stub-label{font-family:var(--kv-font-mono);font-size:.55rem;writing-mode:vertical-rl;color:rgba(255,255,255,.65);letter-spacing:.08em}.fp-pass--inactive{filter:grayscale(1);opacity:.6}

/* Generic cards */
.fp-card{overflow:hidden;border-radius:var(--kv-radius-lg);background:#fff;border:var(--kv-border);transition:transform var(--kv-duration) var(--kv-ease),box-shadow var(--kv-duration) var(--kv-ease)}.fp-card:hover{transform:translateY(-5px);box-shadow:var(--kv-shadow)}.fp-card__media{width:100%;aspect-ratio:16/10;object-fit:cover}.fp-card__body{padding:1.35rem}.fp-card__title{font-size:1.25rem}.fp-card__title a{text-decoration:none}.fp-card__meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;color:var(--kv-ink-soft);font-size:.8rem}.fp-card__foot{font-weight:600}

/* Festival showcase */
.fp-showcase{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}.fp-showcase__item{position:relative;min-height:560px;overflow:hidden;border-radius:var(--kv-radius-xl);color:#fff;text-decoration:none;background:var(--kv-ink-900);isolation:isolate}.fp-showcase__item:nth-child(2){min-height:560px}.fp-showcase__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 18%,rgba(4,15,11,.08) 45%,rgba(4,15,11,.88) 100%);z-index:-1}.fp-showcase__item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 1s var(--kv-ease),filter 1s var(--kv-ease)}.fp-showcase__item:hover{color:#fff}.fp-showcase__item:hover img{transform:scale(1.035);filter:saturate(1.08)}.fp-showcase__kicker{position:absolute;top:1.3rem;left:1.3rem;padding:.5rem .72rem;border-radius:var(--kv-radius-pill);background:rgba(246,243,235,.9);color:var(--kv-ink-950);font-family:var(--kv-font-mono);font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(10px)}.fp-showcase__text{position:absolute;left:0;right:0;bottom:0;padding:clamp(1.4rem,3vw,2.4rem)}.fp-showcase__text h3{max-width:11ch;font-family:var(--kv-font-display);font-size:clamp(2.2rem,3.7vw,4.7rem);font-weight:400;line-height:.96;letter-spacing:-.04em}.fp-showcase__item:nth-child(2) .fp-showcase__text h3{font-size:clamp(2rem,3vw,3.7rem)}.fp-showcase__text p{max-width:46ch;margin:0;color:rgba(255,255,255,.82)}

/* Features */
.fp-feature{position:relative;padding:1.5rem 0;border-top:var(--kv-border-firm)}.fp-feature__icon{width:28px;height:28px;margin-bottom:2rem;color:var(--kv-moss)}.fp-feature h3{font-size:1.1rem;margin-bottom:.5rem}.fp-feature p{font-size:.9rem;color:var(--kv-ink-soft);margin:0;max-width:30ch}

/* Artists */
.fp-artists{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.75rem,1.5vw,1.4rem)}.fp-artist{min-width:0}.fp-artist__frame{display:block;overflow:hidden;border-radius:22px;aspect-ratio:4/5;background:var(--kv-ink-800);margin-bottom:1rem}.fp-artist__frame img{width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .7s var(--kv-ease),filter .7s var(--kv-ease)}.fp-artist:hover .fp-artist__frame img{transform:scale(1.035);filter:saturate(1)}.fp-artist__name{font-weight:600;margin:0 0 .15rem}.fp-artist__name a{text-decoration:none}.fp-artist__role{font-family:var(--kv-font-mono);font-size:.67rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.55);margin:0}

/* Levels */
.fp-level{position:relative;display:flex;flex-direction:column;min-height:320px;border-radius:22px;overflow:hidden;background:#fff;border:var(--kv-border);transition:transform var(--kv-duration) var(--kv-ease),box-shadow var(--kv-duration) var(--kv-ease)}.fp-level:hover{transform:translateY(-4px);box-shadow:var(--kv-shadow)}.fp-level__head{padding:1rem 1.2rem;border-bottom:var(--kv-border);font-family:var(--kv-font-mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.09em;color:var(--kv-ink-soft);margin:0}.fp-level__body{display:flex;flex-direction:column;gap:.7rem;flex:1;padding:1.35rem}.fp-level__name{font-family:var(--kv-font-display);font-size:1.7rem;line-height:1;color:var(--kv-ink);margin:0}.fp-level__price{font-size:2.35rem;font-weight:700;letter-spacing:-.04em;line-height:1;margin:.5rem 0 0}.fp-level__price span{font-size:.75rem;font-weight:500;color:var(--kv-ink-soft);letter-spacing:0}.fp-level__year{font-size:.78rem;color:var(--kv-ink-soft)}.fp-level__list{margin:auto 0 0;padding:1rem 0 0;list-style:none;border-top:var(--kv-border);font-size:.82rem;color:var(--kv-ink-soft)}.fp-level__list li{position:relative;padding-left:1rem}.fp-level__list li+li{margin-top:.45rem}.fp-level__list li::before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--kv-moss)}.fp-level--featured{background:var(--kv-prime);border-color:transparent;transform:translateY(-8px)}.fp-level--featured .fp-level__head,.fp-level--featured .fp-level__list{border-color:rgba(16,35,29,.18)}.fp-level--featured:hover{transform:translateY(-12px)}

/* Event rows */
.fp-event-row{display:grid;grid-template-columns:80px 108px minmax(0,1fr) auto;gap:1.15rem;align-items:center;padding:1.05rem 0;border-bottom:var(--kv-border);transition:padding var(--kv-duration) var(--kv-ease)}.fp-event-row:hover{padding-left:.5rem}.fp-event-row__date{margin:0;font-family:var(--kv-font-mono);font-size:.68rem;color:var(--kv-ink-soft);text-transform:uppercase}.fp-event-row__date strong{display:block;font-family:var(--kv-font-display);font-size:2.15rem;line-height:.9;color:var(--kv-ink);font-weight:400}.fp-event-row__thumb{overflow:hidden;border-radius:12px}.fp-event-row__title{font-size:1rem;margin:0 0 .25rem}.fp-event-row__title a{text-decoration:none}.fp-event-row__meta{display:flex;flex-wrap:wrap;gap:.25rem .8rem;margin:0;font-size:.75rem;color:var(--kv-ink-soft)}.fp-event-row__meta span+span::before{content:"·";margin-right:.8rem}.fp-event-row__aside{justify-self:end}

/* Stats */
.fp-stat{padding-top:1rem;border-top:var(--kv-border-firm)}.fp-stat__value{font-family:var(--kv-font-display);font-size:2.5rem;line-height:1;margin:0 0 .35rem}.fp-stat__label{font-size:.78rem;color:var(--kv-ink-soft);margin:0}

/* Alerts / empty / skeleton */
.fp-alert{padding:1rem 1.15rem;border-radius:var(--kv-radius);background:var(--kv-paper-2);border:var(--kv-border)}.fp-alert--danger{background:var(--kv-danger-pale);color:var(--kv-danger)}.fp-empty-state{padding:clamp(3rem,7vw,7rem);text-align:center;border:var(--kv-border);border-radius:var(--kv-radius-xl);background:#fff}.fp-empty-state p{margin-inline:auto}.fp-skeleton{border-radius:var(--kv-radius);background:linear-gradient(90deg,var(--kv-paper-2),#fff,var(--kv-paper-2));background-size:200% 100%;animation:fp-shimmer 1.4s infinite}@keyframes fp-shimmer{to{background-position:-200% 0}}

/* Sweden map */
.fp-sweden-map{width:min(360px,100%);margin:auto;color:var(--kv-prime)}.fp-sweden-map svg{width:100%;filter:drop-shadow(0 24px 50px rgba(0,0,0,.18))}

@media(max-width:900px){.fp-showcase{grid-template-columns:1fr}.fp-showcase__item,.fp-showcase__item:nth-child(2){min-height:480px}.fp-artists{grid-template-columns:repeat(2,1fr)}.fp-event-row{grid-template-columns:64px 88px 1fr}.fp-event-row__aside{grid-column:3;justify-self:start}.fp-pass{transform:none}}
@media(max-width:600px){.fp-event-row{grid-template-columns:54px 1fr;align-items:start}.fp-event-row__thumb{display:none}.fp-event-row__aside{grid-column:2}.fp-artists{gap:.8rem}.fp-pass{grid-template-columns:1fr 66px;min-height:230px}.fp-pass__body{padding:1.35rem}.fp-pass__holder{font-size:1.45rem}.fp-showcase__item,.fp-showcase__item:nth-child(2){min-height:410px}}

/* 0.8.0 — richer membership levels */
.fp-level{min-height:440px;border-radius:28px;background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(16,35,29,.03);isolation:isolate}
.fp-level::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--kv-moss),transparent 72%);opacity:.55}
.fp-level__topline{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.15rem 1.35rem;border-bottom:var(--kv-border)}
.fp-level__head{padding:0;border:0;font-size:.64rem;letter-spacing:.12em}
.fp-level__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--kv-paper-2);color:var(--kv-moss)}
.fp-level__icon svg{width:22px;height:22px}
.fp-level__body{gap:1.1rem;padding:1.55rem 1.4rem 1.35rem}
.fp-level__name{font-size:2rem}
.fp-level__tagline{min-height:3.8em;margin:.45rem 0 0;font-size:.82rem;line-height:1.48;color:var(--kv-ink-soft)}
.fp-level__price-wrap{padding:1rem 0 .25rem;border-top:var(--kv-border)}
.fp-level__price{display:flex;align-items:baseline;gap:.35rem;font-size:2.65rem;margin:0}
.fp-level__price span{font-family:var(--kv-font-mono);font-size:.64rem;text-transform:uppercase;letter-spacing:.06em}
.fp-level__year{margin:.35rem 0 0;font-family:var(--kv-font-mono);font-size:.66rem;letter-spacing:.03em}
.fp-level__list{margin:0;padding:1rem 0 0;border-top:var(--kv-border);font-size:.79rem}
.fp-level__list li{display:flex;gap:.55rem;padding-left:0;line-height:1.45}
.fp-level__list li::before{display:none}
.fp-level__list li>span{color:var(--kv-moss);font-weight:700}
.fp-level__note{margin:auto 0 0;padding-top:1rem;border-top:1px dashed rgba(16,35,29,.18);font-family:var(--kv-font-mono);font-size:.62rem;line-height:1.55;color:var(--kv-ink-soft)}
.fp-level__link{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.15rem;padding:.85rem 0 0;border-top:var(--kv-border);font-size:.8rem;font-weight:700;text-decoration:none}
.fp-level__link span{font-size:1rem;transition:transform var(--kv-duration) var(--kv-ease)}
.fp-level__link:hover span{transform:translate(2px,-2px)}
.fp-level__popular{position:absolute;right:1rem;top:1rem;z-index:2;padding:.35rem .55rem;border-radius:999px;background:var(--kv-ink-950);color:#fff;font-family:var(--kv-font-mono);font-size:.53rem;letter-spacing:.08em;text-transform:uppercase}
.fp-level--featured{background:linear-gradient(160deg,#e8ff85,var(--kv-prime));transform:translateY(-10px);box-shadow:0 22px 60px rgba(16,35,29,.12)}
.fp-level--featured::before{opacity:1;background:var(--kv-ink-950)}
.fp-level--featured .fp-level__icon{background:rgba(255,255,255,.42);color:var(--kv-ink-950)}
.fp-level--featured .fp-level__topline,.fp-level--featured .fp-level__list,.fp-level--featured .fp-level__price-wrap,.fp-level--featured .fp-level__link{border-color:rgba(16,35,29,.18)}
.fp-level--featured .fp-level__note{border-color:rgba(16,35,29,.22)}

/* 0.8.0 — interactive map */
.fp-map-experience{position:relative;width:min(620px,100%);min-height:720px;margin-inline:auto;isolation:isolate}
.fp-map-experience__glow{position:absolute;left:50%;top:48%;width:75%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(217,243,106,.16),rgba(217,243,106,0) 68%);transform:translate(-50%,-50%);filter:blur(12px);pointer-events:none}
.fp-map{position:relative;z-index:1;width:100%;height:min(72vh,720px);overflow:visible}
.fp-map__outline{fill:rgba(217,243,106,.045);stroke:rgba(217,243,106,.76);stroke-width:1.35;vector-effect:non-scaling-stroke}
.fp-map__route{fill:none;stroke:rgba(217,243,106,.2);stroke-width:1.1;stroke-dasharray:4 7;vector-effect:non-scaling-stroke}
.fp-map__city{cursor:pointer;outline:none}
.fp-map__dot{fill:var(--kv-prime);stroke:var(--kv-ink-900);stroke-width:2;transition:r var(--kv-duration),fill var(--kv-duration),filter var(--kv-duration)}
.fp-map__halo{fill:rgba(217,243,106,0);stroke:rgba(217,243,106,.35);stroke-width:1;opacity:0;transition:opacity var(--kv-duration),r var(--kv-duration)}
.fp-map__pulse{fill:none;stroke:var(--kv-prime);stroke-width:1;transform-box:fill-box;transform-origin:center;animation:fp-map-pulse 2.8s ease-out infinite}
.fp-map__label{fill:var(--kv-prime);font-family:var(--kv-font-text);font-size:13px;font-weight:600;letter-spacing:.01em;paint-order:stroke;stroke:rgba(16,35,29,.86);stroke-width:3px;stroke-linejoin:round;transition:fill var(--kv-duration),font-size var(--kv-duration)}
.fp-map__city:hover .fp-map__dot,.fp-map__city:focus .fp-map__dot,.fp-map__city.is-active .fp-map__dot{r:7;filter:drop-shadow(0 0 10px rgba(217,243,106,.8));fill:#efffa2}
.fp-map__city:hover .fp-map__halo,.fp-map__city:focus .fp-map__halo,.fp-map__city.is-active .fp-map__halo{opacity:1;r:15}
.fp-map__city.is-active .fp-map__label{fill:#fff;font-size:14px}
.fp-map-card{position:absolute;right:-1.5rem;top:48%;z-index:3;width:min(280px,46%);padding:1.35rem 1.45rem;border:1px solid rgba(217,243,106,.28);border-radius:22px;background:rgba(8,25,19,.86);box-shadow:0 30px 80px rgba(0,0,0,.24);backdrop-filter:blur(18px);transform:translateY(-50%)}
.fp-map-card__eyebrow{margin:0 0 .55rem;font-family:var(--kv-font-mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--kv-prime)}
.fp-map-card h3{margin:0 0 .65rem;font-family:var(--kv-font-display);font-size:2rem;color:#fff}
.fp-map-card p:not(.fp-map-card__eyebrow){margin:0 0 1rem;font-size:.76rem;line-height:1.55;color:rgba(255,255,255,.66)}
.fp-map-card__link{display:inline-flex;align-items:center;gap:.55rem;color:#fff;font-size:.72rem;font-weight:700;text-decoration:none;border-bottom:1px solid rgba(217,243,106,.45);padding-bottom:.2rem}
.fp-map-card__link:hover{color:var(--kv-prime)}
@keyframes fp-map-pulse{0%{opacity:.8;transform:scale(.45)}70%,100%{opacity:0;transform:scale(1.9)}}
@media(prefers-reduced-motion:reduce){.fp-map__pulse{animation:none;opacity:.35}}

/* 0.9.0 — entire membership level is the interactive target. */
a.fp-level{color:var(--kv-ink-950);text-decoration:none;cursor:pointer}
a.fp-level:focus-visible{outline:3px solid var(--kv-moss);outline-offset:4px}
a.fp-level .fp-level__link{color:inherit}
a.fp-level:hover .fp-level__link>span{transform:translate(2px,-2px)}

/* Featured level badge: centered on and overlapping the top border. */
.fp-level__popular{
    left:50%;
    right:auto;
    top:0;
    transform:translate(-50%,-50%);
    white-space:nowrap;
    z-index:5;
}


/* 0.10.0 — interactive Festivalpass in hero */
.fp-pass--interactive{
    text-decoration:none;
    cursor:pointer;
    color:#fff;
    opacity:1;
    filter:none;
    transform:rotate(2.5deg) scale(1);
    transform-origin:50% 55%;
    transition:transform .52s cubic-bezier(.16,1,.3,1),box-shadow .52s cubic-bezier(.16,1,.3,1),filter .52s ease;
    will-change:transform;
}
.fp-pass--interactive:hover,
.fp-pass--interactive:focus-visible{
    color:#fff;
    opacity:1;
    transform:rotate(5deg) scale(1.065) translateY(-7px);
    box-shadow:0 34px 90px rgba(0,0,0,.34),0 10px 35px rgba(217,243,106,.10);
    filter:none;
    outline:none;
}
.fp-pass--interactive:link,
.fp-pass--interactive:visited,
.fp-pass--interactive:hover,
.fp-pass--interactive:active,
.fp-pass--interactive:focus-visible{
    color:#fff;
    opacity:1;
}
.fp-pass--interactive:focus-visible{
    box-shadow:0 0 0 3px var(--kv-prime),0 34px 90px rgba(0,0,0,.34),0 10px 35px rgba(217,243,106,.10);
}

@media(max-width:900px){
    .fp-pass--interactive{transform:none}
    .fp-pass--interactive:hover,.fp-pass--interactive:focus-visible{transform:scale(1.025) translateY(-3px)}
}
@media(max-width:620px){
}
@media(prefers-reduced-motion:reduce){
    .fp-pass--interactive{transition:none}
}

/* Allow the featured "Rekommenderad" badge to sit across the card's top border. */
.fp-level{
    overflow:visible;
}

/* Keep the featured top accent rounded even though the card overflow is visible for the badge. */
.fp-level::before{
    border-radius:28px 28px 0 0;
}

/* 2026-08-25 — level cards: the accent sits on the actual top edge,
   but stops before the rounded corners. The card itself must keep
   overflow:visible so the "Rekommenderad" badge can hang outside. */
.fp-level::before{
    top:0;
    left:22px;
    right:22px;
    width:auto;
    height:4px;
    border-radius:0;
}
.fp-level--featured::before{
    top:0;
    left:22px;
    right:22px;
}

/* Live availability ------------------------------------------------------ */
.kv-live-badge{
    position:relative;
    z-index:5;
    display:inline-flex;
    align-items:center;
    gap:.42rem;
    width:max-content;
    max-width:100%;
    padding:.5rem .7rem;
    border:1px solid rgba(251,215,157,.48);
    border-radius:999px;
    background:rgba(7,25,19,.88);
    color:#fff;
    box-shadow:0 0 0 1px rgba(251,215,157,.05),0 0 20px rgba(251,215,157,.18),0 8px 28px rgba(0,0,0,.18);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    font-family:var(--kv-font-mono);
    font-size:.62rem;
    font-weight:700;
    line-height:1;
    letter-spacing:.055em;
    text-transform:uppercase;
    white-space:nowrap;
}
.kv-live-badge__dot{
    width:.5rem;
    height:.5rem;
    flex:0 0 .5rem;
    border-radius:50%;
    background:var(--kv-prime-light);
    box-shadow:0 0 0 4px rgba(251,215,157,.12),0 0 13px rgba(251,215,157,.95);
    animation:kv-live-pulse 1.8s ease-in-out infinite;
}
.kv-live-badge__live{color:var(--kv-prime-light)}
.kv-live-badge__count{color:#fff;letter-spacing:.02em;text-transform:none}
@keyframes kv-live-pulse{0%,100%{opacity:.65;box-shadow:0 0 0 3px rgba(251,215,157,.09),0 0 9px rgba(251,215,157,.55)}50%{opacity:1;box-shadow:0 0 0 5px rgba(251,215,157,.16),0 0 17px rgba(251,215,157,1)}}
@media(prefers-reduced-motion:reduce){.kv-live-badge__dot{animation:none}}

.fp-showcase__item>.kv-live-badge{position:absolute;top:1.25rem;right:1.25rem}
.fp-showcase__item:has(.kv-live-badge) .fp-showcase__kicker{top:4.25rem}
.kv-home-midvinter__image{position:relative}
.kv-home-midvinter__image>.kv-live-badge{position:absolute;top:1.25rem;left:1.25rem}
.kv-home-hero__eyebrow-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem}
.kv-home-hero__eyebrow-row .fp-eyebrow{margin:0}

@media(max-width:600px){
    .kv-live-badge{font-size:.58rem;padding:.46rem .62rem}
    .fp-showcase__item>.kv-live-badge{top:1rem;right:1rem}
    .fp-showcase__item:has(.kv-live-badge) .fp-showcase__kicker{top:3.85rem}
    .kv-home-midvinter__image>.kv-live-badge{top:1rem;left:1rem}
}

/* Availability badge placement across festival/event surfaces */
.fp-festival-card__media,
.fp-festivals-hero__visual-link,
.fp-discover-card__image,
.fp-catalog-card__image{position:relative}
.fp-festival-card__media>.kv-live-badge,
.fp-discover-card__image>.kv-live-badge,
.fp-catalog-card__image>.kv-live-badge{position:absolute;top:1rem;left:1rem}
.fp-festivals-hero__visual-link>.kv-live-badge{position:absolute;top:1.25rem;left:1.25rem;z-index:4}
.fp-catalog-card__availability{margin:0 0 .85rem}
.fp-single-festival__hero-copy>.kv-live-badge{margin:.15rem 0 1rem}
.fp-page-hero__grid>.kv-live-badge{grid-column:1/-1;margin:.2rem 0 .6rem}
.fp-discover-eventlinks .kv-live-badge{justify-self:end}

@media(max-width:700px){
    .fp-discover-eventlinks .kv-live-badge{grid-column:2;justify-self:start;margin:.45rem 0}
}
