/* ==========================================================================
   FESTIVALER — Kammarmusikens Vänner
   Samma visuella system som Upptäck / Artister / övriga specialtemplates.
   ========================================================================== */

.fp-festivals-page{
    background:var(--kv-paper);
    color:var(--kv-ink-950);
    overflow-x:clip;
}

/* Hero */
.fp-festivals-hero{
    padding:clamp(5rem,9vw,9rem) 0 clamp(4rem,7vw,7rem);
    overflow:hidden;
}
.fp-festivals-hero__grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:clamp(3rem,7vw,8rem);
    align-items:center;
}
.fp-festivals-hero__copy h1{
    margin:.6rem 0 1.7rem;
    max-width:8ch;
    font:400 clamp(4.7rem,8vw,9rem)/.84 var(--kv-font-display);
    letter-spacing:-.055em;
}
.fp-festivals-hero__copy h1 em{
    display:inline;
    color:var(--kv-moss);
    font-weight:400;
}
.fp-festivals-hero__lead{
    max-width:42rem;
    margin:0;
    color:var(--kv-ink-soft);
    font-size:clamp(1rem,1.35vw,1.22rem);
    line-height:1.68;
}
.fp-festivals-hero__actions{
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
    margin-top:2rem;
}
.fp-festivals-textlink{
    color:inherit;
    font-size:.78rem;
    font-weight:750;
    text-decoration:none;
    border-bottom:1px solid;
    padding-bottom:.25rem;
}
.fp-festivals-hero__stats{
    display:flex;
    gap:2.5rem;
    margin-top:3.2rem;
    padding-top:1.4rem;
    border-top:1px solid rgba(16,35,29,.16);
}
.fp-festivals-hero__stats div{
    display:flex;
    align-items:baseline;
    gap:.65rem;
}
.fp-festivals-hero__stats strong{
    font:400 clamp(2.4rem,3.7vw,4.2rem)/1 var(--kv-font-display);
    color:var(--kv-moss);
    letter-spacing:-.04em;
}
.fp-festivals-hero__stats span{
    color:var(--kv-ink-soft);
    font-size:.72rem;
}
.fp-festivals-hero__visual{
    position:relative;
    min-height:clamp(500px,56vw,720px);
    margin:0;
    overflow:hidden;
    border-radius:36px;
    background:var(--kv-ink-950);
}
.fp-festivals-hero__visual>img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.88);
    transition:transform .9s var(--kv-ease);
}
.fp-festivals-hero__visual:hover>img{
    transform:scale(1.025);
}
.fp-festivals-hero__visual::after{
    content:"";
    position:absolute;
    inset:38% 0 0;
    pointer-events:none;
    background:linear-gradient(transparent,rgba(4,16,12,.86));
}
.fp-festivals-hero__placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,var(--kv-ink-950),#174333);
}
.fp-festivals-hero__placeholder span{
    color:var(--kv-prime);
    font:italic 400 12rem/1 var(--kv-font-display);
}
.fp-festivals-hero__visual>a{
    position:absolute;
    z-index:2;
    left:clamp(1.5rem,3vw,3rem);
    right:clamp(1.5rem,3vw,3rem);
    bottom:clamp(1.5rem,3vw,3rem);
    display:block;
    color:#fff;
    text-decoration:none;
}
.fp-festivals-hero__visual>a small{
    display:block;
    margin-bottom:.7rem;
    color:var(--kv-prime);
    font:500 .58rem/1.2 var(--kv-font-mono);
    letter-spacing:.13em;
}
.fp-festivals-hero__visual>a strong{
    display:block;
    max-width:12ch;
    font:400 clamp(2rem,3.4vw,3.8rem)/.96 var(--kv-font-display);
}
.fp-festivals-hero__visual>a span{
    display:block;
    margin-top:.65rem;
    color:rgba(255,255,255,.68);
    font-size:.76rem;
}

/* Lime process strip */
.fp-festivals-strip{
    background:var(--kv-prime);
    border-block:1px solid rgba(16,35,29,.16);
}
.fp-festivals-strip__grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
}
.fp-festivals-strip__grid>.fp-festivals-strip__card{
    position:relative;
    min-height:170px;
    padding:1.7rem;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    border-left:1px solid rgba(16,35,29,.16);
}
.fp-festivals-strip__grid>.fp-festivals-strip__card:last-child{
    border-right:1px solid rgba(16,35,29,.16);
}
.fp-festivals-strip span{
    position:absolute;
    top:1.5rem;
    font:500 .58rem/1 var(--kv-font-mono);
}
.fp-festivals-strip strong{
    font:400 clamp(1.5rem,2.1vw,2.25rem)/1 var(--kv-font-display);
}
.fp-festivals-strip small{
    margin-top:.45rem;
    color:rgba(16,35,29,.66);
    font-size:.72rem;
}

/* Shared section heads */
.fp-festivals-sectionhead{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:3rem;
    margin-bottom:clamp(2.5rem,5vw,5rem);
}
.fp-festivals-sectionhead h2{
    margin:.55rem 0 0;
    font:400 clamp(3.6rem,6vw,7rem)/.88 var(--kv-font-display);
    letter-spacing:-.05em;
}
.fp-festivals-sectionhead h2 em{
    color:var(--kv-moss);
    font-weight:400;
}
.fp-festivals-sectionhead>p{
    max-width:35rem;
    margin:0 0 .4rem;
    color:var(--kv-ink-soft);
    line-height:1.7;
}

