



/* ══ REGOLA FONDAMENTALE 04/08/2026 (richiesta categorica di Daniele) ══
   NESSUN link sottolineato in nessuna pagina del sito, bottoni compresi.
   Prima le sottolineature venivano tolte caso per caso su ogni classe (rischio
   concreto di dimenticarla su una nuova, come successo su .venue-back /
   'Torna ai locali') — ora è un'unica regola globale, sempre valida. Le ~40
   regole puntuali già esistenti restano (non tolte, ridondanti ma innocue). */
a, a:hover, a:focus, a:active, a:visited { text-decoration: none !important; }



/* =============================================
   WPFORMS — Stile Tribute Nation
   ============================================= */
.wpforms-container .wpforms-form .wpforms-field input,
.wpforms-container .wpforms-form .wpforms-field textarea,
.wpforms-container .wpforms-form .wpforms-field select {
    background: #111111 !important;
    border: 1px solid #2a2a2a !important;
    color: #d4d4d4 !important;
    border-radius: 3px !important;
    padding: 10px 14px !important;
    transition: border-color 0.2s !important;
}
.wpforms-container .wpforms-form .wpforms-field input:focus,
.wpforms-container .wpforms-form .wpforms-field textarea:focus,
.wpforms-container .wpforms-form .wpforms-field select:focus {
    border-color: #e63000 !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(230,48,0,0.15) !important;
}
.wpforms-container .wpforms-form .wpforms-field label {
    color: #d4d4d4 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
}
.wpforms-container .wpforms-form .wpforms-submit-container button {
    background: #e63000 !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 12px 28px !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    transition: background 0.2s !important;
}
.wpforms-container .wpforms-form .wpforms-submit-container button:hover {
    background: #ff6b00 !important;
}

/* =============================================
   COVER BLOCK — Card cliccabili homepage
   ============================================= */
.wp-block-cover {
    position: relative;
}
.wp-block-cover a {
    color: inherit !important;
    text-decoration: none !important;
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
}
.wp-block-cover a:hover {
    background: rgba(0, 0, 0, 0.15);
}
/* Glow sul testo al hover della card */
.wp-block-cover:hover .wp-block-cover__inner-container {
    text-shadow: 0 0 5px #fff, 0 0 20px #fff, 0 0 50px #e63000, 0 0 100px #e63000, 0 0 180px #ff6b00;
    transition: text-shadow 0.3s ease;
}

/* =============================================
   BLOG — Card articoli
   ============================================= */
.blog .ast-article-post,
.archive .ast-article-post {
    background: #111111 !important;
    border: 1px solid #222222 !important;
    overflow: hidden;
    display: flex !important;
    flex-direction: column;
    transition: border-color 0.3s ease;
    float: none !important;
    width: 100% !important;
    margin-bottom: 24px !important;
}
.blog .ast-article-post:hover,
.archive .ast-article-post:hover {
    border-color: #e63000 !important;
}
.blog .ast-article-post .post-thumb,
.archive .ast-article-post .post-thumb {
    position: relative !important;
    width: 100%;
    height: 220px;
    overflow: hidden;
    flex-shrink: 0;
}
.blog .ast-article-post .post-thumb img,
.archive .ast-article-post .post-thumb img {
    position: absolute;
    top: 0; left: 0;
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    object-fit: cover;
}
.blog .ast-article-post .entry-content-wrap,
.archive .ast-article-post .entry-content-wrap {
    padding: 20px !important;
    position: relative !important;
    background: #111111;
    z-index: 2;
}
.ast-blog-single-element.ast-taxonomy-container a,
.blog .ast-terms-meta a,
.archive .ast-terms-meta a {
    background: #e63000 !important;
    color: #fff !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 3px 10px !important;
    text-decoration: none !important;
    display: inline-block;
    margin-bottom: 12px;
}
.blog .entry-title a,
.archive .entry-title a {
    color: #ffffff !important;
    text-decoration: none !important;
    font-size: 18px;
    line-height: 1.3;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover {
    color: #e63000 !important;
}
.blog .entry-meta,
.archive .entry-meta {
    font-size: 12px;
    color: #888 !important;
}
.blog .entry-summary,
.archive .entry-summary {
    color: #aaa !important;
    font-size: 14px;
    line-height: 1.6;
}

/* =============================================
   SIDEBAR
   ============================================= */
#secondary {
    background: transparent !important;
}
#secondary .widget {
    background: #111111 !important;
    border: 1px solid #222222 !important;
    padding: 20px !important;
    margin-bottom: 20px !important;
}
#secondary .widget-title {
    background: #e63000;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 8px 14px;
    margin: -20px -20px 20px -20px !important;
}
#secondary .widget ul li {
    padding: 10px 0;
    border-bottom: 1px solid #222;
    font-size: 13px;
    list-style: none;
}
#secondary .widget ul li:last-child {
    border-bottom: none;
}
#secondary .widget ul li a {
    color: #dddddd !important;
    text-decoration: none !important;
}
#secondary .widget ul li a:hover {
    color: #e63000 !important;
}
#secondary .widget ul li .post-date {
    display: block;
    font-size: 11px;
    color: #666;
    margin-top: 3px;
}
#secondary .wp-block-latest-posts__featured-image img,
#secondary .wp-block-latest-posts li img,
.widget_recent_entries li img {
    width: 70px !important;
    height: 70px !important;
    object-fit: contain !important;
    flex-shrink: 0;
}

/* =============================================
   LAYOUT
   ============================================= */
.ast-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
}
.site-content > .ast-container {
    max-width: 1200px !important;
}
#primary {
    padding-top: 0 !important;
}
.ast-separate-container .ast-article-post {
    margin-top: 0 !important;
}
.ast-right-sidebar #primary .ast-row,
.ast-left-sidebar #primary .ast-row {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 20px !important;
    align-items: start !important;
}
.ast-right-sidebar #primary .ast-article-post,
.ast-left-sidebar #primary .ast-article-post {
    float: none !important;
    width: 100% !important;
    margin: 0 !important;
}

/* =============================================
   NAVIGAZIONE ARTICOLO SINGOLO
   ============================================= */
.ast-single-post .nav-links,
.navigation.post-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 40px 0 20px;
}
.navigation.post-navigation .nav-previous,
.navigation.post-navigation .nav-next {
    flex: 1;
    background: #111111;
    border: 1px solid #222222;
    padding: 16px 20px;
    transition: border-color 0.3s ease;
}
.navigation.post-navigation .nav-previous:hover,
.navigation.post-navigation .nav-next:hover {
    border-color: #e63000;
}
.navigation.post-navigation .nav-next {
    text-align: right;
}
.navigation.post-navigation .meta-nav {
    display: block;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #e63000;
    margin-bottom: 6px;
}
.navigation.post-navigation .post-title,
.navigation.post-navigation a {
    color: #dddddd !important;
    text-decoration: none !important;
    font-size: 14px;
    line-height: 1.4;
}
.navigation.post-navigation a:hover .post-title,
.navigation.post-navigation a:hover {
    color: #ffffff !important;
}

/* =============================================
   IMMAGINE IN EVIDENZA — ARTICOLO SINGOLO
   ============================================= */
.single .featured-section .ast-featured-post img,
.single .post-thumb img {
    width: 100% !important;
    height: 400px !important;
    object-fit: cover;
    display: block;
    margin-bottom: 30px;
}
.single .wp-post-image {
    width: 100% !important;
    height: 420px !important;
    object-fit: contain !important;
    display: block;
    margin-bottom: 30px;
}

/* =============================================
   ARTICOLI CORRELATI
   ============================================= */
.ast-related-posts-title-section {
    border-top: 2px solid #e63000;
    padding-top: 30px;
    margin-top: 40px;
}
.ast-related-posts-title-section h3 {
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: #e63000 !important;
}
.ast-related-post-wrap {
    background: #111111 !important;
    border: 1px solid #222222;
    transition: border-color 0.3s;
}
.ast-related-post-wrap:hover {
    border-color: #e63000;
}
.ast-related-post-wrap .entry-title a {
    color: #ffffff !important;
    text-decoration: none !important;
}
.ast-related-post-wrap .entry-title a:hover {
    color: #e63000 !important;
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 900px) {
    .ast-right-sidebar #primary .ast-row,
    .ast-left-sidebar #primary .ast-row {
        grid-template-columns: 1fr !important;
    }
}

/* =============================================
   BAND GRID — seconda query loop a 2 colonne
   ============================================= */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-template {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 36px !important;
    list-style: none !important;
    padding: 1.5rem 0 4rem !important;
    margin: 0 !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post {
    background: #111111 !important;
    border: 1px solid #222222 !important;
    overflow: hidden;
    transition: border-color 0.3s ease, transform 0.3s ease;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover {
    border-color: #e63000 !important;
    transform: translateY(-4px);
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-columns {
    flex-direction: column !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-column {
    flex-basis: 100% !important;
    width: 100% !important;
    min-width: 0 !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
    aspect-ratio: 4/3;
    overflow: hidden;
    display: block !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    object-fit: contain !important;
    display: block;
    filter: brightness(0.85) saturate(0.8);
    transition: transform 0.5s ease, filter 0.4s ease;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
    transform: scale(1.06);
    filter: brightness(0.7) saturate(0.6);
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 1rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    padding: 1rem 1.2rem 1.3rem !important;
    margin: 0 !important;
    display: block !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title a {
    color: #f0ece4 !important;
    text-decoration: none !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover .wp-block-post-title a {
    color: #e63000 !important;
}
@media (max-width: 600px) {
    .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-template {
        grid-template-columns: 1fr !important;
    }
}

/* Band grid sotto — card più piccole del primo piano */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-template {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
    aspect-ratio: 3/2 !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title {
    font-size: 0.78rem !important;
    padding: 0.7rem 0.9rem 0.9rem !important;
}
@media (max-width: 768px) {
    .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-template {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

/* ── SECOND QUERY LOOP — altezza card uniforme ── */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
    aspect-ratio: 4/3 !important;
    overflow: hidden !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    object-fit: contain !important;
    display: block !important;
}

/* ------------------------------------------------
   THE EVENTS CALENDAR — Dark theme widget
   ------------------------------------------------ */

/* Titolo header widget */
.tribe-events-widget-events-list__header-title {
    color: #ffffff !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    opacity: 0.5 !important;
    margin-bottom: 1rem !important;
}

/* Contenitore evento singolo */
.tribe-events-widget-events-list__event-wrapper {
    border-left: 3px solid #e63000 !important;
    padding: 0.75rem 1rem !important;
    margin-bottom: 1rem !important;
    background: rgba(255,255,255,0.03) !important;
    transition: background 0.2s !important;
}
.tribe-events-widget-events-list__event-wrapper:hover {
    background: rgba(230,48,0,0.08) !important;
}

/* Colonnina data sinistra */
.tribe-event-date-start,
.tribe-events-widget-events-list__event-date-tag-daynum {
    color: #e63000 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
}
.tribe-events-widget-events-list__event-date-tag-month {
    color: #ff6b00 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.65rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
}

/* Ora */
.tribe-events-widget-events-list__event-datetime {
    color: #aaaaaa !important;
    font-size: 0.75rem !important;
    font-family: 'Montserrat', sans-serif !important;
}

/* Titolo evento */
.tribe-events-widget-events-list__event-title a,
.tribe-events-widget-events-list__event-title {
    color: #ffffff !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    text-decoration: none !important;
    transition: color 0.2s !important;
}
.tribe-events-widget-events-list__event-title a:hover {
    color: #e63000 !important;
}

/* Footer "Vedi Calendario" */
.tribe-events-widget-events-list__view-more-link,
.tribe-events-widget-events-list__view-more {
    color: #e63000 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.75rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}
.tribe-events-widget-events-list__view-more-link:hover {
    color: #ff6b00 !important;
}

/* Icona calendario default — nascondi */
.tribe-events-c-messages__message-icon {
    display: none !important;
}
.tribe-events-c-messages__message {
    color: #666 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.85rem !important;
}

/* ================================================
   TEC — PAGINE CALENDARIO (lista, mese, oggi)
   ================================================ */

/* --- WRAPPER GENERALE --- */
.tribe-common,
.tribe-events {
    background-color: #080808 !important;
    color: #f0ece4 !important;
}

/* --- SEARCH BAR --- */
.tribe-events-c-search {
    background: #111111 !important;
    border: 1px solid #222222 !important;
    border-radius: 3px !important;
}
.tribe-events-c-search__input {
    background: #111111 !important;
    color: #f0ece4 !important;
    border: none !important;
}
.tribe-events-c-search__input::placeholder {
    color: #888888 !important;
}
.tribe-events-c-search__button {
    background: #e63000 !important;
    color: #ffffff !important;
    border: none !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
}
.tribe-events-c-search__button:hover {
    background: #ff6b00 !important;
}

/* --- VIEW SELECTOR (Lista / Mese / Giorno) --- */
.tribe-events-c-view-selector__list {
    background: #111111 !important;
    border: 1px solid #222222 !important;
}
.tribe-events-c-view-selector__list-item-link {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
}
.tribe-events-c-view-selector__list-item-link:hover,
.tribe-events-c-view-selector__list-item-link--active {
    color: #e63000 !important;
}
.tribe-events-c-view-selector__button {
    color: #d4d4d4 !important;
    background: transparent !important;
}

/* --- NAV (Prev / Oggi / Next) --- */
.tribe-events-c-nav__prev,
.tribe-events-c-nav__next,
.tribe-events-c-nav__today {
    color: #e63000 !important;
    background: transparent !important;
    border: 1px solid #e63000 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-weight: 700 !important;
    border-radius: 3px !important;
    padding: 6px 14px !important;
}
.tribe-events-c-nav__prev:hover,
.tribe-events-c-nav__next:hover,
.tribe-events-c-nav__today:hover {
    background: #e63000 !important;
    color: #ffffff !important;
}

/* --- TOP BAR (titolo mese/periodo) --- */
.tribe-events-c-top-bar__datepicker,
.tribe-events-c-top-bar__datepicker-button,
.tribe-events-header h1,
.tribe-events-header h2 {
    color: #f0ece4 !important;
    font-family: 'Aoboshi One', serif !important;
}

/* ================================================
   VISTA LISTA (/events/)
   ================================================ */

/* Separatore mese */
.tribe-events-calendar-list__month-separator-text {
    color: #e63000 !important;
    font-family: 'Aoboshi One', serif !important;
    font-size: 1.1rem !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid #222222 !important;
    padding-bottom: 8px !important;
}
.tribe-events-calendar-list__month-separator {
    border-color: #222222 !important;
}

/* Card evento lista */
.tribe-events-calendar-list__event {
    background: #111111 !important;
    border-left: 3px solid #e63000 !important;
    border-bottom: 1px solid #222222 !important;
    padding: 16px !important;
    margin-bottom: 12px !important;
    border-radius: 0 3px 3px 0 !important;
}

/* Date tag (giorno della settimana + numero) */
.tribe-events-calendar-list__event-date-tag {
    background: #080808 !important;
    border: none !important;
    min-width: 52px !important;
}
.tribe-events-calendar-list__event-date-tag-weekday {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
}
.tribe-events-calendar-list__event-date-tag-daynum {
    color: #e63000 !important;
    font-family: 'Aoboshi One', serif !important;
    font-size: 2rem !important;
    line-height: 1 !important;
}

/* Titolo evento */
.tribe-events-calendar-list__event-title a,
.tribe-events-calendar-list__event-title-link {
    color: #f0ece4 !important;
    font-family: 'Aoboshi One', serif !important;
    text-decoration: none !important;
}
.tribe-events-calendar-list__event-title a:hover,
.tribe-events-calendar-list__event-title-link:hover {
    color: #e63000 !important;
}

/* Datetime (ora evento) */
.tribe-events-calendar-list__event-datetime {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.85rem !important;
}
.tribe-events-calendar-list__event-datetime abbr {
    color: #888888 !important;
    text-decoration: none !important;
    border: none !important;
}

/* Descrizione */
.tribe-events-calendar-list__event-description {
    color: #d4d4d4 !important;
    font-family: 'Montserrat', sans-serif !important;
}

/* ================================================
   VISTA MESE (/events/mese/)
   ================================================ */

/* Griglia */
.tribe-events-calendar-month__body {
    border-color: #222222 !important;
}
.tribe-events-calendar-month__week {
    border-color: #222222 !important;
}
.tribe-events-calendar-month__day {
    background: #080808 !important;
    border-color: #222222 !important;
}
.tribe-events-calendar-month__day--other-month {
    background: #080808 !important;
    opacity: 0.5 !important;
}
.tribe-events-calendar-month__day--current {
    background: #161616 !important;
}

/* Header giorni della settimana */
.tribe-events-calendar-month__header-column {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    background: #080808 !important;
    border-color: #222222 !important;
}

/* Numero giorno */
.tribe-events-calendar-month__day-date-link,
.tribe-events-calendar-month__day-date-daynum {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
}
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-link,
.tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date-daynum {
    color: #e63000 !important;
    font-weight: 700 !important;
}

/* Evento nella cella mese */
.tribe-events-calendar-month__calendar-event {
    background: #1a0a00 !important;
    border-left: 2px solid #e63000 !important;
    border-radius: 2px !important;
    margin-bottom: 2px !important;
}
.tribe-events-calendar-month__calendar-event-title-link {
    color: #f0ece4 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.75rem !important;
    text-decoration: none !important;
}
.tribe-events-calendar-month__calendar-event-title-link:hover {
    color: #e63000 !important;
}
.tribe-events-calendar-month__calendar-event-datetime {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 0.7rem !important;
}

/* Tooltip evento (hover) */
.tribe-events-calendar-month__calendar-event-tooltip {
    background: #111111 !important;
    border: 1px solid #222222 !important;
    box-shadow: 0 4px 20px rgba(0,0,0,0.8) !important;
}
.tribe-events-calendar-month__calendar-event-tooltip-title-link {
    color: #f0ece4 !important;
    font-family: 'Aoboshi One', serif !important;
}
.tribe-events-calendar-month__calendar-event-tooltip-datetime {
    color: #888888 !important;
}

/* --- LAYOUT FIX: ripristina grid TEC (Astra sovrappone ast-article-post) --- */
.tribe-events-calendar-list__event.tribe-common-g-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    gap: 16px !important;
    padding: 16px !important;
}
.tribe-events-calendar-list__event .tribe-events-calendar-list__event-date-tag {
    flex: 0 0 52px !important;
    width: 52px !important;
    min-width: 52px !important;
    text-align: center !important;
}
.tribe-events-calendar-list__event .tribe-events-calendar-list__event-details.tribe-common-g-col {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    overflow: visible !important;
}

/* --- LAYOUT FIX v2: event-wrapper deve espandersi (Astra blocca a 48px) --- */
.tribe-events-calendar-list__event-row.tribe-common-g-row {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0 !important;
}
.tribe-events-calendar-list__event-wrapper.tribe-common-g-col {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
}
.tribe-events-calendar-list__event.tribe-common-g-row {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* --- LAYOUT FIX v3: date-tag occupa 100% per tribe-common-g-col, va limitato --- */
/* Il date-tag è sibling del wrapper nella LI row — deve essere larghezza fissa */
.tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag {
    flex: 0 0 64px !important;
    width: 64px !important;
    max-width: 64px !important;
    min-width: 64px !important;
}
/* Il wrapper prende lo spazio rimanente */
.tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-wrapper {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: calc(100% - 80px) !important;
    min-width: 0 !important;
    overflow: hidden !important;
}

/* ================================================
   HOME — Foto card Locali/Band/Fan: desaturazione
   ================================================ */
.wp-block-cover__image-background {
    filter: saturate(0.3) brightness(0.7) !important;
    transition: filter 0.4s ease !important;
}
.wp-block-cover:hover .wp-block-cover__image-background {
    filter: saturate(0.6) brightness(0.85) !important;
}

/* ===== FIX TEC LIST VIEW - SPACING & ALIGNMENT ===== */
/* Riduci gap verticale tra card (era 40px top margin sul LI) */
.tribe-events-calendar-list__event-row.tribe-common-g-row {
    margin-top: 8px !important;
    margin-bottom: 8px !important;
}
/* Riduci padding date-tag (era 48px 24px) e centra verticalmente */
.tribe-events-calendar-list__event-date-tag {
    padding: 12px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
}
/* Riduci padding laterale del wrapper */
.tribe-events-calendar-list__event-wrapper {
    padding: 12px 16px !important;
}
/* Rimuovi margin bottom eccessivo sull'article */
.tribe-events-calendar-list__event.tribe-common-g-row {
    margin-bottom: 0 !important;
}

/* ===== FIX TEC MONTH VIEW ===== */
/* Sidebar grigia fuori dal container TEC */
body.tribe-theme-astra .tribe-events-pg-template,
.tribe-events-pg-template {
    background-color: #080808 !important;
}
/* Celle del mese sfondo scuro */
.tribe-events-calendar-month__day {
    background-color: #111111 !important;
    border-color: #222 !important;
}
.tribe-events-calendar-month__day--past {
    background-color: #0a0a0a !important;
}
/* Header giorni settimana */
.tribe-events-calendar-month__header-column {
    color: #888888 !important;
    border-color: #222 !important;
}
/* Bordo griglia mese */
.tribe-events-calendar-month__body {
    border-color: #222 !important;
}
/* "Questo mese" button */
.tribe-events-c-nav__today {
    background: transparent !important;
    color: #e63000 !important;
    border: 1px solid #444 !important;
    border-radius: 3px !important;
}
.tribe-events-c-nav__today:hover {
    border-color: #e63000 !important;
}
/* View selector attivo */
.tribe-events-c-view-selector__list-item--active a,
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link {
    color: #e63000 !important;
    border-bottom: 2px solid #e63000 !important;
}


/* ===== FIX BODY BACKGROUND - PAGINE TEC ===== */
body.tribe-events-page-template,
body.post-type-archive-tribe_events {
    background-color: #080808 !important;
}
/* Fix border bottone "Questo mese" */
.tribe-events-c-nav__today.tribe-common-c-btn-border {
    border-color: #555 !important;
}


/* ===== FIX DATE TAG ALIGNMENT & BORDER ===== */
/* Estende date-tag per tutta l'altezza della row */
.tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag {
    align-self: stretch !important;
    justify-content: center !important;
}
/* Rimuovi border beige TEC default, sostituisci con palette */
.tribe-events-calendar-list__event-date-tag {
    border-color: #2a2a2a !important;
}
/* Nascondi description vuota "—" */
.tribe-events-calendar-list__event-description {
    display: none !important;
}


/* ===== FIX SPECIFICITÀ ALTA - DATE TAG & DESCRIPTION ===== */
/* Border color con specificità aumentata */
.tribe-events .tribe-events-calendar-list__event-date-tag,
.tribe-events-calendar-list .tribe-events-calendar-list__event-date-tag {
    border-color: #2a2a2a !important;
    border-right-color: #2a2a2a !important;
}
/* Nascondi descrizione vuota con specificità alta */
.tribe-events .tribe-events-calendar-list__event-description,
.tribe-events-calendar-list__event .tribe-events-calendar-list__event-description {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}


/* ===== FIX BORDER DATE-TAG - MAX SPECIFICITÀ ===== */
body .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag {
    border: 1px solid #2a2a2a !important;
    border-top-color: #2a2a2a !important;
    border-right-color: #2a2a2a !important;
    border-bottom-color: #2a2a2a !important;
    border-left-color: #2a2a2a !important;
}


/* ===== TEC LIST VIEW — FEATURED IMAGE LAYOUT ===== */
/* Row-reverse: immagine a destra, testo a sinistra (come Geronimo's) */
.tribe-events-calendar-list__event.tribe-common-g-row {
    flex-direction: row-reverse !important;
    align-items: stretch !important;
}

/* Wrapper immagine: larghezza fissa a destra */
.tribe-events-calendar-list__event-featured-image-wrapper {
    flex: 0 0 260px !important;
    width: 260px !important;
    max-width: 260px !important;
    overflow: hidden !important;
    border-radius: 0 4px 4px 0 !important;
}

/* Immagine: copre tutto lo spazio, altezza fluida */
.tribe-events-calendar-list__event-featured-image-wrapper img,
.tribe-events-calendar-list__event-featured-image {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    object-fit: contain !important;
    display: block !important;
}

/* Dettagli evento: si espande a sinistra */
.tribe-events-calendar-list__event-details {
    flex: 1 1 auto !important;
    padding: 16px 20px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0 !important;
}

/* Card senza immagine: mantieni layout normale */
.tribe-events-calendar-list__event:not(:has(.tribe-events-calendar-list__event-featured-image-wrapper)) .tribe-events-calendar-list__event-details {
    padding: 12px 16px !important;
}


/* ===== CARD CLEAN - RIMOZIONE BORDI VISIVI ===== */
/* Rimuovi border-left rosso dalla card (troppo pesante) */
.tribe-events-calendar-list__event.tribe-common-g-row {
    border-left: none !important;
}
/* Rimuovi completamente il bordo dal date-tag */
body .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag,
.tribe-events-calendar-list__event-date-tag {
    border: none !important;
    border-top: none !important;
    border-right: none !important;
    border-bottom: none !important;
    border-left: none !important;
}
/* Separatore sottile tra card — solo una riga in basso, non un box */
.tribe-events-calendar-list__event-row {
    border-bottom: 1px solid #1e1e1e !important;
}
.tribe-events-calendar-list__event-row:last-child {
    border-bottom: none !important;
}


/* ===== CARD BG = PAGE BG, REMOVE BORDER ===== */
.tribe-events-calendar-list__event.tribe-common-g-row,
.tribe-events-calendar-list__event {
    background: #080808 !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
}

/* Nascondi bottone "Iscriviti al calendario" */
.tribe-events-c-subscribe-dropdown { display: none !important; }


/* ===== TEC TYPOGRAPHY & COLOR FIXES (10/06/2026) ===== */

/* Titolo evento → Montserrat */
.tribe-events-calendar-list__event-title a,
.tribe-events-calendar-list__event-title {
    font-family: 'Montserrat', sans-serif !important;
}

/* Venue text → grigio chiaro */
.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-venue .tribe-venue-location,
.tribe-events-calendar-list__event-venue .tribe-venue,
.tribe-events-calendar-list__event-venue span,
.tribe-events-calendar-list__event-venue a {
    color: #aaaaaa !important;
}

/* View switcher (Lista/Mese/Giorno) → visibili */
.tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item-text,
.tribe-events-c-view-selector__list-item-text-label {
    color: #f0ece4 !important;
}
.tribe-events-c-view-selector__list-item-link:hover .tribe-events-c-view-selector__list-item-text {
    color: #e63000 !important;
}

/* Month view - pill eventi → accento rosso */
.tribe-events-calendar-month__calendar-event {
    background-color: #e63000 !important;
    border-radius: 3px !important;
}
.tribe-events-calendar-month__calendar-event-title a,
.tribe-events-calendar-month__calendar-event-title {
    color: #ffffff !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
}

/* Day view - messaggio "nessun evento" */
.tribe-events .tribe-events-c-messages__message {
    color: #aaaaaa !important;
}
.tribe-events .tribe-events-c-messages__message a {
    color: #e63000 !important;
}

/* Giorno/Oggi nav buttons */
.tribe-events-c-nav__prev-text,
.tribe-events-c-nav__next-text {
    color: #f0ece4 !important;
}


/* MONTH VIEW - PILL FIX (selettori reali dal DOM) */
.tribe-events-calendar-month__multiday-event-bar {
    background-color: #e63000 !important;
    border-radius: 3px !important;
}
.tribe-events-calendar-month__multiday-event-bar-inner {
    background-color: transparent !important;
}
.tribe-events-calendar-month__multiday-event-bar-title {
    color: #ffffff !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
}
/* Day selected highlight → accento coerente */
.tribe-events-calendar-month__day-cell--selected {
    background-color: rgba(230, 48, 0, 0.2) !important;
}


/* ===== SINGLE EVENT PAGE ===== */
.single-tribe_events body,
body.single-tribe_events {
    background-color: #080808 !important;
}
.tribe-events-single .tribe-events-single-section,
.tribe-events-single .tribe-event__header,
.tribe-events-single .tribe-event__body,
.tribe-events-single .tribe-events-single-event-description,
.tribe-events-single .tribe-event__schedule-details,
.tribe-events-single .tribe-event__title,
.tribe-events-single h1, .tribe-events-single h2, .tribe-events-single h3,
.tribe-events-single p, .tribe-events-single li,
.tribe-events-single .tribe-venue,
.tribe-events-single .tribe-organizer {
    color: #f0ece4 !important;
}
.tribe-events-single .tribe-events-back a,
.tribe-events-single a {
    color: #e63000 !important;
}
.tribe-events-single .tribe-events-schedule,
.tribe-events-single .tribe-events-abbr {
    color: #aaaaaa !important;
}

/* ===== DAY VIEW ===== */
.tribe-events-calendar-day__event-title a,
.tribe-events-calendar-day__event-title {
    color: #f0ece4 !important;
    font-family: 'Montserrat', sans-serif !important;
}
.tribe-events-calendar-day__event-datetime,
.tribe-events-calendar-day__event-venue,
.tribe-events-calendar-day__event-venue span {
    color: #aaaaaa !important;
}
.tribe-events-calendar-day__event {
    background: #111111 !important;
    border: none !important;
    border-bottom: 1px solid #1e1e1e !important;
}
.tribe-events-calendar-day__multiday-event-bar-title {
    color: #f0ece4 !important;
}
/* Giornata intera label */
.tribe-events-calendar-day__all-day-title,
.tribe-events-calendar-day__time-all-day {
    color: #888888 !important;
}

/* ===== LOADING OVERLAY (white flash) ===== */
.tribe-events-view-loader {
    background-color: rgba(8, 8, 8, 0.9) !important;
}
.tribe-events-view-loader__dot {
    background-color: #e63000 !important;
}

/* ===== MONTH NAV ARROWS ===== */
.tribe-events-c-nav__prev .tribe-common-c-btn-icon__icon-svg,
.tribe-events-c-nav__next .tribe-common-c-btn-icon__icon-svg,
.tribe-common-c-btn-icon .tribe-common-c-btn-icon__icon-svg {
    fill: #f0ece4 !important;
    stroke: #f0ece4 !important;
}
button.tribe-events-c-nav__prev,
button.tribe-events-c-nav__next {
    color: #f0ece4 !important;
}


/* =============================================
   FIX BACKGROUND — Singoli articoli + Blog archive
   ============================================= */
body.single,
body.single-post {
    background-color: #080808 !important;
}
body.blog {
    background-color: #080808 !important;
}

/* =============================================
   AREA BAND — Fix immagini primo piano (prima query loop)
   Selettore: CPT area-band type-area-band
   ============================================= */
.wp-block-post.area-band .wp-block-post-featured-image,
.wp-block-post.type-area-band .wp-block-post-featured-image {
    aspect-ratio: 1 / 1 !important;
    overflow: hidden !important;
    background: #080808 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.wp-block-post.area-band .wp-block-post-featured-image img,
.wp-block-post.type-area-band .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
    object-fit: contain !important;
    display: block !important;
}

/* =============================================
   BLOG ARCHIVE — Abbellimento
   ============================================= */
/* Zoom immagine card su hover */
.blog .ast-article-post .post-thumb {
    overflow: hidden !important;
}
.blog .ast-article-post .post-thumb img {
    transition: transform 0.4s ease !important;
}
.blog .ast-article-post:hover .post-thumb img {
    transform: scale(1.05) !important;
}

/* "Continua a leggere" button outline rosso */
.blog .more-link,
.blog a.ast-read-more,
.blog .read-more-link {
    display: inline-block !important;
    margin-top: 12px !important;
    padding: 8px 22px !important;
    background: transparent !important;
    border: 1px solid #e63000 !important;
    color: #e63000 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: background 0.2s ease, color 0.2s ease !important;
    border-radius: 2px !important;
}
.blog .more-link:hover,
.blog a.ast-read-more:hover,
.blog .read-more-link:hover {
    background: #e63000 !important;
    color: #ffffff !important;
}

/* Titolo articolo con linea accent su hover */
.blog .entry-title {
    position: relative !important;
    padding-bottom: 10px !important;
}
.blog .entry-title::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 0 !important;
    height: 2px !important;
    background: #e63000 !important;
    transition: width 0.3s ease !important;
}
.blog .ast-article-post:hover .entry-title::after {
    width: 40px !important;
}

/* Meta info: data e autore più leggibili */
.blog .entry-meta,
.blog .entry-meta a {
    color: #666666 !important;
    font-size: 11px !important;
    letter-spacing: 0.8px !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
}
.blog .entry-meta a:hover {
    color: #e63000 !important;
}

/* Separatore accent tra post-thumb e content */
.blog .ast-article-post .entry-content-wrap {
    border-top: 2px solid #1a1a1a !important;
}
.blog .ast-article-post:hover .entry-content-wrap {
    border-top-color: #e63000 !important;
    transition: border-top-color 0.3s ease !important;
}


/* ============================================================
 *    HOME RESTYLING  2026-06-17
 *    Abbellimento: titolo nascosto, card band, separatori, logo pulse, fade-in
 *    ============================================================ */

/* 1  Nascondi il titolo pagina "Home" */
.home .entry-title {
	    display: none !important;
}

/* 2  Aspect-ratio uniforme + hover zoom immagini card band */
.home .wp-block-query .wp-block-post-featured-image {
	    aspect-ratio: 1 / 1 !important;
	    overflow: hidden !important;
	    border-radius: 4px !important;
}
.home .wp-block-query .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
	    object-fit: contain !important;
	    display: block !important;
	    transition: transform 0.4s ease !important;
}
.home .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.06) !important;
}

/* 3  Underline animato titolo card band */
.home .wp-block-query .wp-block-post-title a {
	    display: inline !important;
	    text-decoration: none !important;
	    background-image: linear-gradient(90deg, #e63000, #ff6b00) !important;
	    background-size: 0 2px !important;
	    background-position: 0 100% !important;
	    background-repeat: no-repeat !important;
	    transition: background-size 0.35s ease !important;
	    padding-bottom: 3px !important;
}
.home .wp-block-query .wp-block-post-title a:hover {
	    background-size: 100% 2px !important;
	    color: #ffffff !important;
}

/* 4  Separatori decorativi sui titoli sezione centrati */
.home .wp-block-heading.has-text-align-center {
	    position: relative !important;
	    padding-bottom: 14px !important;
}
.home .wp-block-heading.has-text-align-center::after {
	    content: '' !important;
	    position: absolute !important;
	    bottom: 0 !important;
	    left: 50% !important;
	    transform: translateX(-50%) !important;
	    width: 36px !important;
	    height: 2px !important;
	    background: linear-gradient(90deg, #e63000, #ff6b00) !important;
	    border-radius: 1px !important;
}

/* 5  Pulse leggero logo TN orizzontale centrale */
@keyframes tn-logo-pulse {
	0%, 100% { filter: drop-shadow(0 0 0px rgba(230,48,0,0)); }
	50% { filter: drop-shadow(0 0 10px rgba(230,48,0,0.45)); }
}
.home .wp-block-image img[src*="LOGO_ORIZZONTALE"] {
	    animation: tn-logo-pulse 3.5s ease-in-out infinite !important;
}



/* === AREA BAND  Style e fix immagini (17/06/2026) === */

/* Fix aspect-ratio "La Nation" grid  1:1 uniforme */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
	    aspect-ratio: 1 / 1 !important;
	    overflow: hidden !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important; transition: transform 0.4s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.06) !important;
}

/* Card styling griglia */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post {
	    background: #111111 !important; border: 1px solid #222222 !important;
	    border-radius: 4px !important; overflow: hidden !important;
	    transition: border-color 0.3s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover {
	    border-color: #e63000 !important;
}
/* Nome band label */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title {
	    padding: 12px 14px !important; margin: 0 !important;
	    font-family: 'Montserrat', sans-serif !important; font-size: 11px !important;
	    font-weight: 700 !important; letter-spacing: 2px !important; text-transform: uppercase !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title a {
	    color: #f0ece4 !important; text-decoration: none !important; transition: color 0.2s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title a:hover {
	    color: #e63000 !important;
}

/* "Sotto i riflettori"  prima Query Loop */
.page-id-264 .wp-block-query:first-of-type .wp-block-post-featured-image {
	    aspect-ratio: 1 / 1 !important; overflow: hidden !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important; transition: transform 0.4s ease !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.05) !important;
}












/* FIX dislivello card  height fissa sovrascrive aspect-ratio (17/06/2026) */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
	    height: 220px !important;
	    aspect-ratio: unset !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
	    height: 100% !important;
	    width: 100% !important;
	    object-fit: contain !important;
	    object-position: center !important;
}



/* === SOTTO I RIFLETTORI  Sezione in evidenza (17/06/2026) === */

/* Container post  hover lift + red glow */
.page-id-264 .wp-block-query:first-of-type .wp-block-post {
	    position: relative !important;
	    overflow: hidden !important;
	    border-radius: 4px !important;
	    transition: transform 0.35s ease, box-shadow 0.35s ease !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post:hover {
	    transform: translateY(-6px) !important;
	    box-shadow: 0 12px 40px rgba(230,48,0,0.4) !important;
}

/* Immagine  pi alta, brightness ridotta a riposo */
.page-id-264 .wp-block-query:first-of-type .wp-block-post-featured-image {
	    height: 320px !important;
	    overflow: hidden !important;
	    position: relative !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important;
	    filter: brightness(0.8) !important;
	    transition: transform 0.5s ease, filter 0.5s ease !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.08) !important;
	    filter: brightness(1) !important;
}

/* Shimmer sweep al hover */
.page-id-264 .wp-block-query:first-of-type .wp-block-post-featured-image::after {
	    content: '' !important;
	    position: absolute !important;
	    top: 0 !important; left: -75% !important;
	    width: 50% !important; height: 100% !important;
	    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent) !important;
	    transform: skewX(-15deg) !important;
	    opacity: 0 !important;
	    pointer-events: none !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post:hover .wp-block-post-featured-image::after {
	    animation: riflettori-shimmer 0.65s ease forwards !important;
}
@keyframes riflettori-shimmer {
	0%   { left: -75%; opacity: 1; }
	100% { left: 125%; opacity: 1; }
}

/* Titolo  barra rossa a sinistra, font Aoboshi One */
.page-id-264 .wp-block-query:first-of-type .wp-block-post-title {
	    padding: 14px 16px !important;
	    border-left: 3px solid #e63000 !important;
	    margin: 10px 0 0 0 !important;
	    font-family: 'Aoboshi One', serif !important;
	    font-size: 15px !important;
	    letter-spacing: 1px !important;
	    text-transform: none !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post-title a {
	    color: #f0ece4 !important;
	    text-decoration: none !important;
	    transition: color 0.2s ease !important;
}
.page-id-264 .wp-block-query:first-of-type .wp-block-post-title a:hover {
	    color: #e63000 !important;
}










 Restyling completo (17/06/2026)
   ===================================================== */

/* --- SLIDESHOW (Essential Blocks) --- */
.page-id-264 .wp-block-essential-blocks-slider {
	    border-radius: 6px !important;
	    overflow: hidden !important;
	    box-shadow: 0 4px 24px rgba(0,0,0,0.6) !important;
}
.page-id-264 .wp-block-essential-blocks-slider .eb-slider-nav-dot {
	    background: rgba(255,255,255,0.3) !important;
	    border: none !important;
}
.page-id-264 .wp-block-essential-blocks-slider .eb-slider-nav-dot.active,
.page-id-264 .wp-block-essential-blocks-slider .eb-slider-nav-dot:hover {
	    background: #e63000 !important;
}

/* --- HEADLINE  Immagini 320px + hover lift/glow --- */
.entry-content .wp-block-query:first-of-type .wp-block-post-featured-image {
	    height: 320px !important;
	    overflow: hidden !important;
	    position: relative !important;
}
.entry-content .wp-block-query:first-of-type .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important;
	    filter: brightness(0.8) !important;
	    transition: transform 0.5s ease, filter 0.5s ease !important;
}
.entry-content .wp-block-query:first-of-type .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.08) !important;
	    filter: brightness(1) !important;
}
.entry-content .wp-block-query:first-of-type .wp-block-post {
	    border-radius: 4px !important;
	    overflow: hidden !important;
	    transition: transform 0.35s ease, box-shadow 0.35s ease !important;
}
.entry-content .wp-block-query:first-of-type .wp-block-post:hover {
	    transform: translateY(-6px) !important;
	    box-shadow: 0 12px 40px rgba(230,48,0,0.4) !important;
}

/* --- LA NATION  Card dark, height fissa 220px --- */
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
	    height: 220px !important;
	    overflow: hidden !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important; transition: transform 0.4s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.06) !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post {
	    background: #111111 !important; border: 1px solid #222222 !important;
	    border-radius: 4px !important; overflow: hidden !important;
	    transition: border-color 0.3s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover {
	    border-color: #e63000 !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title {
	    padding: 12px 14px !important; margin: 0 !important;
	    font-family: 'Montserrat', sans-serif !important; font-size: 11px !important;
	    font-weight: 700 !important; letter-spacing: 2px !important; text-transform: uppercase !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title a {
	    color: #f0ece4 !important; text-decoration: none !important; transition: color 0.2s ease !important;
}
.entry-content .wp-block-query ~ .wp-block-query .wp-block-post-title a:hover {
	    color: #e63000 !important;
}

















/* === HEADLINE  FIX selettore (usa sibling di h2, non first-of-type) === */
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image {
	    height: 320px !important;
	    overflow: hidden !important;
	    position: relative !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image img {
	    width: 100% !important; height: 100% !important;
	    object-fit: contain !important; object-position: center !important;
	    display: block !important;
	    filter: brightness(0.8) !important;
	    transition: transform 0.5s ease, filter 0.5s ease !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.08) !important;
	    filter: brightness(1) !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post {
	    border-radius: 4px !important;
	    overflow: hidden !important;
	    transition: transform 0.35s ease, box-shadow 0.35s ease !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post:hover {
	    transform: translateY(-6px) !important;
	    box-shadow: 0 12px 40px rgba(230,48,0,0.4) !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-title {
	    padding: 14px 16px !important;
	    border-left: 3px solid #e63000 !important;
	    font-family: 'Aoboshi One', serif !important;
	    font-size: 15px !important;
	    letter-spacing: 1px !important;
	    text-transform: none !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-title a {
	    color: #f0ece4 !important; text-decoration: none !important; transition: color 0.2s ease !important;
}
.entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-title a:hover {
	    color: #e63000 !important;
}









/* === LOGO CARD FIX  contain + sfondo scuro (17/06/2026) === */
/* HEADLINE  logo centrato, contain, sfondo nero */
.page-id-264 .entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image {
	    height: 200px !important;
	    min-height: 200px !important;
	    aspect-ratio: unset !important;
	    background: #080808 !important;
	    display: flex !important;
	    align-items: center !important;
	    justify-content: center !important;
	    overflow: hidden !important;
}
.page-id-264 .entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image img {
	    width: auto !important;
	    height: 80% !important;
	    max-width: 85% !important;
	    max-height: 80% !important;
	    object-fit: contain !important;
	    object-position: center !important;
	    transition: transform 0.4s ease !important;
	    filter: none !important;
}
.page-id-264 .entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.06) !important;
}

/* LA NATION  logo centrato, contain, sfondo nero */
.page-id-264 .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
	    height: 160px !important;
	    min-height: 160px !important;
	    aspect-ratio: unset !important;
	    background: #080808 !important;
	    display: flex !important;
	    align-items: center !important;
	    justify-content: center !important;
	    overflow: hidden !important;
}
.page-id-264 .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
	    width: auto !important;
	    height: 75% !important;
	    max-width: 85% !important;
	    max-height: 75% !important;
	    object-fit: contain !important;
	    object-position: center !important;
	    transition: transform 0.3s ease !important;
}
.page-id-264 .entry-content .wp-block-query ~ .wp-block-query .wp-block-post:hover .wp-block-post-featured-image img {
	    transform: scale(1.05) !important;
}







/* Override img  riempi il container con padding, non shrinkare il logo */
.page-id-264 .entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image {
	    padding: 20px !important;
	    box-sizing: border-box !important;
}
.page-id-264 .entry-content .wp-block-heading.has-text-align-center + .wp-block-query .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
	    max-width: 100% !important;
	    max-height: 100% !important;
}
.page-id-264 .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image {
	    padding: 14px !important;
	    box-sizing: border-box !important;
}
.page-id-264 .entry-content .wp-block-query ~ .wp-block-query .wp-block-post-featured-image img {
    width: auto !important;
    height: auto !important;
    max-width: calc(100% - 24px) !important;
    max-height: calc(100% - 24px) !important;
	    max-width: 100% !important;
	    max-height: 100% !important;
}
/* HOME — Dalla scena: fix figure height e cover per post spotlight */
.home .wp-block-query .wp-block-post.category-spotlight .wp-block-post-featured-image {
    width: 100% !important;
    height: 260px !important;
    overflow: hidden !important;
    display: block !important;
}
.home .wp-block-query .wp-block-post.category-spotlight .wp-block-post-featured-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    max-width: 100% !important;
    max-height: 100% !important;
}

/* ===== FOOTER SOCIAL ICONS ===== */
.ast-footer-social-wrap .footer-social-inner-wrap {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 16px !important;
    padding: 16px 0 !important;
}
.ast-builder-social-element.footer-social-item {
    width: 42px !important;
    height: 42px !important;
    border-radius: 50% !important;
    background: #222222 !important;
    border: 1px solid #444444 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.3s ease, border-color 0.3s ease, transform 0.2s ease !important;
}
.ast-builder-social-element.footer-social-item:hover {
    background: #e63000 !important;
    border-color: #e63000 !important;
    transform: translateY(-2px) !important;
}
.ast-builder-social-element.footer-social-item svg,
.ast-builder-social-element.footer-social-item .ahfb-svg-iconset {
    width: 18px !important;
    height: 18px !important;
    fill: #f0ece4 !important;
}

/* =============================================
   HOME — Card area-band: logo contain centrato
   Fix decentramento + dimensioni eccessive
   Calibrato su Disasterpiece (worst-case 2.7:1)
   (18/06/2026)
   ============================================= */
.home .wp-block-query .wp-block-post.area-band .wp-block-post-featured-image {
    height: 120px !important;
    aspect-ratio: unset !important;
    background: #080808 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 8px !important;
    box-sizing: border-box !important;
}
.home .wp-block-query .wp-block-post.area-band .wp-block-post-featured-image img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}
.home .wp-block-query .wp-block-post.area-band .wp-block-post-title {
    text-align: center !important;
}
.home .wp-block-query .wp-block-post.area-band .wp-block-post-title a {
    color: #e63000 !important;
}

/* =============================================
   SIDEBAR — Fix gap immagine (18/06/2026)
   Causa: .single .wp-post-image applica height:420px
   anche al <picture> tag nella sidebar (stessa classe)
   ============================================= */
#secondary .wp-block-latest-posts__featured-image {
    width: 70px !important;
    height: 70px !important;
    overflow: hidden !important;
    flex-shrink: 0 !important;
}
#secondary .wp-block-latest-posts__featured-image picture {
    width: 70px !important;
    height: 70px !important;
    display: block !important;
    overflow: hidden !important;
}
#secondary .wp-block-latest-posts__featured-image img {
    width: 70px !important;
    height: 70px !important;
    object-fit: cover !important;
    display: block !important;
}
#secondary .wp-block-latest-posts__list > li {
    display: flex !important;
    gap: 12px !important;
    align-items: flex-start !important;
    flex-wrap: nowrap !important;
}

