/* ==========================================================
   FESTIVAL — completari peste event-wedding.css
   Refoloseste: .container .section .section--alt .section__head
   .kicker .display .lead .muted .card .btn .btn--gold .btn--ghost
   .hero .hero__bg .hero__content .tags .actions .gallery
   .cfx-split .cfx-card .cfx-media .cfx-main .cfx-thumbs
   .xp-grid .xp-item .xp-icon .xp-body .list .policy-*
   ========================================================== */

:root {
    --fest-ink: #4A1512;
    --fest-warm: #8F5228;
    --fest-sand: #F1C88A;
}

/* HERO — scrim peste fotografie, altfel textul alb nu se citeste */
.hero--festival::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(180deg, rgba(32, 12, 8, .30) 0%, rgba(32, 12, 8, .58) 100%);
}

.hero--festival .hero__content {
    z-index: 2;
}

/* metadata din hero — text cu iconita, nu pastile albe (aratau a butoane).
   NU folosim .tags/.tags span: alea sunt partajate cu pagina de nunti. */
.fest-meta {
    list-style: none;
    margin: 14px 0 2px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
}

.fest-meta li {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 0 20px;
    font-weight: 600;
    font-size: 1.02rem;
    color: #fff;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

.fest-meta li + li {
    border-left: 1px solid rgba(255, 255, 255, .32);
}

.fest-meta svg {
    flex: none;
    color: var(--fest-sand);
}

@media (max-width: 640px) {
    .fest-meta {
        flex-direction: column;
        gap: 10px;
    }

    /* pe coloana, bara verticala n-ar mai avea sens */
    .fest-meta li + li {
        border-left: 0;
    }

    .fest-meta li {
        padding: 0;
    }
}

/* badge-ul de intrare libera din hero — accent, nu buton */
.fest-free {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--fest-sand);
    text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

/* ARTISTI — policy-grid pe 3 coloane in loc de 2 */
.policy-grid--three {
    grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 900px) {
    .policy-grid--three {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 620px) {
    .policy-grid--three {
        grid-template-columns: 1fr;
    }
}

/* PARTENERI */
.fest-partners {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 22px;
}

.fest-partners .card {
    padding: 22px 24px;
}

.fest-partners h3 {
    margin: 0 0 10px;
    font-size: 1.15rem;
    color: var(--navy, #0f2442);
}

.fest-partners .list {
    margin: 0;
}

/* CTA CAZARE */
.fest-cta {
    background: linear-gradient(135deg, #4A1512 0%, #5E2017 68%, #8F5228 100%);
    color: #fff;
    padding: 56px 0;
}

.fest-cta .fest-cta-inner {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
}

.fest-cta h2 {
    margin: 0 0 12px;
    color: #fff;
    font-size: clamp(26px, 3vw, 38px);
    line-height: 1.15;
}

.fest-cta p {
    margin: 0 0 24px;
    color: rgba(255, 255, 255, .9);
    font-size: 1.05rem;
    line-height: 1.6;
}

.fest-cta .fest-cta-date {
    display: inline-block;
    margin-bottom: 16px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: .88rem;
    color: var(--fest-sand);
}

/* ---------- LOCATIE / HARTA ---------- */
.fest-loc {
    display: grid;
    grid-template-columns: 380px 1fr;
    gap: 28px;
    align-items: stretch;
}

@media (max-width: 980px) {
    .fest-loc {
        grid-template-columns: 1fr;
    }
}

/* cardul cu detalii */
.fest-loc__card {
    background: #fff;
    border: 1px solid rgba(15, 36, 66, .10);
    border-radius: var(--rad, 20px);
    box-shadow: var(--shadow, 0 10px 30px rgba(15, 36, 66, .08));
    padding: 30px 28px;
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.fest-loc__title {
    margin: 0;
    font-size: 1.3rem;
    color: var(--navy, #0f2442);
}

.fest-loc__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.fest-loc__list li {
    display: grid;
    grid-template-columns: 38px 1fr;
    align-items: start;
    gap: 12px;
}

.fest-loc__ico {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: rgba(196, 155, 108, .14);
    color: var(--gold, #C49B6C);
}

.fest-loc__label {
    display: block;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted, #5a5f73);
    margin-bottom: 3px;
}

.fest-loc__value {
    display: block;
    color: var(--ink, #172036);
    font-weight: 600;
    line-height: 1.45;
    text-decoration: none;
}

a.fest-loc__value:hover {
    color: var(--gold-2, #B38A5C);
}

.fest-loc__card .btn {
    margin-top: auto;
    justify-content: center;
}

/* rama hartii */
.fest-loc__map {
    position: relative;
    min-height: 420px;
    border-radius: var(--rad, 20px);
    overflow: hidden;
    box-shadow: var(--shadow, 0 10px 30px rgba(15, 36, 66, .08));
    border: 1px solid rgba(15, 36, 66, .10);
}

.fest-loc__map iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    display: block;
    /* harta sta discret pana o atingi, ca sa nu concureze cu restul paginii */
    filter: saturate(.85) contrast(1.02);
    transition: filter .35s ease;
}

.fest-loc__map:hover iframe,
.fest-loc__map:focus-within iframe {
    filter: none;
}

@media (max-width: 980px) {
    .fest-loc__map {
        min-height: 340px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .fest-loc__map iframe {
        transition: none;
    }
}

/* nota coordonator sub lista de artisti */
.fest-note {
    margin-top: 20px;
    text-align: center;
    font-style: italic;
    color: var(--muted, #5a5f73);
}

/* ---------- PILONI PROGRAM — fara iconite, doar linie aurie ---------- */
.fest-pillar {
    /* .xp-item e flex (pentru iconita) — fara ea, textul ia toata latimea */
    display: block;
    padding: 30px 28px;
}

.fest-pillar::before {
    content: "";
    display: block;
    width: 44px;
    height: 3px;
    border-radius: 999px;
    background: var(--gold, #C49B6C);
    margin-bottom: 20px;
}

.fest-pillar .xp-body h3 {
    font-size: 1.2rem;
    line-height: 1.3;
}

.fest-pillar .xp-body p {
    margin-top: 10px;
    line-height: 1.6;
}

/* ---------- SECTIUNEA DESPRE — respiratie si ritm ---------- */
.fest-about {
    padding: 72px 0;
}

.fest-about .section__head {
    margin-bottom: 36px;
}

.fest-about .cfx-split {
    /* implicit e 1fr 1.2fr — coloana din dreapta iesea mai lata decat posterul
       (max 420px) si lasa gol. Fixam coloana pe latimea posterului. */
    grid-template-columns: minmax(0, 1fr) 420px;
    gap: 48px;
    align-items: center;
}

@media (max-width: 900px) {
    .fest-about .cfx-split {
        grid-template-columns: 1fr;
    }
}

.fest-prose {
    padding: 34px 36px;
}

.fest-prose p {
    margin: 0 0 20px;
    font-size: 1.06rem;
    line-height: 1.75;
    color: var(--muted, #5a5f73);
}

.fest-prose p:last-child {
    margin-bottom: 0;
}

/* primul paragraf ca intro, mai apasat */
.fest-prose p:first-of-type {
    font-size: 1.18rem;
    line-height: 1.65;
    color: var(--ink, #172036);
}

/* ultimul paragraf = mentiunea despre parteneri, vizual pus deoparte */
.fest-prose p:last-of-type {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid rgba(15, 36, 66, .10);
    font-size: .98rem;
    font-style: italic;
}

.fest-prose .cfx-icon {
    margin-bottom: 18px;
}

@media (max-width: 900px) {
    .fest-about {
        padding: 48px 0;
    }

    .fest-about .cfx-split {
        gap: 28px;
    }

    .fest-prose {
        padding: 26px 24px;
    }
}

/* posterul din sectiunea Despre — intreg, nu decupat */
/* .cfx-media e flex-direction:column, deci align-items = axa ORIZONTALA.
   `start` lipea posterul de marginea stanga a coloanei. */
.fest-poster {
    align-items: center;
}

.fest-poster a {
    display: block;
    max-width: 420px;
}

.fest-poster img {
    width: 100%;
    /* obligatoriu: imaginea are atribute width/height, fara asta ramane la
       inaltimea nativa si intinde toata grila */
    height: auto;
    border-radius: 16px;
    box-shadow: var(--shadow, 0 10px 30px rgba(15, 36, 66, .08));
}