/* Current festivals */
.fp-festivals-current{
    background:var(--kv-paper);
}
.fp-festivals-current__grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:clamp(1rem,2vw,1.5rem);
}
.fp-festival-card--feature{
    grid-column:1/-1;
}
.fp-festival-card>a{
    display:block;
    color:inherit;
    text-decoration:none;
}
.fp-festival-card__media{
    position:relative;
    height:clamp(330px,36vw,540px);
    overflow:hidden;
    border-radius:28px;
    background:var(--kv-paper-2);
}
.fp-festival-card--feature .fp-festival-card__media{
    height:clamp(430px,48vw,690px);
}
.fp-festival-card__image{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    filter:saturate(.9);
    transition:transform .65s var(--kv-ease),filter .35s ease;
}
.fp-festival-card>a:hover .fp-festival-card__image{
    transform:scale(1.035);
    filter:saturate(1);
}
.fp-festival-card__placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    background:var(--kv-ink-950);
}
.fp-festival-card__placeholder span{
    color:var(--kv-prime);
    font:italic 400 8rem/1 var(--kv-font-display);
}
.fp-festival-card__arrow{
    position:absolute;
    top:1rem;
    right:1rem;
    width:46px;
    height:46px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:rgba(7,29,22,.9);
    color:var(--kv-prime);
    backdrop-filter:blur(8px);
    transition:transform .25s var(--kv-ease);
}
.fp-festival-card>a:hover .fp-festival-card__arrow{
    transform:rotate(45deg);
}
.fp-festival-card__body{
    padding:1.2rem .15rem 2.2rem;
}
.fp-festival-card__meta{
    display:flex;
    flex-wrap:wrap;
    gap:.5rem 1.3rem;
    color:var(--kv-moss);
    font:500 .58rem/1.4 var(--kv-font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
}
.fp-festival-card h3{
    margin:.65rem 0 .65rem;
    max-width:16ch;
    font:400 clamp(2rem,3vw,3.45rem)/.96 var(--kv-font-display);
    letter-spacing:-.035em;
}
.fp-festival-card--feature h3{
    max-width:14ch;
    font-size:clamp(3rem,5vw,6rem);
}
.fp-festival-card__body p{
    max-width:42rem;
    color:var(--kv-ink-soft);
    line-height:1.65;
}
.fp-festival-card__textlink{
    display:inline-block;
    margin-top:.45rem;
    padding-bottom:.22rem;
    border-bottom:1px solid;
    font-size:.72rem;
    font-weight:750;
}
.fp-festivals-empty{
    display:flex;
    align-items:center;
    gap:1.3rem;
    padding:2rem 0;
    border-block:1px solid rgba(16,35,29,.18);
}
.fp-festivals-empty>span{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:50%;
    background:var(--kv-prime);
}
.fp-festivals-empty strong{
    font:400 1.8rem/1 var(--kv-font-display);
}
.fp-festivals-empty p{
    margin:.4rem 0 0;
    color:var(--kv-ink-soft);
}

/* Editorial break */
.fp-festivals-break{
    padding:clamp(6rem,11vw,12rem) 0;
    background:var(--kv-prime);
}
.fp-festivals-break__grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:clamp(4rem,9vw,10rem);
    align-items:end;
}
.fp-festivals-break h2{
    max-width:8ch;
    margin:.6rem 0 0;
    font:400 clamp(4rem,7vw,8rem)/.86 var(--kv-font-display);
    letter-spacing:-.055em;
}
.fp-festivals-break h2 em{
    color:var(--kv-moss);
    font-weight:400;
}
.fp-festivals-break__grid>div:last-child{
    padding-bottom:.7rem;
}
.fp-festivals-break__grid>div:last-child p{
    max-width:39rem;
    margin:0 0 1.8rem;
    color:rgba(16,35,29,.72);
    font-size:1.05rem;
    line-height:1.75;
}
.fp-festivals-break__grid a{
    color:inherit;
    font-size:.78rem;
    font-weight:750;
    text-decoration:none;
    border-bottom:1px solid;
    padding-bottom:.25rem;
}

