/* =============================================================================
   Footer «A colonne» (Configurazione → Footer, dalla 1.2.492).
   Partial: views/partials/_footer_colonne.twig. Fondo, titoli e testi sono
   i colori del footer del tema (--color-footer-bg da app.css, --color-title-footer,
   --color-footer-text); --kf-accento è il colore scelto fra quelli del tema
   (linea, orologio, pulsante); --kf-altre le colonne dopo la prima.
   Telefono: una colonna; tablet: due; computer: tutte in fila, la prima più
   larga, con una riga sottile fra una e l'altra.
   ============================================================================= */
.kf {
    --kf-titolo: var(--color-title-footer, #ffffff);
    --kf-testo: var(--color-footer-text, rgba(255, 255, 255, .72));
    --kf-riga: rgba(255, 255, 255, .12);
    color: var(--kf-testo);
}
.kf-colonne {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
    padding: 48px 0 40px;
}
.kf-col { min-width: 0; }

/* Marca */
.kf-logo { display: block; width: auto; max-width: 240px; max-height: 64px; margin-bottom: 18px; }
.kf-logo--bianco { filter: brightness(0) invert(1); }
.kf-nome-sito { display: block; margin-bottom: 14px; color: var(--kf-titolo); font-size: 20px; font-weight: 700; }
.kf .kf-testo { margin: 0; font-size: 15px; line-height: 1.6; max-width: 380px; }
.kf-linea { display: block; width: 40px; height: 2px; margin: 18px 0 16px; background: var(--kf-accento); }

/* Titoli delle colonne (il tema dà agli h2 2em e spazi: qui niente) */
.kf .kf-titolo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 18px;
    padding: 0;
    color: var(--kf-titolo);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
}
.kf-orologio { flex: none; color: var(--kf-accento); }
.kf-rientro { padding-left: 34px; }

/* Menu con le frecce: le frecce in colonna, alla destra della voce più lunga */
.kf-menu { display: inline-grid; gap: 10px; min-width: 150px; margin: 0; padding: 0; list-style: none; }
.kf-menu a,
.kf-menu a:visited {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    color: var(--kf-testo);
    font-size: 15px;
    line-height: 1.4;
}
.kf-menu a:hover,
.kf-menu a:focus-visible { color: var(--kf-titolo); }
.kf-freccia { flex: none; opacity: .8; }

/* Luoghi */
.kf-luoghi { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.kf-luoghi li { display: flex; flex-direction: column; gap: 2px; }
.kf .kf-luogo-nome { color: var(--kf-titolo); font-size: 15px; font-weight: 600; line-height: 1.35; }
.kf a.kf-luogo-nome:hover { color: var(--kf-titolo); text-decoration: underline; text-underline-offset: 3px; }
.kf-luogo-sotto { font-size: 13px; line-height: 1.4; }

/* Orari */
.kf-orari-elenco { display: grid; gap: 8px; margin: 0; }
.kf-orario { display: flex; flex-wrap: wrap; column-gap: 18px; row-gap: 2px; font-size: 14px; line-height: 1.45; }
.kf-orario dt { min-width: 92px; color: var(--kf-titolo); font-weight: 500; }
.kf-orario dd { display: flex; flex-wrap: wrap; column-gap: 10px; margin: 0; }
.kf-sep { opacity: .5; }
.kf a.kf-pulsante,
.kf a.kf-pulsante:visited {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin-top: 24px;
    padding: 12px 22px;
    border: 2px solid var(--kf-accento);
    border-radius: 999px;
    color: var(--kf-titolo);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    transition: background-color .2s ease;
}
.kf a.kf-pulsante:hover,
.kf a.kf-pulsante:focus-visible { background: var(--kf-accento); color: #fff; }

/* Barra in basso */
.kf-basso { border-top: 1px solid var(--kf-riga); }
.kf-basso-dentro {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 28px;
    padding-top: 18px;
    padding-bottom: 18px;
    font-size: 13px;
}
.kf .kf-copy { margin: 0; }
.kf-copy a,
.kf-copy a:visited { color: inherit; text-decoration: underline; }
.kf-legali { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 0; margin: 0 0 0 auto; padding: 0; list-style: none; }
.kf-legali li + li::before { content: '|'; margin: 0 14px; opacity: .5; }
.kf-legali a,
.kf-legali a:visited,
.kf-cookie {
    padding: 0;
    border: 0;
    background: none;
    color: var(--kf-testo);
    font: inherit;
    cursor: pointer;
}
.kf-legali a:hover,
.kf-cookie:hover { color: var(--kf-titolo); }
.kf .kf-frase { display: inline-flex; align-items: center; gap: 10px; margin: 0; }
.kf-bandiera { flex: none; width: 20px; height: 14px; border-radius: 2px; }
.kf-bandiera--it { background: linear-gradient(90deg, #009246 0 33.4%, #ffffff 33.4% 66.6%, #ce2b37 66.6% 100%); }
.kf a:focus-visible,
.kf-cookie:focus-visible { outline: 2px solid var(--kf-titolo); outline-offset: 3px; }

/* Tablet: due colonne */
@media (min-width: 640px) {
    .kf-colonne { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 48px; }
    .kf-marca { grid-column: 1 / -1; }
}

/* Computer: tutte in fila, la prima più larga, righe sottili in mezzo */
@media (min-width: 1024px) {
    .kf-colonne {
        grid-template-columns: minmax(0, 1.45fr) repeat(var(--kf-altre, 3), minmax(0, 1fr));
        gap: 0;
        padding: 56px 0 48px;
    }
    .kf-marca { grid-column: auto; padding-right: 40px; }
    .kf-col + .kf-col { padding: 0 clamp(20px, 2.6vw, 44px); border-left: 1px solid var(--kf-riga); }
    .kf-col:last-child { padding-right: 0; }
}

/* Telefono: barra in basso centrata */
@media (max-width: 767px) {
    .kf-basso-dentro { flex-direction: column; text-align: center; }
    .kf-legali { justify-content: center; gap: 8px 22px; margin: 0; }
    .kf-legali li + li::before { content: none; }
}