/* =============================================
   DATE — Nasconde date ovunque (18/06/2026)
   Blog archive, articolo singolo, sidebar widget
   ============================================= */
.entry-meta .posted-on,
.ast-meta-date-wrapper,
span.published {
    display: none !important;
}
.wp-block-latest-posts__post-date {
    display: none !important;
}


/* =============================================
   TEC — Nascondi indirizzo completo venue (18/06/2026)
   Mostra solo nome venue, non via/CAP/città
   ============================================= */
.tribe-events-calendar-list__event-venue-address {
    display: none !important;
}

/* =============================================
   TEC — List view: immagine evento uniforme (18/06/2026)
   TEC v7 genera 2 markup diversi per featured image:
   - Caso A: wrapper > div.__event-featured-image > img
   - Caso B: wrapper > img.__event-featured-image (img diretta)
   Fix: dimensioni fisse sul wrapper per entrambi i casi.
   ============================================= */
/* TEC list featured image — uniform 130x90, fix flex-wrap bug */
.tribe-events-calendar-list__event-featured-image-wrapper {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    height: 140px !important;
    flex: 0 0 220px !important;
    overflow: hidden !important;
    align-self: center !important;
    background: #080808 !important;
}
.tribe-events-calendar-list__event-featured-image {
    width: 220px !important;
    height: 140px !important;
    overflow: hidden !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.tribe-events-calendar-list__event-featured-image-wrapper img,
img.tribe-events-calendar-list__event-featured-image {
    width: 220px !important;
    height: 140px !important;
    max-width: 220px !important;
    max-height: 140px !important;
    object-fit: contain !important;
    display: block !important;
}
/* TEC list event row — prevent flex wrap (fixes image on long-title events) */
.tribe-events-calendar-list__event.tribe-common-g-row {
    flex-wrap: nowrap !important;
}

/* =============================================
   HOME — Fix card band e spotlight (18/06/2026)
   ============================================= */
.home .wp-block-query .wp-block-post.area-band .wp-block-post-featured-image,
.home .wp-block-query .wp-block-post.type-area-band .wp-block-post-featured-image {
    height: 200px !important;
    aspect-ratio: unset !important;
    padding: 20px !important;
    background: #080808 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}
.home .wp-block-query .wp-block-post.area-band .wp-block-post-featured-image img,
.home .wp-block-query .wp-block-post.type-area-band .wp-block-post-featured-image img {
    width: auto !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
}
.home .wp-block-query .wp-block-post.category-spotlight .wp-block-post-featured-image {
    height: 340px !important;
    aspect-ratio: unset !important;
    overflow: hidden !important;
}
.home .wp-block-query .wp-block-post.category-spotlight .wp-block-post-featured-image img {
    width: 100% !important;
    height: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
}

/* HOME — Spotlight: bordo + glow delicato (18/06/2026) */
.home .wp-block-query .wp-block-post.category-spotlight .wp-block-post-featured-image {
    border: 1px solid rgba(230,48,0,0.25) !important;
    border-radius: 2px !important;
    box-shadow: 0 0 12px rgba(230,48,0,0.12) !important;
}

/* ============================================================
   TEC LIST VIEW — Fix uniformità neri + allineamento (18/06/2026)
   ============================================================ */

/* FIX 1 — Row evento: uniforma #080808 → #080808 */
.tribe-events-calendar-list__event {
    background-color: #080808 !important;
}

/* FIX 2 — Date-tag colonna: uniforma #111111 → #080808 */
.tribe-events-calendar-list__event-date-tag {
    background-color: #080808 !important;
}

/* FIX 3 — Row: centra verticalmente colonna data + immagine (era flex-start) */
.tribe-events-calendar-list__event-row {
    align-items: center !important;
}

/* FIX 4 — Wrapper immagine: centra logo nel box (era display:block) */
.tribe-events-calendar-list__event-featured-image-wrapper {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ============================================================
   OVERRIDE ALTA SPECIFICITÀ — uniformità neri + allineamento
   ============================================================ */
body .tribe-events-calendar-list__event.tribe-common-g-row,
body .tribe-events-calendar-list__event {
    background-color: #080808 !important;
}
body .tribe-events-calendar-list__event-date-tag,
body .tribe-events .tribe-events-calendar-list__event-date-tag,
body .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-date-tag,
body .tribe-events-calendar-list .tribe-events-calendar-list__event-date-tag {
    background-color: #080808 !important;
}
body .tribe-events-calendar-list__event-row,
body .tribe-events-calendar-list__event-row.tribe-common-g-row {
    align-items: center !important;
}

/* TEC — Search bar dark theme fix */
.tribe-events {
    --tec-color-border-default: #222222;
}
.tribe-events .tribe-events-c-events-bar,
.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar--border {
    background-color: #111111 !important;
    border-color: #222222 !important;
}
.tribe-events-c-events-bar__search-container {
    background-color: #111111 !important;
    border-color: #222222 !important;
}
.tribe-events-c-events-bar__search-container:focus-within {
    background-color: #111111 !important;
    border-color: #e63000 !important;
}

/* TEC — View selector tabs dark fix */
.tribe-events-c-view-selector__content {
    background-color: #111111 !important;
}
.tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__button {
    color: #f0ece4 !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item--active a {
    color: #e63000 !important;
}
/* TEC — View selector tabs dark fix */
.tribe-events-c-view-selector__content {
    background-color: #111111 !important;
}
.tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__button {
    color: #f0ece4 !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item--active a {
    color: #e63000 !important;
}

/* =============================================
   TEC — Search bar restyling Tribute Nation (19/06/2026)
   ============================================= */

/* Outer bar: niente border visibile, sfondo piatto */
.tribe-events .tribe-events-c-events-bar,
.tribe-common--breakpoint-medium.tribe-events .tribe-events-c-events-bar--border {
    border: 1px solid #1e1e1e !important;
    border-radius: 3px !important;
    overflow: hidden !important;
}

/* Campo di ricerca */
.tribe-events-c-search__input,
.tribe-common-form-control-text__input.tribe-events-c-search__input {
    background-color: #111111 !important;
    color: #f0ece4 !important;
    border: none !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 13px !important;
    letter-spacing: 0.05em !important;
}
.tribe-events-c-search__input::placeholder {
    color: #555555 !important;
    font-style: italic !important;
}

/* Icona lente */
.tribe-events-c-search__input-group .tribe-common-form-control-text__input-icon svg,
.tribe-events-c-search__input-group svg {
    fill: #555555 !important;
}

/* Bottone Cerca Eventi — stile TN */
.tribe-common-c-btn.tribe-events-c-search__button,
button.tribe-events-c-search__button {
    background: #e63000 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 0 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    padding: 0 28px !important;
    margin: 8px !important;
    height: calc(100% - 16px) !important;
    border-radius: 2px !important;
    transition: background 0.2s ease !important;
    white-space: nowrap !important;
}
.tribe-common-c-btn.tribe-events-c-search__button:hover,
button.tribe-events-c-search__button:hover {
    background: #ff5500 !important;
}

/* Tab Lista/Mese/Giorno */
.tribe-events-c-view-selector__content {
    background-color: #0d0d0d !important;
    border-left: 1px solid #1e1e1e !important;
}
.tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__button,
.tribe-events-c-view-selector__list-item a {
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}
.tribe-events-c-view-selector__list-item-link:hover,
.tribe-events-c-view-selector__button:hover {
    color: #f0ece4 !important;
}
.tribe-events-c-view-selector__list-item--active .tribe-events-c-view-selector__list-item-link,
.tribe-events-c-view-selector__list-item--active a {
    color: #e63000 !important;
    box-shadow: inset 0 -2px 0 0 #e63000 !important;
}

/* =============================================
   MOBILE — Blog: fix foto piccole/tagliate (20/06/2026)
   Le altezze fisse (220px list, 420px single) su viewport
   stretto risultano sproporzionate. Ridotte per mobile.
   ============================================= */
@media (max-width: 768px) {
    /* Blog list: thumbnail ridotta */
    .blog .ast-article-post .post-thumb,
    .archive .ast-article-post .post-thumb {
        height: 200px !important;
    }
    /* Singolo articolo: immagine in evidenza più compatta */
    .single .featured-section .ast-featured-post img,
    .single .post-thumb img {
        height: 220px !important;
    }
    .single .wp-post-image {
        height: 220px !important;
    }
}

/* =============================================
   MOBILE — TEC /events/: fix layout rotto (20/06/2026)
   Il flex-wrap: nowrap (fix desktop per titoli lunghi) su mobile
   schiaccia i dettagli evento a ~106px (390 - 64 date - 220 img).
   Fix: nascondi immagine + ripristina wrap su mobile.
   ============================================= */
@media (max-width: 768px) {
    /* Nascondi immagine evento (220px fissi incompatibili con mobile) */
    .tribe-events-calendar-list__event-featured-image-wrapper {
        display: none !important;
    }
    /* Ripristina flex-wrap (il nowrap era fix solo per desktop) */
    .tribe-events-calendar-list__event.tribe-common-g-row {
        flex-wrap: wrap !important;
    }
    /* Assicura che i dettagli occupino tutto lo spazio disponibile */
    .tribe-events-calendar-list__event-row > .tribe-events-calendar-list__event-wrapper {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }
    /* Date tag centrato verticalmente rispetto ai dettagli */
    .tribe-events-calendar-list__event-row {
        align-items: flex-start !important;
    }
}

/* =============================================
   MOBILE — Blog foto fix v2 (20/06/2026)
   Root cause: Astra genera 2 nested div con classe .post-thumb
   → il nostro position:relative colpisce entrambi → img ha
   come containing block l'inner div con <a> inline → width:100%
   si rompe. Fix: su mobile → static img + <a> block + h esplicita.
   ============================================= */
@media (max-width: 768px) {
    /* Inner post-thumb: non deve essere containing block */
    .blog .ast-article-post .post-thumb-img-content,
    .archive .ast-article-post .post-thumb-img-content {
        position: static !important;
        height: auto !important;
    }
    /* <a> wrapper: deve essere block per contenere l'img */
    .blog .ast-article-post .post-thumb a,
    .archive .ast-article-post .post-thumb a {
        display: block !important;
    }
    /* img: static, full width, altezza fissa, object-fit cover */
    .blog .ast-article-post .post-thumb img,
    .archive .ast-article-post .post-thumb img {
        position: static !important;
        width: 100% !important;
        height: 200px !important;
        object-fit: cover !important;
        object-position: center top !important;
        display: block !important;
        max-width: 100% !important;
    }
}

/* =============================================
   PAGE BAND (ID 99) — Abbellimento (21/06/2026)
   ============================================= */

/* H1 — più grande e impattante */
.page-id-99 .entry-title {
    font-size: clamp(2rem, 5vw, 3.2rem) !important;
    letter-spacing: -0.02em !important;
    line-height: 1.1 !important;
    margin-bottom: 16px !important;
}

/* Testo intro — max-width per leggibilità + respiro */
.page-id-99 .entry-content > p {
    max-width: 680px !important;
    line-height: 1.8 !important;
}

/* H2 sezioni — spaziatura generosa + separatore sottile */
.page-id-99 .entry-content .wp-block-heading {
    margin-top: 52px !important;
    padding-top: 32px !important;
    border-top: 1px solid #1e1e1e !important;
    font-size: clamp(1.3rem, 3vw, 1.9rem) !important;
    position: relative !important;
    padding-bottom: 14px !important;
}

/* Accent bar rosso sotto ogni H2 */
.page-id-99 .entry-content .wp-block-heading::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 32px !important;
    height: 2px !important;
    background: linear-gradient(90deg, #e63000, #ff6b00) !important;
    border-radius: 1px !important;
}

/* Pulsanti — padding generoso + hover glow */
.page-id-99 .wp-block-button__link {
    padding: 14px 32px !important;
    font-size: 11px !important;
    letter-spacing: 0.12em !important;
    transition: background 0.25s ease, transform 0.15s ease, box-shadow 0.25s ease !important;
}
.page-id-99 .wp-block-button__link:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(230,48,0,0.4) !important;
}

/* PAGE BAND (ID 99) — Fix paragrafi e primo H2 (21/06/2026) */

/* Paragrafi: reset margin-left, line-height ok, NO max-width forzato */
.page-id-99 .entry-content > p {
    max-width: none !important;
    margin-left: 0 !important;
}

/* Primo H2 (sottotitolo corsivo): no border-top, no margin-top extra */
.page-id-99 .entry-content .wp-block-heading:first-of-type {
    border-top: none !important;
    margin-top: 16px !important;
    padding-top: 0 !important;
}

/* PAGE BAND (ID 99) — Fix indentazione paragrafi Astra (21/06/2026) */
/* Astra applica margin-left:auto a tutti i figli di entry-content[data-ast-blocks-layout] */
.page-id-99 .entry-content[data-ast-blocks-layout] > p,
.page-id-99 .entry-content[data-ast-blocks-layout] > .wp-block-paragraph {
    margin-left: 0 !important;
    max-width: none !important;
}

/* Primo H2 (sottotitolo): no border-top */
.page-id-99 .entry-content .wp-block-heading:first-of-type {
    border-top: none !important;
    margin-top: 16px !important;
    padding-top: 0 !important;
}
/* EB SLIDER — Area Band: vignette soft + glow (glow intensificato 08/07/2026) */
.eb-slider-wrapper {
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow:
        0 0 55px rgba(230,48,0,0.20),
        inset 200px 0 100px -80px #080808,
        inset -200px 0 100px -80px #080808,
        inset 0 50px 40px -20px rgba(8,8,8,0.4),
        inset 0 -150px 100px -10px #080808 !important;
}
.eb-slider-image {
    transition: transform 0.6s ease !important;
    display: block !important;
}
.eb-slider-item.slick-current .eb-slider-image {
    transform: scale(1.03) !important;
}
/* HOME — Cover card (LOCALI / TRIBUTE BAND / FAN): vignette + hover */
.home .wp-block-cover {
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow:
        inset 80px 0 60px -30px #080808,
        inset -80px 0 60px -30px #080808,
        inset 0 60px 40px -20px rgba(8,8,8,0.5),
        inset 0 -80px 60px -20px rgba(8,8,8,0.7) !important;
    transition: transform 0.4s ease, box-shadow 0.4s ease !important;
}
.home .wp-block-cover:hover {
    transform: translateY(-3px) !important;
    box-shadow:
        0 10px 40px rgba(230,48,0,0.15),
        inset 80px 0 60px -30px #080808,
        inset -80px 0 60px -30px #080808,
        inset 0 60px 40px -20px rgba(8,8,8,0.5),
        inset 0 -80px 60px -20px rgba(8,8,8,0.7) !important;
}

/* BLOG — Fix foto card: proporzione naturale, nessun crop (21/06/2026 v3) */
.blog .ast-article-post .post-thumb,
.archive .ast-article-post .post-thumb {
    margin-top: 16px !important;
    width: calc(100% + 48px) !important;
    max-width: none !important;
    margin-left: -24px !important;
    margin-right: -24px !important;
    height: auto !important;
    overflow: visible !important;
    position: static !important;
}
.blog .ast-article-post .post-thumb-img-content,
.archive .ast-article-post .post-thumb-img-content {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    position: static !important;
}
.blog .ast-article-post .post-thumb a,
.archive .ast-article-post .post-thumb a {
    display: block !important;
    width: 100% !important;
}
.blog .ast-article-post .post-thumb img,
.archive .ast-article-post .post-thumb img {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
    display: block !important;
}

/*  Titoli Home  stile (24/06/2026)  */

/* H1 hero */
h1.wp-block-heading {
	  letter-spacing: 0.06em;
	  text-shadow: 0 2px 18px rgba(222,46,0,0.35), 0 1px 0 #1a0000;
	  position: relative;
}
h1.wp-block-heading::after {
	  content: '';
	  display: block;
	  width: 60px;
	  height: 3px;
	  background: #de2e00;
	  margin-top: 12px;
	  border-radius: 2px;
	  box-shadow: 0 0 8px rgba(222,46,0,0.6);
}

/* H2 section titles */
h2.wp-block-heading {
	  letter-spacing: 0.04em;
	  position: relative;
	  padding-bottom: 12px;
}
h2.wp-block-heading::after {
	  content: '';
	  position: absolute;
	  bottom: 0;
	  left: 50%;
	  transform: translateX(-50%);
	  width: 40px;
	  height: 2px;
	  background: #de2e00;
	  border-radius: 2px;
	  box-shadow: 0 0 6px rgba(222,46,0,0.5);
	  transition: width 0.5s ease;
}
h2.wp-block-heading:hover::after {
	  width: 80px;
}





/* ── Colore heading override – vivace (24/06/2026) ── */
h1.wp-block-heading,
h2.wp-block-heading,
h3.wp-block-heading,
h4.wp-block-heading,
.wp-block-post-title,
.wp-block-post-title a {
  color: #de2e00 !important;
}


/* ============================================
   AREA BAND (264) — Card hover & labels
   ============================================ */

/* Bordo sottile + hover lift con glow rosso */
.page-id-264 .wp-block-post {
    border: 1px solid #1e1e1e !important;
    border-radius: 4px !important;
    transition: transform 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease !important;
    overflow: hidden !important;
}
.page-id-264 .wp-block-post:hover {
    transform: translateY(-5px) !important;
    border-color: #e63000 !important;
    box-shadow: 0 8px 28px rgba(230,48,0,0.18) !important;
}

/* Nome band — più leggibile, diventa rosso al hover */
.page-id-264 .wp-block-post-title a {
    font-size: 0.72rem !important;
    letter-spacing: 0.12em !important;
    color: #d4d4d4 !important;
    transition: color 0.25s ease !important;
}
.page-id-264 .wp-block-post:hover .wp-block-post-title a {
    color: #e63000 !important;
}

/* Labels HEADLINE / LA NATION — separatore gradient */
.page-id-264 .entry-content .wp-block-heading {
    letter-spacing: 0.3em !important;
    font-size: 0.7rem !important;
    color: #888888 !important;
    font-family: 'Montserrat', sans-serif !important;
}
.page-id-264 .entry-content .wp-block-heading::after {
    content: '' !important;
    display: block !important;
    width: 36px !important;
    height: 2px !important;
    background: linear-gradient(90deg, #e63000, #ff6b00) !important;
    margin: 8px auto 0 !important;
}

/* ============================================
   PAGINA BAND (99) — Bottoni e separatori
   ============================================ */

/* Separatore gradient sotto gli h2 */
.page-id-99 .entry-content .wp-block-heading::after {
    content: '' !important;
    display: block !important;
    width: 36px !important;
    height: 2px !important;
    background: linear-gradient(90deg, #e63000, #ff6b00) !important;
    margin: 8px 0 0 !important;
}

/* Bottoni outlined rosso → fill al hover */
.page-id-99 .wp-block-button__link {
    background: transparent !important;
    color: #e63000 !important;
    border: 1px solid #e63000 !important;
    border-radius: 2px !important;
    letter-spacing: 0.15em !important;
    font-size: 0.75rem !important;
    padding: 12px 28px !important;
    transition: background 0.3s ease, color 0.3s ease !important;
}
.page-id-99 .wp-block-button__link:hover {
    background: #e63000 !important;
    color: #ffffff !important;
}


/* ============================================
   SINGLE BAND — nascondi meta autore e nav post
   ============================================ */
.single-area-band .entry-meta { display: none !important; }
.single-area-band nav.post-navigation { display: none !important; }

/* ============================================
   TEC WIDGET HOME — nascondi "Tutto il giorno"
   ============================================ */
.home .tribe-events-widget-events-list__event-datetime { display: none !important; }

/* ============================================
   SIDEBAR ARTICOLI — thumbnail più grande e hover
   ============================================ */
#secondary .widget ul li img {
    width: 56px !important;
    height: 56px !important;
    object-fit: cover !important;
    border-radius: 3px !important;
    flex-shrink: 0 !important;
    transition: opacity 0.2s ease !important;
}
#secondary .widget ul li img:hover { opacity: 0.75 !important; }
#secondary .widget ul li {
    display: flex !important;
    gap: 10px !important;
    align-items: flex-start !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid #1e1e1e !important;
}
#secondary .widget ul li:last-child { border-bottom: none !important; }


/* =============================================
   HOME — Pulse titolo "Il calendario della scena"
   Sezione #eventi — simile a pulse logo TN (01/07/2026)
   ============================================= */
@keyframes tn-heading-pulse-eventi {
    0%, 100% { filter: drop-shadow(0 0 0px rgba(230,48,0,0)); transform: scale(1); }
    50% { filter: drop-shadow(0 0 22px rgba(230,48,0,0.85)); transform: scale(1.035); }
}
.home #eventi .wp-block-heading.has-text-align-center {
    animation: tn-heading-pulse-eventi 2.4s ease-in-out infinite !important;
}


/* ══════════════════════════════════════════════
   TN — SCHEDA BAND (single-area-band)
   Da incollare in: Aspetto → Personalizza → CSS aggiuntivo
   (in fondo al CSS esistente, non sovrascrivere nulla)
   ══════════════════════════════════════════════ */

.single-area-band .entry-content {
    display: grid !important;
    grid-template-columns: 1fr 300px !important;
    gap: 60px !important;
    align-items: start !important;
    max-width: 1160px !important;
    margin: 0 auto !important;
    overflow: hidden !important;
}

.single-area-band .tn-band-main { min-width: 0; }

/* Header: logo + titolo + citazione */
.single-area-band .entry-title-row {
    display: flex !important;
    align-items: center !important;
    gap: 18px !important;
    margin-bottom: 16px !important;
}
.single-area-band .entry-logo-placeholder {
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #e63000, #ff6b00) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: 'Aoboshi One', serif !important;
    font-size: 26px !important;
    color: #fff !important;
    flex-shrink: 0 !important;
}
.single-area-band .entry-logo-img {
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    flex-shrink: 0 !important;
}
.single-area-band .tn-band-title {
    font-family: 'Aoboshi One', serif !important;
    font-size: 38px !important;
    line-height: 1.15 !important;
    color: #e63000 !important;
    margin: 0 !important;
}
.single-area-band .entry-quote {
    font-size: 15px !important;
    font-style: italic !important;
    color: #d4d4d4 !important;
    padding-left: 16px !important;
    border-left: 2px solid #e63000 !important;
    margin: 0 0 28px !important;
}
.single-area-band .tn-featured {
    width: 100% !important;
    max-height: 560px !important;
    aspect-ratio: unset !important;
    object-fit: contain !important;
    object-position: center !important;
    background: #0d0d0d !important;
    margin-bottom: 28px !important;
    display: block !important;
}

/* Foto */
.single-area-band .band-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 3px !important;
    margin: 12px 0 28px !important;
}
.single-area-band .band-gallery-item { aspect-ratio: 4/3; overflow: hidden; background: #111; cursor: pointer; }
.single-area-band .band-gallery-item img {
    width: 100%; height: 100%; object-fit: cover;
    filter: saturate(0.6) brightness(0.85);
    transition: filter 0.3s, transform 0.3s;
}
.single-area-band .band-gallery-item:hover img { filter: saturate(1) brightness(1); transform: scale(1.04); }
.single-area-band .band-gallery-item.more { position: relative; display: flex; align-items: center; justify-content: center; }
.single-area-band .band-gallery-item.more img { filter: saturate(0.2) brightness(0.3); }
.single-area-band .band-gallery-item.more span {
    position: absolute; font-family: 'Aoboshi One', serif; font-size: 24px; color: #f0ece4;
}

/* Locandine — vetrina poster verticali: box più alto, mai croppate (object-fit: contain) */
.single-area-band .band-gallery-locandine .band-gallery-item { aspect-ratio: 3/4; background: #111; }
.single-area-band .band-gallery-locandine .band-gallery-item img { object-fit: contain; }

/* Like band — bottone cuore sotto il titolo, feature "abilità del Fan" */
.single-area-band .tn-like-row { margin: 6px 0 18px; }
.single-area-band .tn-like-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12);
	border-radius: 999px; padding: 8px 16px; cursor: pointer;
	color: #d4d4d4; font-family: 'Montserrat', sans-serif; font-size: 14px;
	transition: border-color .2s ease, background .2s ease;
}
.single-area-band .tn-like-btn:hover { border-color: #e63000; }
.single-area-band .tn-like-icon { font-size: 16px; color: #666; transition: color .2s ease; }
.single-area-band .tn-like-btn.liked { border-color: rgba(230,48,0,0.45); background: rgba(230,48,0,0.08); }
.single-area-band .tn-like-btn.liked .tn-like-icon { color: #e63000; }
.single-area-band .tn-like-count { font-weight: 700; }
.single-area-band .tn-like-msg { margin-left: 12px; font-size: 12px; color: #e63000; opacity: .9; }
/* Video */
.single-area-band .band-videos {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    margin: 12px 0 28px !important;
}
.single-area-band .band-video-embed { position: relative; aspect-ratio: 16/9; overflow: hidden; background: #111; }
.single-area-band .band-video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.single-area-band .band-video-label { font-size: 12px; color: #888888; margin-top: 6px; line-height: 1.4; }

/* Facciata click-to-play: il pannello e' markup nostro, l'iframe YouTube arriva
   solo al click (Snippet #11). Serve ai browser che bloccano i frame di terze
   parti (Firefox strict, Zen, Brave, ad blocker): prima restava un riquadro nero. */
.single-area-band .band-video-facade {
    position: absolute; inset: 0; display: block; width: 100%; height: 100%;
    padding: 0; margin: 0; border: 0; background: #0d0d0d; cursor: pointer; overflow: hidden;
}
.single-area-band .band-video-thumb {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
    filter: saturate(.75) brightness(.78); transition: filter .35s ease, transform .5s ease;
}
.single-area-band .band-video-facade:hover .band-video-thumb { filter: saturate(1) brightness(.95); transform: scale(1.04); }
.single-area-band .band-video-play {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    width: 62px; height: 44px; border-radius: 10px; background: rgba(230, 48, 0, .92);
    box-shadow: 0 6px 22px -6px rgba(0, 0, 0, .85); transition: background .3s ease, transform .3s ease;
}
.single-area-band .band-video-play::after {
    content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-40%, -50%);
    border-style: solid; border-width: 9px 0 9px 15px; border-color: transparent transparent transparent #ffffff;
}
.single-area-band .band-video-facade:hover .band-video-play { background: #ff6b00; transform: translate(-50%, -50%) scale(1.08); }
.single-area-band .band-video-facade:focus-visible { outline: 2px solid #e63000; outline-offset: -2px; }
.single-area-band .band-video-fallback { display: none; }
.single-area-band .band-video-facade.is-blocked .band-video-thumb { display: none; }
.single-area-band .band-video-facade.is-blocked .band-video-play { top: 38%; }
.single-area-band .band-video-facade.is-blocked .band-video-fallback {
    display: block; position: absolute; left: 0; right: 0; bottom: 14px; padding: 0 14px;
    font-family: 'Montserrat', sans-serif; font-size: 11px; line-height: 1.5; color: #888888; text-align: center;
}
.single-area-band .band-video-facade.is-blocked .band-video-fallback b { display: block; margin-top: 3px; color: #e63000; font-weight: 600; }
.single-area-band .band-video-out {
    position: absolute; z-index: 3; right: 8px; bottom: 8px; padding: 3px 8px;
    font-family: 'Montserrat', sans-serif; font-size: 10px; letter-spacing: .04em; text-transform: uppercase;
    color: #d4d4d4 !important; background: rgba(8, 8, 8, .72); border: 1px solid #222222; border-radius: 3px;
    transition: color .3s ease, background .3s ease, border-color .3s ease;
}
.single-area-band .band-video-out:hover { color: #ffffff !important; background: rgba(230, 48, 0, .85); border-color: #e63000; }
.single-area-band .band-video-embed.is-playing .band-video-out { display: none; }
/* Nello stato bloccato il chip e' ridondante: la scritta al centro e' gia' l'invito. */
.single-area-band .band-video-facade.is-blocked ~ .band-video-out { display: none; }
/* Eccezione: se a bloccare è il consenso cookie, la scritta al centro invita a riaprire
   le preferenze, quindi il chip non è più ridondante: è l'unica via al video per chi il
   consenso non lo vuole dare. Stessa specificità della regola sopra, vince per ordine. */
.single-area-band .band-video-facade.is-cmp-blocked ~ .band-video-out { display: block; }
.single-area-band .band-video-nojs {
    position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
    padding: 0 16px; text-align: center; font-family: 'Montserrat', sans-serif; font-size: 13px; color: #e63000 !important;
}

/* Sidebar */
.single-area-band .tn-band-sidebar { position: sticky; top: 100px; }
.single-area-band .sidebar-widget { margin-bottom: 36px; }
.single-area-band .sidebar-title {
    font-family: 'Aoboshi One', serif !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    letter-spacing: 2px !important;
    text-transform: uppercase !important;
    color: #888888 !important;
    margin-bottom: 16px !important;
    padding-bottom: 8px !important;
    border-bottom: 1px solid #222222 !important;
}
.single-area-band .sidebar-info { display: flex; flex-direction: column; gap: 8px; }
.single-area-band .sidebar-info-row {
    display: flex; justify-content: space-between; font-size: 13px;
    padding-bottom: 8px; border-bottom: 1px solid #222222;
}
.single-area-band .sidebar-info-row:last-child { border-bottom: none; }
.single-area-band .sidebar-info-label { color: #888888; }
.single-area-band .sidebar-info-value { color: #f0ece4; font-weight: 600; text-align: right; }

.single-area-band .sidebar-subtitle {
    font-size: 11px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase;
    color: #888888; margin: 18px 0 10px; padding-top: 14px; border-top: 1px solid #222222;
}
.single-area-band .sidebar-social { display: flex; flex-wrap: wrap; gap: 8px; }
.single-area-band .sidebar-social a {
    width: 32px; height: 32px; border-radius: 50%; border: 1px solid #333333;
    display: flex; align-items: center; justify-content: center;
    color: #d4d4d4; transition: border-color 0.2s, color 0.2s;
}
.single-area-band .sidebar-social a:hover { border-color: #e63000; color: #f0ece4; }
.single-area-band .sidebar-social svg { width: 14px; height: 14px; fill: currentColor; }

.single-area-band .sidebar-members { display: flex; flex-direction: column; gap: 8px; }
.single-area-band .sidebar-member-row {
    display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
    font-size: 13px; padding-bottom: 8px; border-bottom: 1px solid #222222;
}
.single-area-band .sidebar-member-row:last-child { border-bottom: none; padding-bottom: 0; }
.single-area-band .sidebar-member-role { color: #888888; font-size: 11px; letter-spacing: 0.4px; text-transform: uppercase; }
.single-area-band .sidebar-member-name { color: #f0ece4; font-weight: 600; text-align: right; white-space: nowrap; }

.single-area-band .sidebar-dates { display: flex; flex-direction: column; gap: 1px; }
.single-area-band .sidebar-date {
    display: flex; align-items: center; gap: 12px; padding: 10px 12px;
    background: #111111; border-left: 2px solid #e63000;
}
.single-area-band .sidebar-date-num { text-align: center; min-width: 34px; }
.single-area-band .sidebar-date-num strong {
    display: block; font-family: 'Aoboshi One', serif; font-size: 20px; color: #e63000; line-height: 1; font-weight: 400;
}
.single-area-band .sidebar-date-num span {
    font-size: 9px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #ff6b00;
}
.single-area-band .sidebar-date-info { flex: 1; }
.single-area-band .sidebar-date-venue { font-size: 12px; font-weight: 600; color: #f0ece4; }
.single-area-band .sidebar-date-city { font-size: 11px; color: #888888; }

.single-area-band .sidebar-articles { display: flex; flex-direction: column; gap: 14px; }
.single-area-band .sidebar-article-item { display: grid; grid-template-columns: 54px 1fr; gap: 10px; align-items: start; }
.single-area-band .sidebar-article-thumb { width: 54px; height: 54px; overflow: hidden; background: #111111; flex-shrink: 0; }
.single-area-band .sidebar-article-thumb img { width: 100%; height: 100%; object-fit: cover; }
.single-area-band .sidebar-article-cat {
    font-size: 9px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: #e63000; margin-bottom: 2px;
}
.single-area-band .sidebar-article-title { font-size: 13px; font-weight: 600; color: #f0ece4; line-height: 1.4; }
.single-area-band .sidebar-article-title a { color: #f0ece4; }
.single-area-band .sidebar-article-title a:hover { color: #e63000; }
.single-area-band .sidebar-article-date { font-size: 10px; color: #888888; margin-top: 3px; }

/* Mobile: una colonna sola */
@media (max-width: 900px) {
    .single-area-band .entry-content { grid-template-columns: 1fr !important; }
    .single-area-band .tn-band-sidebar { position: static !important; }
}


/* Fix logo: molte band hanno un wordmark orizzontale, non un badge quadrato.
   Il logo non viene piu' forzato in un cerchio, altezza fissa e proporzioni originali. */
.single-area-band .entry-logo-img {
    height: 56px !important;
    width: auto !important;
    max-width: 180px !important;
    border-radius: 0 !important;
    object-fit: contain !important;
    flex-shrink: 0 !important;
}


/* ══════════════════════════════════════════════
   TN — Scheda Band: aggiornamento 04/07/2026
   1) Logo in cima (come fosse il titolo), non più affiancato al testo
   2) Stile widget "Articoli recenti" (nuova query dinamica in sidebar)
   ══════════════════════════════════════════════ */

.single-area-band .entry-title-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
}
.single-area-band .entry-logo-placeholder {
    width: 96px !important;
    height: 96px !important;
    border-radius: 12px !important;
    background: linear-gradient(135deg, #e63000, #ff6b00) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: 'Aoboshi One', serif !important;
    font-size: 40px !important;
    color: #fff !important;
    flex-shrink: 0 !important;
}
.single-area-band .entry-logo-img {
    height: auto !important;
    max-height: 110px !important;
    width: auto !important;
    max-width: 380px !important;
    border-radius: 0 !important;
    object-fit: contain !important;
    object-position: left center !important;
    flex-shrink: 0 !important;
}
.single-area-band .tn-band-title {
    font-family: 'Aoboshi One', serif !important;
    font-size: 20px !important;
    font-weight: 400 !important;
    letter-spacing: 1px !important;
    text-transform: uppercase !important;
    line-height: 1.2 !important;
    color: #e63000 !important;
    margin: 0 !important;
}

.single-area-band .sidebar-posts { display: flex; flex-direction: column; gap: 12px; }
.single-area-band .sidebar-post { display: grid; grid-template-columns: 54px 1fr; gap: 10px; align-items: center; }
.single-area-band .sidebar-post-thumb { width: 54px; height: 54px; overflow: hidden; background: #111111; flex-shrink: 0; }
.single-area-band .sidebar-post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.single-area-band .sidebar-post-title { font-size: 13px; font-weight: 600; line-height: 1.35; color: #f0ece4; }
.single-area-band .sidebar-post-title a { color: #f0ece4; }
.single-area-band .sidebar-post-title a:hover { color: #e63000; }


/* ══════════════════════════════════════════════
   TN — Scheda Band: round 3 di fix (04/07/2026)
   1) Separatore sopra le sezioni h2 (Foto, Video) nel corpo principale
   2) Link social membro Formazione (era parsato ma mai stampato)
   3) Lightbox foto galleria (click per ingrandire)
   ══════════════════════════════════════════════ */

.single-area-band .tn-band-main h2 {
    position: relative !important;
    font-family: 'Aoboshi One', serif !important;
    margin-top: 52px !important;
    padding-top: 32px !important;
    padding-bottom: 14px !important;
    border-top: 1px solid #1e1e1e !important;
}
.single-area-band .tn-band-main h2::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 32px !important;
    height: 2px !important;
    background: linear-gradient(90deg, #e63000, #ff6b00) !important;
    border-radius: 1px !important;
}

.single-area-band .band-gallery-item { cursor: zoom-in !important; }

.single-area-band .sidebar-member-name a { color: #f0ece4; text-decoration: underline !important; text-decoration-color: #e63000 !important; text-underline-offset: 2px; }
.single-area-band .sidebar-member-name a:hover { color: #e63000; }

.tn-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.92);
    z-index: 9999;
    align-items: center;
    justify-content: center;
    cursor: zoom-out;
}
.tn-lightbox.active { display: flex; }
.tn-lightbox img {
    max-width: 92vw;
    max-height: 92vh;
    object-fit: contain;
    box-shadow: 0 0 40px rgba(0, 0, 0, 0.6);
}


/* TN — Scheda Band: logo centrato + piu' staccato dal nome (04/07/2026) */
.single-area-band .entry-title-row {
    align-items: center !important;
    gap: 20px !important;
    text-align: center !important;
}


/* TN — Scheda Band: solo il logo centrato, il titolo torna a sinistra (04/07/2026) */
.single-area-band .entry-title-row {
    align-items: flex-start !important;
    text-align: left !important;
}
.single-area-band .entry-logo-img,
.single-area-band .entry-logo-placeholder {
    align-self: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* ============================================================
   ENTRA NELLA NATION — CSS condiviso
   ============================================================ */

.tn-en-page {
  --tn-bg: #080808;
  --tn-card: #111111;
  --tn-accent: #e63000;
  --tn-accent-2: #ff6b00;
  --tn-text: #f0ece4;
  --tn-grey: #aaaaaa;
  --tn-grey-soft: #888888;
  --tn-border: #262626;
  --tn-radius: 2px;

  background: var(--tn-bg);
  color: var(--tn-text);
  font-family: 'Montserrat', sans-serif;
  font-size: 16px;
  line-height: 1.6;
}

.tn-en-page * , .tn-en-page *::before, .tn-en-page *::after { box-sizing: border-box; }

.tn-en-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 48px;
  border-bottom: 1px solid var(--tn-border);
  position: sticky;
  top: 0;
  background: var(--tn-bg);
  z-index: 100;
}
.tn-en-nav-logo {
  font-family: 'Aoboshi One', serif !important;
  font-size: 22px;
  letter-spacing: 0.08em;
  color: var(--tn-text) !important;
  text-decoration: none !important;
}
.tn-en-nav-logo span { color: var(--tn-accent) !important; }

.tn-en-hero {
  position: relative;
  padding: 100px 48px 90px;
  text-align: center;
  overflow: hidden;
}
.tn-en-hero::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 600px; height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230,48,0,0.18) 0%, transparent 70%);
  pointer-events: none;
}
.tn-en-eyebrow {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--tn-accent) !important;
  margin-bottom: 20px;
  position: relative;
  z-index: 2;
}
.tn-en-hero h1 {
  font-family: 'Aoboshi One', serif !important;
  font-weight: 900 !important;
  font-size: clamp(2.4rem, 7vw, 4.6rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
  margin-bottom: 22px !important;
  position: relative;
  z-index: 2;
  color: var(--tn-text) !important;
}
.tn-en-hero h1 em {
  font-style: normal;
  background: linear-gradient(90deg, var(--tn-accent) 0%, var(--tn-accent-2) 50%, var(--tn-accent) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: tn-en-flame 3.5s ease-in-out infinite;
}
.tn-en-hero-sub {
  max-width: 580px;
  margin: 0 auto 16px;
  color: var(--tn-grey);
  font-size: 1.05rem;
  line-height: 1.7;
  position: relative;
  z-index: 2;
}
.tn-en-divider {
  width: 48px;
  height: 2px;
  background: var(--tn-accent);
  margin: 36px auto 0;
  position: relative;
  z-index: 2;
}

.tn-en-benefits { position: relative; padding: 0 48px 72px; max-width: 900px; margin: 0 auto; }
.tn-en-benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  background: var(--tn-border);
  border: 1px solid var(--tn-border);
  border-radius: var(--tn-radius);
  overflow: hidden;
}
.tn-en-benefit-item { background: var(--tn-card); padding: 32px 26px; }
.tn-en-benefit-item .num {
  font-family: 'Aoboshi One', serif !important;
  font-size: 2.6rem !important;
  color: var(--tn-accent) !important;
  line-height: 1;
  margin-bottom: 10px;
}
.tn-en-benefit-item h3 {
  font-family: 'Aoboshi One', serif !important;
  font-size: 1.3rem !important;
  letter-spacing: 0.02em;
  margin-bottom: 8px !important;
  color: var(--tn-text) !important;
}
.tn-en-benefit-item p { color: var(--tn-grey); font-size: 0.88rem; line-height: 1.6; }
/* "Come funziona" fuso dentro la card benefit (Fase H continuazione): sostituisce la vecchia
   sezione standalone .tn-en-how, rimossa. Label piccola in accent per separare visivamente la
   descrizione principale dal dettaglio del passo operativo, senza una sezione dedicata. */
.tn-en-benefit-item .tn-en-benefit-how-label {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--tn-accent) !important;
  margin-top: 18px;
  margin-bottom: 8px;
  padding-top: 16px;
  border-top: 1px solid var(--tn-border);
}


.tn-en-how { padding: 72px 48px; max-width: 900px; margin: 0 auto; border-top: 1px solid var(--tn-border); }
.tn-en-section-label {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.75rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--tn-accent) !important;
  margin-bottom: 14px;
}
.tn-en-how h2 {
  font-family: 'Aoboshi One', serif !important;
  font-size: 2.4rem !important;
  margin-bottom: 40px !important;
  color: var(--tn-text) !important;
}
.tn-en-steps { display: flex; flex-direction: column; }
.tn-en-step {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 22px;
  padding: 24px 0;
  border-bottom: 1px solid var(--tn-border);
  align-items: start;
}
.tn-en-step-num {
  font-family: 'Aoboshi One', serif !important;
  font-size: 2rem !important;
  color: var(--tn-accent) !important;
  line-height: 1;
  padding-top: 2px;
}
.tn-en-step h4 {
  font-family: 'Aoboshi One', serif !important;
  font-size: 1.1rem !important;
  margin-bottom: 6px !important;
  color: var(--tn-text) !important;
}
.tn-en-step p { color: var(--tn-grey); font-size: 0.88rem; }

.tn-en-cta-section { padding: 72px 48px; border-top: 1px solid var(--tn-border); }
.tn-en-cta-section .tn-en-section-label { text-align: center; }
.tn-en-cta-section h2 {
  font-family: 'Aoboshi One', serif !important;
  font-size: 2.4rem !important;
  text-align: center;
  margin-bottom: 48px !important;
  color: var(--tn-text) !important;
}
.tn-en-cta-section .tn-en-sub {
  text-align: center;
  color: var(--tn-grey);
  max-width: 480px;
  margin: 0 auto 48px;
  font-size: 0.94rem;
}
.tn-en-cta-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2px;
  max-width: 1000px;
  margin: 0 auto;
  background: var(--tn-border);
  border-radius: var(--tn-radius);
}
.tn-en-cta-card {
  background: var(--tn-card);
  padding: 40px 30px 32px;
  display: flex;
  flex-direction: column;
  position: relative;
  border-radius: var(--tn-radius);
  filter: blur(0);
  opacity: 1;
  transition: background .25s, transform .25s ease, box-shadow .25s ease, filter .3s ease, opacity .3s ease;
}
.tn-en-cta-card:hover {
  background: #161616;
  transform: translateY(-6px);
  box-shadow: 0 18px 36px rgba(0,0,0,0.45), 0 0 0 1px var(--tn-accent);
  z-index: 2;
}
.tn-en-cta-cards:hover .tn-en-cta-card:not(:hover) {
  filter: blur(3px);
  opacity: 0.5;
}
.tn-en-cta-card .tag {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.72rem;
  line-height: 1.4;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--tn-accent) !important;
  margin-bottom: 18px;
  display: block;
  min-height: 2.8em;
}
.tn-en-cta-card h3 {
  font-family: 'Aoboshi One', serif !important;
  font-size: 1.7rem !important;
  margin-bottom: 14px !important;
  line-height: 1.1 !important;
  color: var(--tn-text) !important;
}
.tn-en-cta-card p { color: var(--tn-grey); font-size: 0.98rem; line-height: 1.6; flex: 1; margin-bottom: 28px; }
.tn-en-cta-card ul { list-style: none; margin-bottom: 28px; padding: 0; }
.tn-en-cta-card ul li {
  font-size: 0.92rem;
  color: var(--tn-grey);
  padding: 6px 0;
  border-bottom: 1px solid var(--tn-border);
  display: flex;
  align-items: center;
  gap: 10px;
}
.tn-en-cta-card ul li::before {
  content: '';
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--tn-accent);
  flex-shrink: 0;
}
.tn-en-cta-card.featured { background: #170800; border-top: 2px solid var(--tn-accent); }
.tn-en-cta-card.featured:hover { background: #1d0a00; }

.tn-en-btn {
  display: inline-block;
  padding: 13px 26px;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none !important;
  transition: all .2s;
  text-align: center;
  cursor: pointer;
  border: none;
  border-radius: var(--tn-radius);
}
.tn-en-btn-primary { background: var(--tn-accent) !important; color: #ffffff !important; }
.tn-en-btn-primary:hover { background: var(--tn-accent-2) !important; }
.tn-en-btn-outline {
  background: transparent !important;
  color: var(--tn-text) !important;
  border: 1px solid var(--tn-accent);
  font-weight: 800;
  font-size: 0.85rem;
}
.tn-en-btn-outline:hover {
  background: rgba(230,48,0,0.1) !important;
  border-color: var(--tn-accent-2);
  color: var(--tn-accent) !important;
}

.tn-en-note { max-width: 900px; margin: 0 auto; padding: 48px 48px 72px; border-top: 1px solid var(--tn-border); }
.tn-en-note p { color: var(--tn-grey); font-size: 0.85rem; line-height: 1.7; max-width: 520px; }

.tn-en-footer {
  border-top: 1px solid var(--tn-border);
  padding: 24px 48px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.tn-en-footer p { color: var(--tn-border); font-size: 0.75rem; }

.tn-en-form-hero { padding: 64px 48px 48px; border-bottom: 1px solid var(--tn-border); max-width: 760px; }
.tn-en-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tn-grey) !important;
  text-decoration: none !important;
  margin-bottom: 28px;
  transition: color .2s;
}
.tn-en-back-link:hover { color: var(--tn-text) !important; }
.tn-en-back-link::before { content: '←'; }
.tn-en-form-hero h1 {
  font-family: 'Montserrat', sans-serif !important;
  font-weight: 900 !important;
  letter-spacing: -0.02em !important;
  font-size: 2.6rem !important;
  margin-bottom: 10px !important;
  color: var(--tn-text) !important;
}
/* Allineamento 10/07/2026: font h1 pagine form (Spotlight/Pagina sito/Date) uniformato
   all'h1 della Hub (Montserrat 900, vedi sopra ".tn-en-hero h1 { font-family: 'Montserrat' }")
   per coerenza visiva tra le 4 pagine Entra nella Nation, su richiesta di Daniele. */
.tn-en-form-hero h1 em {
  font-style: normal;
  background: linear-gradient(90deg, var(--tn-accent) 0%, var(--tn-accent-2) 50%, var(--tn-accent) 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: tn-en-flame 3.5s ease-in-out infinite;
}

@keyframes tn-en-flame {
  0%, 100% {
    background-position: 0% 50%;
    filter: brightness(1) drop-shadow(0 0 0 rgba(230, 48, 0, 0));
  }
  50% {
    background-position: 100% 50%;
    filter: brightness(1.12) drop-shadow(0 0 8px rgba(230, 48, 0, 0.4));
  }
}
@media (prefers-reduced-motion: reduce) {
  .tn-en-hero h1 em, .tn-en-form-hero h1 em { animation: none; }
}
.tn-en-form-hero p { color: var(--tn-grey); font-size: 0.92rem; max-width: 520px; }

.tn-en-form-wrap { max-width: 760px; padding: 48px 48px 64px; }
.tn-en-form-group { margin-bottom: 32px; }
.tn-en-form-section-title {
  font-family: 'Aoboshi One', serif !important;
  font-size: 1.4rem !important;
  color: var(--tn-text) !important;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--tn-border);
  margin-bottom: 24px;
  margin-top: 44px;
}
.tn-en-form-section-title:first-child { margin-top: 0; }

.tn-en-form-wrap label,
.tn-en-form-wrap .tn-en-label {
  display: block;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--tn-grey) !important;
  margin-bottom: 8px;
}
.tn-en-form-wrap .req { color: var(--tn-accent) !important; margin-left: 2px; }

.tn-en-form-wrap input[type="text"],
.tn-en-form-wrap input[type="email"],
.tn-en-form-wrap input[type="url"],
.tn-en-form-wrap textarea,
.tn-en-form-wrap select,
.tn-en-form-wrap .wpcf7-form-control:not(input[type="submit"]):not(input[type="file"]) {
  width: 100%;
  background: var(--tn-card) !important;
  border: 1px solid var(--tn-border) !important;
  color: var(--tn-text) !important;
  padding: 13px 15px;
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.95rem;
  outline: none;
  transition: border-color .2s;
  border-radius: var(--tn-radius) !important;
  -webkit-appearance: none;
}
.tn-en-form-wrap input:focus,
.tn-en-form-wrap textarea:focus,
.tn-en-form-wrap select:focus,
.tn-en-form-wrap .wpcf7-form-control:focus { border-color: var(--tn-accent) !important; }
.tn-en-form-wrap textarea { resize: vertical; min-height: 110px; }

.tn-en-field-note { font-size: 0.75rem; color: var(--tn-grey-soft); margin-top: 6px; font-style: italic; }
.tn-en-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.tn-en-member-row { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: 10px; margin-bottom: 10px; align-items: end; }
.tn-en-member-remove {
  background: transparent; border: 1px solid var(--tn-border); color: var(--tn-grey);
  cursor: pointer; padding: 12px 14px; border-radius: var(--tn-radius); font-size: 0.85rem;
}
.tn-en-member-remove:hover { border-color: var(--tn-accent); color: var(--tn-accent); }
.tn-en-member-add {
  background: transparent; border: 1px dashed var(--tn-border); color: var(--tn-grey);
  cursor: pointer; padding: 10px 16px; border-radius: var(--tn-radius); font-size: 0.78rem;
  letter-spacing: 0.08em; text-transform: uppercase; margin-top: 4px;
}
.tn-en-member-add:hover { border-color: var(--tn-accent); color: var(--tn-accent); }
.tn-en-member-add:disabled { opacity: 0.35; cursor: not-allowed; }

.tn-en-char-counter { font-size: 0.72rem; color: var(--tn-grey-soft); text-align: right; margin-top: 4px; }
.tn-en-char-counter.over { color: var(--tn-accent); }

.tn-en-upload-zone {
  border: 1px dashed var(--tn-border);
  background: var(--tn-card);
  padding: 32px;
  text-align: center;
  border-radius: var(--tn-radius);
  transition: border-color .2s;
}
.tn-en-upload-zone:hover { border-color: var(--tn-accent); }
.tn-en-upload-zone p { color: var(--tn-grey); font-size: 0.88rem; margin-bottom: 4px; }
.tn-en-upload-zone small { color: var(--tn-grey-soft); font-size: 0.75rem; }
.tn-en-upload-zone input[type="file"] { color: var(--tn-grey); font-size: 0.82rem; margin-top: 10px; }

.tn-en-form-submit {
  margin-top: 44px;
  padding-top: 28px;
  border-top: 1px solid var(--tn-border);
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
}
.tn-en-form-submit small { color: var(--tn-grey); font-size: 0.75rem; }

/* Pannello di esito esplicito (TN-144, 09/09/2026): inserito da entra-nella-nation.js
   (tnEnFeedback) come sibling precedente di .tn-en-form-submit, sopra il bottone di invio.
   Colori di stato non fanno parte della palette --tn-* esistente (nessuno stato ok/warn/info/
   danger era gia' documentato): valori scelti per contrasto leggibile su --tn-card (#111111),
   evitando l'accent (--tn-accent, #e63000) per lo stato "danger" per non confonderlo col
   colore di brand. */
.tn-en-feedback {
  display: grid;
  grid-template-columns: 40px 1fr;
  border: 1px solid var(--tn-border);
  border-left-width: 3px;
  border-radius: var(--tn-radius);
  background: var(--tn-card);
  margin-bottom: 28px;
  overflow: hidden;
}
.tn-en-feedback[hidden] { display: none; }
.tn-en-feedback-ico {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 16px 0 0;
  font-size: 18px;
  font-weight: 700;
}
.tn-en-feedback-body { padding: 15px 18px 16px 4px; }
.tn-en-feedback-evt {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.66rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--tn-grey-soft) !important;
  margin: 0 0 5px;
  font-weight: 600;
}
.tn-en-feedback-title { font-size: 0.92rem; font-weight: 700; color: var(--tn-text); margin: 0 0 4px; }
.tn-en-feedback-text { font-size: 0.85rem; color: var(--tn-grey); margin: 0; line-height: 1.55; word-break: break-word; }
.tn-en-feedback-text a { color: var(--tn-accent); text-decoration: underline; }

.tn-en-feedback-ok { border-left-color: #4bb283; }
.tn-en-feedback-ok .tn-en-feedback-ico { color: #4bb283; background: #0f2019; }
.tn-en-feedback-warn { border-left-color: #d9932f; }
.tn-en-feedback-warn .tn-en-feedback-ico { color: #d9932f; background: #221a0d; }
.tn-en-feedback-info { border-left-color: #5b8bd0; }
.tn-en-feedback-info .tn-en-feedback-ico { color: #5b8bd0; background: #0f1826; }
.tn-en-feedback-danger { border-left-color: #e5484d; }
.tn-en-feedback-danger .tn-en-feedback-ico { color: #e5484d; background: #241012; }

@media (max-width: 520px) {
  .tn-en-feedback { grid-template-columns: 32px 1fr; }
  .tn-en-feedback-ico { font-size: 15px; }
}


.tn-en-info-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(230,48,0,0.1);
  border: 1px solid rgba(230,48,0,0.3);
  color: var(--tn-accent) !important;
  font-size: 0.75rem;
  padding: 6px 12px;
  margin-bottom: 18px;
  border-radius: var(--tn-radius);
  font-family: 'Montserrat', sans-serif !important;
}

.tn-en-footer-note { margin-top: 52px; padding-top: 28px; border-top: 1px solid var(--tn-border); }
.tn-en-footer-note p:first-child {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--tn-grey) !important; margin-bottom: 10px;
}
.tn-en-footer-note p { color: var(--tn-grey); font-size: 0.88rem; line-height: 1.7; }
.tn-en-footer-note a { color: var(--tn-accent) !important; text-decoration: none !important; }

.tn-en-honeypot {
  position: absolute !important;
  left: -9999px !important;
  top: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

@media (max-width: 900px) {
  .tn-en-benefits-grid, .tn-en-cta-cards { grid-template-columns: 1fr; }
  .tn-en-form-row { grid-template-columns: 1fr; }
  .tn-en-member-row { grid-template-columns: 1fr; }
  .tn-en-nav { padding: 16px 24px; }
  .tn-en-nav ul { display: none; }
  .tn-en-hero, .tn-en-benefits, .tn-en-how, .tn-en-cta-section, .tn-en-note, .tn-en-footer,
  .tn-en-form-hero, .tn-en-form-wrap { padding-left: 24px; padding-right: 24px; }
}


/* Fix: nasconde il fieldset dei campi nascosti CF7 (hidden-fields-container),
   che senza il CSS core di CF7 (rimosso/non caricato su queste pagine, forse
   da Asset CleanUp) mostrava un box vuoto col bordo di default del browser
   prima di ogni sezione del form. */
.tn-en-form-wrap fieldset.hidden-fields-container {
  display: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Fix (Fase G continuazione, sessione 6): il tema fissa un'altezza implicita di 40px sui
   <select> nativi, ma padding verticale (13px+13px=26px) + bordo (2px) gia' occupano 28px,
   lasciando meno spazio del necessario per il line-height del testo (24px) - il valore
   selezionato veniva tagliato in alto. Forzato height:auto + min-height maggiore cosi' il box
   si adatta al contenuto invece di ereditare l'altezza fissa del tema. */
.tn-en-form-wrap select {
  height: auto !important;
  min-height: 52px;
  line-height: 1.4 !important;
  padding-top: 15px;
  padding-bottom: 15px;
}

/* Fix (Fase H, sessione 6): il pulsante nativo "Scegli file"/"Choose File" e' renderizzato dal
   browser/OS e non eredita il font-family della pagina in nessun browser - appare in font di
   sistema, bianco, stonato sul tema scuro. ::file-selector-button (supportato da Chrome/Edge/
   Safari moderni) permette di restilizzarlo esplicitamente; dove non supportato, resta lo stile
   nativo del browser (degradazione non bloccante). */
.tn-en-upload-zone input[type="file"] {
  color: var(--tn-grey);
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.82rem;
  margin-top: 10px;
}
.tn-en-upload-zone input[type="file"]::file-selector-button {
  background: transparent;
  border: 1px solid var(--tn-border);
  color: var(--tn-text);
  font-family: 'Montserrat', sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: var(--tn-radius);
  cursor: pointer;
  margin-right: 10px;
  transition: border-color .2s, color .2s;
}
.tn-en-upload-zone input[type="file"]::file-selector-button:hover {
  border-color: var(--tn-accent);
  color: var(--tn-accent);
}

/* Variante per note che contengono un link-CTA (es. "Registrati alla Nation") - Fase H
   continuazione: la nota standard (0.75rem, corsivo, grigio spento) era troppo poco visibile per
   un invito ad azione. Piu' grande, non corsivo, link in colore accent e bold. */
.tn-en-field-note-cta { font-size: 0.9rem; font-style: normal; color: var(--tn-grey); }
.tn-en-field-note-cta a { color: var(--tn-accent) !important; font-weight: 700; text-decoration: underline; }
.tn-en-field-note-cta a:hover { color: var(--tn-accent-2) !important; }

/* SCROLL CUE (Fase H): freccia animata accanto alla card "03 Calendario date" che invita a
   scrollare verso le card CTA sotto. Visibile solo su viewport abbastanza larghi. Cliccabile:
   JS fa scroll fluido fino a .tn-en-cta-section e nasconde la freccia superata la sezione. */
.tn-en-scroll-cue {
  position: absolute;
  right: -76px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 8px;
  opacity: 1;
  transition: opacity .4s ease;
}
.tn-en-scroll-cue.tn-en-scroll-cue-hidden { opacity: 0; pointer-events: none; }
/* Fix (Fase H): il tema applica uno stile hover/focus di default ai <button> (sfondo pieno
   colore accent) che sovrascriveva lo sfondo trasparente, trasformando la freccia in un blocco
   rosso pieno al passaggio del mouse. Forzato trasparente anche in hover/focus/active. */
.tn-en-scroll-cue:hover,
.tn-en-scroll-cue:focus,
.tn-en-scroll-cue:active {
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}
.tn-en-scroll-cue span {
  font-family: 'Montserrat', sans-serif !important;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--tn-accent);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}
.tn-en-scroll-cue svg {
  width: 26px;
  height: 40px;
  color: var(--tn-accent);
  animation: tn-en-scroll-bounce 1.8s ease-in-out infinite;
}
@keyframes tn-en-scroll-bounce {
  0%, 100% { transform: translateY(0); opacity: 0.75; }
  50% { transform: translateY(10px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .tn-en-scroll-cue svg { animation: none; }
}
@media (max-width: 1150px) {
  .tn-en-scroll-cue { display: none; }
}


/* Fix (08/07/2026): rimosso divisorio sotto hero form solo su /entra-nella-nation/pagina-sito/
   (richiesta Daniele) - scope a page-id-1050 per non toccare Spotlight/Date, che condividono
   lo stesso selettore .tn-en-form-hero. */
.page-id-1050 .tn-en-form-hero { border-bottom: none !important; }

/* ============================================= 
   ENTRA NELLA NATION - fix layout-shift tip di validazione (08/07/2026)
   Il tip .wpcf7-not-valid-tip in flusso normale aumenta l'altezza della cella
   grid del campo; con align-items:end su .tn-en-member-row questo spostava
   visibilmente i campi vicini nella stessa riga (es. Ruolo/Nome quando Instagram
   mostrava un errore). Fix: tip in overlay assoluto, non influenza piu' il layout.
   Selettori .tn-en-form-group coprono sia .tn-en-form-row (2 col) sia
   .tn-en-member-row (3 col) - condivisi da tutti e 3 i form Entra nella Nation. */
.tn-en-form-group .wpcf7-form-control-wrap { position: relative; display: block; }
.tn-en-form-group .wpcf7-not-valid-tip {
  position: absolute;
  top: 100%;
  left: 0;
  margin-top: 4px;
  font-size: 13px;
  line-height: 15px;
  white-space: normal;
  max-width: 100%;
}
.tn-en-form-row { row-gap: 34px; }
.tn-en-member-row { margin-bottom: 30px; }


/* Sessione 11 (10/07/2026) - fix bug tip foto/logo renderizzato fuori posizione:
   .tn-en-form-group non aveva position:relative, quindi i tip assoluti per foto/logo
   (inseriti come sibling di .tn-en-upload-zone, non dentro .wpcf7-form-control-wrap)
   sfuggivano fino a .hfeed.site come positioned ancestor, atterrando in fondo a sinistra
   della pagina intera e sovrapponendosi tra loro. */
.tn-en-form-group { position: relative; }


/* Sessione 11 (10/07/2026) - Daniele: font generale troppo piccolo sulle 4 pagine
   Entra nella Nation. html:has() scala tutte le dimensioni in rem (heading, label, testo)
   solo sulle pagine che contengono .tn-en-page, senza toccare il resto del sito. Il
   font-size locale su .tn-en-page copre anche eventuali dimensioni unitless/em. */
html:has(.tn-en-page) { font-size: 118%; }
.tn-en-page { font-size: 18px; }

/* H1 "Entra nella Nation" (hub) allineato allo stesso font di "ruolo nella Nation"
   in /contatti-generale/ (.tn-ch-title): Montserrat 900 invece di Aoboshi One. */
.tn-en-hero h1 { font-family: 'Montserrat', sans-serif !important; }


/* Sessione 12 (10/07/2026) - Daniele: migliorare visibilita drag&drop, "X" rimozione
   file illeggibile su sfondo scuro (color originale plugin: rgb(94,23,23)).
   Applicato a .tn-en-upload-zone (Spotlight + Pagina del Sito, unico markup addon).
   [v2, stesso giorno] FIX BUG: il plugin lega il click a document controllando
   e.target.classList.contains('dnd-icon-remove') SUL TARGET ESATTO (non closest()).
   La v1 rendeva il badge .remove-file piu' grande dell'icona interna: cliccando sul
   bordo del badge (non sul glyph) e.target era l'ancora <a>, la classe non veniva
   rilevata, preventDefault() non scattava e l'href="#" faceva scrollare in cima alla
   pagina invece di rimuovere il file. Fix: lo span icona ora riempie AL 100% l'area
   del badge, cosi' qualunque punto del cerchio visibile e' geometricamente coperto
   dall'icona stessa. */
.tn-en-upload-zone .remove-file {
  color: #f0ece4 !important;
  background: rgba(230, 48, 0, 0.18) !important;
  border: 1px solid rgba(240, 236, 228, 0.35) !important;
  border-radius: 50% !important;
  width: 22px !important;
  height: 22px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.15s, border-color 0.15s !important;
}
.tn-en-upload-zone .remove-file:hover {
  background: #e63000 !important;
  border-color: #e63000 !important;
  color: #fff !important;
}
.tn-en-upload-zone .dnd-icon-remove {
  color: inherit !important;
  font-size: 14px !important;
  width: 100% !important;
  height: 100% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;
}

/* Sessione 12 (10/07/2026) - fix bug reale scoperto durante il test upload: nessuno
   stylesheet del sito nasconde .screen-reader-response (contenitore nativo CF7 per la
   lista puntata di errori, classe DIVERSA da .screen-reader-text che invece e' gestita).
   Risultato: quando la validazione nativa CF7 scatta, la lista "Compila questo campo."
   diventa completamente visibile in cima al form invece di restare invisibile per
   screen reader. Regola standard visually-hidden (stessa tecnica di .screen-reader-text). */
.screen-reader-response {
  position: absolute !important;
  overflow: hidden !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  border: 0 !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}


/* Sessione 12 (10/07/2026) - Daniele: checkbox Privacy (obbligatoria) + Marketing (opzionale)
   su Spotlight e Pagina del Sito, con link a /privacy-policy/ dentro la label. Campi CF7
   [acceptance], markup .wpcf7-list-item > label > input[checkbox] + span.wpcf7-list-item-label
   (quest'ultimo supporta HTML grezzo, a differenza delle option di [checkbox]/[radio] che sono
   escapate come testo puro - per questo [acceptance] e' l'unico tipo campo CF7 che permette un
   link cliccabile dentro la label). */
.tn-en-consent-group {
  margin-top: 24px;
}

/* FIX DEFINITIVO: Override ad alta specificità per annullare il bordo del wrapper globale */
.tn-en-form-wrap .tn-en-consent-group .wpcf7-form-control:not(input[type="submit"]):not(input[type="file"]),
.tn-en-form-wrap .tn-en-consent-group .wpcf7-form-control-wrap,
.tn-en-form-wrap .tn-en-consent-group .wpcf7-list-item {
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  box-shadow: none !important;
}

.tn-en-consent-group .wpcf7-list-item label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}

.tn-en-form-wrap .tn-en-consent-group input[type="checkbox"] {
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  margin-top: 2px;
  padding: 0 !important;
  -webkit-appearance: checkbox !important;
  appearance: checkbox !important;
  accent-color: var(--tn-accent);
  cursor: pointer;
  background: transparent !important;
  border: none !important;
}

.tn-en-consent-group .wpcf7-list-item-label {
  color: var(--tn-text);
  font-size: 0.9rem;
  line-height: 1.5;
}

.tn-en-consent-group a {
  color: var(--tn-accent) !important;
  text-decoration: underline;
}

.tn-en-consent-group a:hover {
  color: var(--tn-accent-2) !important;
}

/* =============================================
   FIX — Logo scheda band sovrapposto alla bio
   (18/07/2026) Quando Imagify riscrive <img fetchpriority='high' class="entry-logo-img">
   in <picture class="entry-logo-img"><img fetchpriority='high'></picture> per servire WebP,
   la classe resta sul <picture> e l'<img fetchpriority='high'> interno perde i vincoli
   max-height/object-fit definiti sopra, sforando su .entry-content.
   Regola additiva, non tocca le regole esistenti: si applica SOLO
   quando l'<img fetchpriority='high'> e' innestato dentro un wrapper con questa classe
   (caso picture), quindi non ha effetto sulle band non ancora
   riscritte da Imagify (es. Outshined, gia' verificato invariato).
   ============================================= */
.single-area-band .entry-logo-img {
    overflow: hidden !important;
}
.single-area-band .entry-logo-img img {
    height: auto !important;
    max-height: 110px !important;
    width: auto !important;
    max-width: 380px !important;
    object-fit: contain !important;
    object-position: left center !important;
}


/* =============================================
   FIX — Foto principale (.tn-featured) sovrapposta al testo
   (19/07/2026) Stesso pattern del fix logo del 18/07: Imagify
   riscrive <img fetchpriority='high' class="tn-featured"> in <picture class="tn-featured">
   <img fetchpriority='high'></picture> per servire WebP. Il vincolo max-height:560px
   (regola sopra) si applica al <picture>, ma l'<img fetchpriority='high'> interno resta
   senza vincoli e sfora sul testo della bio sotto. Regola additiva,
   si applica solo quando l'<img fetchpriority='high'> e' innestato dentro un wrapper con
   questa classe (caso picture), non tocca le schede non riscritte
   da Imagify.
   ============================================= */
.single-area-band .tn-featured {
    overflow: hidden !important;
}
.single-area-band .tn-featured img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 560px !important;
    object-fit: contain !important;
    object-position: center !important;
}

/* TN — anti doppio-submit Entra nella Nation (bottone "Invio in corso...") */
.tn-en-page .tn-en-btn-sending {
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  pointer-events: none;
}


/* Navigazione avanti/indietro + contatore + chiusura lightbox foto band (20/07/2026,
   fix segnalato da Daniele: prima non si poteva sfogliare la galleria, solo chiudere e
   ricliccare un'altra miniatura). Stesso linguaggio visivo delle altre pillole del sito:
   sfondo scuro translucido, bordo accent, hover pieno accent. */
.tn-lightbox-prev,
.tn-lightbox-next,
.tn-lightbox-close {
    position: fixed;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(8, 8, 8, 0.72);
    border: 1px solid rgba(230, 48, 0, 0.55);
    border-radius: 50%;
    color: #f0ece4;
    cursor: pointer;
    z-index: 10000;
    transition: background .25s ease, border-color .25s ease, transform .25s ease;
}
.tn-lightbox-prev:hover, .tn-lightbox-next:hover, .tn-lightbox-close:hover {
    background: #e63000; border-color: #ff6b00;
}
.tn-lightbox-prev, .tn-lightbox-next {
    top: 50%; transform: translateY(-50%);
    width: 52px; height: 52px; font-size: 30px; line-height: 1;
}
.tn-lightbox-prev:hover, .tn-lightbox-next:hover { transform: translateY(-50%) scale(1.08); }
.tn-lightbox-prev { left: 22px; }
.tn-lightbox-next { right: 22px; }
.tn-lightbox-close {
    top: 22px; right: 22px; width: 42px; height: 42px; font-size: 24px; font-weight: 300;
}
.tn-lightbox-close:hover { transform: scale(1.08); }
.tn-lightbox-counter {
    position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%);
    background: rgba(8, 8, 8, 0.72); border: 1px solid rgba(240, 236, 228, 0.22);
    border-radius: 999px; padding: 6px 16px;
    font-family: 'Montserrat', sans-serif; font-size: 12px; font-weight: 600;
    letter-spacing: 1px; color: #f0ece4; z-index: 10000;
}
@media (max-width: 600px) {
    .tn-lightbox-prev, .tn-lightbox-next { width: 42px; height: 42px; font-size: 24px; }
    .tn-lightbox-prev { left: 10px; }
    .tn-lightbox-next { right: 10px; }
    .tn-lightbox-close { top: 10px; right: 10px; }
    .tn-lightbox-counter { bottom: 14px; }
}


/* =============================================
   TN — Restyling Articolo Singolo (blog)
   Scope: body.single-post — non tocca .single-area-band
   ============================================= */

body.single-post .entry-header:not(.related-entry-header) { display:none !important; }

/* ---- Hero cinematico ---- */
.single-post .tn-article-hero{
  position:relative;height:min(70vh,560px);min-height:380px;overflow:hidden;background:#111111;
}
.single-post .tn-article-hero-bg,
.single-post .tn-article-hero-photo{
  position:absolute;inset:0;background-size:cover;background-position:center;
}
.single-post .tn-article-hero-bg{ filter:blur(20px); transform:scale(1.15); }
.single-post .tn-article-hero-photo{ background-size:contain; background-repeat:no-repeat; }
.single-post .tn-article-hero-grad{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,8,8,0) 55%,#080808 100%);
}
.single-post .tn-article-hero-grain{
  position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:overlay;opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.single-post .tn-article-back{
  position:absolute;top:20px;left:20px;z-index:5;display:inline-flex;align-items:center;gap:8px;
  background:rgba(8,8,8,.72) !important;border:1px solid rgba(230,48,0,.55) !important;color:#f0ece4 !important;
  font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;
  padding:9px 16px;box-shadow:0 2px 10px rgba(0,0,0,.35);text-decoration:none !important;
  transition:border-color .2s ease,background .2s ease,transform .2s ease;
}
.single-post .tn-article-back:hover{ border-color:#e63000 !important;background:rgba(8,8,8,.9) !important;transform:translateX(-2px); }

.single-post .tn-article-caption{ background:#080808;border-bottom:1px solid #222222; }
.single-post .tn-article-caption-inner{ max-width:1200px;margin:0 auto;padding:30px 20px 34px; }
.single-post .tn-article-chip{
  display:inline-block;background:#e63000 !important;color:#fff !important;font-size:10px;font-weight:700;
  letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;margin-bottom:14px;
}
.single-post .tn-article-title{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;color:#f0ece4 !important;
  font-size:clamp(1.8rem,3.8vw,2.7rem);line-height:1.1;max-width:26ch;margin:0 !important;
}

/* ---- Corpo articolo — blocchi nativi Gutenberg ---- */
.single-post .entry-content{ max-width:640px; }
.single-post .entry-content h2{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;color:#f0ece4 !important;
  font-size:1.4rem;line-height:1.25;margin:44px 0 20px !important;padding-left:16px;
  border-left:4px solid #e63000;
}
.single-post .entry-content blockquote,
.single-post .entry-content .wp-block-quote{
  position:relative;margin:32px 0 !important;padding:6px 0 6px 40px !important;
  color:#f0ece4 !important;font-size:16.5px;line-height:1.75;border-left:2px solid #222222 !important;
  font-style:normal !important;
}
.single-post .entry-content blockquote::before,
.single-post .entry-content .wp-block-quote::before{
  content:"\201C";position:absolute;left:0;top:-6px;font-family:'Aoboshi One',serif;font-size:2.6rem;
  color:#e63000;line-height:1;
}
.single-post .entry-content hr,
.single-post .entry-content .wp-block-separator{
  border:none !important;height:2px !important;width:40px !important;
  background:linear-gradient(90deg,#e63000,#ff6b00) !important;margin:40px 0 !important;
}
.single-post .entry-content figure.wp-block-image{ margin:40px 0 !important; }
.single-post .entry-content figure.wp-block-image img{
  width:100%;height:auto;display:block;border:1px solid #222222;
}

/* ---- Sidebar: card Pagina band ---- */
.single-post .tn-band-card-wrap{ margin-bottom:22px; }
.single-post .tn-band-card{
  display:block;background:#111111 !important;border:1px solid #222222 !important;
  border-top:2px solid #e63000 !important;transition:border-color .25s ease;
}
.single-post .tn-band-card:hover{ border-color:#e63000 !important; }
.single-post .tn-band-card,.single-post .tn-band-card *{ text-decoration:none !important; }
.single-post .tn-band-card-logo{
  height:260px;display:flex;align-items:center;justify-content:center;padding:14px;background:#0d0d0d;
}
.single-post .tn-band-card-logo img{ max-width:100%;max-height:100%;object-fit:contain; }
.single-post .tn-band-card-body{ padding:6px 16px 16px; }
.single-post .tn-band-card-eyebrow{
  display:block;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;
  color:#e63000 !important;margin-bottom:6px;
}
.single-post .tn-band-card-body h3{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;font-size:1.15rem;
  color:#f0ece4 !important;margin:2px 0 10px;
}
.single-post .tn-band-card-link{
  display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;color:#e63000 !important;
}

/* ---- Blocco di chiusura: e' testo scritto a mano dagli autori (h2 finale
     "Segui... Instagram" + paragrafo Tribute Nation), non generato da codice.
     Si stila l'ultimo h2 del contenuto + il paragrafo che lo segue. ---- */
.single-post .entry-content > h2:last-of-type{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;
  background:#111111;border:1px solid #222222;border-top:2px solid #e63000;
  padding:22px 24px 4px;margin:48px 0 0 !important;font-size:1.25rem;line-height:1.4;
  color:#f0ece4 !important;font-style:normal !important;
}
.single-post .entry-content > h2:last-of-type em{ font-style:normal; }
.single-post .entry-content > h2:last-of-type a{ color:#e63000 !important;text-decoration:underline !important; }
.single-post .entry-content > h2:last-of-type + p{
  background:#111111;border:1px solid #222222;border-top:none;
  padding:0 24px 22px;margin:0 0 24px !important;font-size:12.5px;color:#888888 !important;
}
.single-post .entry-content > h2:last-of-type + p em{ font-style:normal; }
.single-post .entry-content > h2:last-of-type + p a{ color:#ff6b00 !important;text-decoration:underline !important; }

/* ---- Sidebar — Ultime uscite (core/latest-posts, displayFeaturedImage gia attivo) ---- */
.single-post #secondary .wp-block-latest-posts{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px; }
.single-post #secondary .wp-block-latest-posts li{
  position:relative;height:108px;overflow:hidden;border:1px solid #222222;background:#0d0d0d;
  list-style:none;
}
.single-post #secondary .wp-block-latest-posts__featured-image{ position:absolute;inset:0;margin:0; }
.single-post #secondary .wp-block-latest-posts__featured-image img{ position:absolute !important;inset:0;width:100% !important;height:100% !important;object-fit:cover !important;object-position:50% 30% !important;max-width:none !important;max-height:none !important; }
.single-post #secondary .wp-block-latest-posts__featured-image::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(8,8,8,.68) 0%,rgba(8,8,8,.92) 75%);
}
.single-post #secondary .wp-block-latest-posts__post-title{
  position:absolute;inset:0;z-index:2;display:flex;align-items:center;padding:10px 14px;
  font-size:12.5px;line-height:1.32;color:#f0ece4 !important;text-decoration:none !important;font-weight:400;
}
.single-post #secondary .wp-block-latest-posts li:hover .wp-block-latest-posts__post-title{ color:#e63000 !important; }
.single-post #secondary .wp-block-latest-posts__post-date{ display:none; }


/* =============================================
   TN — Rifiniture articolo singolo (prev/next, correlati, sidebar sticky)
   ============================================= */

/* ---- Prev/Next: piccolo tocco di coerenza tipografica ---- */
.single-post .navigation.post-navigation .post-title{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;font-size:15px !important;
}

/* ---- Articoli correlati — le vecchie regole .ast-related-post-wrap non combaciano piu
   con le classi reali di Astra (.ast-related-post), risultavano inapplicate. ---- */
.single-post .ast-related-posts-wrapper{
  display:grid !important;grid-template-columns:repeat(3,1fr);gap:20px;
}
.single-post .ast-related-post{
  background:#111111 !important;border:1px solid #222222 !important;transition:border-color .3s ease;
  display:flex !important;flex-direction:column;float:none !important;width:100% !important;
}
.single-post .ast-related-post:hover{ border-color:#e63000 !important; }
.single-post .ast-related-posts-inner-section,
.single-post .ast-related-post-content{ display:flex;flex-direction:column;flex:1; }
.single-post .ast-related-post-featured-section{ height:140px;overflow:hidden; }
.single-post .ast-related-post-featured-section img{ width:100% !important;height:100% !important;object-fit:cover !important;object-position:50% 30% !important;position:static !important;max-width:none !important;max-height:none !important; }
.single-post .related-entry-header{ padding:14px 16px 6px; }
.single-post .ast-related-post-title{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;font-size:14px !important;
  line-height:1.3;margin:0 !important;
}
.single-post .ast-related-post-title a{ color:#f0ece4 !important;text-decoration:none !important; }
.single-post .ast-related-post:hover .ast-related-post-title a{ color:#e63000 !important; }
.single-post .ast-related-post .entry-meta{ display:none !important; }
.single-post .ast-related-post .entry-content{ display:none !important; }
@media (max-width:900px){
  .single-post .ast-related-posts-wrapper{ grid-template-columns:1fr; }
}

/* ---- Sidebar sticky ---- */
@media (min-width:922px){
  .single-post #secondary{ position:sticky;top:24px;align-self:flex-start !important; }
}


/* =============================================
   TN — Restyling Blog Archive (/blog/)
   ============================================= */

/* ---- Hero (solo pagina 1) ---- */
.blog .tbm-hero{ position:relative;height:min(64vh,520px);min-height:360px;overflow:hidden;background:#111111; }
.blog .tbm-loading{ position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#888888; }
.blog .tbm-slide{ position:absolute;inset:0;opacity:0;transition:opacity 900ms cubic-bezier(.22,.61,.36,1);z-index:1; }
.blog .tbm-slide.is-active{ opacity:1;z-index:2; }
.blog .tbm-slide-bg,.blog .tbm-slide-photo{ position:absolute;inset:0;background-size:cover;background-position:center; }
.blog .tbm-slide-bg{ filter:blur(20px);transform:scale(1.15); }
.blog .tbm-slide-photo{ background-size:contain;background-repeat:no-repeat; }
.blog .tbm-slide-grad{ position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,8,0) 55%,#080808 100%); }
.blog .tbm-hero-grain{ position:absolute;inset:0;z-index:3;pointer-events:none;mix-blend-mode:overlay;opacity:.14;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.blog .tbm-hero-nav{ position:absolute;left:0;right:0;bottom:18px;z-index:4;display:flex;align-items:center;justify-content:center;gap:9px; }
.blog .tbm-hero-dot{ width:22px;height:3px;background:rgba(240,236,228,.3);border:none;padding:0;cursor:pointer;transition:background .25s ease; }
.blog .tbm-hero-dot.is-active{ background:#e63000; }
.blog .tbm-hero-arrow{ position:absolute;top:50%;transform:translateY(-50%);z-index:4;width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  background:rgba(8,8,8,.72);border:1px solid rgba(230,48,0,.55);color:#f0ece4;box-shadow:0 2px 10px rgba(0,0,0,.35);cursor:pointer;font-size:16px;
  transition:border-color .2s ease,background .2s ease,transform .2s ease; }
.blog .tbm-hero-arrow:hover{ border-color:#e63000;background:rgba(8,8,8,.9); }
.blog .tbm-hero-arrow.prev{ left:16px; }
.blog .tbm-hero-arrow.next{ right:16px; }
@media (max-width:640px){ .blog .tbm-hero-arrow{ display:none; } }

.blog .tbm-caption{ background:#080808;border-bottom:1px solid #222222; }
.blog .tbm-caption-inner{ max-width:1200px;margin:0 auto;padding:30px 20px 34px;transition:opacity 260ms ease,transform 260ms ease; }
.blog .tbm-caption-inner.is-out{ opacity:0;transform:translateY(8px); }
.blog .tbm-chip{ display:inline-block;background:#e63000;color:#fff;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 11px;margin-bottom:14px; }
.blog .tbm-hero-title{ font-family:'Aoboshi One',serif;font-weight:400;color:#f0ece4;font-size:clamp(1.8rem,3.8vw,2.7rem);line-height:1.1;max-width:22ch;margin:0; }
.blog .tbm-excerpt{ margin-top:14px;max-width:62ch;font-size:14.5px;line-height:1.7;color:#d4d4d4; }
.blog .tbm-hero-cta{ margin-top:20px;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:#f0ece4 !important;border-bottom:2px solid #e63000;padding-bottom:4px;text-decoration:none !important;transition:color .25s ease,gap .25s ease; }
.blog .tbm-hero-cta:hover{ color:#e63000 !important;gap:14px; }
@media (prefers-reduced-motion:reduce){ .blog .tbm-caption-inner{ transition:none !important; } }

/* ---- Nascondi i primi 3 articoli del loop (gia' nell'hero), solo pagina 1 ---- */
body.tn-blog-hero-active .ast-article-post:nth-of-type(-n+3){ display:none !important; }

/* ---- Ritocchi card griglia ---- */
.blog .ast-article-post .entry-header.ast-blog-meta-container{ display:none !important; }
.blog .ast-article-post .ast-blog-featured-section{ height:200px; }
.blog .ast-article-post h2.entry-title{ font-family:'Aoboshi One',serif !important;font-weight:400 !important; }

/* ---- Paginazione ---- */
.blog .navigation.pagination .nav-links{ display:flex;gap:10px;justify-content:center;margin-top:40px; }
.blog .navigation.pagination .page-numbers{
  font-size:12px;font-weight:700;color:#888888 !important;padding:8px 14px;border:1px solid #222222;
  text-decoration:none !important;transition:border-color .25s ease,color .25s ease;
}
.blog .navigation.pagination .page-numbers:hover,
.blog .navigation.pagination .page-numbers.current{ border-color:#e63000;color:#f0ece4 !important; }

/* ---- Sidebar: stessa resa dell'articolo singolo ---- */
.blog #secondary .wp-block-latest-posts{ list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px; }
.blog #secondary .wp-block-latest-posts li{ position:relative;height:108px;overflow:hidden;border:1px solid #222222;background:#0d0d0d;list-style:none; }
.blog #secondary .wp-block-latest-posts__featured-image{ position:absolute;inset:0;margin:0; }
.blog #secondary .wp-block-latest-posts__featured-image img{ position:absolute !important;inset:0;width:100% !important;height:100% !important;object-fit:cover !important;object-position:50% 30% !important;max-width:none !important;max-height:none !important; }
.blog #secondary .wp-block-latest-posts__featured-image::after{ content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,8,.68) 0%,rgba(8,8,8,.92) 75%); }
.blog #secondary .wp-block-latest-posts__post-title{ position:absolute;inset:0;z-index:2;display:flex;align-items:center;padding:10px 14px;font-size:12.5px;line-height:1.32;color:#f0ece4 !important;text-decoration:none !important;font-weight:400; }
.blog #secondary .wp-block-latest-posts li:hover .wp-block-latest-posts__post-title{ color:#e63000 !important; }
.blog #secondary .wp-block-latest-posts__post-date{ display:none; }
@media (min-width:922px){ .blog #secondary{ position:sticky;top:24px;align-self:flex-start !important; } }


/* =============================================
   TN — Card "Entra nella Nation" (sidebar, blog + articolo)
   ============================================= */
.single-post .tn-join-card-wrap,
.blog .tn-join-card-wrap{
  background:#111111;border:1px solid #222222;border-top:2px solid #e63000;padding:22px 18px;margin-top:22px;
}
.single-post .tn-join-card-wrap h3,
.blog .tn-join-card-wrap h3{
  font-family:'Aoboshi One',serif !important;font-weight:400 !important;font-size:1.15rem;color:#f0ece4 !important;margin:0 0 10px;
}
.single-post .tn-join-card-wrap p,
.blog .tn-join-card-wrap p{ font-size:13px;line-height:1.6;color:#d4d4d4 !important;margin:0 0 16px; }
.single-post .tn-join-cta,
.blog .tn-join-cta{
  display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:1px;
  text-transform:uppercase;color:#f0ece4 !important;border-bottom:2px solid #e63000;padding-bottom:4px;
  text-decoration:none !important;transition:color .25s ease,gap .25s ease;
}
.single-post .tn-join-cta:hover,
.blog .tn-join-cta:hover{ color:#e63000 !important;gap:14px; }


/* TN fix 2026-07-22: la wrapper .wp-block-latest-posts__featured-image restava 70x70 (regola legacy), l'immagine al 100% quindi risolveva a 70px */
.single-post #secondary .wp-block-latest-posts__featured-image{ width:100% !important; height:100% !important; overflow:hidden !important; }
.blog #secondary .wp-block-latest-posts__featured-image{ width:100% !important; height:100% !important; overflow:hidden !important; }


/* TN fix 2026-07-22: eyebrow 'Ultime uscite' mancante sopra il widget nativo (nel mockup c'era, in produzione il widget non ha titolo) */
.single-post #secondary .tn-side-eyebrow, .blog #secondary .tn-side-eyebrow{ display:block; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color: rgb(230,48,0) !important; margin:0 0 14px; }
.single-post #secondary .tn-side-eyebrow ~ .tn-side-eyebrow, .blog #secondary .tn-side-eyebrow ~ .tn-side-eyebrow{ margin-top:22px; }
.single-post #secondary .tn-locandine-wrap, .blog #secondary .tn-locandine-wrap, .single-post #secondary .tn-ad-wrap, .blog #secondary .tn-ad-wrap{ margin-top:22px; }


/* TN fix 2026-07-22: il parent reale dell'img nelle related-post e' un <a> con height:auto, quindi height:100% sull'img falliva (fallback a aspect-ratio nativo). Fix: absolute+inset invece di static */
.single-post .ast-related-post-featured-section{ position:relative !important; }
.single-post .ast-related-post-featured-section img{ position:absolute !important; inset:0; width:100% !important; height:100% !important; object-fit:cover !important; object-position:50% 30% !important; max-width:none !important; max-height:none !important; }


/* TN fix 2026-07-22 bis: la vera positioned ancestor e' .post-thumb-img-content (Astra core, position:relative, height:0 auto), non la mia .ast-related-post-featured-section: serve height esplicita anche li' */
.single-post .ast-related-post-featured-section .post-thumb-img-content{ height:100% !important; width:100% !important; }
.single-post .ast-related-post-featured-section .post-thumb-img-content a{ display:block !important; height:100% !important; width:100% !important; }


/* TN fix 2026-07-22 ter: rimuove il logo band in chiusura articolo (ridondante con la card 'Pagina band' in sidebar) - due pattern osservati: figure sibling diretto, o figure annidata nell'ultima blockquote */
.single-post .entry-content > figure.wp-block-image:has(+ h2:last-of-type){ display:none !important; }
.single-post .entry-content > blockquote:has(+ h2:last-of-type) figure.wp-block-image{ display:none !important; }

/* TN fix 2026-07-22 ter: uniforma le tonalita' di nero in sidebar - box logo band e card 'Ultime uscite' usavano #0d0d0d invece di #111111 (stesso tono delle altre card sidebar) */
.single-post .tn-band-card-logo{ background: rgb(17,17,17) !important; }
.single-post #secondary .wp-block-latest-posts li, .blog #secondary .wp-block-latest-posts li{ background: rgb(17,17,17) !important; }


/* TN fix 2026-07-23: .tbm-hero e .tbm-caption vengono iniettati come figli diretti di .ast-row, che e' un CSS grid a 2 colonne (le card articolo) - senza grid-column pieno finiscono ognuno in una colonna, affiancati invece che impilati a piena larghezza come nel mockup */
.blog .ast-row > .tbm-hero, .blog .ast-row > .tbm-caption{ grid-column: 1 / -1 !important; width:100% !important; }

/* TN fix 2026-07-23: Daniele vuole comunque visibili nella griglia sotto anche i 3 articoli mostrati nello slide hero */
body.tn-blog-hero-active .ast-article-post:nth-of-type(-n+3){ display: block !important; }


/* TN fix 2026-07-23: paginatore /blog/ ripulito - Astra applicava un fill rosso mattone (--ast-global-color-0) sul numero corrente, diverso dall'accent del sito, e le caselle avevano dimensioni disomogenee (numeri stretti, 'Successivo' larghissimo). Ora tutte le voci hanno stessa altezza/padding, outline sottile invece del fill pieno, tinta accent leggera sullo stato corrente/hover, coerente con lo stile bordo+testo usato altrove nel sito (card, CTA) */
.blog .navigation.pagination .nav-links{ display:flex; gap:8px; justify-content:center; align-items:center; flex-wrap:wrap; margin-top:40px; }
.blog .navigation.pagination .page-numbers{ display:inline-flex; align-items:center; justify-content:center; min-width:40px; height:40px; padding:0 16px; box-sizing:border-box; font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; border:1px solid rgb(34,34,34) !important; background:transparent !important; color:rgb(136,136,136) !important; text-decoration:none !important; transition:border-color .25s, color .25s, background-color .25s; }
.blog .navigation.pagination .page-numbers:hover{ border-color:rgb(230,48,0) !important; color:rgb(240,236,228) !important; background:rgba(230,48,0,0.1) !important; }
.blog .navigation.pagination .page-numbers.current{ border-color:rgb(230,48,0) !important; color:rgb(230,48,0) !important; background:rgba(230,48,0,0.12) !important; }
.blog .navigation.pagination .page-numbers.dots{ border-color:transparent !important; background:transparent !important; color:rgb(85,85,85) !important; min-width:auto; padding:0 4px; }
.blog .navigation.pagination .page-numbers.next, .blog .navigation.pagination .page-numbers.prev{ gap:6px; padding:0 18px; }
.blog .navigation.pagination .page-numbers .ast-right-arrow, .blog .navigation.pagination .page-numbers .ast-left-arrow{ margin-left:4px; }

/* ============================================= FIX CONTRASTO MOBILE - Palette Globale + TEC + Contatti (24/07/2026) ============================================= */

/* Palette Colori Globali Astra - ripristino ai valori documentati (CLAUDE-TRIBUTE-NATION.md sez 4) */
:root {
	    --ast-global-color-0: #e63000; /* era #5e1717 - link/bottoni default */
	    --ast-global-color-1: #ff6b00; /* era #e30000 - hover (accent secondario) */
	    --ast-global-color-2: #f0ece4; /* era #ab0000 - H1-H6/entry-title/widget-title/label/legend */
}

/* TEC - selettore vista, testo pulsante attivo illeggibile su mobile */
.tribe-events {
	    --tec-color-text-view-selector-list-item: #f0ece4;
}

/* Contatti - sottotitolo hero, contrasto insufficiente */
.tn-ch-sub {
	    color: #888888 !important;
}
.single-area-band .tn-band-disclaimer {
    grid-column: 1 / -1 !important;
    margin-top: 40px !important;
    padding-top: 20px !important;
    border-top: 1px solid #222222 !important;
}
.single-area-band .tn-band-disclaimer p {
    font-family: 'Montserrat', sans-serif !important;
    font-size: 11px !important;
    line-height: 1.5 !important;
    color: #888888 !important;
    margin: 0 !important;
}
/* area-band - "Le ultime arrivate" (.abm-hl-grid): repeat(3,1fr) SENZA breakpoint mobile.
 *    A 390px = 3 colonne da 90px, card 90x373px (rapporto 4:1) - schede allungatissime. */
@media (max-width: 600px) {
	#abm-root .abm-hl-grid {
		        grid-template-columns: 1fr !important;
	}
	#abm-root .abm-hl-logo {
		        height: 180px !important;
	}
}
@media (min-width: 601px) and (max-width: 900px) {
	#abm-root .abm-hl-grid {
		        grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* ══════════════════════════════════════════════
   TN — SCHEDA VENUE (single-venue)
   Il lightbox (.tn-lightbox, .tn-lightbox-prev/-next/-close/-counter) è già
   globale (aggiunto per la scheda band, non scoped a .single-area-band) —
   NON duplicato qui, la scheda venue lo riusa così com'è.
   ══════════════════════════════════════════════ */

.single-venue .entry-content {
    display: grid !important;
    grid-template-columns: 1fr 300px !important;
    gap: 60px !important;
    align-items: start !important;
    max-width: 1160px !important;
    margin: 0 auto !important;
    overflow: hidden !important;
}
.single-venue .tn-venue-main { min-width: 0; }

.single-venue .venue-hero {
    grid-column: 1 / -1 !important;
    position: relative !important;
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    height: 420px !important;
    overflow: hidden !important;
    background: #0d0d0d !important;
    margin-bottom: 40px !important;
}
.single-venue .venue-hero-blur {
    position: absolute !important; inset: 0 !important;
    background-size: cover !important;
    background-position: center !important;
    filter: blur(22px) brightness(0.5) !important;
    transform: scale(1.1) !important;
    z-index: 0 !important;
}
.single-venue .venue-hero-photo {
    position: absolute !important; inset: 0 !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    z-index: 1 !important;
}
.single-venue .venue-hero-grad {
    position: absolute !important; inset: 0 !important;
    background: linear-gradient(to bottom, rgba(8,8,8,0.15) 0%, rgba(8,8,8,0.55) 55%, #080808 100%) !important;
    z-index: 2 !important;
}
.single-venue .venue-hero-inner {
    position: relative !important;
    z-index: 3 !important;
    max-width: 1160px !important;
    margin: 0 auto !important;
    height: 100% !important;
    padding: 40px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-end !important;
}
.single-venue .venue-back {
    align-self: flex-start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 7px 15px !important;
    margin-bottom: auto !important;
    background: rgba(0,0,0,0.5) !important;
    border: 1px solid #333 !important;
    border-radius: 40px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #d4d4d4 !important;
    backdrop-filter: blur(4px) !important;
}
.single-venue .venue-back:hover { border-color: #e63000 !important; color: #f0ece4 !important; }
.single-venue .venue-badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.single-venue .venue-badge {
    font-size: 10px; font-weight: 700; letter-spacing: 1.5px; text-transform: uppercase;
    padding: 5px 12px; border-radius: 3px; background: #e63000; color: #fff;
}
.single-venue .venue-badge.ghost {
    background: rgba(0,0,0,0.45); color: #d4d4d4; border: 1px solid #444; backdrop-filter: blur(4px);
}
.single-venue .venue-title {
    font-family: 'Aoboshi One', serif !important;
    font-size: 46px !important;
    line-height: 1.1 !important;
    color: #f0ece4 !important;
    text-shadow: 0 2px 20px rgba(0,0,0,0.6) !important;
    margin: 0 !important;
}
.single-venue .venue-title-city {
    font-size: 15px; font-weight: 600; color: #d4d4d4; margin-top: 6px;
}

.single-venue .entry-title-row { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.single-venue .tn-venue-title {
    font-family: 'Aoboshi One', serif !important; font-size: 32px !important; color: #f0ece4 !important; margin: 0 !important;
}
.single-venue .tn-venue-badges { display: flex; flex-wrap: wrap; gap: 8px; }
.single-venue .tn-venue-badges .tn-venue-badge {
    font-size: 10px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase;
    padding: 4px 10px; border-radius: 3px; background: #e63000; color: #fff;
}
.single-venue .tn-venue-city { font-size: 13px; color: #888888; }

.single-venue .tn-venue-main h2 {
    position: relative !important;
    font-family: 'Aoboshi One', serif !important;
    font-size: 22px !important;
    color: #e63000 !important;
    margin-top: 52px !important;
    padding-top: 32px !important;
    padding-bottom: 14px !important;
    border-top: 1px solid #1e1e1e !important;
}
.single-venue .tn-venue-main h2::after {
    content: '' !important; position: absolute !important; bottom: 0 !important; left: 0 !important;
    width: 32px !important; height: 2px !important;
    background: linear-gradient(90deg, #e63000, #ff6b00) !important; border-radius: 1px !important;
}

.single-venue .tn-featured {
    width: 100% !important; max-height: 560px !important; object-fit: contain !important;
    object-position: center !important; background: #0d0d0d !important; margin-bottom: 28px !important; display: block !important;
}

.single-venue .tn-venue-servizi {
    list-style: none; margin: 12px 0 28px; padding: 0;
    display: flex; flex-direction: column; gap: 10px;
}
.single-venue .tn-venue-servizi li {
    position: relative; padding-left: 20px; font-size: 14px; color: #d4d4d4;
}
.single-venue .tn-venue-servizi li::before {
    content: ''; position: absolute; left: 0; top: 7px; width: 8px; height: 8px; border-radius: 50%;
    background: #e63000;
}

.single-venue .venue-gallery {
    display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 3px !important; margin: 12px 0 28px !important;
}
.single-venue .venue-gallery-item { aspect-ratio: 4/3; overflow: hidden; background: #111; cursor: zoom-in; }
.single-venue .venue-gallery-item img {
    width: 100%; height: 100%; object-fit: cover;
    filter: saturate(0.6) brightness(0.85);
    transition: filter 0.3s, transform 0.3s;
}
.single-venue .venue-gallery-item:hover img { filter: saturate(1) brightness(1); transform: scale(1.04); }
.single-venue .venue-gallery-item.more { position: relative; display: flex; align-items: center; justify-content: center; }
.single-venue .venue-gallery-item.more img { filter: saturate(0.2) brightness(0.3); }
.single-venue .venue-gallery-item.more span {
    position: absolute; font-family: 'Aoboshi One', serif; font-size: 24px; color: #f0ece4;
}
.single-venue .venue-menu-pdf {
    display: inline-flex; align-items: center; gap: 9px; margin: 4px 0 28px;
    padding: 11px 20px; border: 1px solid #333; border-radius: 3px;
    font-size: 13px; font-weight: 600; color: #d4d4d4; transition: border-color 0.2s, color 0.2s;
}
.single-venue .venue-menu-pdf:hover { border-color: #e63000; color: #f0ece4; }

.single-venue .venue-hof {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 16px; margin: 12px 0 28px;
}
.single-venue .venue-hof-item {
    display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center; color: #d4d4d4;
}
.single-venue .venue-hof-item img { width: 72px; height: 72px; object-fit: contain; background: #111; border-radius: 8px; }
.single-venue .venue-hof-fallback {
    width: 72px; height: 72px; border-radius: 8px; display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #e63000, #ff6b00); color: #fff; font-family: 'Aoboshi One', serif; font-size: 28px;
}
.single-venue .venue-hof-name { font-size: 12px; font-weight: 600; }
.single-venue .venue-hof-item:hover .venue-hof-name { color: #e63000; }

.single-venue .tn-venue-sidebar { position: sticky; top: 100px; }
.single-venue .sidebar-widget { margin-bottom: 32px; }
.single-venue .sidebar-title {
    font-family: 'Aoboshi One', serif !important; font-size: 13px !important; font-weight: 400 !important;
    letter-spacing: 2px !important; text-transform: uppercase !important; color: #888888 !important;
    margin-bottom: 16px !important; padding-bottom: 8px !important; border-bottom: 1px solid #222222 !important;
}
.single-venue .sidebar-info { display: flex; flex-direction: column; gap: 8px; }
.single-venue .sidebar-info-row {
    display: flex; justify-content: space-between; gap: 12px; font-size: 13px;
    padding-bottom: 8px; border-bottom: 1px solid #222222;
}
.single-venue .sidebar-info-row:last-child { border-bottom: none; }
.single-venue .sidebar-info-label { color: #888888; white-space: nowrap; }
.single-venue .sidebar-info-value { color: #f0ece4; font-weight: 600; text-align: right; }

.single-venue .sidebar-map {
    width: 100%; height: 170px; border: 1px solid #222222; border-radius: 4px; overflow: hidden;
    margin-bottom: 10px; filter: grayscale(0.3) contrast(1.05);
}
.single-venue .sidebar-map iframe { width: 100%; height: 100%; border: 0; display: block; }
.single-venue .sidebar-directions {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 10px;
    border: 1px solid #333; border-radius: 3px; font-size: 13px; font-weight: 600; color: #d4d4d4;
    transition: border-color 0.2s, color 0.2s;
}
.single-venue .sidebar-directions:hover { border-color: #e63000; color: #f0ece4; }

.single-venue .sidebar-contacts { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.single-venue .sidebar-contact-row { font-size: 13px; color: #d4d4d4; }
.single-venue .sidebar-contact-row a { color: #d4d4d4; }
.single-venue .sidebar-contact-row a:hover { color: #f0ece4; }
.single-venue .sidebar-social { display: flex; flex-wrap: wrap; gap: 8px; }
.single-venue .sidebar-social a {
    width: 32px; height: 32px; border-radius: 50%; border: 1px solid #333333;
    display: flex; align-items: center; justify-content: center; color: #d4d4d4;
    transition: border-color 0.2s, color 0.2s;
}
.single-venue .sidebar-social a:hover { border-color: #e63000; color: #f0ece4; }
.single-venue .sidebar-social svg { width: 14px; height: 14px; fill: currentColor; }

.single-venue .sidebar-booking {
    background: linear-gradient(150deg, rgba(230,48,0,0.14), rgba(255,107,0,0.05));
    border: 1px solid rgba(230,48,0,0.45); border-radius: 5px; padding: 18px;
}
.single-venue .sidebar-booking .sidebar-title { color: #e63000 !important; border-bottom-color: rgba(230,48,0,0.35) !important; }
.single-venue .sidebar-booking-cta {
    display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px;
    background: #e63000; border-radius: 3px; font-size: 14px; font-weight: 700; color: #fff; transition: background 0.2s;
}
.single-venue .sidebar-booking-cta:hover { background: #ff6b00; color: #fff; }
.single-venue .sidebar-booking-alt { font-size: 12px; color: #d4d4d4; text-align: center; margin-top: 10px; }

.single-venue .sidebar-dates { display: flex; flex-direction: column; gap: 1px; }
.single-venue .sidebar-date { display: flex; align-items: center; gap: 12px; padding: 10px 12px; background: #111111; border-left: 2px solid #e63000; }
.single-venue .sidebar-date-num { text-align: center; min-width: 34px; }
.single-venue .sidebar-date-num strong { display: block; font-family: 'Aoboshi One', serif; font-size: 20px; color: #e63000; line-height: 1; font-weight: 400; }
.single-venue .sidebar-date-num span { font-size: 9px; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: #ff6b00; }
.single-venue .sidebar-date-venue { font-size: 13px; font-weight: 700; color: #f0ece4; }

@media (max-width: 900px) {
    .single-venue .entry-content { grid-template-columns: 1fr !important; }
    .single-venue .tn-venue-sidebar { position: static !important; }
    .single-venue .venue-title { font-size: 34px !important; }
    .single-venue .venue-hero { height: 320px !important; }
}

/* Nasconde il titolo/meta nativo Astra su single-venue: duplica hero+titolo già
   iniettati dallo snippet "TN — Scheda Venue" (Snippet #41). */
.single-venue .entry-header { display: none !important; }

/* ══ Rifinitura 27/07/2026 — feedback Daniele: hero foto + micro-interazioni scheda venue ══ */
.single-venue .venue-hero { height: 520px !important; }
.single-venue .venue-hero-blur { display: none !important; }
.single-venue .venue-hero-photo {
    background-size: cover !important;
    animation: venueHeroZoom 22s ease-in-out infinite alternate !important;
}
@keyframes venueHeroZoom { from { transform: scale(1); } to { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { .single-venue .venue-hero-photo { animation: none !important; } }
.single-venue .venue-hero-grad {
    background:
        linear-gradient(to bottom, rgba(8,8,8,0.05) 0%, rgba(8,8,8,0.35) 45%, rgba(8,8,8,0.92) 92%),
        linear-gradient(to right, rgba(8,8,8,0.55) 0%, rgba(8,8,8,0) 45%) !important;
}
.single-venue .venue-hero-inner { animation: venueHeroFadeUp .7s ease-out both !important; }
@keyframes venueHeroFadeUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .single-venue .venue-hero-inner { animation: none !important; } }
.single-venue .venue-badge { transition: transform .2s ease; }
.single-venue .venue-badge:hover { transform: translateY(-1px); }
.single-venue .sidebar-date-city { font-size: 11px; color: #888888; }
.single-venue .sidebar-date { transition: background .2s ease; }
.single-venue .sidebar-date:hover { background: #161616; }
.single-venue .sidebar-booking-cta,
.single-venue .sidebar-directions,
.single-venue .venue-menu-pdf { transition: transform .15s ease, background .2s ease, border-color .2s ease, color .2s ease; }
.single-venue .sidebar-booking-cta:hover { transform: translateY(-1px); }
@media (max-width: 900px) { .single-venue .venue-hero { height: 380px !important; } }

/* ══ Rifinitura 27/07/2026 — feedback Daniele: hero cinematic + calendario /area-venue/ ══ */
#av-root .av-hero { height: min(66vh, 620px) !important; }
#av-root .av-slide-frame { animation: avHeroZoom 24s ease-in-out infinite alternate; }
@keyframes avHeroZoom { from { transform: scale(1); } to { transform: scale(1.08); } }
@media (prefers-reduced-motion: reduce) { #av-root .av-slide-frame { animation: none; } }
#av-root .av-slide-grad {
    background:
        linear-gradient(to bottom, rgba(8,8,8,0.05) 0%, rgba(8,8,8,0.3) 45%, rgba(8,8,8,0.95) 96%),
        linear-gradient(to right, rgba(8,8,8,0.45) 0%, rgba(8,8,8,0) 40%) !important;
}
/* Rifinitura 04/08/2026 — feedback Daniele: rimossi i loghi/locandine band dal calendario
   sidebar (contesto solo testo, meno rumore visivo); micro-interazione riga al passaggio mouse. */
@media (max-width: 900px) { #av-root .av-hero { height: 320px !important; } }

/* Fix reale scoperto 27/07/2026: la tecnica full-bleed 100vw/50vw taglia il testo
   dell'hero per il disallineamento vw-vs-scrollbar (verificato via getBoundingClientRect,
   non solo a occhio). L'hero resta contenuto nella colonna (niente più 100vw/left/margin
   negativi) — zero clipping, verificato dal vivo. */
.single-venue .venue-hero {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: none !important;
    left: auto !important;
    margin-left: 0 !important;
    transform: none !important;
}
#av-root .av-hero {
    width: 100% !important;
    max-width: none !important;
    left: auto !important;
    transform: none !important;
    margin-left: 0 !important;
}

/* Rifinitura 27/07/2026 — più blur su foto hero/slideshow venue, richiesta Daniele */
.single-venue .venue-hero-photo { filter: blur(4px) brightness(0.92) !important; }
#av-root .av-slide-frame { filter: blur(4px) brightness(0.92); }

/* Correzione 27/07/2026: Daniele intendeva l'effetto "letterbox" classico (foto nitida
   centrata,  sfondo sfocato della STESSA foto sui bordi) — non un blur su tutta la foto.
   Ripristino lo sfondo sfocato (era nascosto) e riporto la foto in primo piano a "contain"
   invece di "cover", rimuovendo il blur uniforme del giro precedente. */
.single-venue .venue-hero-blur { display: block !important; }
.single-venue .venue-hero-photo {
    background-size: contain !important;
    filter: none !important;
    animation: none !important;
}
#av-root .av-slide-frame {
    background-size: contain !important;
    filter: none !important;
    animation: none !important;
}
#av-root .av-slide-bg { display: block !important; }

/* =============================================
   AREA BAND — Slideshow hero: fusione bordi con sfondo blurrato (27/07/2026)
   Il riquadro nitido (.abm-slide-frame, overflow:hidden) creava uno stacco
   netto contro lo sfondo blurrato (.abm-slide-bg) dietro di esso. Fascia
   ristretta a ~3% per lato (era ~6%, ultimo ritocco richiesto da Daniele
   27/07/2026: "un altro po' e ci siamo"). Curva a più stop mantenuta.
   ============================================= */
.abm-slide-frame {
    mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.12) 0.75%,
        rgba(0,0,0,0.35) 1.5%,
        rgba(0,0,0,0.65) 2.25%,
        rgba(0,0,0,0.88) 2.6%,
        black 3%,
        black 97%,
        rgba(0,0,0,0.88) 97.4%,
        rgba(0,0,0,0.65) 97.75%,
        rgba(0,0,0,0.35) 98.5%,
        rgba(0,0,0,0.12) 99.25%,
        transparent 100%
    ) !important;
    -webkit-mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.12) 0.75%,
        rgba(0,0,0,0.35) 1.5%,
        rgba(0,0,0,0.65) 2.25%,
        rgba(0,0,0,0.88) 2.6%,
        black 3%,
        black 97%,
        rgba(0,0,0,0.88) 97.4%,
        rgba(0,0,0,0.65) 97.75%,
        rgba(0,0,0,0.35) 98.5%,
        rgba(0,0,0,0.12) 99.25%,
        transparent 100%
    ) !important;
}

/* =============================================
   VENUE — Slideshow/hero: fusione bordi con sfondo blurrato (27/07/2026)
   Stesso problema e stessa soluzione di /area-band/ sopra: il riquadro
   nitido (.venue-hero-photo / .av-slide-frame) creava uno stacco netto
   contro lo sfondo blurrato dietro. Mask gradient sui lati per una
   transizione morbida invece di un bordo tagliato di netto.
   ============================================= */
.single-venue .venue-hero-photo {
    mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.35) 12%,
        black 32%,
        black 68%,
        rgba(0,0,0,0.35) 88%,
        transparent 100%
    ) !important;
    -webkit-mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.35) 12%,
        black 32%,
        black 68%,
        rgba(0,0,0,0.35) 88%,
        transparent 100%
    ) !important;
}
#av-root .av-slide-frame {
    mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.35) 12%,
        black 32%,
        black 68%,
        rgba(0,0,0,0.35) 88%,
        transparent 100%
    );
    -webkit-mask-image: linear-gradient(
        90deg,
        transparent 0%,
        rgba(0,0,0,0.35) 12%,
        black 32%,
        black 68%,
        rgba(0,0,0,0.35) 88%,
        transparent 100%
    );
}
/* Blur di fondo più marcato: 22-30px era troppo debole su un hero largo,
   restava riconoscibile invece di leggersi come sfondo astratto. */
.single-venue .venue-hero-blur { filter: blur(48px) brightness(0.5) !important; }
#av-root .av-slide-bg { filter: blur(55px) brightness(0.5); }

/* Fix: mancava !important, il blur(30px) originale (definito nello <style> in-page,
   dopo il </head> nell'ordine documento) vinceva a parità di specificità. */
#av-root .av-slide-bg { filter: blur(55px) brightness(0.5) !important; }

/* BUG REALE trovato 27/07/2026 (non cache): background-repeat mancava su
   .av-slide-frame, default 'repeat' tassellava la foto invece di lasciare
   trasparente il margine sopra lo sfondo sfocato — per questo si vedeva la
   foto ripetuta ai lati/sopra invece del blur. */
#av-root .av-slide-frame { background-repeat: no-repeat !important; }

/* Rifinitura: foto hero/slideshow venue troppo scure, richiesta Daniele 27/07/2026 */
.single-venue .venue-hero-blur { filter: blur(48px) brightness(0.75) !important; }
#av-root .av-slide-bg { filter: blur(55px) brightness(0.75) !important; }
.single-venue .venue-hero-grad {
    background:
        linear-gradient(to bottom, rgba(8,8,8,0) 0%, rgba(8,8,8,0.2) 45%, rgba(8,8,8,0.8) 92%),
        linear-gradient(to right, rgba(8,8,8,0.35) 0%, rgba(8,8,8,0) 45%) !important;
}
#av-root .av-slide-grad {
    background:
        linear-gradient(to bottom, rgba(8,8,8,0) 0%, rgba(8,8,8,0.2) 45%, rgba(8,8,8,0.8) 96%),
        linear-gradient(to right, rgba(8,8,8,0.3) 0%, rgba(8,8,8,0) 40%) !important;
}

/* TN-IDENTITY-AUTH-CSS-START */

/*
 * TN — Identity: CSS superfici auth (AUTH-33 + polish 03/08/2026)
 * Scope: pagine /accedi/, /recupera-accesso/, /area-riservata/ (classi uniche, non collidono col
 * resto del sito). Palette/font presi identici da mockups/mockup-auth-login-v1.html e
 * mockup-auth-area-riservata-v1.html — non improvvisati.
 *
 * Deployato nel "CSS aggiuntivo" del Customizer (Aspetto → Personalizza → CSS aggiuntivo), lo
 * stesso canale usato per tutto il resto del CSS del sito (vedi css-personalizzato.md). Il tipo
 * CSS di Code Snippets NON risulta in output sul front-end su questa installazione — vedi
 * reference/code-snippets.md. Applicato via wp_update_custom_css_post() (funzione core), tra i
 * marker TN-IDENTITY-AUTH-CSS-START/END per poter essere aggiornato senza toccare il resto del CSS
 * aggiuntivo esistente.
 *
 * Motion: regole di reference/motion-effetti.md (KB) — solo opacity/transform, 200-600ms,
 * easing cubic-bezier(.22,.61,.36,1), prefers-reduced-motion obbligatorio (blocco dedicato in
 * fondo al file, stesso pattern del restyling scheda band).
 */

.tn-wrap,
.tn-hubshell {
	--tn-bg: #080808;
	--tn-card: #111111;
	--tn-border: #222222;
	--tn-accent: #a3140a;
	--tn-accent2: #ff6b00;
	--tn-text: #f0ece4;
	--tn-sub: #d4d4d4;
	--tn-muted: #888888;
	--tn-ease: cubic-bezier(.22, .61, .36, 1);
	/* E6 (11/08/2026): 5 livelli dichiarati, al posto delle 15+ dimensioni sparse (10, 10.5, 11,
	   11.5, 12, 12.5, 13, 13.5, 14, 14.5, 15, 16, 17, 19, 22, 24, 26 misurate). Esclusi di proposito:
	   lettera nell'avatar, icone/chevron/emoji, pillole di stato e badge numerici, il codice grande
	   in .tn-codebox, i campi 16px (soglia anti-zoom iOS, non toccare) — non sono gerarchia di
	   lettura, hanno una logica di dimensionamento propria. */
	--tn-fs-xs: 11px;
	--tn-fs-sm: 12.5px;
	--tn-fs-base: 14px;
	--tn-fs-lg: 17px;
	--tn-fs-xl: 26px;
	font-family: 'Montserrat', sans-serif;
}

@keyframes tn-fade-up {
	from { opacity: 0; transform: translateY(16px); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes tn-bar-grow {
	from { transform: scaleX(0); opacity: 0; }
	to { transform: scaleX(1); opacity: 1; }
}
@keyframes tn-pulse {
	0%, 100% { opacity: 1; transform: scale(1); }
	50% { opacity: .45; transform: scale(1.5); }
}
/* TN-129: alone morbido dietro "Sostienici" (richiesta Daniele 09/09/2026, dopo un primo giro
   col pallino - non convinceva). Solo opacity, stesso "respiro" di tn-flame-breathe qui sopra
   ma su un cerchio sfocato invece che su un gradiente di testo. */
@keyframes tn-donate-glow {
	0%, 100% { opacity: .15; }
	50% { opacity: .45; }
}

/* E9 (11/08/2026): la grana di sfondo qui sotto (stesso pattern dell'hero scheda band) è stata
   tolta dopo una verifica reale, non solo per sospetto: letti i pixel veri della texture SVG (che
   varia da 93 a 244 su 255 - rumore vero, non un errore di rasterizzazione) e fatti passare per lo
   stesso overlay+opacity su base #080808, lo scarto finale è di **1 solo livello su 255**, sotto la
   soglia di percezione umana (~2-3 livelli). Confermato anche a schermo (screenshot). #080808 è lo
   sfondo globale del sito (invariante, non solo dell'hub), quindi la stessa conclusione vale sia
   per .tn-wrap (/accedi/, /registrati/, /recupera-accesso/) sia per .tn-hubshell (/area-riservata/).
   position:relative su .tn-wrap/.tn-hubshell lasciato: non e' certo che servisse solo a questo. */
.tn-wrap,
.tn-hubshell {
	position: relative;
}

/* ── /accedi/ e /recupera-accesso/: card centrata ── */
.tn-wrap {
	display: flex;
	justify-content: center;
	padding: 40px 20px;
}

.tn-authcard {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 420px;
	background: var(--tn-card) !important;
	border: 1px solid var(--tn-border);
	/* B1/E7 (11/08/2026): raggio unico 10px per tutte le superfici (erano 12/10/8 sparsi su 10
	   famiglie diverse, misurate una per una in reference/site-graph adiacente). Le pill (badge,
	   bottoni a capsula) e gli avatar (50%) restano fuori, non sono superfici di contenuto. */
	border-radius: 10px;
	padding: 36px 32px;
	box-shadow: 0 20px 50px rgba(0, 0, 0, .35);
	animation: tn-fade-up 480ms var(--tn-ease) both;
}

.tn-authcard h1 {
	position: relative;
	font-family: 'Aoboshi One', serif !important;
	font-size: var(--tn-fs-xl) !important;
	color: var(--tn-text) !important;
	margin-bottom: 6px !important;
	padding-bottom: 12px;
}
/* ── /registrati/: titolo col colore del fuoco della palette (--tn-accent/--tn-accent2, stesso
   gradiente già usato per la barra sotto qui sotto) con un respiro lento, richiesta di Daniele,
   03/09/2026. Scoped a .tn-flame-title, non a ogni .tn-authcard h1: solo Registrati per ora,
   non /accedi/ o /recupera-accesso/. Il fade-in del respiro lo spegne da solo il blocco
   prefers-reduced-motion in fondo al file (wildcard su .tn-wrap *). ── */
.tn-authcard h1.tn-flame-title {
	background: linear-gradient(90deg, var(--tn-accent), var(--tn-accent2), var(--tn-accent));
	background-size: 200% auto;
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent !important;
	animation: tn-flame-breathe 3.2s ease-in-out infinite;
}
@keyframes tn-flame-breathe {
	0%, 100% { background-position: 0% center; filter: brightness(1); }
	50% { background-position: 100% center; filter: brightness(1.3); }
}
/* Titolo Astra duplicato sopra la card (.entry-header/.entry-title del tema): stesso trattamento
   già dato a /area-riservata/ (A3, 11/08/2026), il nome pagina è già nella card, un H1 Astra
   sopra è ridondante. ID pagina 2216, non un selettore generico (non deve toccare altre pagine). */
.page-id-2216 .entry-header {
	display: none;
}
.tn-authcard h1::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	width: 42px;
	background: linear-gradient(90deg, var(--tn-accent), var(--tn-accent2));
	border-radius: 2px;
	transform-origin: left;
	animation: tn-bar-grow 460ms var(--tn-ease) 140ms both;
}

.tn-authcard .tn-sub {
	color: var(--tn-muted) !important;
	font-size: var(--tn-fs-base) !important;
	line-height: 1.55 !important;
	margin-bottom: 26px !important;
}

.tn-authcard .tn-field-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
}
@media (min-width: 460px) {
	.tn-authcard .tn-field-row {
		grid-template-columns: 1fr 1fr;
		gap: 0 14px;
	}
}

.tn-authcard .tn-field {
	margin-bottom: 18px;
}
.tn-authcard .tn-field-hint {
	display: block;
	font-size: var(--tn-fs-xs);
	color: var(--tn-muted) !important;
	margin-top: 5px;
}
.tn-authcard .tn-field label {
	display: block;
	font-size: var(--tn-fs-sm);
	font-weight: 600;
	color: var(--tn-sub) !important;
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.4px;
}
.tn-authcard .tn-field-checkbox label {
	text-transform: none;
	font-weight: 400;
	display: flex;
	align-items: center;
	gap: 6px;
}
.tn-authcard .tn-field input[type="text"],
.tn-authcard .tn-field input[type="password"],
.tn-authcard .tn-field input[type="email"] {
	width: 100%;
	background: #0d0d0d !important;
	border: 1px solid var(--tn-border) !important;
	border-radius: 8px;
	padding: 11px 13px;
	color: var(--tn-text) !important;
	font-family: inherit;
	font-size: var(--tn-fs-base);
	transition: border-color 180ms var(--tn-ease), box-shadow 180ms var(--tn-ease);
}
.tn-authcard .tn-field input:focus {
	outline: none;
	border-color: var(--tn-accent) !important;
	box-shadow: 0 0 0 3px rgba(163, 20, 10, .18);
	/* Micro-interazione minimale, richiesta di Daniele 03/09/2026: un lievissimo sollevamento al
	   focus, oltre al bordo/ombra già presenti. */
	transform: translateY(-1px);
}
.tn-authcard .tn-field input::placeholder {
	color: #555;
}

.tn-authcard .tn-btn {
	width: 100%;
	background: var(--tn-accent) !important;
	color: #fff !important;
	border: none;
	border-radius: 8px;
	padding: 13px;
	font-family: inherit;
	font-weight: 700;
	font-size: var(--tn-fs-base);
	cursor: pointer;
	margin-top: 6px;
	transition: background 180ms var(--tn-ease), transform 180ms var(--tn-ease), box-shadow 180ms var(--tn-ease);
}
/* E8 (11/08/2026): @media(hover:hover) su ogni hover con transform, cosi' su touch il tocco
   non lascia l'elemento "appiccicato" nello stato :hover finche' non se ne tocca un altro. */
@media (hover: hover) {
	.tn-authcard .tn-btn:hover {
		background: var(--tn-accent2) !important;
		color: #fff !important;
		transform: translateY(-2px);
		box-shadow: 0 10px 24px rgba(163, 20, 10, .35);
	}
}
.tn-authcard .tn-btn:active {
	transform: translateY(0);
	box-shadow: 0 4px 12px rgba(163, 20, 10, .3);
}

/* [TN-90] 07/09/2026: varianti di colore per i bottoni social (Google/Facebook), qui e non nei
   <style> locali di /registrati//accedi/ perché servono a entrambe le pagine — riusano .tn-btn
   sopra per forma/padding/radius, solo background/testo cambiano per provider. */
.tn-authcard .tn-btn-social-google {
	background: #fff !important;
	color: #1f1f1f !important;
}
@media (hover: hover) {
	.tn-authcard .tn-btn-social-google:hover {
		background: #f2f2f2 !important;
		color: #1f1f1f !important;
	}
}
.tn-authcard .tn-btn-social-facebook {
	background: #1877f2 !important;
}
@media (hover: hover) {
	.tn-authcard .tn-btn-social-facebook:hover {
		background: #0e63d1 !important;
	}
}

/* stessa base dei bottoni pieni, ma per l'hub (dove .tn-btn non deve essere width:100% come nel
   box di login/registrazione) — senza questa regola i bottoni fuori da .tn-authcard (es. "Invia
   segnalazione", "Rivendica la tua band") cadevano sui default del tema invece del rosso brand,
   feedback di Daniele 03/08/2026 */
.tn-hubshell .tn-btn:not(.tn-btn-ghost) {
	background: var(--tn-accent) !important;
	color: #fff !important;
	border: none;
	border-radius: 8px;
	padding: 13px 22px;
	font-family: inherit;
	font-weight: 700;
	font-size: var(--tn-fs-base);
	cursor: pointer;
	transition: background 180ms var(--tn-ease), transform 180ms var(--tn-ease), box-shadow 180ms var(--tn-ease);
}
@media (hover: hover) {
	.tn-hubshell .tn-btn:not(.tn-btn-ghost):hover {
		background: var(--tn-accent2) !important;
		color: #fff !important;
		transform: translateY(-2px);
		box-shadow: 0 10px 24px rgba(163, 20, 10, .35);
	}
}
.tn-hubshell .tn-btn:not(.tn-btn-ghost):active {
	transform: translateY(0);
	box-shadow: 0 4px 12px rgba(163, 20, 10, .3);
}

.tn-authcard .tn-links {
	margin-top: 18px;
	font-size: var(--tn-fs-sm);
	text-align: center;
}
.tn-authcard .tn-links a {
	position: relative;
	display: inline-block;
	color: var(--tn-accent2) !important;
	text-decoration: none;
}
.tn-authcard .tn-links a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -3px;
	height: 1px;
	background: var(--tn-accent2);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 220ms var(--tn-ease);
}
.tn-authcard .tn-links a:hover::after {
	transform: scaleX(1);
}
.tn-authcard .tn-links-sep {
	color: var(--tn-muted);
	margin: 0 8px;
}

.tn-authcard .tn-alert {
	background: #2a1414;
	border: 1px solid #5e1717;
	color: #f3b3b3 !important;
	border-radius: 10px;
	padding: 11px 14px;
	font-size: var(--tn-fs-sm);
	line-height: 1.5;
	margin-bottom: 18px;
	animation: tn-fade-up 320ms var(--tn-ease) both;
}

.tn-authcard .tn-welcomenote {
	background: #0d2418;
	border: 1px solid #1d9e75;
	color: #9fe1cb !important;
	border-radius: 10px;
	padding: 11px 14px;
	font-size: var(--tn-fs-sm);
	line-height: 1.5;
	margin-bottom: 18px;
	animation: tn-fade-up 320ms var(--tn-ease) both;
}

.tn-authcard .tn-infonote {
	background: #161616;
	border: 1px solid var(--tn-border);
	color: var(--tn-sub) !important;
	border-radius: 10px;
	padding: 14px;
	font-size: var(--tn-fs-sm);
	line-height: 1.5;
	margin-bottom: 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	animation: tn-fade-up 320ms var(--tn-ease) both;
}

/* ── /area-riservata/: hub a sidebar ── */
.tn-hubshell {
	display: flex;
	align-items: flex-start;
	max-width: 1180px;
	margin: 0 auto;
	background: var(--tn-bg);
}
.tn-hub-sidebar {
	position: relative;
	z-index: 1;
	width: 250px;
	flex-shrink: 0;
	border-right: 1px solid var(--tn-border);
	padding: 28px 0;
	animation: tn-fade-up 420ms var(--tn-ease) both;
}
.tn-hub-content {
	position: relative;
	z-index: 1;
	flex: 1;
	min-width: 0;
	padding: 28px 40px 60px;
	animation: tn-fade-up 480ms var(--tn-ease) 90ms both;
}
/* switch scheda istantaneo: ogni volta che una vista passa da [hidden] a visibile rientra con la
   stessa dissolvenza usata altrove, invece di comparire di scatto */
.tn-view:not([hidden]) {
	animation: tn-fade-up 260ms var(--tn-ease) both;
}
.tn-hub-content .tn-title {
	position: relative;
	font-family: 'Aoboshi One', serif !important;
	font-size: var(--tn-fs-xl) !important;
	/* A3 (11/08/2026): .tn-title passa da <div> a <h1>/<h2> (la pagina non aveva nessun h1 dopo
	   la disattivazione del titolo Astra, e la gerarchia era una fila di h3 senza niente sopra).
	   Il valore era ereditato (1.65 di Astra, cioe' 42,9px su un corpo da 26): su un titolo
	   display e' troppo arioso. Scelta di Daniele: stringere. Dichiarato esplicito e non lasciato
	   ad Astra, che sulle intestazioni usa 1.4 per h1 e 1.3 per h2: senza questa riga lo stesso
	   .tn-title renderebbe diverso a seconda del tag. */
	line-height: 1.3 !important;
	color: var(--tn-text) !important;
	margin-bottom: 4px !important;
	padding-bottom: 12px;
}
.tn-hub-content .tn-title::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	width: 48px;
	background: linear-gradient(90deg, var(--tn-accent), var(--tn-accent2));
	border-radius: 2px;
	transform-origin: left;
	animation: tn-bar-grow 460ms var(--tn-ease) 200ms both;
}
.tn-hub-content .tn-subtitle {
	color: var(--tn-muted) !important;
	font-size: var(--tn-fs-base) !important;
	line-height: 1.55 !important;
	margin-bottom: 24px !important;
}

.tn-sidebar-group {
	margin-bottom: 24px;
	padding: 0 22px;
}
.tn-sidebar-item {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 9px 10px;
	border-radius: 10px;
	background: var(--tn-card);
	border: 1px solid var(--tn-border);
	color: var(--tn-sub) !important;
	font-size: var(--tn-fs-sm);
	text-decoration: none !important;
	cursor: pointer;
	transition: background 160ms var(--tn-ease), color 160ms var(--tn-ease), transform 160ms var(--tn-ease), box-shadow 160ms var(--tn-ease), border-color 160ms var(--tn-ease);
}
.tn-sidebar-item + .tn-sidebar-item {
	margin-top: 6px;
}
/* il tema Astra sottolinea i link con selettori più specifici dei nostri: mai fidarsi della sola
   regola sopra, va ribadito qui per tutta la sidebar (stesso gotcha già noto per .tn-sidebar-claim) */
.tn-hub-sidebar a {
	text-decoration: none !important;
}
.tn-sidebar-item.active {
	background: var(--tn-accent);
	border-color: var(--tn-accent);
	color: #fff !important;
	font-weight: 700;
	box-shadow: 0 4px 14px rgba(163, 20, 10, .35);
}
.tn-sidebar-item .tn-sidebar-name {
	flex: 1;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.tn-sidebar-section-label {
	font-size: var(--tn-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.6px;
	color: var(--tn-muted) !important;
	padding: 0 10px;
	margin-bottom: 6px;
}
.tn-sidebar-item .tn-dot {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	flex-shrink: 0;
	background: var(--tn-muted);
}
.tn-sidebar-item .tn-dot.online {
	background: #5dcaa5;
}
.tn-sidebar-item .tn-dot.prep {
	background: #f0c98a;
}
.tn-sidebar-item.active .tn-dot {
	background: #fff;
}
.tn-sidebar-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--tn-accent2);
	color: #1a0f00 !important;
	font-size: 10.5px;
	font-weight: 700;
	flex-shrink: 0;
	animation: tn-fade-up 320ms var(--tn-ease) both;
}
.tn-sidebar-item.active .tn-sidebar-badge {
	background: #fff;
	color: var(--tn-accent) !important;
}
.tn-sidebar-item.tn-sidebar-disabled {
	opacity: 0.5;
	cursor: default;
}
/* z-index:0 (non solo position:relative) crea un contesto di stacking proprio: il glow
   (z-index:-1) resta dietro QUESTO pill, non trascina con se' l'ordine degli altri elementi
   sidebar. */
.tn-sidebar-item.tn-sidebar-donate {
	position: relative;
	z-index: 0;
}
.tn-sidebar-item.tn-sidebar-donate::after {
	content: '';
	position: absolute;
	inset: -8px;
	z-index: -1;
	border-radius: 16px;
	background: radial-gradient(circle, var(--tn-accent2) 0%, transparent 70%);
	filter: blur(8px);
	opacity: .15;
	pointer-events: none;
	animation: tn-donate-glow 6s var(--tn-ease) infinite;
}
@media (hover: hover) {
	.tn-sidebar-item:not(.tn-sidebar-disabled):not(.active):hover {
		background: #1e1e1e;
		border-color: #333;
		transform: translateX(3px);
	}
}
.tn-sidebar-note {
	display: block;
	padding: 0 10px;
	font-size: var(--tn-fs-xs);
	color: var(--tn-muted) !important;
}
.tn-sidebar-divider {
	border-top: 1px solid var(--tn-border);
	margin: 4px 22px 20px;
}
/* Niente più bordo (tratteggiato o pieno): era la fonte del "quadrato" segnalato più volte da
   Daniele (03/08/2026) e non si è mai capito con certezza da dove venisse esattamente — invece di
   continuare a inseguirlo, il design cambia approccio: sfondo pieno come .tn-sidebar-item, che
   non ha mai avuto questo problema. outline azzerato esplicitamente per lo stesso motivo. */
.tn-sidebar-claim {
	display: flex;
	align-items: center;
	gap: 10px;
	width: calc(100% - 20px);
	margin: 0 10px 4px;
	padding: 10px 12px;
	border: none;
	outline: none !important;
	border-radius: 10px;
	background: var(--tn-card);
	color: var(--tn-accent2) !important;
	font-family: inherit;
	font-size: var(--tn-fs-sm);
	font-weight: 700;
	text-align: left;
	cursor: not-allowed;
	opacity: 0.6;
	transition: background 200ms var(--tn-ease), transform 200ms var(--tn-ease);
}
.tn-claim-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--tn-border);
	color: var(--tn-muted);
	font-size: 13px;
	font-weight: 700;
	flex-shrink: 0;
	transition: transform 220ms var(--tn-ease), background 220ms var(--tn-ease), color 220ms var(--tn-ease);
}
.tn-claim-text {
	flex: 1;
}
/* neutralizza l'hover rosso pieno del tema Astra sui bottoni: sono disabled, "(in arrivo)" */
.tn-sidebar-claim:hover,
.tn-sidebar-claim:focus,
.tn-sidebar-claim:active,
.tn-sidebar-claim:disabled {
	background: var(--tn-card) !important;
	color: var(--tn-accent2) !important;
	outline: none !important;
	box-shadow: none !important;
	transform: none !important;
	cursor: not-allowed !important;
}
/* variante attiva (link <a>, non disabled): rivendicazione band ora funzionante — più invitante,
   con l'icona che "si accende" e il bottone che si solleva leggermente, stesso linguaggio di
   .tn-btn:hover altrove nel modulo */
a.tn-sidebar-claim,
a.tn-sidebar-claim .tn-claim-text {
	text-decoration: none !important;
	cursor: pointer;
	opacity: 1;
}
/* icona discreta di default (stesso grigio neutro della variante disabled): il colore arriva solo
   all'hover, non un pallino acceso fisso — feedback di Daniele, 03/08/2026. Stesso linguaggio
   discreto di .tn-sidebar-item (sfondo leggermente più chiaro all'hover, nessun bordo/outline) —
   resta invitante solo tramite l'icona che si accende e il leggero scorrimento. */
@media (hover: hover) {
	a.tn-sidebar-claim:hover {
		background: #1e1e1e !important;
		color: var(--tn-text) !important;
		outline: none !important;
		cursor: pointer !important;
		transform: translateX(3px);
	}
	a.tn-sidebar-claim:hover .tn-claim-icon {
		transform: scale(1.15);
		background: var(--tn-accent);
		color: #fff;
	}
}

.tn-emptyhub {
	position: relative;
	z-index: 1;
	background: var(--tn-card) !important;
	border: 1px solid var(--tn-border);
	border-radius: 10px;
	padding: 30px 32px;
	text-align: center;
	box-shadow: 0 16px 40px rgba(0, 0, 0, .3);
	animation: tn-fade-up 480ms var(--tn-ease) 140ms both;
}
.tn-emptyhub h2 {
	font-family: 'Aoboshi One', serif !important;
	color: var(--tn-text) !important;
	font-size: var(--tn-fs-lg) !important;
	margin-bottom: 8px !important;
}
.tn-emptyhub p {
	color: var(--tn-muted) !important;
	font-size: var(--tn-fs-base) !important;
	line-height: 1.6 !important;
	max-width: 460px;
	margin: 0 auto;
}
.tn-emptyhub .tn-btn {
	margin-top: 16px;
}

/* E5 (12/08/2026): stati vuoti con un segno grafico invece di solo testo nudo. Icona diversa per
   ognuno dei 4 punti del piano (Richieste/Preferiti dentro .tn-emptyhub qui sopra, Messaggi e
   "Nessuna data" nella versione leggera .tn-emptystate-inline qui sotto, annidati in contenitori
   piu' piccoli). Stile SVG coerente con quello gia' in produzione nella sidebar Messaggi (Snippet
   #60): viewBox 24x24, stroke=currentColor, stroke-width 2, angoli arrotondati, nessun fill. */
.tn-emptyhub-icon {
	display: block;
	margin: 0 auto 14px;
	color: var(--tn-accent);
	opacity: .55;
}
.tn-emptyhub-icon svg {
	display: block;
	width: 42px;
	height: 42px;
	margin: 0 auto;
}
.tn-emptystate-inline {
	display: flex;
	align-items: center;
	gap: 10px;
}
.tn-emptystate-inline-icon {
	flex: none;
	display: flex;
	color: var(--tn-muted);
	opacity: .6;
}
.tn-emptystate-inline-icon svg {
	display: block;
	width: 22px;
	height: 22px;
}
.tn-emptystate-inline p {
	margin: 0;
}

.tn-section-title {
	font-family: 'Aoboshi One', serif;
	color: var(--tn-text) !important;
	font-size: var(--tn-fs-lg);
	margin-bottom: 10px;
	padding-top: 8px;
}
.tn-blocks {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.tn-blocks + .tn-blocks {
	margin-top: 28px;
}
.tn-block {
	position: relative;
	z-index: 1;
	background: var(--tn-card) !important;
	border: 1px solid var(--tn-border);
	border-radius: 10px;
	padding: 22px 24px;
	transition: transform 200ms var(--tn-ease), box-shadow 200ms var(--tn-ease), border-color 200ms var(--tn-ease);
	animation: tn-fade-up 420ms var(--tn-ease) both;
}
.tn-blocks .tn-block:nth-child(1) { animation-delay: 60ms; }
.tn-blocks .tn-block:nth-child(2) { animation-delay: 120ms; }
.tn-blocks .tn-block:nth-child(3) { animation-delay: 180ms; }
.tn-blocks .tn-block:nth-child(4) { animation-delay: 240ms; }
.tn-blocks .tn-block:nth-child(n+5) { animation-delay: 300ms; }
@media (hover: hover) {
	.tn-block:hover {
		transform: translateY(-3px);
		box-shadow: 0 14px 32px rgba(0, 0, 0, .4);
		border-color: #333;
	}
}
.tn-block-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
	flex-wrap: wrap;
	gap: 10px;
}
.tn-block-head h3 {
	font-family: 'Aoboshi One', serif !important;
	font-size: var(--tn-fs-lg) !important;
	color: var(--tn-text) !important;
}
.tn-block-tag {
	font-size: var(--tn-fs-xs);
	color: var(--tn-muted) !important;
	font-weight: 400;
	text-transform: uppercase;
}
.tn-btn.tn-btn-ghost {
	display: inline-block;
	background: transparent !important;
	border: 1px solid rgba(255,255,255,.22);
	color: var(--tn-sub) !important;
	border-radius: 8px;
	padding: 8px 16px;
	font-family: inherit;
	font-weight: 700;
	font-size: var(--tn-fs-sm);
	text-decoration: none;
	transition: border-color 180ms var(--tn-ease), color 180ms var(--tn-ease), transform 180ms var(--tn-ease);
}
@media (hover: hover) {
	.tn-btn.tn-btn-ghost:hover {
		border-color: var(--tn-accent2);
		color: var(--tn-text) !important;
		transform: translateY(-1px);
	}
}
.tn-status-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 11.5px;
	padding: 3px 10px;
	border-radius: 20px;
	font-weight: 700;
}
.tn-status-pill.online {
	background: #1d9e7530;
	color: #5dcaa5 !important;
}
.tn-status-pill.prep {
	background: #5a3d0c30;
	color: #f0c98a !important;
}
.tn-status-pill.rejected {
	background: #2a141480;
	color: #f3b3b3 !important;
}
.tn-status-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	flex-shrink: 0;
}
.tn-status-pill.online .tn-status-dot {
	animation: tn-pulse 1.8s var(--tn-ease) infinite;
}

/* E10 (12/08/2026): tessere numeriche in Panoramica - stesso linguaggio delle KPI card del
   Monitor. Numero grande in Aoboshi One (il font dei titoli), etichetta piccola sotto. Cliccabili
   come le KPI del Monitor: portano dove il numero si puo' agire. */
.tn-kpi-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 12px;
	margin-bottom: 18px;
}
.tn-kpi-tile {
	display: block;
	padding: 16px 18px;
	border-radius: 10px;
	background: var(--tn-card) !important;
	border: 1px solid var(--tn-border);
	text-align: center;
	transition: border-color 180ms var(--tn-ease), transform 180ms var(--tn-ease);
}
@media (hover: hover) {
	.tn-kpi-tile:hover {
		border-color: var(--tn-accent);
		transform: translateY(-2px);
	}
}
.tn-kpi-value {
	display: block;
	font-family: 'Aoboshi One', serif;
	font-size: var(--tn-fs-xl);
	color: var(--tn-accent) !important;
	line-height: 1.1;
	margin-bottom: 4px;
}
.tn-kpi-label {
	display: block;
	font-size: var(--tn-fs-xs);
	color: var(--tn-muted) !important;
	letter-spacing: .02em;
}

/* E11 (12/08/2026): completezza accanto al nome in sidebar, solo se sotto il 100%. */
.tn-sidebar-pct {
	margin-left: auto;
	flex: 0 0 auto;
	font-size: var(--tn-fs-xs);
	font-weight: 700;
	color: var(--tn-accent2) !important;
}

/* E1 (12/08/2026): hero della band nella sua vista - stesso pattern gia' collaudato sulla scheda
   pubblica (reference/motion-effetti.md): sfondo cover+blur(20px) sotto, foto in contain sopra
   (mai tagliata), gradiente per la leggibilita' del testo, grana solo qui dentro (mai su
   body/html - vincolo del progetto). Gli z-index vogliono !important: senza, in questo contesto
   non si applicano e lo sfondo sfocato finisce sopra la foto (gotcha gia' visto e documentato). */
.tn-band-hero {
	position: relative;
	min-height: 200px;
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 20px;
	isolation: isolate;
	background: linear-gradient(160deg, #1a1a1a, #080808);
}
.tn-band-hero-bg,
.tn-band-hero-photo,
.tn-band-hero-grain,
.tn-band-hero-gradient {
	position: absolute;
	inset: 0;
}
.tn-band-hero-bg {
	background-size: cover;
	background-position: center;
	filter: blur(20px);
	transform: scale(1.15);
	z-index: 0 !important;
}
.tn-band-hero-photo {
	background-size: contain;
	background-position: center;
	background-repeat: no-repeat;
	z-index: 1 !important;
}
.tn-band-hero-grain {
	z-index: 2 !important;
	opacity: .12;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg'><filter id='tnherograin'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23tnherograin)'/></svg>");
}
.tn-band-hero-gradient {
	z-index: 3 !important;
	background: linear-gradient(to top, #080808 0%, rgba(8, 8, 8, .6) 45%, transparent 100%);
}
.tn-band-hero-inner {
	position: relative;
	z-index: 4 !important;
	min-height: 200px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	gap: 8px;
	padding: 18px 22px;
}
.tn-band-hero-logo {
	width: 44px;
	height: 44px;
	object-fit: contain;
	border-radius: 8px;
	background: rgba(8, 8, 8, .55);
	padding: 4px;
	margin-bottom: 2px;
}
.tn-band-hero-title {
	margin: 0 !important;
	text-shadow: 0 2px 12px rgba(0, 0, 0, .8);
}
.tn-band-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 4px;
}
.tn-band-hero-progress {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 4px;
	background: rgba(255, 255, 255, .12);
	z-index: 5 !important;
}
.tn-band-hero-progress-fill {
	height: 100%;
	width: 100%;
	background: var(--tn-accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .6s var(--tn-ease);
}
@media (max-width: 600px) {
	.tn-band-hero,
	.tn-band-hero-inner {
		min-height: 170px;
	}
}

/* mobile: nav primaria (Panoramica/Richieste/Rivendicazioni) a 3 colonne in cima, il resto torna alla pila verticale naturale gia' usata su desktop - elimina lo scroll orizzontale nascosto che tagliava mail/card fuori schermo */
@media (max-width: 760px) {
	.tn-hubshell {
		flex-direction: column;
		/* A1 (11/08/2026): la regola desktop e' align-items:flex-start e qui non veniva mai
		   resettata. In colonna, flex-start dimensiona i figli sull'asse trasversale a max-content
		   invece di farli riempire: .tn-hub-content diventava 383px in un viewport da 375, cioe'
		   traboccamento orizzontale con le card tagliate a destra. Misurato prima/dopo sulla vista
		   band: scrollWidth 404 -> 375, contenuto 383 -> 335. */
		align-items: stretch;
	}
	.tn-hub-sidebar {
		width: 100%;
		border-right: none;
		border-bottom: 1px solid var(--tn-border);
		padding: 14px 16px 18px;
	}
	.tn-sidebar-group {
		padding: 0;
		margin-bottom: 18px;
	}
	/* A2 (11/08/2026): era .tn-sidebar-group:first-of-type e non agganciava piu' niente da quando
	   la sidebar ha in testa .tn-sidebar-header (avatar, 04/08): :first-of-type guarda il tipo di
	   tag, non la classe, quindi il primo div e' l'header e nessun gruppo era mai "first". Ora
	   sono classi proprie, stampate dal markup: nessun selettore posizionale su una sidebar che
	   contiene anche blocchi di stile e di script inline. Dichiarate DOPO la regola generica, cosi'
	   l'ordine di cascata e' esplicito e non dipende da chi viene prima.

	   Due colonne, non tre: il guscio Astra si prende 40px, quindi la sidebar e' larga 335 e non
	   375, e a tre colonne le celle scendono a 97px. Misurato: "Rivendicazioni" ne chiede 91 piu'
	   padding e bordo, cioe' veniva troncato con i puntini a qualunque corpo sopra gli 11px. A due
	   colonne le celle sono 149px e il testo piu' lungo ("Segnala un problema") ci sta con margine.
	   minmax(0,1fr) e non 1fr: con 1fr una colonna il cui contenuto non va a capo (.tn-sidebar-name
	   e' white-space:nowrap) si allarga oltre la sua parte e le colonne escono disuguali (misurato
	   168 contro 138). margin-top azzerato perche' .tn-sidebar-item + .tn-sidebar-item lo mette a
	   6px: in griglia diventava una riga alta 48 e l'altra 42. */
	.tn-sidebar-group-primary,
	.tn-sidebar-group-secondary {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 6px;
		padding: 0;
		margin-bottom: 18px;
	}
	.tn-sidebar-group-primary .tn-sidebar-item,
	.tn-sidebar-group-secondary .tn-sidebar-item {
		justify-content: center;
		text-align: center;
		padding: 12px 4px;
		font-size: var(--tn-fs-sm);
		margin-top: 0;
	}
	.tn-sidebar-group-primary .tn-sidebar-name,
	.tn-sidebar-group-secondary .tn-sidebar-name {
		flex: 0 1 auto;
	}
	/* la voce dispari (Rivendicazioni, presente solo se l'utente non ha spento le preferenze band
	   e locale) prende la riga intera invece di lasciare una cella vuota accanto a se'. Classe dal
	   markup, non :nth-child: stessa lezione di sopra. */
	.tn-sidebar-item-wide {
		grid-column: 1 / -1;
	}
	.tn-sidebar-divider {
		margin: 4px 0 16px;
	}
	.tn-hub-content {
		padding: 24px 20px 40px;
	}
}

/* ── focus-visible: navigazione da tastiera su tutti gli interattivi dell'area riservata ── */
.tn-wrap a:focus-visible,
.tn-wrap button:focus-visible,
.tn-wrap input:focus-visible,
.tn-hubshell a:focus-visible,
.tn-hubshell button:focus-visible,
.tn-hubshell input:focus-visible,
.tn-hubshell summary:focus-visible {
	outline: 2px solid var(--tn-accent2);
	outline-offset: 2px;
	border-radius: 4px;
}
/* B9 (11/08/2026): il focus si sposta sul titolo della vista al cambio scheda (tabindex="-1" via
   JS). Nessun outline sul .focus() programmatico (:focus da solo), solo su navigazione da
   tastiera vera (:focus-visible) — stesso principio della regola sopra. */
.tn-hubshell .tn-title:focus {
	outline: none;
}
.tn-hubshell .tn-title:focus-visible {
	outline: 2px solid var(--tn-accent2);
	outline-offset: 4px;
}
/* i pulsanti di navigazione sidebar hanno già un loro stato attivo/hover ben visibile: l'outline
   generico sopra vi restava "acceso" dopo un click (percepito come "un quadrato rosso brutto" da
   Daniele, 03/08/2026, anche dopo aver ammorbidito l'hover — la causa reale era questa, non
   l'hover). Tolto qui, specificità pari alla regola sopra ma dichiarata dopo: vince lei. */
.tn-hub-sidebar a:focus-visible {
	outline: none;
}

/* ── leggibilità: paragrafi non troppo larghi, interlinea più respirata ── */
.tn-hub-content p,
.tn-block p,
.tn-emptyhub p {
	max-width: 68ch;
	line-height: 1.65;
}

/* ── S1: sidebar "Come funziona" — accordion nativo <details>/<summary>, zero JS ── */
.tn-sidebar-guide {
	margin: 0 10px 4px;
}
.tn-sidebar-guide summary {
	display: flex;
	align-items: center;
	gap: 9px;
	list-style: none;
	cursor: pointer;
	padding: 9px 10px;
	border-radius: 8px;
	color: var(--tn-sub) !important;
	font-size: var(--tn-fs-sm);
	font-weight: 600;
	transition: background 160ms var(--tn-ease), color 160ms var(--tn-ease);
}
.tn-sidebar-guide summary::-webkit-details-marker {
	display: none;
}
.tn-sidebar-guide summary:hover {
	background: #1a1a1a;
	color: var(--tn-text) !important;
}
.tn-guide-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--tn-border);
	color: var(--tn-muted);
	font-size: 11px;
	font-weight: 700;
	flex-shrink: 0;
}
.tn-guide-chevron {
	margin-left: auto;
	color: var(--tn-muted);
	font-size: 10px;
	transition: transform 200ms var(--tn-ease);
}
.tn-sidebar-guide[open] summary .tn-guide-chevron {
	transform: rotate(180deg);
}
.tn-sidebar-guide-body {
	padding: 4px 10px 14px;
	animation: tn-fade-up 320ms var(--tn-ease) both;
}
.tn-guide-kicker {
	font-size: var(--tn-fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--tn-muted) !important;
	margin: 12px 0 6px;
}
.tn-guide-kicker:first-child {
	margin-top: 2px;
}
.tn-guide-list,
.tn-guide-steps {
	margin: 0;
	padding-left: 18px;
}
.tn-guide-list li,
.tn-guide-steps li {
	font-size: var(--tn-fs-sm);
	color: var(--tn-sub) !important;
	line-height: 1.55;
	margin-bottom: 5px;
	opacity: 0;
	animation: tn-fade-up 260ms var(--tn-ease) both;
}
.tn-sidebar-guide[open] .tn-guide-list li:nth-child(1),
.tn-sidebar-guide[open] .tn-guide-steps li:nth-child(1) { animation-delay: 40ms; }
.tn-sidebar-guide[open] .tn-guide-list li:nth-child(2),
.tn-sidebar-guide[open] .tn-guide-steps li:nth-child(2) { animation-delay: 80ms; }
.tn-sidebar-guide[open] .tn-guide-list li:nth-child(3),
.tn-sidebar-guide[open] .tn-guide-steps li:nth-child(3) { animation-delay: 120ms; }
.tn-sidebar-guide[open] .tn-guide-list li:nth-child(4),
.tn-sidebar-guide[open] .tn-guide-steps li:nth-child(4) { animation-delay: 160ms; }
.tn-guide-note {
	font-size: var(--tn-fs-xs);
	color: var(--tn-muted) !important;
	font-style: italic;
	margin-top: 10px;
}

/* ── S2: timeline di avanzamento rivendicazione (pattern già bozzato in mockup-auth-area-riservata-v1) ── */
.tn-progress-timeline {
	display: flex;
	gap: 0;
	margin: 4px 0 20px;
	padding-top: 4px;
}
.tn-progress-step {
	flex: 1;
	padding: 0 14px;
	position: relative;
	font-size: var(--tn-fs-sm);
	color: var(--tn-muted);
}
.tn-progress-step:first-child {
	padding-left: 0;
}
.tn-progress-step:last-child {
	padding-right: 0;
}
.tn-progress-step + .tn-progress-step {
	border-left: 1px solid var(--tn-border);
}
.tn-progress-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--tn-border);
	color: var(--tn-muted);
	font-weight: 700;
	font-size: 11.5px;
	margin-bottom: 8px;
	transition: background 200ms var(--tn-ease), color 200ms var(--tn-ease);
}
.tn-progress-step.done .tn-progress-num {
	background: #1d9e75;
	color: #04342c;
}
.tn-progress-step.current .tn-progress-num {
	background: var(--tn-accent);
	color: #fff;
	box-shadow: 0 0 0 4px rgba(163, 20, 10, .18);
}
.tn-progress-label {
	font-weight: 700;
	color: var(--tn-text) !important;
	display: block;
	margin-bottom: 2px;
}
.tn-progress-step.done .tn-progress-label {
	color: #5dcaa5 !important;
}
/* A5-bis (11/08/2026): i quattro passi in fila stanno in 335px solo comprimendo le etichette
   (misurato: colonne larghe 58, 86, 93 e 101px, con "Trova la tua pagina" spezzata su tre righe, e
   l'ultimo passo che sfora di 2px). A 2x2 ogni etichetta sta su una riga sola e le colonne sono
   uguali, al prezzo di 21px di altezza (98 -> 119). La colonna singola ne costava 239, troppi su una
   schermata dove si litiga gia' per lo spazio verticale. Il separatore va tolto: in griglia
   comparirebbe anche a inizio riga, dove non separa niente.
   ⚠️ Questo media query sta QUI e non insieme agli altri a inizio file: un media query non aggiunge
   specificita', e le regole base della timeline sono dichiarate sopra. Messo la' in mezzo agli altri
   blocchi mobile, .tn-progress-timeline{display:flex} lo vinceva per posizione e la regola era morta
   (verificato dal vivo prima di accorgersene: stessa causa del fix mobile del 07/08). */
@media (max-width: 760px) {
	.tn-progress-timeline {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px 14px;
	}
	.tn-progress-step {
		padding: 0;
	}
	.tn-progress-step + .tn-progress-step {
		border-left: none;
	}
}

/* ── S4: codice rivendicazione con copia negli appunti ── */
.tn-codebox {
	background: #0d0d0d;
	border: 1px dashed var(--tn-accent2);
	border-radius: 10px;
	padding: 18px 20px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin: 14px 0;
}
.tn-codebox .tn-code {
	font-family: 'Aoboshi One', serif;
	font-size: 24px;
	letter-spacing: 2.5px;
	color: var(--tn-accent2) !important;
}
.tn-copy-btn {
	background: transparent !important;
	border: 1px solid var(--tn-border);
	color: var(--tn-sub) !important;
	border-radius: 8px;
	padding: 7px 14px;
	font-family: inherit;
	font-weight: 700;
	font-size: var(--tn-fs-sm);
	cursor: pointer;
	transition: border-color 180ms var(--tn-ease), color 180ms var(--tn-ease);
	white-space: nowrap;
}
.tn-copy-btn:hover {
	border-color: var(--tn-accent2);
	color: var(--tn-text) !important;
}
.tn-copy-btn.tn-copied {
	border-color: #1d9e75;
	color: #5dcaa5 !important;
}

/* C8 (12/08/2026): stesso .tn-codebox/.tn-copy-btn del codice di rivendicazione, ma qui dentro
   c'e' un URL + una frase, non 6-8 caratteri - lo stile Aoboshi One 24px con letter-spacing 2.5px
   diventerebbe enorme e spezzato male. Riusa la classe .tn-code (il JS del copia la cerca per
   nome), solo l'aspetto cambia via il modificatore .tn-code-share. */
.tn-codebox-share {
	padding: 14px 18px;
}
.tn-codebox-share .tn-code-share {
	font-family: 'Montserrat', sans-serif;
	font-size: var(--tn-fs-sm);
	font-weight: 400;
	letter-spacing: normal;
	line-height: 1.5;
	color: var(--tn-muted) !important;
}
/* .tn-code-share e' un <textarea> modificabile (richiesta di Daniele, 12/08/2026): azzerato
   l'aspetto di default del browser cosi' resta visivamente identico allo <span> di prima, un
   font-size esplicito a 16px sotto i 760px per lo stesso motivo anti-zoom iOS dei campi del
   form (vedi E6, mai scendere sotto 16px su un campo di testo toccabile). */
.tn-codebox-share textarea.tn-code-share {
	flex: 1 1 240px;
	min-width: 0;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 6px;
	padding: 4px 6px;
	margin: -4px -6px;
	resize: none;
	outline: none;
}
.tn-codebox-share textarea.tn-code-share:hover,
.tn-codebox-share textarea.tn-code-share:focus {
	border-color: var(--tn-border);
	background: rgba(255, 255, 255, .03);
}
@media (max-width: 760px) {
	.tn-codebox-share textarea.tn-code-share {
		font-size: 16px;
	}
}

/* B5 (11/08/2026): sostituisce l'alert() di fallimento rivendicazione. */
.tn-claim-msg:not(:empty) {
	margin-top: 10px;
	padding: 11px 14px;
	border-radius: 10px;
	font-size: var(--tn-fs-sm);
	line-height: 1.5;
}
.tn-claim-msg.tn-alert {
	background: #2a1414;
	border: 1px solid #5e1717;
	color: #f3b3b3 !important;
}

/* ── Ricerca live (combobox) rivendicazione band — pattern da mockup-auth-rivendicazione-v1 ── */
.tn-suggestions:empty {
	display: none;
}
.tn-suggestions {
	margin-top: 8px;
	border: 1px solid var(--tn-border);
	border-radius: 10px;
	overflow: hidden;
	animation: tn-fade-up 220ms var(--tn-ease) both;
}
.tn-suggestion-item {
	padding: 12px 14px;
	font-size: var(--tn-fs-base);
	color: var(--tn-sub) !important;
	border-bottom: 1px solid var(--tn-border);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	transition: background 140ms var(--tn-ease);
}
.tn-suggestion-item:last-child {
	border-bottom: none;
}
.tn-suggestion-item:hover {
	background: #1a1a1a;
}
.tn-suggestion-item .tn-suggestion-name {
	color: var(--tn-text) !important;
	font-weight: 600;
}
.tn-suggestion-item.tn-suggestion-notfound {
	color: var(--tn-muted) !important;
	font-style: italic;
	display: block;
}
.tn-suggestion-item.tn-suggestion-notfound:hover {
	background: transparent;
}
.tn-suggestion-item.tn-suggestion-loading {
	color: var(--tn-muted) !important;
	font-style: italic;
	display: block;
}
.tn-suggestion-item.tn-suggestion-loading:hover {
	background: transparent;
}

/* ── S4: card di richiesta con accento a sinistra (in attesa) ── */
.tn-block.tn-block-claim {
	border-left: 3px solid var(--tn-accent2);
}

/* ── S4: stato di invio sui bottoni (anti doppio-submit, stesso principio dei form CF7) ── */
.tn-btn[data-tn-loading] {
	opacity: 0.7;
	cursor: default;
	pointer-events: none;
}

/* ── prefers-reduced-motion: obbligatorio (reference/motion-effetti.md) ── */
@media (prefers-reduced-motion: reduce) {
	.tn-wrap *,
	.tn-hubshell * {
		animation: none !important;
		transition: none !important;
	}
	.tn-sidebar-guide-body,
	.tn-guide-list li,
	.tn-guide-steps li {
		opacity: 1 !important;
	}
}

/* ── Mobile / iOS (09/08/2026) ────────────────────────────────────────────
   Aggiunte in coda: nessuna regola esistente sopra e' stata modificata.
   Il motivo di ognuna e' scritto qui perche' non erano verificabili su un
   iPhone reale al momento del deploy: sono conseguenze deterministiche del
   comportamento WebKit documentato, non aggiustamenti a occhio.
   ─────────────────────────────────────────────────────────────────────── */

/* Zoom automatico iOS. Safari su iPhone ingrandisce la pagina al focus su
   qualunque campo di testo sotto i 16px e non la rimpicciolisce al blur:
   l'utente resta col layout deformato per il resto della visita. Misurato dal
   vivo il 09/08/2026 sul rendering reale a 375px: 2 campi su /accedi/ e 7 su
   /registrati/ erano a 14.5px. Unica variazione visiva: il testo digitato e'
   1,5px piu' grande. */
.tn-authcard .tn-field input[type="text"],
.tn-authcard .tn-field input[type="password"],
.tn-authcard .tn-field input[type="email"] {
	font-size: 16px !important;
}

/* Stesso difetto sui form pubblici "Entra nella Nation": 0.95rem = 15,2px,
   sotto la stessa soglia. Lista di selettori identica a quella della regola
   originale (piu' in alto in questo stesso foglio), cosi' colpisce esattamente
   gli stessi elementi, ne' uno di piu' ne' uno di meno. Sta qui e non accanto
   all'originale perche' /apply-custom-css riscrive solo questo blocco: fuori
   andrebbe persa al primo deploy successivo. */
.tn-en-form-wrap input[type="text"],
.tn-en-form-wrap input[type="email"],
.tn-en-form-wrap input[type="url"],
.tn-en-form-wrap textarea,
.tn-en-form-wrap select,
.tn-en-form-wrap .wpcf7-form-control:not(input[type="submit"]):not(input[type="file"]) {
	font-size: 16px !important;
}

/* Area di tocco della riga privacy/marketing su /registrati/: la casella era
   13x13px dentro una label alta 20px, contro i 44px raccomandati per il tocco.
   L'allineamento verticale resta quello di prima (center, dalla regola sopra):
   cambia solo l'altezza minima della riga e la dimensione della casella. */
.tn-authcard .tn-field-checkbox label {
	min-height: 44px;
	padding: 4px 0;
	line-height: 1.45;
}
.tn-authcard .tn-field-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* ── B10 (11/08/2026): la navigazione mobile esce dal flusso ─────────────────────────────────
   Su mobile la sidebar impilata era alta 691px e il contenuto cominciava a y=900, su un viewport
   da 812: uno schermo pieno di sola navigazione prima di vedere qualunque cosa. Comprimerla non
   bastava e le misure lo dicevano (632px nel caso migliore), quindi qui esce proprio dal flusso e
   diventa un cassetto dietro una barra appiccicata da 65px. Misurato dopo: contenuto a y=273.
   Su desktop la barra non esiste e la sidebar resta identica a prima: sotto non c'e' nessuna
   regola fuori dal media query, e quella qui sopra la tiene nascosta ovunque per default.
   In coda al file di proposito: le regole base di .tn-hub-sidebar sono dichiarate sopra e un
   media query non aggiunge specificita' (lezione dell'11/08, due volte nello stesso giorno). */
.tn-hubbar {
	display: none;
}
@media (max-width: 760px) {
	.tn-hubbar {
		position: sticky;
		top: 0;
		z-index: 5;
		display: flex;
		align-items: center;
		gap: 12px;
		padding: 10px 16px;
		background: var(--tn-bg);
		border-bottom: 1px solid var(--tn-border);
	}
	.tn-hubbar-toggle {
		display: inline-flex;
		align-items: center;
		gap: 10px;
		flex-shrink: 0;
		min-height: 44px;
		padding: 10px 16px;
		border-radius: 999px;
		background: var(--tn-card);
		border: 1px solid var(--tn-border);
		color: var(--tn-text);
		font-family: 'Montserrat', sans-serif;
		font-size: var(--tn-fs-base);
		font-weight: 600;
		cursor: pointer;
	}
	.tn-hubbar-burger {
		position: relative;
		display: block;
		width: 16px;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
	}
	.tn-hubbar-burger::before,
	.tn-hubbar-burger::after {
		content: '';
		position: absolute;
		left: 0;
		display: block;
		width: 16px;
		height: 2px;
		background: currentColor;
		border-radius: 2px;
	}
	.tn-hubbar-burger::before {
		top: -5px;
	}
	.tn-hubbar-burger::after {
		top: 5px;
	}
	.tn-hubbar-current {
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
		font-size: var(--tn-fs-sm);
		color: var(--tn-muted) !important;
	}
	.tn-hub-sidebar {
		display: none;
	}
	.tn-hubshell.is-menu-open .tn-hub-sidebar {
		display: block;
	}
}
/* l'unico caso in cui la barra admin di WordPress e' fissa sotto i 760px e' la fascia 601-782px:
   sotto i 601 e' assoluta e scorre via, quindi top:0 basta. Riguarda solo chi vede la barra admin,
   cioe' non i membri. */
@media screen and (min-width: 601px) and (max-width: 760px) {
	body.admin-bar .tn-hubbar {
		top: 46px;
	}
}

/* ── B11 + B12 (11/08/2026): le sezioni della scheda band diventano accordion ────────────────
   La vista band era alta 8.159px a 375px, dieci schermate, tutte aperte e senza navigazione
   interna. Con le sezioni chiuse scende a 1.440px: si vede l'indice completo in meno di due
   schermate e si apre solo quella su cui si sta lavorando. "Informazioni gestite da noi" (1.328px
   di sola lettura dentro una schermata di modifica, il secondo blocco piu' grande) diventa un
   accordion come gli altri invece di restare un caso a parte: e' il B12 del piano.
   Scelto al posto della barra di sezione appiccicata prevista dal piano: quella avrebbe lasciato
   la vista a 6.933px e si sarebbe sommata alla barra di B10, prendendosi 155px di viewport
   permanenti sulla schermata dove lo spazio verticale gia' non basta.
   Niente accordion nativo lasciato grezzo: il triangolo dell'user agent e' tolto e sostituito da
   un chevron che ruota. La transizione la spegne da sola il blocco prefers-reduced-motion sopra,
   che copre tutto quello che sta dentro .tn-hubshell. */
.tn-be-acc > summary {
	cursor: pointer;
	list-style: none;
	margin-bottom: 0;
}
.tn-be-acc[open] > summary {
	margin-bottom: 14px;
}
.tn-be-acc > summary::-webkit-details-marker {
	display: none;
}
.tn-be-acc > summary::after {
	content: '';
	flex-shrink: 0;
	width: 8px;
	height: 8px;
	border-right: 2px solid var(--tn-muted);
	border-bottom: 2px solid var(--tn-muted);
	transform: translateY(-3px) rotate(45deg);
	transition: transform 180ms var(--tn-ease);
}
.tn-be-acc[open] > summary::after {
	transform: translateY(1px) rotate(-135deg);
}
/* lo stato scritto, non solo dedotto dall'assenza del pallino verde: a sezione chiusa e' l'unica
   cosa che dice dove c'e' ancora da lavorare senza aprire tutto (E12 del piano, arrivata qui
   perche' senza di lei l'accordion nasconderebbe proprio l'informazione che serve). */
.tn-be-acc-todo {
	flex-shrink: 0;
	padding: 4px 10px;
	border-radius: 999px;
	background: rgba(255, 107, 0, .12);
	border: 1px solid rgba(255, 107, 0, .35);
	color: var(--tn-accent2) !important;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .2px;
}

/* ── B2 (11/08/2026): griglia a 2 colonne sopra i 1000px ──────────────────────────────────────
   Scope esplicito per vista (Impostazioni, Rivendicazioni, e Panoramica quando B4 le dara' piu'
   di una card), non un .tn-blocks globale: un gruppo con una sola card diventerebbe una colonna
   sola dimezzata invece di restare a larghezza piena, e il gruppo di modifica della scheda band
   non usa piu' .tn-blocks da B11 (accordion), quindi non ne sarebbe comunque toccato.
   minmax(0,1fr) e non 1fr: lezione di B10/A2 dell'11/08, un figlio che non va a capo puo'
   allargare la sua colonna oltre la sua parte con 1fr semplice. */
@media (min-width: 1000px) {
	.tn-view[data-view="impostazioni"] .tn-blocks,
	.tn-view[data-view="claim"] .tn-blocks,
	.tn-view[data-view="panoramica"] .tn-blocks {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
}

/* TN-IDENTITY-AUTH-CSS-END */
/* ── tn-fav-btn: stesso stile pill del tn-like-btn (corna), coerenza visiva ── */
.single-area-band .tn-fav-btn {
	display: inline-flex; align-items: center; gap: 8px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 999px;
	padding: 8px 16px;
	cursor: pointer;
	color: rgb(212, 212, 212);
	font-family: Montserrat, sans-serif;
	font-size: 14px;
	transition: border-color 0.2s, background 0.2s;
	margin-left: 10px;
}
.single-area-band .tn-fav-btn:hover { border-color: rgb(230, 48, 0); }
.single-area-band .tn-fav-icon { font-size: 16px; color: rgb(102, 102, 102); transition: color 0.2s; }
.single-area-band .tn-fav-btn.favorited { border-color: rgba(230, 48, 0, 0.45); background: rgba(230, 48, 0, 0.08); }
.single-area-band .tn-fav-btn.favorited .tn-fav-icon { color: rgb(230, 48, 0); }
.single-area-band .tn-fav-count { font-weight: 700; }
.single-area-band .tn-fav-msg { margin-left: 12px; font-size: 12px; color: rgb(230, 48, 0); opacity: 0.9; }


/* === Menu header: rimosso il riquadro di focus del browser, aggiunta micro-interazione al click === */
.main-header-menu .menu-link {
	    outline: none !important;
	    transition: color 0.15s ease, transform 0.15s ease !important;
}
.main-header-menu .menu-link:active {
	    color: #e63000 !important;
	    transform: scale(0.93);
}

/* === Dropdown "Accedi" (Registrati/Accedi) nel menu header — allineato alla palette del sito === */
.main-header-menu .sub-menu {
    background: var(--tn-card, #111111) !important;
    border: 1px solid var(--tn-border, #222222) !important;
    border-radius: 6px !important;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5) !important;
    padding: 6px 0 !important;
    min-width: 190px !important;
}
.main-header-menu .sub-menu .menu-item {
    border: none !important;
}
.main-header-menu .sub-menu .menu-item .menu-link {
    color: var(--tn-sub, #d4d4d4) !important;
    padding: 11px 20px !important;
    font-size: 14px !important;
    transition: color 0.15s ease, background 0.15s ease !important;
}
.main-header-menu .sub-menu .menu-item:not(:last-child) .menu-link {
    border-bottom: 1px solid var(--tn-border, #222222) !important;
}
.main-header-menu .sub-menu .menu-item .menu-link:hover,
.main-header-menu .sub-menu .menu-item .menu-link:focus {
    color: var(--tn-accent2, #ff6b00) !important;
    background: rgba(230, 48, 0, 0.08) !important;
}


/* === Home: bottone hero "Entra nella Nation" e link "Inserisci una data" === */
.tnh-hero-cta {
    background: linear-gradient(135deg, #e63000, #ff6b00) !important;
    border: none !important;
    border-radius: 3px !important;
    padding: 15px 32px !important;
    font-size: 13px !important;
    letter-spacing: 0.08em !important;
    box-shadow: 0 4px 14px rgba(230, 48, 0, 0.3) !important;
    transition: transform 0.2s ease, box-shadow 0.25s ease !important;
}
.tnh-hero-cta:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(230, 48, 0, 0.45) !important;
}
.tnh-hero-cta:active {
    transform: translateY(0) !important;
    box-shadow: 0 3px 10px rgba(230, 48, 0, 0.3) !important;
}
.tnh-date-cta {
    text-decoration: none !important;
    border-bottom: 1px solid rgba(255, 107, 0, 0.4) !important;
    padding-bottom: 2px !important;
    transition: border-color 0.2s ease, color 0.2s ease !important;
}
.tnh-date-cta:hover {
    color: #e63000 !important;
    border-bottom-color: #e63000 !important;
}

/* === Area riservata band: nascondere temporaneamente like/visite (14/08/2026, richiesta Daniele - numeri bassi finche' il sito non ha traffico) === */
.tn-be-stats { display: none !important; }


/* ============================================================
   TN-4 - 404: pagina errore personalizzata
   ============================================================
   Da incollare in coda a Customizer > Additional CSS (stesso meccanismo
   di /tn-custom.css usato da tutto il resto del CSS del sito).
   Non tocca nessuna regola esistente: scope chiuso su body.error404,
   markup base di Astra (error-404.not-found / ast-404-layout-1 / page-title
   / page-sub-title / ast-404-search), verificato dal vivo su una pagina
   inesistente il 25/08/2026. Non rimuove il modulo di ricerca ne' la riga
   ".tn-404-login" gia' presente in produzione (non documentata altrove
   nella KB, vedi nota sessione): li reskinna soltanto.
   ============================================================ */

body.error404 {
	background: #080808 !important;
	color: #f0ece4;
}
body.error404 #content,
body.error404 .ast-container,
body.error404 #primary {
	background: #080808;
}
body.error404 .error-404.not-found {
	max-width: 640px;
	margin: 0 auto;
	padding: 96px 24px 120px;
	text-align: center;
}
body.error404 .page-header .page-title {
	font-family: 'Aoboshi One', serif !important;
	color: #f0ece4 !important;
	font-size: clamp(28px, 5vw, 44px);
	line-height: 1.25;
	margin-bottom: 16px;
}
body.error404 .page-sub-title {
	font-family: 'Montserrat', sans-serif;
	color: #aaaaaa !important;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	margin: 0 0 32px;
}
body.error404 .ast-404-search .search-form {
	display: flex;
	border: 1px solid #262626;
	border-radius: 2px;
	overflow: hidden;
	background: #111111;
}
body.error404 .ast-404-search .search-field {
	background: transparent !important;
	border: none !important;
	color: #f0ece4 !important;
	padding: 14px 16px;
	flex: 1;
	font-family: 'Montserrat', sans-serif;
	font-size: 15px;
}
body.error404 .ast-404-search .search-field::placeholder {
	color: #888888;
}
body.error404 .ast-404-search .search-submit {
	background: #e63000 !important;
	border: none !important;
	padding: 0 20px;
	cursor: pointer;
	transition: background 0.25s ease;
}
body.error404 .ast-404-search .search-submit:hover {
	background: #ff6b00 !important;
}
body.error404 .ast-404-search .search-submit svg path {
	fill: #f0ece4;
}
body.error404 .tn-404-login {
	margin: 12px 0 0;
	font-size: 14px;
	color: #aaaaaa;
}
body.error404 .tn-404-login a {
	color: #e63000 !important;
	font-weight: 700;
	text-decoration: underline;
}
body.error404 .tn-404-login a:hover {
	color: #ff6b00 !important;
}

/* CTA di ritorno (Home / Le band della Nation), markup aggiunto da
   src/tn-404-cta.php: regole a vuoto se lo snippet non e' ancora attivo */
body.error404 .tn-404-cta {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 32px;
}
body.error404 .tn-404-cta a {
	display: inline-block;
	padding: 12px 28px;
	border-radius: 2px;
	font-family: 'Montserrat', sans-serif;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none !important;
	transition: all 0.25s ease;
}
body.error404 .tn-404-cta a.is-primary {
	background: #e63000;
	color: #f0ece4 !important;
}
body.error404 .tn-404-cta a.is-primary:hover {
	background: #ff6b00;
}
body.error404 .tn-404-cta a.is-ghost {
	border: 1px solid #262626;
	color: #f0ece4 !important;
}
body.error404 .tn-404-cta a.is-ghost:hover {
	border-color: #e63000;
	color: #e63000 !important;
}

@media (max-width: 480px) {
	body.error404 .error-404.not-found {
		padding: 64px 20px 80px;
	}
	body.error404 .tn-404-cta {
		flex-direction: column;
	}
}


/* =============================================
   TEC — Titolo H1 pagina evento singolo (TN-48)
   ============================================= */
.tribe-events-single-event-title {
    font-family: 'Aoboshi One', serif !important;
    font-weight: 400 !important;
}

/* Dropdown header (Unisciti alla Nation, Accedi) - apertura piu' morbida (04/09/2026) */
/* Scoperto solo su .ast-desktop (Astra aggiunge questa classe al body sopra la soglia mobile,
   .ast-header-break-point sotto): stesso schema della regola nativa Astra per astra-menu-animation-fade,
   cosi' non tocca il toggle a click del menu off-canvas su mobile. */
.ast-desktop .main-header-menu > .menu-item > .sub-menu {
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.ast-desktop .main-header-menu > .menu-item.focus > .sub-menu,
.ast-desktop .main-header-menu > .menu-item:hover > .sub-menu {
    opacity: 1;
    transform: translateY(0);
    transition: opacity .18s ease, transform .18s ease, visibility 0s linear 0s;
}
.ast-desktop .main-header-menu > .menu-item.menu-item-has-children > .menu-link .ast-header-navigation-arrow {
    transition: transform .18s ease;
}
.ast-desktop .main-header-menu > .menu-item.focus > .menu-link .ast-header-navigation-arrow,
.ast-desktop .main-header-menu > .menu-item:hover > .menu-link .ast-header-navigation-arrow {
    transform: rotate(180deg);
}
.ast-desktop .main-header-menu .sub-menu .menu-link {
    transition: color .15s ease, background-color .15s ease, padding-left .15s ease;
}
.ast-desktop .main-header-menu .sub-menu .menu-item:hover > .menu-link {
    background-color: rgba(230, 48, 0, .1);
    padding-left: 24px;
}
@media (prefers-reduced-motion: reduce) {
    .ast-desktop .main-header-menu > .menu-item > .sub-menu,
    .ast-desktop .main-header-menu .sub-menu .menu-link,
    .ast-desktop .main-header-menu .ast-header-navigation-arrow {
        transition: none !important;
    }
}


/* === TN Commenti: restyling (bozza, non deployato) === */
#comments {
    --c-bg: #111111;
    --c-bg2: #0d0d0d;
    --c-border: #222222;
    --c-accent: #e63000;
    --c-accent2: #ff6b00;
    --c-text: #f0ece4;
    --c-sub: #d4d4d4;
    --c-muted: #888888;
    font-family: 'Montserrat', sans-serif;
    border-top: 1px solid var(--c-border) !important;
    padding-top: 32px !important;
    margin-top: 32px !important;
}

#comments .comments-title {
    font-family: 'Aoboshi One', serif !important;
    color: var(--c-text) !important;
    font-size: 20px !important;
    margin-bottom: 26px !important;
    padding-bottom: 14px !important;
    position: relative;
}
#comments .comments-title::after {
    content: '';
    position: absolute; left: 0; bottom: 0;
    width: 40px; height: 2px;
    background: var(--c-accent) !important;
}

/* --- Lista commenti --- */
.comment-list, .comment-list .children {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
.comment-list > li.comment { margin-bottom: 16px !important; }
.comment-list .children {
    margin-top: 16px !important;
    padding-left: 24px !important;
    border-left: 2px solid var(--c-border) !important;
}

.comment-body {
    background: var(--c-bg) !important;
    border: 1px solid var(--c-border) !important;
    border-radius: 12px !important;
    padding: 20px 22px !important;
    transition: opacity 420ms cubic-bezier(.22,.61,.36,1),
                transform 420ms cubic-bezier(.22,.61,.36,1),
                border-color .2s ease, box-shadow .2s ease !important;
}
/* reveal on scroll: stato iniziale applicato solo via JS (tn-reveal), mai di default:
   se il JS non gira, il commento resta visibile invece di sparire per sempre */
.comment-body.tn-reveal { opacity: 0; transform: translateY(14px); }
.comment-body.tn-reveal.tn-in { opacity: 1 !important; transform: none !important; }

.comment-body:hover {
    border-color: var(--c-accent) !important;
    box-shadow: 0 0 0 1px rgba(230,48,0,.15), 0 8px 24px rgba(0,0,0,.35) !important;
}

.comment-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
    gap: 8px 16px !important;
    margin-bottom: 14px !important;
}
.comment-author.vcard {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
}
.comment-author .avatar {
    border-radius: 50% !important;
    border: 2px solid var(--c-border) !important;
    width: 40px !important; height: 40px !important;
    transition: border-color .2s ease, box-shadow .2s ease !important;
}
.comment-body:hover .avatar {
    border-color: var(--c-accent) !important;
    box-shadow: 0 0 12px rgba(230,48,0,.35) !important;
}
.comment-author .fn, .comment-author .fn a {
    font-weight: 700 !important;
    font-style: normal !important;
    color: var(--c-accent) !important;
    text-decoration: none !important;
}
.comment-author .says { display: none !important; }

.comment-metadata { margin: 0 !important; }
.comment-metadata a {
    color: var(--c-muted) !important;
    font-size: 12px !important;
    text-decoration: none !important;
    transition: color .15s ease !important;
}
.comment-metadata a:hover { color: var(--c-accent2) !important; }

.comment-content {
    color: var(--c-sub) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
}
.comment-content p:last-child { margin-bottom: 0 !important; }

/* Azioni (Rispondi / Modifica nativo WP + eventuali Modifica/Elimina/Segnala custom TN-81:
   selettore strutturale "subito dopo il testo", non per classe: verificare dal vivo prima
   del deploy, vedi nota nel file snippet). */
.comment-content + div, .comment-content + p, .reply {
    margin-top: 14px !important;
}
.reply a, .comment-edit-link,
.comment-content + div a, .comment-content + p a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .3px !important;
    color: var(--c-accent) !important;
    text-decoration: none !important;
    padding: 6px 12px !important;
    border: 1px solid var(--c-border) !important;
    border-radius: 20px !important;
    margin-right: 8px !important;
    transition: background .15s ease, border-color .15s ease, color .15s ease !important;
}
.reply a:hover, .comment-edit-link:hover,
.comment-content + div a:hover, .comment-content + p a:hover {
    background: var(--c-accent) !important;
    border-color: var(--c-accent) !important;
    color: #fff !important;
}

/* --- Form di invio --- */
.comment-respond { margin-top: 8px !important; }
.comment-reply-title {
    font-family: 'Aoboshi One', serif !important;
    color: var(--c-text) !important;
    font-size: 19px !important;
    margin-bottom: 10px !important;
}
#cancel-comment-reply-link {
    color: var(--c-muted) !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    text-decoration: underline !important;
}
.logged-in-as, .comment-notes, .required-field-message, .must-log-in {
    color: var(--c-muted) !important;
    font-size: 13px !important;
    margin-bottom: 18px !important;
}
.logged-in-as a, .must-log-in a {
    color: var(--c-accent2) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}
.logged-in-as a:hover, .must-log-in a:hover { text-decoration: underline !important; }

.comment-form-comment label, .comment-form label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .4px !important;
    color: var(--c-sub) !important;
    margin-bottom: 8px !important;
}
#comment {
    width: 100% !important;
    min-height: 110px !important;
    background: var(--c-bg2) !important;
    border: 1px solid var(--c-border) !important;
    border-radius: 8px !important;
    padding: 13px !important;
    color: var(--c-text) !important;
    font-family: inherit !important;
    font-size: 16px !important; /* iOS: mai sotto 16px, vedi reference/css-astra.md */
    resize: vertical !important;
    transition: border-color .2s ease, box-shadow .2s ease !important;
}
#comment:focus {
    outline: none !important;
    border-color: var(--c-accent) !important;
    box-shadow: 0 0 0 3px rgba(230,48,0,.18) !important;
}

.form-submit { margin-top: 6px !important; }
#submit {
    background: var(--c-accent) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 13px 28px !important;
    font-family: inherit !important;
    font-weight: 700 !important;
    font-size: 14.5px !important;
    text-transform: uppercase !important;
    letter-spacing: .4px !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    transition: background .15s ease, transform .15s ease, opacity .15s ease !important;
}
#submit:hover { background: var(--c-accent2) !important; }
#submit:active { transform: scale(.96) !important; }
#submit.tn-loading { opacity: .7 !important; pointer-events: none !important; }
#submit .tn-spinner { display: none; }
#submit.tn-loading .tn-spinner { display: inline-block !important; }
.tn-spinner {
    width: 13px; height: 13px; border-radius: 50%;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    animation: tn-spin .7s linear infinite;
}
@keyframes tn-spin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
    #comments .comment-body { transition: none !important; }
    #comments .comment-body.tn-reveal { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 480px) {
    .comment-body { padding: 16px 16px !important; }
    .comment-list .children { padding-left: 14px !important; }
    .comment-meta { gap: 6px 10px !important; }
}


/* TN: nasconde la navigazione Precedente/Successivo sull'articolo singolo del blog.
   Nessun interruttore nativo gratuito in Astra (il controllo navigazione è una funzione Astra Pro). */
.single .post-navigation {
    display: none !important;
}

/* Sessione TN-163 (11/09/2026) - QA form Pagina Professionista: il checkbox multiplo
   "Servizi offerti" ([checkbox], non [acceptance]) rendeva senza spaziatura (nessuna regola
   .wpcf7-list-item esisteva fuori da .tn-en-consent-group, che copre solo Privacy/Marketing).
   Scoped a .tn-en-form-wrap, non al sito intero: stesso perimetro delle altre regole di questo
   file condiviso. */
.tn-en-form-wrap .wpcf7-checkbox .wpcf7-list-item,
.tn-en-form-wrap .wpcf7-radio .wpcf7-list-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 4px 18px 4px 0;
}
.tn-en-form-wrap .wpcf7-checkbox input[type="checkbox"],
.tn-en-form-wrap .wpcf7-radio input[type="radio"] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  margin: 0 !important;
  accent-color: var(--tn-accent);
  cursor: pointer;
}
.tn-en-form-wrap .wpcf7-checkbox .wpcf7-list-item-label,
.tn-en-form-wrap .wpcf7-radio .wpcf7-list-item-label {
  color: var(--tn-text);
  font-size: 0.9rem;
  cursor: pointer;
}

/* Sessione TN-163 (13/09/2026) - fix: .wpcf7-form-control (regola generica input di testo, sfondo/bordo/radius/width:100%) matcha anche lo <span class="wpcf7-form-control wpcf7-checkbox"> che avvolge l'intero gruppo Servizi offerti (span e' inline: risultato box distinti per ogni riga quando i checkbox vanno a capo, con angoli arrotondati troncati - "menu a tendina tagliato" segnalato da Daniele). Stessa specificita' della regola generica (1 classe + 2 :not()) cosi' vince per ordine, non per forza bruta. */
.tn-en-form-wrap .wpcf7-checkbox:not(input[type="submit"]):not(input[type="file"]),
.tn-en-form-wrap .wpcf7-radio:not(input[type="submit"]):not(input[type="file"]) {
  display: block !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  width: auto !important;
}