/* Archive */
.fp-festivals-archive{
    background:var(--kv-paper-2);
}
.fp-festivals-archive__grid{
    border-top:1px solid rgba(16,35,29,.18);
}
.fp-festival-archive-card>a{
    display:grid;
    grid-template-columns:100px minmax(0,1fr) 46px;
    gap:1.4rem;
    align-items:center;
    min-height:120px;
    padding:1rem 0;
    border-bottom:1px solid rgba(16,35,29,.18);
    color:inherit;
    text-decoration:none;
    transition:padding .25s var(--kv-ease),background .25s ease;
}
.fp-festival-archive-card>a:hover{
    padding-inline:1rem;
    background:rgba(255,255,255,.42);
}
.fp-festival-archive-card__year{
    color:var(--kv-moss);
    font:400 clamp(1.7rem,2.4vw,2.8rem)/1 var(--kv-font-display);
}
.fp-festival-archive-card__content small{
    display:block;
    margin-bottom:.35rem;
    color:var(--kv-ink-soft);
    font:500 .55rem/1.4 var(--kv-font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
}
.fp-festival-archive-card__content h3{
    margin:0;
    font:400 clamp(1.5rem,2.3vw,2.9rem)/1 var(--kv-font-display);
    letter-spacing:-.025em;
}
.fp-festival-archive-card__arrow{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    justify-self:end;
    border:1px solid rgba(16,35,29,.2);
    border-radius:50%;
    transition:transform .25s var(--kv-ease),background .25s ease;
}
.fp-festival-archive-card>a:hover .fp-festival-archive-card__arrow{
    transform:rotate(45deg);
    background:var(--kv-prime);
}

/* Final */
.fp-festivals-final{
    padding:clamp(6rem,11vw,11rem) 0;
    background:var(--kv-ink-950);
    color:#fff;
}
.fp-festivals-final .fp-eyebrow{
    color:var(--kv-prime);
}
.fp-festivals-final__grid{
    display:grid;
    grid-template-columns:1.1fr .7fr;
    gap:clamp(4rem,9vw,10rem);
    align-items:end;
}
.fp-festivals-final h2{
    max-width:8ch;
    margin:.7rem 0 0;
    font:400 clamp(4rem,7vw,8rem)/.86 var(--kv-font-display);
    letter-spacing:-.055em;
}
.fp-festivals-final h2 em{
    color:var(--kv-prime);
    font-weight:400;
}
.fp-festivals-final__grid>div:last-child p{
    max-width:38rem;
    margin:0 0 1.8rem;
    color:rgba(255,255,255,.66);
    line-height:1.75;
}

/* Responsive */
@media(max-width:900px){
    .fp-festivals-hero__grid,
    .fp-festivals-break__grid,
    .fp-festivals-final__grid{
        grid-template-columns:1fr;
    }
    .fp-festivals-hero__visual{
        min-height:560px;
    }
    .fp-festivals-strip__grid{
        grid-template-columns:1fr 1fr 1fr;
    }
    .fp-festivals-current__grid{
        grid-template-columns:1fr;
    }
    .fp-festival-card--feature{
        grid-column:auto;
    }
    .fp-festivals-sectionhead{
        align-items:flex-start;
        flex-direction:column;
    }
}
@media(max-width:600px){
    .fp-festivals-hero{
        padding-top:4rem;
    }
    .fp-festivals-hero__copy h1{
        font-size:clamp(4rem,18vw,6.5rem);
    }
    .fp-festivals-hero__visual{
        min-height:430px;
        border-radius:24px;
    }
    .fp-festivals-hero__stats{
        gap:1.5rem;
    }
    .fp-festivals-strip__grid{
        grid-template-columns:1fr;
    }
    .fp-festivals-strip__grid>.fp-festivals-strip__card{
        min-height:130px;
        border-right:1px solid rgba(16,35,29,.16);
        border-bottom:1px solid rgba(16,35,29,.16);
    }
    .fp-festivals-sectionhead h2,
    .fp-festivals-break h2,
    .fp-festivals-final h2{
        font-size:clamp(3.7rem,17vw,6rem);
    }
    .fp-festival-card__media,
    .fp-festival-card--feature .fp-festival-card__media{
        height:390px;
        border-radius:22px;
    }
    .fp-festival-archive-card>a{
        grid-template-columns:58px minmax(0,1fr) 36px;
        gap:.75rem;
        min-height:105px;
    }
    .fp-festival-archive-card__arrow{
        width:34px;
        height:34px;
    }
}

/* Hero visual: the complete image/placeholder is clickable. */
.fp-festivals-hero__visual-link{
    position:absolute;
    inset:0;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    color:#fff;
    text-decoration:none;
}
.fp-festivals-hero__visual-link>img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    filter:saturate(.88);
    transition:transform .9s var(--kv-ease);
}
.fp-festivals-hero__visual:hover .fp-festivals-hero__visual-link>img{
    transform:scale(1.025);
}
.fp-festivals-hero__visual-link::after{
    content:"";
    position:absolute;
    z-index:1;
    inset:38% 0 0;
    pointer-events:none;
    background:linear-gradient(transparent,rgba(4,16,12,.86));
}
.fp-festivals-hero__visual-link .fp-festivals-hero__placeholder{
    position:absolute;
    inset:0;
}
.fp-festivals-hero__overlay{
    position:absolute;
    z-index:2;
    left:clamp(1.5rem,3vw,3rem);
    right:clamp(1.5rem,3vw,3rem);
    bottom:clamp(1.5rem,3vw,3rem);
    display:block;
}
.fp-festivals-hero__overlay>small{
    display:block;
    margin-bottom:.7rem;
    color:var(--kv-prime);
    font:500 .58rem/1.2 var(--kv-font-mono);
    letter-spacing:.13em;
}
.fp-festivals-hero__overlay>strong{
    display:block;
    max-width:12ch;
    font:400 clamp(2rem,3.4vw,3.8rem)/.96 var(--kv-font-display);
}
.fp-festivals-hero__overlay>span{
    display:block;
    margin-top:.65rem;
    color:rgba(255,255,255,.68);
    font-size:.76rem;
}

/* 2026-08-27 — Festival hero image: fill the complete visual area.
   This intentionally overrides the older generic
   .fp-festivals-hero__visual > a rule. */
.fp-festivals-hero > .fp-wrap .fp-festivals-hero__visual > a.fp-festivals-hero__visual-link{
    position:absolute !important;
    inset:0 !important;
    left:0 !important;
    right:0 !important;
    top:0 !important;
    bottom:0 !important;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    overflow:hidden;
    border-radius:inherit;
    color:#fff;
    text-decoration:none;
}

.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > img{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    max-height:none !important;
    display:block !important;
    object-fit:cover !important;
    object-position:center center;
    transform:scale(1.001);
    transform-origin:center center;
    transition:transform .75s var(--kv-ease), filter .35s ease;
}

.fp-festivals-hero__visual:hover > a.fp-festivals-hero__visual-link > img,
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link:hover > img{
    transform:scale(1.035);
}

/* Gradient belongs to the full clickable surface, never to a reduced inner box. */
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link::after{
    position:absolute;
    inset:34% 0 0 !important;
    z-index:1;
    pointer-events:none;
    background:linear-gradient(
        to bottom,
        rgba(4,16,12,0),
        rgba(4,16,12,.18) 30%,
        rgba(4,16,12,.88) 100%
    );
}

/* Keep the copy overlay independent from the link's box-model. */
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link .fp-festivals-hero__overlay{
    position:absolute !important;
    z-index:2;
    left:clamp(1.5rem,3vw,3rem) !important;
    right:clamp(1.5rem,3vw,3rem) !important;
    bottom:clamp(1.5rem,3vw,3rem) !important;
    top:auto !important;
    width:auto !important;
    height:auto !important;
}

/* The F fallback also fills the exact same clickable surface. */
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link .fp-festivals-hero__placeholder{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    border-radius:inherit;
}

/* 2026-08-27 — Hero CTA alignment */
.fp-festivals-hero__actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:1rem;
}

.fp-festivals-hero__actions > a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin:0;
    align-self:center;
}

/* Keep the text-link optically centered against the filled button. */
.fp-festivals-hero__actions .fp-festivals-link{
    line-height:1.2;
}

/* ==========================================================================
   Festivaler — editorial supporting images
   ========================================================================== */
.fp-festival-editorial-image{
    position:relative;
    width:100%;
    margin:0 0 2rem;
    overflow:hidden;
    border-radius:26px;
    background:rgba(7,29,22,.08);
}
.fp-festival-editorial-image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.fp-festival-editorial-image--journey{
    aspect-ratio:16/9;
}
.fp-festival-editorial-image--archive{
    aspect-ratio:16/8;
    margin-bottom:1.5rem;
}
.fp-festivals-sectionhead__aside{
    width:min(100%,35rem);
}
.fp-festivals-sectionhead__aside>p{
    margin:0;
    color:var(--kv-ink-soft);
    line-height:1.7;
}

/* ==========================================================================
   Single festival
   ========================================================================== */
.fp-single-festival{
    background:var(--kv-paper);
    color:var(--kv-ink-950);
    overflow-x:clip;
}
.fp-single-festival__hero{
    padding:2rem 0 clamp(5rem,9vw,9rem);
}
.fp-single-festival__back{
    display:inline-block;
    margin-bottom:clamp(3rem,6vw,6rem);
    padding-bottom:.25rem;
    border-bottom:1px solid;
    color:inherit;
    font-size:.72rem;
    font-weight:750;
    text-decoration:none;
}
.fp-single-festival__hero-grid{
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:clamp(3rem,7vw,8rem);
    align-items:center;
}
.fp-single-festival__hero-copy h1{
    max-width:9ch;
    margin:.65rem 0 1.4rem;
    font:400 clamp(4.3rem,7.2vw,8.3rem)/.86 var(--kv-font-display);
    letter-spacing:-.055em;
}
.fp-single-festival__hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:.55rem 1.4rem;
    color:var(--kv-moss);
    font:500 .61rem/1.4 var(--kv-font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
}
.fp-single-festival__lead{
    max-width:38rem;
    margin:1.6rem 0 0;
    color:var(--kv-ink-soft);
    font-size:1.05rem;
    line-height:1.7;
}
.fp-single-festival__actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:1rem;
    margin-top:2rem;
}
.fp-single-festival__textlink{
    display:inline-flex;
    align-items:center;
    min-height:46px;
    padding-bottom:.15rem;
    border-bottom:1px solid;
    color:inherit;
    font-size:.74rem;
    font-weight:750;
    text-decoration:none;
}
.fp-single-festival__hero-image{
    position:relative;
    min-height:clamp(520px,58vw,760px);
    margin:0;
    overflow:hidden;
    border-radius:34px;
    background:var(--kv-ink-950);
}
.fp-single-festival__hero-image img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
}
.fp-single-festival__placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    background:linear-gradient(145deg,var(--kv-ink-950),#174333);
}
.fp-single-festival__placeholder span{
    color:var(--kv-prime);
    font:italic 400 11rem/1 var(--kv-font-display);
}
.fp-single-festival__content-section{
    padding:clamp(5rem,9vw,9rem) 0;
    background:var(--kv-paper-2);
}
.fp-single-festival__content-grid{
    display:grid;
    grid-template-columns:minmax(230px,.45fr) minmax(0,1fr);
    gap:clamp(3rem,8vw,9rem);
    align-items:start;
}
.fp-single-festival__facts{
    position:sticky;
    top:120px;
}
.fp-single-festival__facts dl{
    margin:1.2rem 0 0;
    border-top:1px solid rgba(16,35,29,.16);
}
.fp-single-festival__facts dl>div{
    padding:1.2rem 0;
    border-bottom:1px solid rgba(16,35,29,.16);
}
.fp-single-festival__facts dt{
    margin-bottom:.45rem;
    color:var(--kv-moss);
    font:500 .55rem/1.3 var(--kv-font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
}
.fp-single-festival__facts dd{
    margin:0;
    font-size:.88rem;
    font-weight:700;
}
.fp-single-festival__article{
    max-width:790px;
}
.fp-single-festival__prose{
    margin-top:1.1rem;
    color:var(--kv-ink-soft);
    font-size:clamp(1rem,1.25vw,1.15rem);
    line-height:1.85;
}
.fp-single-festival__prose h2,
.fp-single-festival__prose h3{
    color:var(--kv-ink-950);
    font-family:var(--kv-font-display);
    font-weight:400;
    letter-spacing:-.03em;
}
.fp-single-festival__prose h2{
    margin:3.2rem 0 1rem;
    font-size:clamp(2.4rem,4vw,4.2rem);
    line-height:.95;
}
.fp-single-festival__prose h3{
    margin:2.3rem 0 .8rem;
    font-size:clamp(1.8rem,2.7vw,2.7rem);
}
.fp-single-festival__prose img{
    max-width:100%;
    height:auto;
    margin:1.5rem 0;
    border-radius:22px;
}
.fp-single-festival__prose a{
    color:inherit;
    text-decoration-thickness:1px;
    text-underline-offset:.2em;
}
.fp-single-festival__links{
    display:flex;
    flex-wrap:wrap;
    gap:.8rem;
    margin-top:3rem;
    padding-top:1.7rem;
    border-top:1px solid rgba(16,35,29,.16);
}
.fp-single-festival__links a{
    display:inline-flex;
    align-items:center;
    min-height:46px;
    padding:.7rem 1rem;
    border:1px solid rgba(16,35,29,.18);
    border-radius:999px;
    color:inherit;
    font-size:.72rem;
    font-weight:750;
    text-decoration:none;
}
.fp-single-festival__links a:hover{
    background:var(--kv-prime);
}
.fp-single-festival__empty{
    display:flex;
    align-items:center;
    gap:1rem;
    margin-top:1.2rem;
    padding:1.5rem 0;
    border-block:1px solid rgba(16,35,29,.16);
}
.fp-single-festival__empty span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:50%;
    background:var(--kv-prime);
}
.fp-single-festival__empty p{
    margin:0;
}
.fp-single-festival__related{
    padding:clamp(5rem,9vw,9rem) 0;
    background:var(--kv-paper);
}
.fp-single-festival__related-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:2rem;
    margin-bottom:3rem;
}
.fp-single-festival__related-head h2{
    margin:.55rem 0 0;
    font:400 clamp(3.2rem,5vw,6rem)/.88 var(--kv-font-display);
    letter-spacing:-.05em;
}
.fp-single-festival__related-head h2 em{
    color:var(--kv-moss);
    font-weight:400;
}
.fp-single-festival__related-head>a{
    padding-bottom:.2rem;
    border-bottom:1px solid;
    color:inherit;
    font-size:.72rem;
    font-weight:750;
    text-decoration:none;
}
.fp-single-festival__related-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.1rem;
}
.fp-single-festival-related-card>a{
    display:block;
    color:inherit;
    text-decoration:none;
}
.fp-single-festival-related-card__media{
    height:340px;
    margin-bottom:1rem;
    overflow:hidden;
    border-radius:22px;
    background:var(--kv-ink-950);
}
.fp-single-festival-related-card__media img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform .5s var(--kv-ease);
}
.fp-single-festival-related-card>a:hover img{
    transform:scale(1.035);
}
.fp-single-festival-related-card__placeholder{
    width:100%;
    height:100%;
    display:grid;
    place-items:center;
    color:var(--kv-prime);
    font:italic 400 5rem/1 var(--kv-font-display);
}
.fp-single-festival-related-card>a>span{
    color:var(--kv-moss);
    font:500 .55rem/1.3 var(--kv-font-mono);
    letter-spacing:.08em;
    text-transform:uppercase;
}
.fp-single-festival-related-card h3{
    margin:.45rem 0 0;
    font:400 clamp(1.6rem,2.3vw,2.7rem)/.98 var(--kv-font-display);
    letter-spacing:-.03em;
}

@media(max-width:900px){
    .fp-single-festival__hero-grid,
    .fp-single-festival__content-grid{
        grid-template-columns:1fr;
    }
    .fp-single-festival__facts{
        position:static;
    }
    .fp-single-festival__related-grid{
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:600px){
    .fp-festival-editorial-image{
        border-radius:18px;
    }
    .fp-festivals-sectionhead__aside{
        width:100%;
    }
    .fp-single-festival__hero{
        padding-top:1.4rem;
    }
    .fp-single-festival__back{
        margin-bottom:3rem;
    }
    .fp-single-festival__hero-copy h1{
        font-size:clamp(3.7rem,17vw,6rem);
    }
    .fp-single-festival__hero-image{
        min-height:430px;
        border-radius:24px;
    }
    .fp-single-festival__related-head{
        align-items:flex-start;
        flex-direction:column;
    }
    .fp-single-festival__related-grid{
        grid-template-columns:1fr;
    }
    .fp-single-festival-related-card__media{
        height:380px;
    }
}

/* Featured current festival: editorial split layout instead of an oversized poster. */
@media (min-width:901px){
    .fp-festivals-current__grid > .fp-festival-card--feature > a{
        display:grid;
        grid-template-columns:minmax(0,1.16fr) minmax(320px,.84fr);
        align-items:stretch;
        gap:clamp(2rem,4vw,4.75rem);
        padding:clamp(1rem,1.6vw,1.5rem);
        border:1px solid rgba(16,35,29,.13);
        border-radius:32px;
        background:rgba(255,255,255,.28);
    }
    .fp-festival-card--feature .fp-festival-card__media{
        height:auto;
        min-height:clamp(390px,34vw,520px);
        border-radius:22px;
    }
    .fp-festival-card--feature .fp-festival-card__body{
        display:flex;
        flex-direction:column;
        justify-content:center;
        align-items:flex-start;
        padding:clamp(1.25rem,2.5vw,2.75rem) clamp(.5rem,1.5vw,1.5rem) clamp(1.25rem,2.5vw,2.75rem) 0;
    }
    .fp-festival-card--feature h3{
        max-width:10ch;
        margin:.8rem 0 1rem;
        font-size:clamp(3.25rem,4.8vw,5.6rem);
    }
    .fp-festival-card--feature .fp-festival-card__body p{
        max-width:32rem;
        font-size:1rem;
        line-height:1.72;
    }
}

@media (max-width:900px){
    .fp-festival-card--feature > a{
        display:block;
    }
}

/* ==========================================================================
   2026-08-27 — Single festival: safe long-title layout
   Prevents long festival names from ever running behind the hero image.
   ========================================================================== */
@media (min-width: 901px) {
    .fp-single-festival__hero-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(420px, .85fr);
        gap: clamp(4rem, 6vw, 7rem);
        align-items: center;
    }

    .fp-single-festival__hero-copy,
    .fp-single-festival__hero-image {
        min-width: 0;
    }

    .fp-single-festival__hero-copy {
        position: relative;
        z-index: 2;
        max-width: 100%;
    }

    .fp-single-festival__hero-copy h1 {
        width: 100%;
        max-width: 100%;
        margin: .65rem 0 1.4rem;
        font-size: clamp(3.9rem, 5.15vw, 6.35rem);
        line-height: .88;
        letter-spacing: -.052em;
        overflow-wrap: break-word;
        word-break: normal;
        hyphens: auto;
    }

    .fp-single-festival__hero-image {
        position: relative;
        z-index: 1;
        justify-self: stretch;
        width: 100%;
        max-width: 590px;
        min-height: clamp(520px, 48vw, 720px);
        justify-self: end;
    }
}

/* At narrower desktop widths, give the title a little more room
   and reduce it before allowing the layout to become cramped. */
@media (min-width: 901px) and (max-width: 1250px) {
    .fp-single-festival__hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, .78fr);
        gap: clamp(2.5rem, 4vw, 4.5rem);
    }

    .fp-single-festival__hero-copy h1 {
        font-size: clamp(3.5rem, 5.6vw, 5.5rem);
    }

    .fp-single-festival__hero-image {
        min-height: 560px;
    }
}

/* ==========================================================================
   2026-08-27 — Single festival: mobile long-title fix
   Long Swedish festival names must never create horizontal overflow.
   ========================================================================== */
@media (max-width: 600px) {
    .fp-single-festival__hero,
    .fp-single-festival__hero .fp-wrap,
    .fp-single-festival__hero-grid,
    .fp-single-festival__hero-copy {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .fp-single-festival__hero-copy h1 {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        font-size: clamp(3.15rem, 14.2vw, 4.75rem) !important;
        line-height: .9 !important;
        letter-spacing: -.048em !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto !important;
    }

    .fp-single-festival__hero-image {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   2026-08-27 — Festivaler: global eyebrow parity + hero top alignment
   ========================================================================== */
.fp-festivals-page .fp-eyebrow{
    font-family:var(--kv-font-mono) !important;
    font-size:.62rem !important;
    font-weight:500 !important;
    line-height:1.2 !important;
    letter-spacing:.11em !important;
    text-transform:uppercase !important;
}

.fp-festivals-hero__grid{
    align-items:start !important;
}

.fp-festivals-hero__visual{
    align-self:start !important;
    margin-top:0 !important;
}

.fp-festivals-hero__visual-link{
    top:0 !important;
}

/* ==========================================================================
   2026-08-27 — Festivaler: richer three-step cards
   ========================================================================== */
.fp-festivals-strip{
    padding-block:1.15rem;
    border-block:1px solid rgba(16,35,29,.14);
}

.fp-festivals-strip__grid{
    gap:1rem;
}

.fp-festivals-strip__grid>.fp-festivals-strip__card{
    min-height:190px;
    padding:1.5rem 1.55rem 1.6rem;
    border:1px solid rgba(16,35,29,.15) !important;
    border-radius:22px;
    background:
        radial-gradient(circle at 92% 12%,rgba(255,255,255,.28),transparent 30%),
        rgba(255,255,255,.13);
    box-shadow:0 10px 28px rgba(40,66,18,.055);
    overflow:hidden;
    transition:
        transform .24s var(--kv-ease),
        background .24s ease,
        box-shadow .24s ease;
}

.fp-festivals-strip__grid>.fp-festivals-strip__card::after{
    content:"↗";
    position:absolute;
    top:1.1rem;
    right:1.15rem;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border:1px solid rgba(16,35,29,.18);
    border-radius:50%;
    background:rgba(255,255,255,.2);
    font-size:.72rem;
    opacity:.72;
    transition:transform .24s var(--kv-ease),background .24s ease;
}

.fp-festivals-strip__grid>.fp-festivals-strip__card:hover{
    transform:translateY(-4px);
    background:
        radial-gradient(circle at 92% 12%,rgba(255,255,255,.4),transparent 31%),
        rgba(255,255,255,.2);
    box-shadow:0 16px 36px rgba(40,66,18,.09);
}

.fp-festivals-strip__grid>.fp-festivals-strip__card:hover::after{
    transform:rotate(45deg);
    background:var(--kv-ink-950);
    color:var(--kv-prime);
}

.fp-festivals-strip span{
    position:static;
    width:34px;
    height:34px;
    margin-bottom:auto;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:var(--kv-ink-950);
    color:var(--kv-prime);
    font-size:.52rem;
}

.fp-festivals-strip strong{
    margin-top:2rem;
    max-width:12ch;
    font-size:clamp(1.75rem,2.35vw,2.55rem);
    line-height:.96;
    letter-spacing:-.025em;
}

.fp-festivals-strip small{
    max-width:24ch;
    margin-top:.65rem;
    line-height:1.5;
}

@media(max-width:900px){
    .fp-festivals-strip__grid{
        grid-template-columns:1fr;
        gap:.7rem;
        padding-block:.2rem;
    }

    .fp-festivals-strip__grid>.fp-festivals-strip__card{
        min-height:150px;
        padding:1.2rem 1.25rem;
        border-radius:18px;
    }

    .fp-festivals-strip strong{
        margin-top:1.25rem;
        font-size:1.8rem;
    }
}


/* 2026-08-27 — Festival step cards are real links */
.fp-festivals-strip__card{
    position:relative;
    display:flex;
    flex-direction:column;
    color:inherit;
    text-decoration:none;
    cursor:pointer;
}

.fp-festivals-strip__card:focus-visible{
    outline:3px solid var(--kv-ink-950);
    outline-offset:3px;
}


/* 2026-08-27 — hela stegboxens yta är klickbar */
.fp-festivals-strip__grid > .fp-festivals-strip__card{
    display:flex !important;
    width:100%;
    height:100%;
    align-self:stretch;
    box-sizing:border-box;
    text-decoration:none !important;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card::after{
    pointer-events:none;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card > *{
    pointer-events:none;
}

/* ==========================================================================
   2026-09-01 — Festivaler: sammanhållet Kammarmusikabonnemanget-designspråk
   ========================================================================== */
.fp-festivals-page{
    --fest-border:rgba(25,25,18,.14);
    --fest-dark:var(--kv-ink-950);
    --fest-accent:var(--kv-prime);
    --fest-accent-light:var(--kv-prime-light);
    background:var(--kv-paper);
}

.fp-festivals-page .fp-eyebrow{
    font-size:.66rem !important;
    color:var(--fest-accent) !important;
}

/* HERO */
.fp-festivals-hero{
    padding:clamp(4.5rem,7.5vw,7.25rem) 0 clamp(4rem,7vw,6.5rem);
}

.fp-festivals-hero__grid{
    grid-template-columns:minmax(0,.82fr) minmax(420px,1.05fr);
    gap:clamp(3rem,7vw,7rem);
    align-items:center !important;
}

.fp-festivals-hero__copy{
    padding-top:clamp(.25rem,1vw,1rem);
}

.fp-festivals-hero__copy h1{
    max-width:7.2ch;
    margin:.75rem 0 1.45rem;
    font-size:clamp(4.8rem,7.6vw,8.2rem);
    line-height:.86;
}

.fp-festivals-hero__copy h1 em,
.fp-festivals-sectionhead h2 em,
.fp-festival-archive-card__year{
    color:var(--fest-accent) !important;
}

.fp-festivals-hero__lead{
    max-width:36rem;
    font-size:clamp(1rem,1.15vw,1.16rem);
    line-height:1.65;
}

.fp-festivals-hero__actions{
    margin-top:1.7rem;
}

.fp-festivals-hero__stats{
    gap:2.25rem;
    margin-top:2.4rem;
    padding-top:1.15rem;
    border-top:1px solid var(--fest-border);
}

.fp-festivals-hero__stats strong{
    color:var(--fest-accent) !important;
    font-size:clamp(2.25rem,3vw,3.45rem);
}

.fp-festivals-hero__visual{
    min-height:clamp(470px,49vw,650px);
    border-radius:28px;
    box-shadow:0 30px 70px rgba(22,24,18,.12);
}

.fp-festivals-hero__visual-link{
    border-radius:inherit;
}

.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link .fp-festivals-hero__overlay{
    left:clamp(1.5rem,2.5vw,2.4rem) !important;
    right:clamp(1.5rem,2.5vw,2.4rem) !important;
    bottom:clamp(1.5rem,2.5vw,2.4rem) !important;
}

.fp-festivals-hero__overlay > small{
    color:var(--fest-accent-light) !important;
    font-size:.66rem !important;
}

.fp-festivals-hero__overlay > strong{
    max-width:13ch;
    font-size:clamp(2.2rem,3.4vw,3.8rem) !important;
    line-height:.94 !important;
}

/* TRE ENKLA STEG */
.fp-festivals-strip{
    padding:1.35rem 0;
    background:var(--fest-accent);
    border:0;
}

.fp-festivals-strip__grid{
    gap:1rem;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card{
    min-height:152px;
    padding:1.25rem 1.35rem 1.35rem;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:18px;
    background:rgba(255,255,255,.08);
    box-shadow:none;
    color:#fff;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card:hover{
    background:rgba(255,255,255,.14);
    transform:translateY(-2px);
    box-shadow:none;
}

.fp-festivals-strip span{
    width:30px;
    height:30px;
    background:var(--fest-dark);
    color:var(--fest-accent-light);
}

.fp-festivals-strip strong{
    margin-top:1.25rem;
    color:#fff;
    font-size:clamp(1.55rem,1.9vw,2rem);
}

.fp-festivals-strip small{
    margin-top:.45rem;
    color:rgba(255,255,255,.74);
    font-size:.8rem;
    line-height:1.45;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card::after{
    width:32px;
    height:32px;
    border-color:rgba(255,255,255,.24);
    background:rgba(255,255,255,.08);
    color:#fff;
}

.fp-festivals-strip__grid > .fp-festivals-strip__card:hover::after{
    background:var(--fest-accent-light);
    color:var(--fest-dark);
}

/* AKTUELLA FESTIVALER */
.fp-festivals-current{
    padding-top:clamp(5.5rem,8vw,8rem);
    padding-bottom:clamp(5.5rem,8vw,8rem);
}

.fp-festivals-sectionhead{
    align-items:end;
    margin-bottom:clamp(2.75rem,4.5vw,4.5rem);
}

.fp-festivals-sectionhead h2{
    font-size:clamp(3.8rem,5.6vw,6.3rem);
    line-height:.9;
}

.fp-festivals-sectionhead > p,
.fp-festivals-sectionhead__aside > p{
    max-width:32rem;
    color:var(--kv-ink-soft);
    font-size:1rem;
    line-height:1.65;
}

.fp-festivals-current__grid{
    gap:1.5rem;
}

.fp-festival-card{
    min-width:0;
}

.fp-festival-card > a{
    border:1px solid var(--fest-border);
    border-radius:24px;
    overflow:hidden;
    background:rgba(255,255,255,.34);
    transition:transform .25s var(--kv-ease),box-shadow .25s ease,border-color .25s ease;
}

.fp-festival-card > a:hover{
    transform:translateY(-3px);
    border-color:rgba(143,89,3,.3);
    box-shadow:0 24px 50px rgba(23,25,19,.08);
}

.fp-festival-card__media,
.fp-festival-card--feature .fp-festival-card__media{
    border-radius:0;
}

.fp-festival-card__body{
    padding:1.5rem 1.6rem 1.75rem;
}

.fp-festival-card__meta{
    color:var(--fest-accent) !important;
    font-size:.66rem;
}

.fp-festival-card h3{
    margin:.7rem 0 .75rem;
}

.fp-festival-card__body p{
    margin:.35rem 0 .7rem;
    max-width:46rem;
    font-size:.98rem;
    line-height:1.62;
}

.fp-festival-card__textlink{
    margin-top:.5rem;
    color:var(--fest-accent);
    border:0;
    font-size:.82rem;
}

.fp-festival-card__arrow{
    background:var(--fest-dark);
    color:var(--fest-accent-light);
}

/* EDITORIAL MELLANDEL — brun yta ska ha ljus typografi */
.fp-festivals-break{
    padding:clamp(5.5rem,8vw,8rem) 0;
    background:var(--fest-accent);
    color:#fff;
}

.fp-festivals-break .fp-eyebrow{
    color:var(--fest-accent-light) !important;
}

.fp-festivals-break__grid{
    grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
    gap:clamp(3rem,7vw,7rem);
    align-items:center;
}

.fp-festivals-break h2{
    color:#fff !important;
    font-size:clamp(4rem,6.5vw,7rem);
}

.fp-festivals-break h2 em{
    color:var(--fest-accent-light) !important;
}

.fp-festivals-break__grid > div:last-child p{
    color:rgba(255,255,255,.84);
    font-size:1rem;
    line-height:1.65;
}

.fp-festivals-break__grid a{
    color:#fff;
}

.fp-festival-editorial-image--journey{
    border:1px solid rgba(255,255,255,.18);
    border-radius:22px;
    overflow:hidden;
}

/* ARKIV — lugnare och tydligare */
.fp-festivals-archive{
    padding-top:clamp(5.5rem,8vw,8rem);
    padding-bottom:clamp(5.5rem,8vw,8rem);
    background:var(--kv-paper);
}

.fp-festivals-sectionhead--archive{
    align-items:center;
}

.fp-festival-editorial-image--archive{
    border-radius:20px;
    overflow:hidden;
}

.fp-festivals-archive__grid{
    border-top:1px solid var(--fest-border);
}

.fp-festival-archive-card > a{
    min-height:92px;
    grid-template-columns:86px minmax(0,1fr) 38px;
    border-bottom:1px solid var(--fest-border);
}

.fp-festival-archive-card > a:hover{
    padding-inline:.8rem;
    background:rgba(143,89,3,.045);
}

.fp-festival-archive-card__year{
    font-size:clamp(1.45rem,2vw,2.15rem);
}

.fp-festival-archive-card__content small{
    font-size:.61rem;
}

.fp-festival-archive-card__content h3{
    font-size:clamp(1.35rem,2vw,2.25rem);
}

.fp-festival-archive-card__arrow{
    width:36px;
    height:36px;
}

.fp-festival-archive-card > a:hover .fp-festival-archive-card__arrow{
    background:var(--fest-accent-light);
    color:var(--fest-dark);
}

/* AVSLUT */
.fp-festivals-final{
    padding:clamp(5.5rem,8vw,8.5rem) 0;
    background:var(--fest-dark);
}

.fp-festivals-final .fp-eyebrow{
    color:var(--fest-accent-light) !important;
}

.fp-festivals-final h2{
    font-size:clamp(4rem,6.4vw,7rem);
}

.fp-festivals-final h2 em{
    color:var(--fest-accent-light) !important;
}

.fp-festivals-final__grid > div:last-child p{
    color:rgba(255,255,255,.76);
    font-size:1rem;
}

.fp-festivals-final .fp-discover-button{
    background:var(--fest-accent-light) !important;
    color:var(--fest-dark) !important;
    border-color:var(--fest-accent-light) !important;
}

@media(max-width:900px){
    .fp-festivals-hero{
        padding-top:3.5rem;
    }

    .fp-festivals-hero__grid,
    .fp-festivals-break__grid,
    .fp-festivals-final__grid{
        grid-template-columns:1fr;
        gap:2.5rem;
    }

    .fp-festivals-hero__copy h1{
        max-width:8ch;
        font-size:clamp(4rem,15vw,6rem);
    }

    .fp-festivals-hero__visual{
        min-height:440px;
    }

    .fp-festivals-strip__grid{
        grid-template-columns:1fr;
    }

    .fp-festivals-strip__grid > .fp-festivals-strip__card{
        min-height:130px;
    }

    .fp-festivals-sectionhead,
    .fp-festivals-sectionhead--archive{
        align-items:flex-start;
        flex-direction:column;
        gap:1.5rem;
    }

    .fp-festivals-current__grid{
        grid-template-columns:1fr;
    }

    .fp-festival-card--feature{
        grid-column:auto;
    }

    .fp-festival-card__media,
    .fp-festival-card--feature .fp-festival-card__media{
        height:clamp(300px,80vw,470px);
    }
}

@media(max-width:600px){
    .fp-festivals-hero__visual{
        min-height:390px;
        border-radius:22px;
    }

    .fp-festivals-hero__stats{
        gap:1.5rem;
    }

    .fp-festivals-sectionhead h2,
    .fp-festivals-break h2,
    .fp-festivals-final h2{
        font-size:clamp(3.25rem,14vw,4.7rem);
    }

    .fp-festival-card > a{
        border-radius:20px;
    }

    .fp-festival-archive-card > a{
        grid-template-columns:64px minmax(0,1fr) 32px;
        gap:.8rem;
        min-height:82px;
    }
}

/* 2026-09-01 — Hero availability badge: same compact badge as everywhere else. */
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > .kv-live-badge{
    position:absolute!important;
    z-index:5!important;
    top:1.5rem!important;
    left:1.5rem!important;
    right:auto!important;
    bottom:auto!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:.38rem!important;
    width:auto!important;
    max-width:calc(100% - 3rem)!important;
    margin:0!important;
    padding:.5rem .72rem!important;
    border:1px solid rgba(251,215,157,.42)!important;
    border-radius:999px!important;
    background:rgba(8,25,19,.9)!important;
    box-shadow:0 6px 22px rgba(0,0,0,.18)!important;
    color:#fff!important;
    white-space:nowrap!important;
    font-family:var(--kv-font-mono)!important;
    line-height:1!important;
}
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > .kv-live-badge > span{
    display:inline!important;
    width:auto!important;
    margin:0!important;
    color:#fff!important;
    font:600 .61rem/1 var(--kv-font-mono)!important;
    letter-spacing:.02em!important;
    white-space:nowrap!important;
}
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > .kv-live-badge > .kv-live-badge__dot{
    display:block!important;
    flex:0 0 auto!important;
    width:7px!important;
    height:7px!important;
    border-radius:50%!important;
    background:var(--kv-prime-light)!important;
    box-shadow:0 0 0 4px rgba(251,215,157,.12)!important;
}
.fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > .kv-live-badge > .kv-live-badge__live{
    color:var(--kv-prime-light)!important;
}
@media(max-width:600px){
    .fp-festivals-hero__visual > a.fp-festivals-hero__visual-link > .kv-live-badge{
        top:1rem!important;
        left:1rem!important;
        max-width:calc(100% - 2rem)!important;
    }
}
