/**
 * TRASPARENZA AMMINISTRATIVA - STILE FRONTEND
 * Design ispirato a Bootstrap Italia / Design Italia PA
 * Font: Titillium Web
 * 
 * Portato da Albo Pretorio Online v5.0 Alpha
 */

/* ========================================
   ALBO PRETORIO — layout (Tema TA → Layout Albo/Atti → Albo pretorio)
======================================== */
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell {
    max-width: var(--ta-albo-layout-max-width, var(--albo-page-max-width, 1200px)) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-page-shell.ta-layout-albo-shell > main.albo-main-content.ta-layout-albo,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-at-page-shell.ta-layout-albo-shell > main.albo-main-content.ta-layout-albo,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > main.albo-main-content.ta-layout-albo {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
    padding: var(--ta-albo-layout-main-padding, var(--spacing-xl) calc(var(--spacing-lg) + var(--spacing-xl))) !important;
    padding-bottom: var(--ta-albo-layout-main-padding-bottom, var(--spacing-xl)) !important;
}

.ta-layout-albo .albo-lista-atti,
.ta-layout-albo .albo-paginazione,
.ta-layout-albo .albo-risultati-header--albo,
.ta-layout-albo .ta-layout-albo-titolo,
.ta-layout-albo .albo-card-dettaglio,
.ta-layout-albo .albo-empty-state {
    margin-inline: var(--ta-albo-layout-cards-margin-inline, var(--spacing-md));
}

.ta-layout-albo .albo-lista-atti,
.ta-layout-albo .albo-paginazione,
.ta-layout-albo .albo-card-dettaglio:last-child,
.ta-layout-albo .albo-empty-state {
    margin-bottom: var(--ta-albo-layout-content-spacing-bottom, calc(var(--spacing-xl) / 2));
}

/* Albo pretorio: meno spazio tra ultima card e footer (−50%). */
.albo-pagina-pubblica:has(.ta-layout-albo) > .albo-footer,
.albo-pagina-pubblica:has(.ta-layout-albo) > footer.albo-footer {
    margin-top: calc(var(--albo-footer-margin-top, 40px) * 0.5) !important;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell--fullwidth,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell--fullwidth,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > main.albo-main-content.ta-layout-albo.ta-layout-albo--fullwidth,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > main.albo-main-content.ta-portale-atti-hub.ta-layout-albo--fullwidth {
    max-width: 100% !important;
}

.ta-layout-albo .ta-layout-albo-titolo {
    text-align: var(--ta-albo-layout-page-title-align, center);
}

.ta-layout-albo .ta-layout-albo-titolo .page-title-categorie {
    display: block;
    text-align: var(--ta-albo-layout-page-title-align, center);
    font-size: var(--ta-albo-layout-page-title-size, var(--font-3xl));
    font-weight: 700;
    color: var(--ta-albo-layout-page-title-color, var(--albo-dark));
    margin: 0;
    line-height: 1.25;
}

.ta-layout-albo.ta-layout-albo--hide-page-title .ta-layout-albo-titolo {
    display: none;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica .ta-layout-albo:not(.ta-layout-albo--hide-page-title) .ta-layout-albo-titolo {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    visibility: visible !important;
    margin-bottom: var(--ta-albo-layout-title-spacing-bottom, var(--spacing-xl)) !important;
}

.ta-layout-albo .albo-lista-atti,
.ta-layout-albo .albo-card-atto,
.ta-layout-albo .albo-card-ricerca,
.ta-layout-albo .albo-card-dettaglio,
.ta-layout-albo .albo-form-ricerca {
    font-size: var(--ta-albo-layout-list-font-size, inherit);
}

/* Menu secondario Albo dentro la colonna contenuto (Tema TA → layout_albo_atti) */
.albo-page-shell > .albo-nav-livello2.ta-layout-albo-subnav,
.albo-at-page-shell > .albo-nav-livello2.ta-layout-albo-subnav {
    width: 100%;
    max-width: 100%;
    margin: 0 0 var(--ta-albo-layout-subnav-margin-bottom, 0);
    padding: var(--ta-albo-layout-subnav-padding, 0);
    box-sizing: border-box;
    background-color: #fff;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.albo-page-shell > .albo-nav-livello2.ta-layout-albo-subnav .albo-nav-tabs,
.albo-at-page-shell > .albo-nav-livello2.ta-layout-albo-subnav .albo-nav-tabs {
    max-width: 100%;
    width: 100%;
    margin: 0;
}

.albo-page-shell > .albo-nav-livello2.ta-layout-albo-subnav .albo-tab-link,
.albo-at-page-shell > .albo-nav-livello2.ta-layout-albo-subnav .albo-tab-link {
    padding: var(--ta-albo-layout-subnav-link-padding, 20px 28px);
}

.albo-container .albo-pagina-pubblica > .albo-page-shell:has(> .ta-layout-albo-subnav),
.albo-container .albo-pagina-pubblica > .albo-at-page-shell:has(> .ta-layout-albo-subnav) {
    padding-top: 0 !important;
}

/* Elenco/dettaglio/ricerca Albo: contenuto bianco (non usa --albo-portale-content-bg del layout portale) */
body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-page-shell:has(> .ta-layout-albo-subnav),
body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-at-page-shell:has(> .ta-layout-albo-subnav),
body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-page-shell:has(> main.ta-layout-albo),
body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-at-page-shell:has(> main.ta-layout-albo),
body.trasparenza-amministrativa-full .albo-pagina-pubblica > main.albo-main-content.ta-layout-albo,
body.trasparenza-amministrativa-full .albo-pagina-pubblica main.albo-main-content.ta-layout-albo {
    background-color: #ffffff !important;
}

/* ========================================
   CATEGORIE CARDS - Atti Amministrativi (hub)
   Variabili opzionali da Tema TA → Layout Albo/Atti → hub
======================================== */
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > main.albo-main-content.ta-portale-atti-hub.container-categorie-cards {
    max-width: var(--ta-portale-atti-hub-max-width, var(--albo-page-max-width, 1200px)) !important;
    width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
    padding: var(--ta-portale-atti-hub-main-padding, var(--spacing-xl) var(--spacing-lg)) !important;
}

/* Titolo contenuto — Tema TA → Layout Albo/Atti → Atti amministrativi (portale_atti_hub) */
.ta-portale-atti-hub .ta-portale-atti-hub-titolo,
.ta-portale-atti-hub .ta-portale-cat-header.categorie-header {
    text-align: var(--ta-portale-atti-hub-page-title-align, center);
}

.ta-portale-atti-hub .ta-portale-atti-hub-titolo .page-title-categorie,
.ta-portale-atti-hub .categorie-header .page-title-categorie,
.ta-portale-atti-hub .ta-portale-cat-header .page-title-categorie {
    display: block;
    text-align: var(--ta-portale-atti-hub-page-title-align, center);
    font-size: var(--ta-portale-atti-hub-page-title-size, var(--font-3xl));
    font-weight: 700;
    color: var(--ta-portale-atti-hub-page-title-color, var(--albo-dark));
    margin: 0;
    line-height: 1.25;
}

.ta-portale-atti-hub.ta-portale-atti-hub--hide-page-title .ta-portale-atti-hub-titolo {
    display: none;
}

/* Titolo hub sotto chrome sticky */
body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-portale-chrome + main.albo-main-content.ta-portale-atti-hub,
body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-portale-chrome + .albo-portale-chrome-spacer + main.albo-main-content.ta-portale-atti-hub {
    position: relative;
    z-index: 1;
    padding-top: var(--ta-portale-atti-hub-pad-top-effective, var(--spacing-xl)) !important;
}

.ta-portale-atti-hub-page .ta-portale-atti-hub-titolo {
    position: relative;
    z-index: 2;
    scroll-margin-top: var(--ta-portale-chrome-offset, 8rem);
}

.ta-portale-atti-hub-page .ta-portale-atti-hub-titolo .page-title-categorie {
    visibility: visible !important;
    opacity: 1 !important;
    color: var(--ta-portale-atti-hub-page-title-color, var(--albo-dark, #17324d)) !important;
}

/* Ripristina titoli contenuto (tag header WP nascosti dal layout portale) — non sovrascrivere «nascondi titolo» */
body.trasparenza-amministrativa-full .albo-pagina-pubblica .ta-portale-atti-hub:not(.ta-portale-atti-hub--hide-page-title) .ta-portale-atti-hub-titolo,
body.trasparenza-amministrativa-full .albo-pagina-pubblica .ta-portale-cat-header.categorie-header {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    visibility: visible !important;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica .ta-portale-atti-hub:not(.ta-portale-atti-hub--hide-page-title) .ta-portale-atti-hub-titolo.categorie-header {
    margin-bottom: var(--ta-portale-atti-hub-header-margin-bottom, var(--spacing-xl)) !important;
}

body.trasparenza-amministrativa-full .albo-portale-chrome--pinned + .albo-portale-chrome-spacer {
    display: block !important;
    flex-shrink: 0;
}

html.trasparenza-amministrativa-full,
html:has(body.trasparenza-amministrativa-full) {
    scroll-padding-top: var(--ta-portale-chrome-offset, 0px);
}

.ta-portale-atti-hub .page-description-categorie {
    display: none;
}

.ta-portale-cat-header {
    margin-top: 0;
    padding-top: var(--spacing-md);
}

.ta-portale-cat-nav {
    margin: 0 0 var(--spacing-md);
    text-align: center;
}

.ta-portale-atti-hub .albo-categorie-grid {
    display: grid;
    gap: var(--ta-portale-atti-hub-grid-gap, var(--spacing-lg));
    margin-top: var(--spacing-xl);
}

/* Griglia automatica (larghezza minima card) */
.ta-portale-atti-hub.ta-portale-atti-hub-grid--auto .albo-categorie-grid,
.ta-portale-atti-hub:not(.ta-portale-atti-hub-grid--columns) .albo-categorie-grid {
    grid-template-columns: repeat(auto-fit, minmax(var(--ta-portale-atti-hub-grid-min-col, 280px), 1fr));
}

/* Card per riga per dispositivo — Tema TA → Atti amministrativi */
.ta-portale-atti-hub.ta-portale-atti-hub-grid--columns .albo-categorie-grid {
    grid-template-columns: repeat(var(--ta-portale-atti-hub-grid-cols-sm, 1), minmax(0, 1fr));
}

@media (min-width: 768px) {
    .ta-portale-atti-hub.ta-portale-atti-hub-grid--columns .albo-categorie-grid {
        grid-template-columns: repeat(var(--ta-portale-atti-hub-grid-cols-md, 2), minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .ta-portale-atti-hub.ta-portale-atti-hub-grid--columns .albo-categorie-grid {
        grid-template-columns: repeat(var(--ta-portale-atti-hub-grid-cols-lg, 3), minmax(0, 1fr));
    }
}

.ta-portale-atti-hub .albo-card-categoria {
    background: var(--ta-portale-atti-hub-card-bg, #fff);
    border: var(--ta-portale-atti-hub-card-border-width, 2px) solid var(--ta-portale-atti-hub-card-border-color, var(--albo-border-light));
    border-radius: var(--ta-portale-atti-hub-card-radius, var(--radius-lg));
    box-shadow: var(--ta-portale-atti-hub-card-shadow, 0 2px 8px rgba(0, 0, 0, 0.08));
    transition: all 0.3s ease;
    overflow: hidden;
}

.ta-portale-atti-hub .albo-card-categoria:hover {
    transform: translateY(-4px);
    box-shadow: var(--ta-portale-atti-hub-card-hover-shadow, 0 6px 20px rgba(0, 0, 0, 0.15));
    border-color: var(--ta-portale-atti-hub-card-hover-border-color, var(--albo-primary));
}

.ta-portale-atti-hub .albo-card-categoria.card-disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

.ta-portale-atti-hub .albo-card-categoria.card-disabled:hover {
    transform: none;
    box-shadow: var(--ta-portale-atti-hub-card-shadow, 0 2px 8px rgba(0, 0, 0, 0.08));
    border-color: var(--ta-portale-atti-hub-card-border-color, var(--albo-border-light));
}

.ta-portale-atti-hub .albo-card-categoria .card-body {
    padding: var(--ta-portale-atti-hub-card-padding, var(--spacing-xl));
    text-align: center;
}

.card-link-categoria {
    display: block;
    text-decoration: none;
    color: inherit;
    position: relative;
}

.card-link-categoria:hover {
    color: inherit;
}

.card-link-categoria.disabled {
    cursor: not-allowed;
}

.ta-portale-atti-hub .card-icon {
    font-size: var(--ta-portale-atti-hub-card-icon-size, 4rem);
    color: var(--ta-portale-atti-hub-card-icon-color, var(--albo-primary));
    margin-bottom: var(--spacing-md);
}

.ta-portale-atti-hub .card-link-categoria.disabled .card-icon {
    color: var(--albo-text-muted);
}

.ta-portale-atti-hub .card-title-categoria {
    font-size: var(--ta-portale-atti-hub-card-title-size, var(--font-lg));
    font-weight: 600;
    color: var(--ta-portale-atti-hub-card-title-color, var(--albo-dark));
    margin: 0 0 var(--spacing-sm) 0;
}

.ta-portale-atti-hub .card-link-categoria.disabled .card-title-categoria {
    color: var(--albo-text-muted);
}

.ta-portale-atti-hub .card-link-categoria .description {
    font-size: var(--ta-portale-atti-hub-card-meta-size, var(--font-sm));
    color: var(--ta-portale-atti-hub-card-meta-color, var(--albo-text-muted));
    margin: 0;
}

.ta-portale-atti-hub .card-arrow {
    margin-top: var(--spacing-md);
    font-size: var(--ta-portale-atti-hub-card-arrow-size, 2rem);
    color: var(--ta-portale-atti-hub-card-arrow-color, var(--albo-primary));
    transition: transform 0.3s ease;
}

.card-link-categoria:hover .card-arrow {
    transform: translateX(5px);
}

.card-disabled-text {
    display: block;
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    margin-top: var(--spacing-sm);
    font-style: italic;
}

/* Bottone Torna Indietro */
.albo-page-back-section {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--spacing-lg) var(--spacing-lg) var(--spacing-md);
}

.albo-page-back-section > div {
    display: flex;
    gap: var(--spacing-md);
    flex-wrap: wrap;
    align-items: center;
}

.btn-back-categoria {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-base);
    font-weight: 600;
    color: var(--albo-primary);
    text-decoration: none;
    border: 2px solid var(--albo-primary);
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    background: white;
}

.btn-back-categoria:hover {
    background: var(--albo-primary);
    color: white;
    text-decoration: none;
}

.btn-back-albo-pretorio {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md);
    font-size: var(--font-base);
    font-weight: 600;
    color: white;
    background-color: var(--albo-primary);
    text-decoration: none;
    border: 2px solid var(--albo-primary);
    border-radius: var(--radius-md);
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.btn-back-albo-pretorio:hover {
    background: var(--albo-dark);
    border-color: var(--albo-dark);
    color: white;
    text-decoration: none;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

/* ========================================
   CSS VARIABLES - MODIFICA QUI PER CAMBIARE TUTTO
======================================== */
:root {
    /* COLORI */
    --albo-primary: #0066cc;
    --albo-primary-dark: #0052a3;
    --albo-secondary: #6c757d;
    --albo-dark: #17324d;
    --albo-text: #495057;
    --albo-text-muted: #6c757d;
    --albo-bg-light: #f8f9fa;
    --albo-bg-highlight: #e7f3ff;
    --albo-border: #dee2e6;
    --albo-border-light: #e9ecef;
    --albo-footer-bg: #2c3e50;
    --albo-footer-text: #ecf0f1;
    --albo-danger: #dc3545;
    --albo-success: #198754;
    
    /* FONT SIZES - MODIFICA QUESTI VALORI */
    --font-xs: 0.75rem;   /* 12px */
    --font-sm: 0.8125rem; /* 13px */
    --font-base: 0.875rem;/* 14px - dimensione base */
    --font-md: 0.9375rem; /* 15px */
    --font-lg: 1rem;      /* 16px */
    --font-xl: 1.125rem;  /* 18px */
    --font-2xl: 1.25rem;  /* 20px */
    --font-3xl: 1.5rem;   /* 24px */
    --font-4xl: 1.75rem;  /* 28px */

    /*
     * Etichette campi (dettaglio, ricerca, filtri lista atti, …):
     * un solo punto di regolazione (dopo le dimensioni font).
     */
    --albo-field-label-color: var(--albo-primary);
    --albo-field-label-size: var(--font-xl);
    --albo-field-label-weight: 600;

    /* Card elenco atti (lista Albo / archivio / risultati): titolo, etichette riga, testo */
    --albo-card-list-title-size: var(--font-3xl);
    /* Corpo card: un gradino più grande del base, grassetto per leggibilità */
    --albo-card-list-body-size: var(--font-xl);
    --albo-card-list-body-line-height: 1.65;
    --albo-card-list-body-weight: 600;
    --albo-card-list-label-color: var(--albo-primary);
    --albo-card-list-text-color: var(--albo-text);
    /* Layout lista card (override da Parametri / Impostazioni) */
    --albo-card-list-gap: var(--spacing-lg);
    --albo-card-list-padding: var(--spacing-lg);
    --albo-card-list-radius: var(--radius-lg);
    --albo-card-list-max-width: none;
    --albo-card-list-min-height: auto;
    --albo-card-list-col-main-padding-right: var(--spacing-xl);
    --albo-card-list-col-allegati-width: clamp(200px, 26%, 300px);
    --albo-card-list-col-allegati-padding: 20px;
    /* Scheda dettaglio atto */
    --albo-card-detail-margin-bottom: var(--spacing-xl);
    --albo-card-detail-header-padding: var(--spacing-md) var(--spacing-lg);
    --albo-card-detail-body-padding: var(--spacing-lg);
    --albo-card-detail-radius: var(--radius-lg);
    --albo-card-detail-max-width: none;
    --albo-card-detail-label-width: 240px;
    --albo-card-detail-header-title-size: 1.5rem;
    --albo-card-detail-label-size: var(--albo-field-label-size);
    --albo-card-detail-value-size: var(--font-base);
    --albo-card-detail-row-padding: var(--spacing-sm) 0;
    --albo-card-allegati-body-padding: var(--spacing-lg);
    --albo-card-allegati-item-padding: 16px 20px;
    --albo-card-allegati-header-size: 1.5rem;
    --albo-card-allegati-title-size: 1rem;
    --albo-card-allegati-meta-size: 0.875rem;
    --albo-card-allegati-hash-size: 0.75rem;
    --albo-card-allegati-button-size: 0.875rem;
    --albo-card-allegati-icon-size: 2.5rem;

    /* Menu frontend: voci principali (Albo / Trasparenza / Atti) e tab secondarie (Visualizza / Ricerca / Archivio) */
    --albo-nav-l1-font-size: var(--font-3xl);
    --albo-nav-l2-font-size: var(--font-xl);
    
    /* SPACING */
    --spacing-xs: 8px;
    --spacing-sm: 12px;
    --spacing-md: 15px;
    --spacing-lg: 20px;
    --spacing-xl: 30px;
    
    /* BORDER RADIUS */
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    
    /* MAX WIDTH (contenuto Albo / liste: più spazio per meta su una riga) */
    --max-width: 1520px;
}

/* ========================================
   RESET E BASE
======================================== */
/* Reset esplicito per html e body per evitare interferenze dal tema WordPress */
html {
    font-size: 16px !important; /* Base standard: 1rem = 16px */
}

body {
    font-size: 16px !important;
}

.albo-container .albo-pagina-pubblica * {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.albo-pagina-pubblica {
    font-family: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    background-color: var(--albo-portale-content-bg, #ffffff);
    min-height: 100vh;
    line-height: 1.7;
    color: var(--albo-text);
    font-size: var(--font-base) !important; /* Forza il font-size per evitare interferenze */
    width: 100%;
    max-width: none;
    margin-top: 0;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box;
}

/* Pagina full plugin (URL rewrite): niente spazio sopra header/footer tema */
html.trasparenza-amministrativa-full,
html.admin-bar.trasparenza-amministrativa-full,
html:has(body.trasparenza-amministrativa-full),
html.trasparenza-amministrativa-full body,
html.admin-bar.trasparenza-amministrativa-full body {
    margin: 0 !important;
    padding: 0 !important;
}

html.trasparenza-amministrativa-full,
html.admin-bar.trasparenza-amministrativa-full,
html:has(body.trasparenza-amministrativa-full) {
    background-color: var(--albo-portale-page-bg, #f0f0f0);
}

/* Area riservata (login): sfondo html blu sopra header, come il portale con chrome */
html:has(body.trasparenza-amministrativa-full .ta-area-riservata) {
    background-color: var(--albo-primary, #0066cc);
}

body.trasparenza-amministrativa-full .albo-container > .ta-area-riservata,
body.trasparenza-amministrativa-full .ta-area-riservata {
    margin-top: 0 !important;
    padding-top: 0 !important;
    width: 100%;
    max-width: none;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    flex-shrink: 0;
}

body.trasparenza-amministrativa-full .ta-area-riservata .ta-header-trasparenza {
    margin-top: 0 !important;
    width: 100%;
    max-width: none;
}

html.admin-bar body.trasparenza-amministrativa-full .ta-area-riservata::before,
body.trasparenza-amministrativa-full.admin-bar .ta-area-riservata::before {
    content: "";
    display: block;
    height: var(--wp-admin--admin-bar--height, 32px);
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--albo-primary, #0066cc);
    flex-shrink: 0;
}

@media screen and (max-width: 782px) {
    html.admin-bar body.trasparenza-amministrativa-full .ta-area-riservata::before,
    body.trasparenza-amministrativa-full.admin-bar .ta-area-riservata::before {
        height: 46px;
    }
}

body.trasparenza-amministrativa-full {
    min-height: 100vh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    background-color: var(--albo-portale-page-bg, #f0f0f0);
    margin: 0 !important;
    padding: 0 !important;
}

body.trasparenza-amministrativa-full > .albo-container {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.trasparenza-amministrativa-full.admin-bar {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

body.trasparenza-amministrativa-full .albo-container,
body.trasparenza-amministrativa-full .albo-pagina-pubblica {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

html:not(.admin-bar) body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-portale-chrome,
html:not(.admin-bar) body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-skip-link + .albo-portale-chrome {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-portale-chrome,
body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-skip-link + .albo-portale-chrome {
    margin-top: 0 !important;
}

body.trasparenza-amministrativa-full.admin-bar {
    min-height: calc(100vh - 32px);
    min-height: calc(100dvh - 32px);
}

@media screen and (max-width: 782px) {
    body.trasparenza-amministrativa-full.admin-bar {
        min-height: calc(100vh - 46px);
        min-height: calc(100dvh - 46px);
    }
}

body.trasparenza-amministrativa-full .albo-container {
    flex: 1 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.trasparenza-amministrativa-full .albo-container > .albo-pagina-pubblica {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-height: unset;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-skip-link {
    flex-shrink: 0;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > header,
body.trasparenza-amministrativa-full .albo-pagina-pubblica > nav {
    flex-shrink: 0;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-main-content,
body.trasparenza-amministrativa-full .albo-pagina-pubblica > main.albo-main-content {
    flex: 1 1 auto;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-footer,
body.trasparenza-amministrativa-full .albo-pagina-pubblica > footer.albo-footer {
    flex-shrink: 0;
}

/* ========================================
   HEADER
======================================== */
.albo-header-trasparenza {
    width: 100%;
    max-width: none;
    background-color: var(--albo-primary);
    color: white;
    padding: var(--albo-header-padding-y, var(--spacing-xl)) 0;
    min-height: var(--albo-header-min-height, 0);
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    transition: padding 0.25s ease, box-shadow 0.25s ease;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-sizing: border-box;
}

.albo-header-institutional {
    flex: 0 0 auto;
}

/* Portale full-width: header a filo chrome, contenuto centrato verticalmente */
body.trasparenza-amministrativa-full .albo-header-trasparenza {
    padding-top: var(--albo-header-padding-y, 1rem) !important;
    padding-bottom: var(--albo-header-padding-y, 1rem) !important;
    margin-top: 0 !important;
    justify-content: center;
}

/* Con admin bar: spacer blu (::before su .albo-portale-chrome), sticky top:0. */
html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome,
body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome {
    margin-top: 0 !important;
    padding-top: 0 !important;
    top: 0 !important;
    background-color: var(--albo-primary) !important;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome:not(.ta-shrink-enabled)::before,
body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome:not(.ta-shrink-enabled)::before {
    content: "";
    display: block;
    height: var(--wp-admin--admin-bar--height, 32px);
    width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--albo-primary);
    flex-shrink: 0;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-header-trasparenza,
html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome .albo-header-trasparenza,
body.trasparenza-amministrativa-full.admin-bar .albo-header-trasparenza,
body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome .albo-header-trasparenza {
    margin-top: 0 !important;
}

@media screen and (max-width: 782px) {
    html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome:not(.ta-shrink-enabled)::before,
    body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome:not(.ta-shrink-enabled)::before {
        height: 46px;
    }
    html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled,
    html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled,
    body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome.ta-shrink-enabled {
        margin-top: 46px !important;
        top: 46px !important;
    }
}

.albo-header-content {
    flex: 1 1 auto;
    align-self: stretch;
    min-height: 0;
    max-width: var(--albo-portale-max-width, var(--max-width));
    margin: 0 auto;
    padding: 0 var(--spacing-lg);
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--spacing-lg);
}

/* Logo + nome ente → link sito istituzionale (solo logo + testi, non tutta la fascia header) */
a.albo-header-brand,
.albo-header-brand--static {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-lg);
    flex: 0 1 auto;
    width: max-content;
    max-width: 100%;
    min-width: 0;
    color: var(--albo-header-title-color, #fff);
    text-decoration: none;
}

a.albo-header-brand .albo-header-text,
.albo-header-brand--static .albo-header-text {
    flex: 0 1 auto;
    min-width: 0;
}

.albo-header-brand--static {
    text-decoration: none;
}

a.albo-header-brand:hover,
a.albo-header-brand:focus {
    color: var(--albo-header-title-color, #fff);
    text-decoration: none;
    opacity: 0.95;
}

a.albo-header-brand .albo-header-ente-nome {
    display: block;
    font-size: var(--albo-header-title-size, var(--font-4xl));
    font-weight: 700;
    line-height: 1.2;
    color: var(--albo-header-title-color, #fff);
}

.albo-logo-ente {
    height: var(--albo-header-logo-height, 80px);
    width: auto;
    max-width: 100%;
    object-fit: contain;
    flex-shrink: 0;
    align-self: center;
    transition: height 0.25s ease, width 0.25s ease;
}

.albo-logo-placeholder {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,0.2);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    flex-shrink: 0;
}

.albo-header-text {
    flex: 0 1 auto;
    min-width: 0;
}

.albo-header-title {
    font-size: var(--albo-header-title-size, var(--font-4xl));
    font-weight: 700;
    margin: 0 0 var(--spacing-xs) 0;
    color: var(--albo-header-title-color, #fff);
    line-height: 1.2;
    transition: font-size 0.25s ease;
}

.albo-header-section {
    font-size: var(--font-xl);
    font-weight: 600;
    margin: 0 0 var(--spacing-xs) 0;
    color: var(--albo-header-title-color, #fff);
    line-height: 1.3;
}

.albo-header-subtitle {
    font-size: var(--font-lg);
    margin: 0;
    opacity: 0.9;
    color: var(--albo-header-subtitle-color, var(--albo-header-title-color, #fff));
    line-height: 1.4;
}

/* ========================================
   MENU LIVELLO 1
======================================== */
.albo-nav-livello1 {
    width: 100%;
    max-width: none;
    background-color: var(--albo-nav-bg, var(--albo-bg-light));
    border-bottom: 3px solid var(--albo-primary);
    border-top: 0;
    padding: var(--albo-nav-padding-y, var(--spacing-md)) 0;
    min-height: var(--albo-nav-min-height, 0);
    transition: max-height 0.3s ease, opacity 0.25s ease, padding 0.25s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}

/* Linea accento: tra header (sez. 2) e menu (sez. 3) */
.albo-portale-chrome > .albo-portale-nav-accent {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}

.albo-portale-chrome > .albo-portale-nav-accent + .albo-nav-livello1 {
    margin-top: 0 !important;
    border-top: 0;
}

.albo-nav-list {
    width: 100%;
    max-width: var(--albo-portale-max-width, var(--max-width));
    margin: 0 auto;
    padding: var(--spacing-lg) var(--spacing-xl);
    list-style: none;
    display: flex;
    align-items: center;
    gap: var(--spacing-xl);
    justify-content: center;
    box-sizing: border-box;
}

.albo-nav-item {
    margin: 0;
}

.albo-nav-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: var(--albo-nav-link-padding-y, 0.65rem) var(--albo-nav-link-padding-x, 1.25rem);
    font-size: var(--albo-nav-l1-font-size, var(--font-3xl));
    line-height: 1.35;
    font-weight: 600;
    color: var(--albo-nav-link-color, var(--albo-dark));
    text-decoration: none;
    transition: color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
    border: 2px solid transparent;
    background: transparent;
    border-radius: var(--albo-nav-link-border-radius, var(--radius-md, 6px));
    position: relative;
}

.albo-nav-link:hover {
    color: var(--albo-nav-hover-color, var(--albo-primary));
    background-color: var(--albo-nav-hover-bg, transparent);
}

.albo-portale-chrome:not([data-ta-nav-link-bg="0"]):not(.albo-portale-chrome--nav-link-bg-off) .albo-nav-link:hover {
    background-color: var(--albo-nav-hover-bg, rgba(0, 102, 204, 0.1));
}

.albo-nav-link:focus {
    outline: 3px solid var(--albo-primary);
    outline-offset: 2px;
}

.albo-nav-link:focus:not(:focus-visible) {
    outline: none;
}

.albo-nav-link:focus-visible {
    outline: 3px solid var(--albo-primary);
    outline-offset: 2px;
}

.albo-nav-link.active {
    color: var(--albo-nav-active-color, var(--albo-nav-link-active-color, #fff));
}

.albo-portale-chrome:not([data-ta-nav-link-bg="0"]):not(.albo-portale-chrome--nav-link-bg-off) .albo-nav-link.active {
    background-color: var(--albo-nav-active-bg, var(--albo-primary));
    box-shadow: var(--albo-nav-active-shadow, 0 2px 8px rgba(0, 102, 204, 0.3));
}

.albo-portale-chrome[data-ta-nav-link-bg="0"] .albo-nav-link,
.albo-portale-chrome[data-ta-nav-link-bg="0"] .albo-nav-link:hover,
.albo-portale-chrome[data-ta-nav-link-bg="0"] .albo-nav-link:focus-visible,
.albo-portale-chrome[data-ta-nav-link-bg="0"] .albo-nav-link.active,
.albo-portale-chrome--nav-link-bg-off .albo-nav-link,
.albo-portale-chrome--nav-link-bg-off .albo-nav-link:hover,
.albo-portale-chrome--nav-link-bg-off .albo-nav-link:focus-visible,
.albo-portale-chrome--nav-link-bg-off .albo-nav-link.active,
.albo-portale-chrome[data-ta-nav-active-bg="0"] .albo-nav-link.active {
    background: none !important;
    background-color: transparent !important;
    box-shadow: none !important;
}

/* ========================================
   MENU LIVELLO 2
======================================== */
.albo-nav-livello2 {
    background-color: white;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

.albo-nav-tabs {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0;
    list-style: none;
    display: flex;
}

.albo-tab-item {
    flex: 1;
    text-align: center;
}

.albo-tab-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px 28px;
    font-size: var(--albo-nav-l2-font-size);
    line-height: 1.4;
    font-weight: 600;
    color: var(--albo-secondary);
    text-decoration: none;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    width: 100%;
    transition: all 0.2s;
}

.albo-tab-link .bi {
    font-size: 1.05em;
}

.albo-tab-link:hover {
    color: var(--albo-primary);
    border-bottom-color: rgba(0,102,204,0.3);
}

.albo-tab-link.active {
    color: var(--albo-primary);
    border-bottom-color: var(--albo-primary);
}

/* ========================================
   CONTENUTO PRINCIPALE
======================================== */
.albo-main-content {
    max-width: var(--albo-portale-max-width, var(--max-width, 1200px));
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    padding: var(--spacing-xl) var(--spacing-lg);
    box-sizing: border-box;
}

/* ========================================
   FILTRI
======================================== */
.albo-filtri-container {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: var(--spacing-xl);
    overflow: hidden;
}

.albo-filtri-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--albo-bg-light);
    cursor: pointer;
    border-bottom: 1px solid var(--albo-border);
    transition: background 0.2s;
}

.albo-filtri-header:hover {
    background: #e9ecef;
}

.albo-filtri-header h3 {
    margin: 0;
    font-size: var(--font-lg);
    font-weight: 600;
    color: var(--albo-dark);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.albo-filtri-active-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 0.15rem 0.45rem;
    border-radius: 3px;
    background: var(--albo-primary, #0d6efd);
    color: #fff;
    vertical-align: middle;
}

.filtri-toggle-icon {
    font-size: 1.2rem;
    color: var(--albo-secondary);
    transition: transform 0.3s;
}

.filtri-toggle-icon.rotated {
    transform: rotate(180deg);
}

.albo-filtri-content {
    display: none;
    padding: var(--spacing-lg);
}

.albo-filtri-content.show {
    display: block;
}

.albo-filtri-legend {
    margin: 0 0 var(--spacing-md, 1rem);
    font-weight: 600;
    color: var(--albo-dark, #212529);
}

.albo-form-filtri .albo-filtri-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 1.25rem;
    align-items: start;
}

.albo-filtri-field {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    min-width: 0;
}

.albo-filtri-field--wide {
    grid-column: 1 / -1;
}

.albo-filtri-field label {
    display: block;
    margin: 0;
    padding: 0;
    background: transparent;
    color: #495057;
    font-size: 0.8rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: 0.01em;
    border-radius: 0;
}

.albo-filtri-control {
    min-width: 0;
}

.albo-filtri-control .form-control,
.albo-filtri-control select,
.albo-filtri-control input {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 2.35rem;
    border-radius: 0.4rem;
    border: 1px solid #ced4da;
    padding: 0.4rem 0.65rem;
    background: #fff;
}

.albo-filtri-control .form-control:focus,
.albo-filtri-control select:focus,
.albo-filtri-control input:focus {
    border-color: var(--albo-primary, #0d6efd);
    box-shadow: 0 0 0 0.15rem rgba(13, 110, 253, 0.15);
    outline: none;
}

.albo-filtri-hint {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.75rem;
    color: #6c757d;
}

.albo-filtri-note {
    margin: 1rem 0 0.75rem;
    font-size: 0.875rem;
    color: #6c757d;
}

.albo-filtri-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    justify-content: flex-end;
}

.albo-filtri-actions .btn {
    min-width: 7rem;
}

@media (max-width: 768px) {
    .albo-form-filtri .albo-filtri-grid {
        grid-template-columns: 1fr;
    }
    .albo-filtri-field {
        grid-template-columns: 1fr;
    }
    .albo-filtri-actions {
        justify-content: stretch;
    }
    .albo-filtri-actions .btn {
        flex: 1 1 auto;
        text-align: center;
    }
}

/* Filtri con Tabs (Parametri/Categorie) */
.albo-filtri-container-tabs {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: var(--spacing-xl);
    overflow: hidden;
}

.albo-filtri-tabs {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--albo-bg-light);
    border-bottom: 2px solid var(--albo-border);
}

.albo-filtri-tabs .nav-item {
    flex: 1;
}

.albo-filtri-tabs .nav-link {
    display: block;
    padding: var(--spacing-md) var(--spacing-lg);
    color: var(--albo-secondary);
    text-decoration: none;
    text-align: center;
    border: none;
    border-bottom: 3px solid transparent;
    background: transparent;
    transition: all 0.2s;
    font-weight: 600;
}

.albo-filtri-tabs .nav-link:hover {
    color: var(--albo-primary);
    background: rgba(0,102,204,0.05);
    border-bottom-color: rgba(0,102,204,0.3);
}

.albo-filtri-tabs .nav-link.active {
    color: var(--albo-primary);
    background: white;
    border-bottom-color: var(--albo-primary);
}

.albo-filtri-tab-content {
    padding: var(--spacing-lg);
}

.albo-filtri-tab-content .tab-pane {
    display: none;
}

.albo-filtri-tab-content .tab-pane.active,
.albo-filtri-tab-content .tab-pane.show {
    display: block;
}

.filtri-categorie-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.filtro-categoria {
    display: inline-block;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--albo-bg-light);
    color: var(--albo-dark);
    text-decoration: none;
    border-radius: var(--radius-md);
    border: 2px solid var(--albo-border);
    transition: all 0.2s;
    font-weight: 500;
}

.filtro-categoria:hover {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
    text-decoration: none;
}

.filtro-categoria.active {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
}

/* ========================================
   RISULTATI HEADER
======================================== */
.albo-risultati-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--albo-bg-highlight);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--albo-primary);
}

.risultati-count {
    font-size: var(--font-lg);
    color: var(--albo-dark);
}

.risultati-count strong {
    font-size: var(--font-2xl);
    color: var(--albo-primary);
}

.risultati-stato {
    font-size: var(--font-md);
    color: var(--albo-text-muted);
    font-style: italic;
}

/* Albo pretorio: contatore staccato dalla lista, senza etichetta stato */
.ta-layout-albo .albo-risultati-header--albo {
    display: block;
    margin-top: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}

.ta-layout-albo .albo-risultati-header--albo .risultati-count {
    display: inline-block;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--albo-bg-highlight);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--albo-primary);
}

/* Elenco Albo in embed AT (Provvedimenti): stessa barra risultati dell'Albo pretorio */
.albo-at-pubblico .ta-at-albo-embed .albo-risultati-header--albo,
.ta-at-albo-embed .albo-risultati-header--albo {
    display: block;
    margin-top: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
    padding: 0;
    background: transparent;
    border: none;
    border-radius: 0;
}

.albo-at-pubblico .ta-at-albo-embed .albo-risultati-header--albo .risultati-count,
.ta-at-albo-embed .albo-risultati-header--albo .risultati-count {
    display: inline-block;
    padding: var(--spacing-md) var(--spacing-lg);
    background: var(--albo-bg-highlight);
    border-radius: var(--radius-lg);
    border-left: 4px solid var(--albo-primary);
    font-size: var(--font-lg);
    color: var(--albo-dark);
}

.albo-at-pubblico .ta-at-albo-embed .albo-risultati-header--albo .risultati-count strong,
.ta-at-albo-embed .albo-risultati-header--albo .risultati-count strong {
    font-size: var(--font-2xl);
    color: var(--albo-primary);
}

/* Page Title Section - Atti Amministrativi */
.albo-page-title-section {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--albo-border-light);
}

.albo-page-title {
    font-size: var(--font-xl);
    font-weight: 600;
    color: var(--albo-dark);
    margin: 0 0 var(--spacing-sm) 0;
}

.albo-atti-count {
    font-size: var(--font-md);
    color: var(--albo-dark);
    margin-top: var(--spacing-xs);
}

.albo-atti-count strong {
    font-size: var(--font-2xl);
    color: var(--albo-primary);
}

/* ========================================
   CARD ATTO
======================================== */
.albo-lista-atti {
    display: flex;
    flex-direction: column;
    gap: var(--albo-card-list-gap);
}

.albo-card-atto {
    background: white;
    border-radius: var(--albo-card-list-radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid var(--albo-border);
    max-width: var(--albo-card-list-max-width);
    min-height: var(--albo-card-list-min-height);
    width: 100%;
    box-sizing: border-box;
}

.albo-card-atto:hover {
    box-shadow: 0 6px 16px rgba(0,102,204,0.15);
    border-color: var(--albo-primary);
    transform: translateY(-2px);
}

.albo-card-atto.card-annullato {
    border-left: 4px solid var(--albo-danger);
}

.albo-card-atto .card-body {
    padding-block: calc(var(--albo-card-list-padding) / 2);
    padding-inline: max(10px, calc(var(--albo-card-list-padding) * 0.44));
}

.albo-card-atto .card-row {
    display: flex;
    gap: 0;
    align-items: flex-start;
}

/* Con allegati: l'altezza card segue la colonna testo (evita vuoto sotto le date). */
.albo-card-atto .card-row:has(.allegati-preview) {
    position: relative;
}

.albo-card-atto .card-row:has(.allegati-preview) .card-col-main {
    padding-right: calc(var(--albo-card-list-col-allegati-width) + var(--spacing-md));
    border-right: none;
    box-sizing: border-box;
}

.albo-card-atto .card-row:has(.allegati-preview) .card-col-allegati {
    position: absolute;
    top: 0;
    right: 0;
    flex: none;
    height: auto;
    max-height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0 0 0 var(--spacing-md);
    border-left: 1px solid var(--albo-border);
    -webkit-overflow-scrolling: touch;
}

/* Colonna testo: occupa tutto lo spazio rimanente; linea verticale a destra verso gli allegati. */
.albo-card-atto .card-col-main {
    flex: 1 1 0;
    min-width: 0;
    border-right: 1px solid var(--albo-border);
    padding-right: var(--albo-card-list-col-main-padding-right);
    box-sizing: border-box;
}

/* Allegati: larghezza contenuta; spazio a sinistra della linea verticale. */
.albo-card-atto .card-col-allegati {
    flex: 0 0 var(--albo-card-list-col-allegati-width);
    max-width: var(--albo-card-list-col-allegati-width);
    min-width: 0;
    padding: max(12px, calc(var(--albo-card-list-col-allegati-padding, 20px) * 0.6));
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

/* Nessun allegato in card: niente colonna stretta né linea verticale. */
.albo-card-atto .card-row:not(:has(.allegati-preview)) .card-col-main {
    border-right: none;
    padding-right: 0;
}

.albo-card-atto .card-row:not(:has(.allegati-preview)) .card-col-allegati {
    display: none;
}

/* Titolo Card */
.card-title-row {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
    flex-wrap: wrap;
}

.albo-card-atto .card-title-row {
    margin-bottom: 10px;
}

.albo-card-atto .card-title {
    font-size: var(--albo-card-list-title-size);
    font-weight: var(--albo-card-list-title-weight, 600);
    margin: 0;
    color: var(--albo-card-list-title-color, var(--albo-primary));
}

.albo-card-atto .card-title a {
    color: var(--albo-card-list-title-color, var(--albo-primary));
    text-decoration: none;
}

.albo-card-atto .card-title a:hover {
    color: var(--albo-primary-dark);
}

/* Badge Annullato */
.badge-annullato {
    display: inline-flex;
    align-items: center;
    padding: 6px 12px;
    background: var(--albo-danger);
    color: white;
    font-size: var(--font-xs);
    font-weight: 600;
    border-radius: var(--radius-sm);
}

.badge-annullato-small {
    font-size: 0.75rem;
    padding: 3px 8px;
    background: var(--albo-danger);
    color: white;
    border-radius: 3px;
    margin-left: 10px;
    vertical-align: middle;
}

/* Alert Annullamento Inline */
.alert-annullamento-inline {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: var(--spacing-sm) var(--spacing-md);
    background: #f8d7da;
    border: 1px solid #f5c6cb;
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-md);
    font-size: var(--font-sm);
    color: #721c24;
}

.alert-annullamento-inline i {
    color: var(--albo-danger);
    font-size: var(--font-base);
    flex-shrink: 0;
}

/* Oggetto + meta + date: corpo più grande e in grassetto; strong = etichetta blu PA */
.albo-card-atto p.card-oggetto,
.albo-card-atto .card-oggetto,
.card-oggetto,
.card-oggetto p,
p.card-oggetto {
    font-size: var(--albo-card-list-body-size);
    font-weight: var(--albo-card-list-body-weight, 600);
    color: var(--albo-card-list-body-color, var(--albo-card-list-text-color));
    margin-bottom: var(--spacing-md);
    word-break: break-word;
    line-height: var(--albo-card-list-body-line-height);
}

.albo-card-atto p.card-oggetto strong,
.albo-card-atto .card-meta strong,
.albo-card-atto .card-date strong,
.albo-card-atto .card-note strong {
    color: var(--albo-card-list-label-color);
    font-weight: 700;
    font-size: var(--albo-card-list-body-size);
}

/* Meta Info */
.albo-card-atto .card-meta,
.albo-card-atto .card-date,
.card-meta,
.card-date,
.card-meta span,
.card-date span {
    font-size: var(--albo-card-list-body-size);
    font-weight: var(--albo-card-list-body-weight);
    color: var(--albo-card-list-text-color);
    margin-bottom: 10px;
    line-height: var(--albo-card-list-body-line-height);
}

.card-meta strong,
.card-date strong {
    font-size: var(--albo-card-list-body-size);
    font-weight: 700;
    color: var(--albo-card-list-label-color);
}

.albo-card-atto .card-meta strong,
.albo-card-atto .card-date strong {
    color: var(--albo-card-list-label-color);
}

.card-meta .separator,
.card-date .separator {
    margin: 0 var(--spacing-xl);
    color: var(--albo-border);
    font-weight: 400;
}

/* Riga solo date pubblicazione (dopo sezione | categoria): niente a capo dentro singolo campo; scroll orizzontale se strettissimo. */
.albo-card-atto .card-meta.card-date {
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}

.albo-card-atto .card-meta.card-date span:not(.separator) {
    white-space: nowrap;
}

/* Note */
.albo-card-atto .card-note,
.card-note {
    background: var(--albo-bg-light);
    padding: var(--spacing-md) 18px;
    border-radius: var(--radius-md);
    font-size: var(--albo-card-list-body-size);
    font-weight: var(--albo-card-list-body-weight);
    color: var(--albo-card-list-text-color);
    margin-top: var(--spacing-md);
    line-height: var(--albo-card-list-body-line-height);
}

.albo-card-atto .card-note strong {
    font-weight: 700;
}

/* ========================================
   ALLEGATI PREVIEW
======================================== */
.allegati-preview {
    background: var(--albo-bg-light);
    border-radius: var(--radius-lg);
    padding: var(--spacing-md);
    border: 1px solid var(--albo-border-light);
}

.allegati-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--spacing-md);
    font-size: var(--font-base);
    color: var(--albo-dark);
}

/* Nelle card lista atti: titolo e nomi file allineati al corpo scheda */
.albo-card-atto .allegati-header {
    font-size: var(--albo-card-list-body-size);
    font-weight: 600;
    color: var(--albo-card-list-label-color);
    margin-bottom: var(--spacing-sm);
}

.albo-card-atto .allegati-preview {
    padding: var(--spacing-sm);
}

.allegati-count {
    color: var(--albo-text-muted);
}

.albo-card-atto .allegati-count {
    font-size: var(--font-md);
}

.allegati-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.allegato-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: 10px 0;
    border-bottom: 1px solid var(--albo-border-light);
    font-size: var(--font-base);
}

.albo-card-atto .allegato-item {
    font-size: var(--albo-card-list-body-size);
}

.allegato-item:last-child {
    border-bottom: none;
}

.allegato-item i {
    font-size: var(--font-xl);
    flex-shrink: 0;
}

.allegato-nome {
    flex: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--albo-text);
}

.albo-card-atto .allegato-nome {
    color: var(--albo-card-list-text-color);
}

/* Allegato cliccabile */
.allegato-clickable {
    cursor: pointer;
    transition: all 0.2s;
}

.allegato-clickable:hover {
    background: var(--albo-bg-highlight);
    transform: translateX(5px);
}

.allegato-clickable:hover .allegato-nome {
    color: var(--albo-primary);
}

.allegato-open-icon {
    color: var(--albo-primary);
    font-size: var(--font-sm);
    opacity: 0.5;
    transition: opacity 0.2s;
}

.allegato-clickable:hover .allegato-open-icon {
    opacity: 1;
}

.btn-download-mini {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--albo-primary);
    color: white;
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: background 0.2s;
    flex-shrink: 0;
}

.btn-download-mini:hover {
    background: var(--albo-primary-dark);
    color: white;
}

.allegati-more {
    margin-top: 10px;
    font-size: var(--font-xs);
    color: var(--albo-text-muted);
    font-style: italic;
}

.albo-card-atto .allegati-more {
    font-size: var(--font-sm);
}

/* Pulsante Dettaglio */
.btn-dettaglio {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 14px 24px;
    background: var(--albo-primary);
    color: white;
    text-decoration: none;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: var(--font-base);
    transition: all 0.2s;
    margin-top: auto;
}

.btn-dettaglio:hover {
    background: var(--albo-primary-dark);
    color: white;
    transform: translateY(-1px);
}

/* ========================================
   PAGINAZIONE
======================================== */
.albo-paginazione {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: var(--spacing-xl);
    padding: var(--spacing-lg);
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.paginazione-info {
    font-size: var(--font-base);
    color: var(--albo-text-muted);
}

.paginazione-list {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    list-style: none;
    padding: 0;
    margin: 0;
}

.pag-link {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--albo-bg-light);
    color: var(--albo-primary);
    text-decoration: none;
    border-radius: var(--radius-sm);
    font-weight: 500;
    font-size: var(--font-base);
    transition: all 0.2s;
    border: 1px solid var(--albo-border);
}

.pag-link:hover {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
}

.pag-link.active {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
}

.pag-num {
    min-width: 44px;
    justify-content: center;
}

/* ========================================
   STATO VUOTO
======================================== */
.albo-empty-state {
    text-align: center;
    padding: 60px var(--spacing-lg);
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.albo-empty-state .empty-icon {
    font-size: 4rem;
    color: var(--albo-border);
    margin-bottom: var(--spacing-lg);
}

.albo-empty-state h3 {
    font-size: var(--font-2xl);
    color: var(--albo-dark);
    margin-bottom: 10px;
}

.albo-empty-state p {
    color: var(--albo-text-muted);
    font-size: var(--font-base);
}

/* ========================================
   DETTAGLIO ATTO
======================================== */
.albo-back-button {
    margin-bottom: var(--spacing-lg);
}

.albo-back-button .btn-back {
    margin-left: 0;
}

.albo-back-button .btn-back-categoria + .btn-back {
    margin-left: var(--spacing-md);
}

.btn-back {
    display: inline-flex;
    align-items: center;
    padding: 10px var(--spacing-lg);
    background: var(--albo-bg-light);
    color: var(--albo-primary);
    text-decoration: none;
    border-radius: var(--radius-md);
    font-weight: 600;
    font-size: var(--font-base);
    transition: all 0.2s;
    border: 1px solid var(--albo-border);
}

.btn-back:hover {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
}

/* Alert Annullamento Grande */
.albo-alert-annullamento {
    display: flex;
    gap: var(--spacing-lg);
    padding: var(--spacing-lg);
    background: #f8d7da;
    border: 2px solid var(--albo-danger);
    border-radius: var(--radius-lg);
    margin-bottom: var(--spacing-xl);
}

.albo-alert-annullamento .alert-icon {
    font-size: 2.5rem;
    color: var(--albo-danger);
    flex-shrink: 0;
}

.albo-alert-annullamento .alert-content strong {
    font-size: var(--font-lg);
    color: #721c24;
    display: block;
    margin-bottom: var(--spacing-xs);
}

.albo-alert-annullamento .alert-content p {
    margin: 0 0 10px 0;
    color: #721c24;
    font-size: var(--font-base);
}

.albo-alert-annullamento .alert-content small {
    color: #856404;
    font-size: var(--font-sm);
}

/* Card Dettaglio */
.albo-card-dettaglio {
    background: white;
    border-radius: var(--albo-card-detail-radius);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: var(--albo-card-detail-margin-bottom);
    max-width: var(--albo-card-detail-max-width);
    overflow: hidden;
    width: 100%;
    box-sizing: border-box;
}

.albo-card-dettaglio .card-header {
    background: var(--albo-bg-light);
    padding: var(--albo-card-detail-header-padding);
    border-bottom: 3px solid var(--albo-primary);
}

.albo-card-dettaglio .card-header h2 {
    margin: 0;
    font-size: var(--albo-card-detail-header-title-size, var(--font-2xl));
    font-weight: var(--albo-card-detail-header-title-weight, 600);
    color: var(--albo-card-detail-header-title-color, var(--albo-dark));
    display: flex;
    align-items: center;
}

.albo-card-dettaglio .card-body {
    padding: var(--albo-card-detail-body-padding);
}

/* Griglia Dettagli */
.dettaglio-grid {
    display: flex;
    flex-direction: column;
}

.albo-card-dettaglio .dettaglio-row {
    display: flex;
    border-bottom: 1px solid var(--albo-border-light);
    padding: var(--albo-card-detail-row-padding);
}

.dettaglio-row:last-child {
    border-bottom: none;
}

.albo-card-dettaglio .dettaglio-label {
    width: var(--albo-card-detail-label-width);
    font-weight: var(--albo-card-detail-label-weight, var(--albo-field-label-weight));
    color: var(--albo-card-detail-label-color, var(--albo-field-label-color));
    flex-shrink: 0;
    font-size: var(--albo-card-detail-label-size);
    line-height: 1.45;
    letter-spacing: 0.01em;
}

.albo-card-dettaglio .dettaglio-value {
    flex: 1;
    color: var(--albo-card-detail-value-color, var(--albo-text));
    font-size: var(--albo-card-detail-value-size);
    font-weight: var(--albo-card-detail-value-weight, 400);
    line-height: 1.5;
}

.dettaglio-oggetto {
    font-weight: 500;
}

.dettaglio-note {
    font-style: italic;
    color: var(--albo-text-muted);
}

/* ========================================
   CARD ALLEGATI DETTAGLIO
======================================== */
.albo-card-allegati {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    margin-bottom: var(--spacing-xl);
    overflow: visible;
}

.albo-card-allegati .card-header {
    background: var(--albo-bg-light);
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 3px solid var(--albo-primary);
}

.albo-card-allegati .card-header h2 {
    margin: 0;
    font-size: var(--albo-card-allegati-header-size, var(--font-2xl));
    font-weight: var(--albo-card-allegati-header-weight, 600);
    color: var(--albo-card-allegati-header-color, var(--albo-dark));
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.75rem;
}

.albo-card-allegati .card-header h2 .badge-count {
    margin-left: 0.35rem;
}

.badge-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 28px;
    padding: 0 var(--spacing-xs);
    background: var(--albo-primary);
    color: white;
    border-radius: 14px;
    font-size: var(--font-sm);
    font-weight: 600;
    margin-left: 0.75rem;
}

.albo-card-allegati .card-body {
    padding: var(--albo-card-allegati-body-padding);
}

/* Griglia Allegati */
.allegati-grid {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-md);
}

/* Specificità > reset .albo-container .albo-pagina-pubblica * { padding: 0 } */
.albo-card-allegati .allegato-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--albo-card-allegati-item-padding);
    background: var(--albo-bg-light);
    border-radius: var(--radius-lg);
    border: 1px solid var(--albo-border-light);
    transition: all 0.2s;
    box-sizing: border-box;
    overflow: visible;
}

.albo-card-allegati .allegato-card:hover {
    background: var(--albo-bg-highlight);
    border-color: var(--albo-primary);
}

.albo-card-allegati .allegato-card .allegato-icon {
    font-size: var(--albo-card-allegati-icon-size, 2.5rem);
    font-weight: var(--albo-card-allegati-icon-weight, 400);
    color: var(--albo-card-allegati-icon-color, inherit);
    flex-shrink: 0;
}

.albo-card-allegati .allegato-card .allegato-icon i {
    color: inherit;
}

.albo-card-allegati .allegato-card .allegato-info {
    flex: 1;
    min-width: 0;
}

.albo-card-allegati .allegato-card .allegato-title {
    font-size: var(--albo-card-allegati-title-size, var(--font-md));
    font-weight: var(--albo-card-allegati-title-weight, 600);
    color: var(--albo-card-allegati-title-color, var(--albo-dark));
    margin: 0 0 10px 0;
    word-break: break-word;
}

.albo-card-allegati .allegato-card .allegato-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    font-size: var(--albo-card-allegati-meta-size, 0.875rem);
    font-weight: var(--albo-card-allegati-meta-weight, 600);
    color: var(--albo-card-allegati-meta-color, inherit);
}

.albo-card-allegati .badge-ext {
    display: inline-block;
    padding: 3px 8px;
    background: var(--albo-secondary);
    color: white;
    border-radius: 3px;
    font-size: var(--albo-card-allegati-meta-size, 0.75rem);
    font-weight: 600;
}

.albo-card-allegati .file-size {
    font-size: var(--albo-card-allegati-meta-size, var(--font-xs));
    color: var(--albo-text-muted);
}

.albo-card-allegati .badge-firma {
    display: inline-flex;
    align-items: center;
    padding: 3px 8px;
    background: var(--albo-success);
    color: white;
    border-radius: 3px;
    font-size: var(--albo-card-allegati-meta-size, 0.75rem);
    font-weight: 600;
}

.albo-card-allegati .allegato-impronta {
    width: 100%;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--albo-border-light);
}

.albo-card-allegati .allegato-impronta__label {
    display: block;
    font-size: var(--albo-card-allegati-hash-size, 0.75rem);
    font-weight: var(--albo-card-allegati-hash-weight, 600);
    color: var(--albo-card-allegati-hash-color, var(--albo-dark));
    margin-bottom: 6px;
}

.albo-card-allegati .allegato-impronta__value {
    display: block;
    margin: 0;
    padding: 8px 10px;
    font-size: var(--albo-card-allegati-hash-size, 0.75rem);
    font-weight: var(--albo-card-allegati-hash-weight, 400);
    color: var(--albo-card-allegati-hash-color, var(--albo-dark));
    line-height: 1.45;
    word-break: break-all;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    background: #f1f3f5;
    color: var(--albo-dark);
    border: 1px solid var(--albo-border);
    border-radius: var(--radius-md);
}

.allegato-card .allegato-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-shrink: 0;
    max-width: 100%;
    padding-left: var(--spacing-sm);
    padding-right: 2px;
}

.btn-allegato {
    width: 48px;
    height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-md);
    text-decoration: none;
    font-size: var(--font-lg);
    transition: all 0.2s;
    box-sizing: border-box;
}

.albo-card-allegati .btn-allegato.btn-open {
    width: auto;
    min-width: 0;
    height: auto;
    min-height: 44px;
    padding: 0.5rem 0.85rem;
    font-size: var(--albo-card-allegati-button-size, var(--font-sm));
    font-weight: var(--albo-card-allegati-button-weight, 600);
    line-height: 1.25;
    white-space: nowrap;
    background: var(--albo-primary);
    color: var(--albo-card-allegati-button-color, #fff);
}

.btn-allegato.btn-open:hover {
    background: var(--albo-primary-dark);
    color: #fff;
}

.btn-allegato.btn-view {
    background: var(--albo-primary);
    color: white;
}

.btn-allegato.btn-view:hover {
    background: var(--albo-primary-dark);
}

.btn-allegato.btn-download {
    background: var(--albo-success);
    color: white;
}

.btn-allegato.btn-download:hover {
    background: #146c43;
}

.file-not-found {
    font-size: var(--font-sm);
    color: var(--albo-danger);
    font-style: italic;
}

/* ========================================
   BREADCRUMB
======================================== */
.albo-breadcrumb {
    margin-bottom: var(--spacing-lg);
}

.albo-breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 8px;
    font-size: var(--font-sm);
}

.albo-breadcrumb ol li {
    display: flex;
    align-items: center;
}

.albo-breadcrumb ol li::after {
    content: "›";
    margin-left: 8px;
    color: var(--albo-text-muted);
}

.albo-breadcrumb ol li:last-child::after {
    display: none;
}

.albo-breadcrumb ol li a {
    color: var(--albo-primary);
    text-decoration: none;
}

.albo-breadcrumb ol li a:hover {
    text-decoration: underline;
}

.albo-breadcrumb ol li[aria-current="page"] {
    color: var(--albo-text-muted);
}

/* ========================================
   PAGINA RICERCA AVANZATA
======================================== */
.albo-card-ricerca {
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
    border: 1px solid var(--albo-border);
    overflow: hidden;
}

.albo-card-ricerca .card-header {
    background: var(--albo-bg-light);
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--albo-border);
}

.albo-card-ricerca .card-header h2 {
    margin: 0;
    font-size: var(--font-xl);
    font-weight: 600;
    color: var(--albo-dark);
}

.albo-card-ricerca .card-body {
    padding: var(--spacing-lg);
}

.albo-card-ricerca .alert-info {
    background: var(--albo-bg-highlight);
    border: 1px solid var(--albo-primary);
    border-radius: var(--radius-md);
    padding: var(--spacing-md);
    color: var(--albo-dark);
    font-size: var(--font-base);
}

/* Form di Ricerca */
.albo-form-ricerca .form-row {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
    align-items: flex-start;
}

.albo-form-ricerca .form-group {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0.4rem;
    position: relative;
    box-sizing: border-box;
}

.albo-form-ricerca .form-group.col-md-6 {
    flex: 2;
    min-width: 300px;
}

.albo-form-ricerca .form-group.col-md-3 {
    flex: 1;
    min-width: 180px;
}

.albo-form-ricerca .form-group.col-md-2 {
    flex: 0.5;
    min-width: 120px;
}

.albo-form-ricerca .form-label {
    display: block;
    margin: 0;
    padding: 0;
    font-weight: var(--albo-field-label-weight);
    font-size: var(--albo-field-label-size);
    color: var(--albo-field-label-color);
    line-height: 1.45;
    letter-spacing: 0.01em;
    position: static;
    left: auto;
    top: auto;
    transform: none;
    width: 100%;
    flex: 0 0 auto;
    z-index: 0;
}

.albo-form-ricerca .form-control,
.albo-form-ricerca .form-select {
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 12px 15px;
    font-size: var(--font-base);
    border: 2px solid var(--albo-border);
    border-radius: var(--radius-md);
    transition: border-color 0.2s, box-shadow 0.2s;
    background-color: white;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
}

/* Campi data: evita sovrapposizione visiva label / testo interno del browser */
.albo-form-ricerca .form-control[type="date"],
.albo-form-ricerca .form-control[type="datetime-local"] {
    min-height: 3rem;
    line-height: 1.4;
}

/* Pagine full-width plugin: annulla floating-label / assoluti del tema */
body.trasparenza-amministrativa-full .albo-form-ricerca .form-group > label.form-label {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin: 0 !important;
}

/* Filtri lista atti (#filtro-atti / get_FiltriParametri): stesse etichette PA */
.albo-pagina-pubblica #filtro-atti .etichetta_filtri label {
    color: var(--albo-field-label-color);
    font-size: var(--albo-field-label-size);
    font-weight: var(--albo-field-label-weight);
    line-height: 1.45;
    letter-spacing: 0.01em;
}

/*
 * Etichette PA: forza su tema WP (color/font-size spesso sovrascritti).
 * Copre pagine full-width e shortcode in contenuto pagina (.albo-pagina-pubblica).
 */
body.trasparenza-amministrativa-full .albo-card-dettaglio .dettaglio-label,
.albo-pagina-pubblica .albo-card-dettaglio .dettaglio-label {
    color: var(--ta-albo-layout-detail-label-color, var(--ta-portale-atti-detail-label-color, var(--albo-card-list-label-color, var(--albo-primary)))) !important;
    font-size: var(--ta-albo-layout-detail-label-size, var(--ta-portale-atti-detail-label-size, var(--albo-card-detail-label-size, var(--albo-field-label-size)))) !important;
    font-weight: var(--albo-card-detail-label-weight, var(--albo-field-label-weight)) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.01em;
}

body.trasparenza-amministrativa-full .albo-card-dettaglio .dettaglio-value,
.albo-pagina-pubblica .albo-card-dettaglio .dettaglio-value {
    color: var(--ta-albo-layout-detail-value-color, var(--ta-portale-atti-detail-value-color, var(--albo-card-list-body-color, var(--albo-card-list-text-color)))) !important;
    font-size: var(--ta-albo-layout-detail-value-size, var(--ta-portale-atti-detail-value-size, var(--albo-card-detail-value-size))) !important;
    font-weight: var(--albo-card-detail-value-weight, 400) !important;
    line-height: var(--albo-card-list-body-line-height, 1.5) !important;
}

body.trasparenza-amministrativa-full .albo-card-dettaglio .card-header h2,
.albo-pagina-pubblica .albo-card-dettaglio .card-header h2 {
    color: var(--ta-albo-layout-detail-header-title-color, var(--ta-portale-atti-detail-header-title-color, var(--albo-card-list-title-color, var(--albo-primary)))) !important;
    font-size: var(--ta-albo-layout-detail-header-title-size, var(--ta-portale-atti-detail-header-title-size, var(--albo-card-detail-header-title-size, var(--font-2xl)))) !important;
}

body.trasparenza-amministrativa-full .albo-form-ricerca label.form-label,
body.trasparenza-amministrativa-full #filtro-atti .etichetta_filtri label,
.albo-pagina-pubblica .albo-form-ricerca label.form-label,
.albo-pagina-pubblica #filtro-atti .etichetta_filtri label {
    color: var(--albo-field-label-color) !important;
    font-size: var(--albo-field-label-size) !important;
    font-weight: var(--albo-field-label-weight) !important;
    line-height: 1.45 !important;
    letter-spacing: 0.01em;
}

/* Card elenco atti: tema WP spesso forza font piccoli / strong nero */
body.trasparenza-amministrativa-full .albo-card-atto p.card-oggetto,
body.trasparenza-amministrativa-full .albo-card-atto .card-meta,
body.trasparenza-amministrativa-full .albo-card-atto .card-date,
body.trasparenza-amministrativa-full .albo-card-atto .card-note,
.albo-pagina-pubblica .albo-card-atto p.card-oggetto,
.albo-pagina-pubblica .albo-card-atto .card-meta,
.albo-pagina-pubblica .albo-card-atto .card-date,
.albo-pagina-pubblica .albo-card-atto .card-note {
    font-size: var(--albo-card-list-body-size) !important;
    font-weight: var(--albo-card-list-body-weight, 600) !important;
    color: var(--albo-card-list-body-color, var(--albo-card-list-text-color)) !important;
    line-height: var(--albo-card-list-body-line-height) !important;
}

/* card-meta in elenco atti: margini compatti, senza padding. */
body.trasparenza-amministrativa-full .albo-card-atto .card-col-main > p.card-oggetto,
body.trasparenza-amministrativa-full .albo-card-atto .card-col-main > .card-oggetto,
.albo-pagina-pubblica .albo-card-atto .card-col-main > p.card-oggetto,
.albo-pagina-pubblica .albo-card-atto .card-col-main > .card-oggetto {
    margin-bottom: 0 !important;
}

body.trasparenza-amministrativa-full .albo-card-atto .card-col-main > .card-meta,
.albo-pagina-pubblica .albo-card-atto .card-col-main > .card-meta {
    margin-top: 6px !important;
    margin-bottom: 0 !important;
    padding: 0 !important;
}

body.trasparenza-amministrativa-full .albo-card-atto .card-title,
body.trasparenza-amministrativa-full .albo-card-atto .card-title a,
.albo-pagina-pubblica .albo-card-atto .card-title,
.albo-pagina-pubblica .albo-card-atto .card-title a {
    font-size: var(--albo-card-list-title-size) !important;
    font-weight: var(--albo-card-list-title-weight, 600) !important;
    color: var(--albo-card-list-title-color, var(--albo-primary)) !important;
}

body.trasparenza-amministrativa-full .albo-card-atto p.card-oggetto strong,
body.trasparenza-amministrativa-full .albo-card-atto .card-meta strong,
body.trasparenza-amministrativa-full .albo-card-atto .card-date strong,
body.trasparenza-amministrativa-full .albo-card-atto .card-note strong,
.albo-pagina-pubblica .albo-card-atto p.card-oggetto strong,
.albo-pagina-pubblica .albo-card-atto .card-meta strong,
.albo-pagina-pubblica .albo-card-atto .card-date strong,
.albo-pagina-pubblica .albo-card-atto .card-note strong {
    color: var(--albo-card-list-label-color) !important;
    font-size: var(--albo-card-list-body-size) !important;
    font-weight: 700 !important;
}

body.trasparenza-amministrativa-full .albo-card-atto .allegati-header,
body.trasparenza-amministrativa-full .albo-card-atto .allegato-item,
body.trasparenza-amministrativa-full .albo-card-atto .allegato-nome,
.albo-pagina-pubblica .albo-card-atto .allegati-header,
.albo-pagina-pubblica .albo-card-atto .allegato-item,
.albo-pagina-pubblica .albo-card-atto .allegato-nome {
    font-size: var(--albo-card-list-body-size) !important;
}

body.trasparenza-amministrativa-full .albo-card-atto .allegati-header,
.albo-pagina-pubblica .albo-card-atto .allegati-header {
    color: var(--albo-card-list-label-color) !important;
    font-weight: 700 !important;
}

body.trasparenza-amministrativa-full .albo-card-atto .allegato-nome,
.albo-pagina-pubblica .albo-card-atto .allegato-nome {
    color: var(--albo-card-list-text-color) !important;
    font-weight: var(--albo-card-list-body-weight) !important;
}

/* Menu frontend (voci principali + tab Albo): tema WP spesso riduce i link in nav */
body.trasparenza-amministrativa-full .albo-nav-link,
.albo-pagina-pubblica .albo-nav-link {
    font-size: var(--albo-nav-l1-font-size) !important;
    line-height: 1.35 !important;
}

body.trasparenza-amministrativa-full .albo-tab-link,
.albo-pagina-pubblica .albo-tab-link {
    font-size: var(--albo-nav-l2-font-size) !important;
    line-height: 1.4 !important;
}

.albo-form-ricerca .form-control:focus,
.albo-form-ricerca .form-select:focus {
    outline: none;
    border-color: var(--albo-primary);
    box-shadow: 0 0 0 3px rgba(0, 102, 204, 0.15);
}

.albo-form-ricerca .form-control-lg {
    padding: 15px 18px;
    font-size: var(--font-md);
}

.albo-form-ricerca .form-control::placeholder {
    color: var(--albo-text-muted);
    opacity: 0.7;
}

/* Bottoni Form */
.albo-form-ricerca .form-actions {
    display: flex;
    gap: var(--spacing-sm);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--albo-border-light);
}

.albo-form-ricerca .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 25px;
    font-size: var(--font-base);
    font-weight: 600;
    border-radius: var(--radius-md);
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
    border: 2px solid transparent;
}

.albo-form-ricerca .btn-primary {
    background: var(--albo-primary);
    color: white;
    border-color: var(--albo-primary);
}

.albo-form-ricerca .btn-primary:hover {
    background: var(--albo-primary-dark);
    border-color: var(--albo-primary-dark);
}

.albo-form-ricerca .btn-lg {
    padding: 15px 30px;
    font-size: var(--font-md);
}

.albo-form-ricerca .btn-outline-secondary {
    background: transparent;
    color: var(--albo-secondary);
    border-color: var(--albo-secondary);
}

.albo-form-ricerca .btn-outline-secondary:hover {
    background: var(--albo-secondary);
    color: white;
}

/* Risultati Ricerca */
.albo-risultati {
    margin-top: var(--spacing-xl);
}

/* ========================================
   PAGINA ARCHIVIO STORICO
======================================== */
.albo-alert-archivio {
    background: linear-gradient(135deg, #6c757d 0%, #5a6268 100%);
    color: white;
    padding: var(--spacing-md) var(--spacing-lg);
    border-radius: var(--radius-md);
    margin-bottom: var(--spacing-lg);
    font-size: var(--font-base);
    display: flex;
    align-items: center;
}

.albo-risultati-header.archivio {
    background: #f8f9fa;
    border-left: 4px solid #6c757d;
}

.albo-lista-atti.archivio .albo-card-atto {
    opacity: 0.9;
    border-left: 4px solid #6c757d;
}

.albo-card-atto.card-archivio:hover {
    opacity: 1;
}

.badge-archivio {
    display: inline-flex;
    align-items: center;
    background: #6c757d;
    color: white;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: var(--font-xs);
    font-weight: 600;
    margin-left: 10px;
}

.card-date.archivio-date {
    background: #f8f9fa;
    padding: 10px 15px;
    border-radius: var(--radius-md);
    border-left: 3px solid #6c757d;
}

.albo-empty-state.archivio .empty-icon {
    background: #6c757d;
}

.albo-empty-state.archivio .empty-icon i {
    color: white;
}

/* Responsive Form */
@media (max-width: 768px) {
    .albo-form-ricerca .form-row {
        flex-direction: column;
    }
    
    .albo-form-ricerca .form-group {
        width: 100%;
        min-width: 100%;
    }
    
    .albo-form-ricerca .form-actions {
        flex-direction: column;
    }
    
    .albo-form-ricerca .btn {
        width: 100%;
    }
    
    .albo-form-ricerca .ms-2 {
        margin-left: 0 !important;
        margin-top: 10px;
    }
}

/* ========================================
   FOOTER
======================================== */
.albo-footer {
    width: 100%;
    max-width: none;
    background-color: var(--albo-footer-bg);
    color: var(--albo-footer-text, #ecf0f1);
    margin-top: var(--albo-footer-margin-top, 40px);
    border-top-width: var(--albo-footer-border-top-width, 1px);
    border-top-style: solid;
    border-top-color: var(--albo-footer-border-top-color, rgba(255, 255, 255, 0.12));
}

.albo-footer-main {
    padding: var(--albo-footer-main-padding, var(--spacing-xl) var(--spacing-lg));
}

.albo-footer-grid {
    max-width: var(--albo-portale-max-width, var(--max-width));
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--spacing-xl);
}

/* Footer a 2 colonne (legacy) */
.albo-footer-grid.albo-footer-2col {
    grid-template-columns: repeat(2, 1fr);
}

/* Footer 3 colonne + brand (mockup PA) */
.albo-footer-brand {
    max-width: var(--albo-portale-max-width, var(--max-width, 1200px));
    width: 100%;
    margin: 0 auto var(--albo-footer-brand-margin-bottom, var(--spacing-xl));
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

.albo-footer-brand__logo {
    width: 64px;
    height: 64px;
    object-fit: contain;
    flex-shrink: 0;
}

.albo-footer-brand__nome {
    margin: 0;
    font-size: var(--albo-footer-brand-font-size, 1.35rem);
    font-weight: 700;
    color: var(--albo-footer-brand-color, var(--albo-footer-text, #fff));
    line-height: 1.3;
}

.albo-footer-grid.albo-footer-3col {
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
}

.albo-footer-col-title {
    font-family: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: var(--albo-footer-title-font-size, 1.05rem);
    font-weight: var(--albo-footer-title-font-weight, 700);
    color: var(--albo-footer-title-color, var(--albo-footer-text, #fff));
    margin: 0 0 var(--albo-footer-title-margin-bottom, var(--spacing-md));
    padding-bottom: var(--albo-footer-title-padding-bottom, var(--spacing-sm));
    border-bottom: var(--albo-footer-title-border-bottom, 1px solid rgba(255, 255, 255, 0.35));
}

.albo-footer-contact-list,
.albo-footer-link-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.albo-footer-contact-item {
    display: flex;
    align-items: flex-start;
    gap: var(--albo-footer-icon-gap, 0.65rem);
    margin: 0 0 var(--albo-footer-contact-item-margin-bottom, 0.85rem);
    font-size: var(--albo-footer-contact-font-size, var(--font-base));
    line-height: 1.5;
    color: var(--albo-footer-contact-color, var(--albo-footer-text, rgba(255, 255, 255, 0.92)));
}

.albo-footer-contact-item .bi {
    flex-shrink: 0;
    margin-top: 0.15em;
    font-size: var(--albo-footer-icon-size, 1em);
    color: var(--albo-footer-icon-color, inherit);
    opacity: var(--albo-footer-icon-opacity, 0.95);
}

.albo-footer-contact-item a {
    color: inherit;
    text-decoration: none;
}

.albo-footer-contact-item a:hover {
    color: var(--albo-footer-contact-link-hover-color, inherit);
    text-decoration: underline;
}

.albo-footer-link-list li {
    margin: 0;
    padding: var(--albo-footer-link-item-padding-y, 0.55rem) 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

.albo-footer-link-list li:last-child {
    border-bottom: none;
}

.albo-footer-link-list a {
    color: var(--albo-footer-link-color, var(--albo-footer-text, rgba(255, 255, 255, 0.92)));
    text-decoration: none;
    font-size: var(--albo-footer-link-font-size, var(--font-base));
}

.albo-footer-link-list a:hover {
    color: var(--albo-footer-link-hover-color, #fff);
    text-decoration: underline;
}

.albo-footer-legal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
    text-align: left;
    flex: 1 1 auto;
    min-width: 0;
}

.albo-footer-copyright {
    margin: var(--albo-footer-copyright-margin, 0 0 0.25rem);
    font-size: var(--albo-footer-copyright-font-size, var(--font-base));
    color: var(--albo-footer-copyright-color, var(--albo-footer-text, rgba(255, 255, 255, 0.88)));
    line-height: 1.45;
    width: 100%;
}

.albo-footer-credits {
    margin: var(--albo-footer-credits-margin, 0);
    font-size: var(--albo-footer-credits-font-size, var(--font-sm));
    color: var(--albo-footer-credits-color, var(--albo-footer-text, rgba(255, 255, 255, 0.72)));
    line-height: 1.45;
    width: 100%;
}

@media (max-width: 992px) {
    .albo-footer-grid.albo-footer-3col {
        grid-template-columns: 1fr;
    }
    .albo-footer-legal {
        text-align: left;
    }
}

.albo-footer-logo-wrap {
    margin: 0 0 var(--spacing-md) 0;
}

.albo-footer-logo-wrap .albo-logo-ente {
    height: 56px;
    width: auto;
    display: block;
}

@media (max-width: 768px) {
    .albo-footer-grid.albo-footer-2col {
        grid-template-columns: 1fr;
    }
}

.albo-footer-title {
    font-family: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: var(--albo-footer-title-font-size, var(--font-xl));
    font-weight: var(--albo-footer-title-font-weight, 600);
    color: var(--albo-footer-title-color, var(--albo-footer-text, #fff));
    margin: 0 0 var(--albo-footer-title-margin-bottom, 18px);
    padding-bottom: var(--albo-footer-title-padding-bottom, var(--spacing-sm));
    border-bottom: var(--albo-footer-title-border-bottom, 2px solid var(--albo-primary));
}

.albo-footer-text {
    font-size: var(--albo-footer-contact-font-size, var(--font-base));
    color: var(--albo-footer-contact-color, var(--albo-footer-text, #bdc3c7));
    margin: 0 0 var(--albo-footer-contact-item-margin-bottom, var(--spacing-sm));
    line-height: 1.7;
}

.albo-footer-text a {
    color: var(--albo-footer-contact-color, var(--albo-footer-text));
    text-decoration: none;
    transition: color 0.2s;
}

.albo-footer-text a:hover {
    color: var(--albo-footer-contact-link-hover-color, var(--albo-primary));
}

.albo-footer-text .text-primary {
    color: var(--albo-primary) !important;
}

.albo-footer-address .bi {
    float: left;
    margin-right: 0.35em;
    line-height: inherit;
}

.albo-footer-address {
    overflow: hidden;
}

.badge-pec {
    display: inline-block;
    padding: 2px 6px;
    background: var(--albo-primary);
    color: white;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 3px;
    margin-left: var(--spacing-xs);
    vertical-align: middle;
}

/* Footer Bottom */
.albo-footer-bottom {
    background: var(--albo-footer-bottom-bg, rgba(0, 0, 0, 0.2));
    padding: var(--albo-footer-bottom-padding, var(--spacing-md) var(--spacing-lg));
}

.albo-footer-bottom-content {
    max-width: var(--albo-portale-max-width, var(--max-width));
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.albo-footer-copyright {
    font-size: var(--albo-footer-copyright-font-size, var(--font-base));
    color: var(--albo-footer-copyright-color, var(--albo-footer-text, #bdc3c7));
}

.albo-footer-copyright p {
    margin: 0;
}

.albo-footer-version {
    font-size: var(--font-sm);
    opacity: 0.8;
    margin-top: 5px !important;
}

.albo-footer-links {
    display: flex;
    align-items: center;
    gap: var(--albo-footer-legal-gap, var(--spacing-md));
    flex-wrap: wrap;
}

.albo-footer-links a {
    color: var(--albo-footer-legal-color, var(--albo-footer-text, #bdc3c7));
    text-decoration: none;
    font-size: var(--albo-footer-legal-font-size, var(--font-base));
    transition: color 0.2s;
}

.albo-footer-links a:hover {
    color: var(--albo-footer-legal-hover-color, white);
}

.albo-footer-links span {
    color: rgba(255,255,255,0.3);
}

/*
 * Footer — tema portale: specificità > reset .albo-container .albo-pagina-pubblica *
 * e font-size !important su .albo-pagina-pubblica
 */
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-footer,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer {
    margin-top: var(--albo-footer-margin-top, 40px);
    padding: 0;
    border-top-width: var(--albo-footer-border-top-width, 1px);
    border-top-style: solid;
    border-top-color: var(--albo-footer-border-top-color, rgba(255, 255, 255, 0.12));
    background-color: var(--albo-footer-bg, #2c3e50);
    color: var(--albo-footer-text, #ecf0f1);
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-main {
    padding: var(--albo-footer-main-padding, var(--spacing-xl) var(--spacing-lg));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-brand {
    margin: 0 auto var(--albo-footer-brand-margin-bottom, var(--spacing-xl));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-brand__nome {
    font-size: var(--albo-footer-brand-font-size, 1.35rem) !important;
    font-weight: 700;
    color: var(--albo-footer-brand-color, var(--albo-footer-text, #fff));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-col-title,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-title {
    font-family: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    font-size: var(--albo-footer-title-font-size, 1.05rem) !important;
    font-weight: var(--albo-footer-title-font-weight, 700);
    color: var(--albo-footer-title-color, var(--albo-footer-text, #fff));
    margin: 0 0 var(--albo-footer-title-margin-bottom, var(--spacing-md));
    padding: 0 0 var(--albo-footer-title-padding-bottom, var(--spacing-sm));
    border-bottom: var(--albo-footer-title-border-bottom, 1px solid rgba(255, 255, 255, 0.35));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-title {
    font-family: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
    font-size: var(--albo-footer-title-font-size, var(--font-xl)) !important;
    font-weight: var(--albo-footer-title-font-weight, 600);
    color: var(--albo-footer-title-color, var(--albo-footer-text, #fff));
    margin: 0 0 var(--albo-footer-title-margin-bottom, 18px);
    border-bottom: var(--albo-footer-title-border-bottom, 2px solid var(--albo-primary));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-contact-item {
    gap: var(--albo-footer-icon-gap, 0.65rem);
    margin: 0 0 var(--albo-footer-contact-item-margin-bottom, 0.85rem);
    font-size: var(--albo-footer-contact-font-size, var(--font-base)) !important;
    color: var(--albo-footer-contact-color, var(--albo-footer-text, rgba(255, 255, 255, 0.92)));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-contact-item a {
    color: inherit;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-contact-item .bi {
    font-size: var(--albo-footer-icon-size, 1em);
    color: var(--albo-footer-icon-color, inherit);
    opacity: var(--albo-footer-icon-opacity, 0.95);
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-contact-item a:hover {
    color: var(--albo-footer-contact-link-hover-color, inherit);
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-text {
    font-size: var(--albo-footer-contact-font-size, var(--font-base)) !important;
    color: var(--albo-footer-contact-color, var(--albo-footer-text, #bdc3c7));
    margin: 0 0 var(--albo-footer-contact-item-margin-bottom, var(--spacing-sm));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-text a:hover {
    color: var(--albo-footer-contact-link-hover-color, var(--albo-primary));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-link-list li {
    padding: var(--albo-footer-link-item-padding-y, 0.55rem) 0;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-link-list a {
    font-size: var(--albo-footer-link-font-size, var(--font-base)) !important;
    color: var(--albo-footer-link-color, var(--albo-footer-text, rgba(255, 255, 255, 0.92)));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-link-list a:hover {
    color: var(--albo-footer-link-hover-color, #fff);
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-bottom {
    background: var(--albo-footer-bottom-bg, rgba(0, 0, 0, 0.2));
    padding: var(--albo-footer-bottom-padding, var(--spacing-md) var(--spacing-lg));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-legal {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: 0.25rem;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-copyright {
    margin: var(--albo-footer-copyright-margin, 0 0 0.25rem);
    font-size: var(--albo-footer-copyright-font-size, var(--font-base)) !important;
    color: var(--albo-footer-copyright-color, var(--albo-footer-text, rgba(255, 255, 255, 0.88)));
    line-height: 1.45;
    width: 100%;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-credits {
    margin: var(--albo-footer-credits-margin, 0);
    font-size: var(--albo-footer-credits-font-size, var(--font-sm)) !important;
    color: var(--albo-footer-credits-color, var(--albo-footer-text, rgba(255, 255, 255, 0.72)));
    line-height: 1.45;
    width: 100%;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-links {
    gap: var(--albo-footer-legal-gap, var(--spacing-md));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-links a {
    font-size: var(--albo-footer-legal-font-size, var(--font-base)) !important;
    color: var(--albo-footer-legal-color, var(--albo-footer-text, #bdc3c7));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica .albo-footer-links a:hover {
    color: var(--albo-footer-legal-hover-color, #fff);
}

.btn-area-riservata {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-xs) var(--spacing-md);
    background: var(--albo-primary);
    color: white !important;
    border-radius: var(--radius-sm);
    font-weight: 600;
    font-size: var(--font-sm);
    transition: all 0.2s;
}

.btn-area-riservata:hover {
    background: var(--albo-primary-dark);
    transform: translateY(-1px);
}

/* ========================================
   RESPONSIVE
======================================== */
@media (max-width: 991px) {
    :root {
        --font-4xl: 2.4rem;
        --font-3xl: 1.8rem;
    }
    
    .albo-header-content {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    a.albo-header-brand,
    .albo-header-brand--static {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    
    .albo-nav-list {
        flex-wrap: wrap;
        justify-content: center;
    }
    
    .albo-nav-tabs {
        flex-wrap: wrap;
    }
    
    .albo-tab-item {
        flex: none;
    }
    
    .albo-card-atto .card-row {
        flex-direction: column;
    }

    .albo-card-atto .card-row:has(.allegati-preview) .card-col-allegati {
        position: static;
        max-height: none;
        overflow-y: visible;
    }

    .albo-card-atto .card-col-main {
        border-right: none;
        padding-right: 0;
    }

    .albo-card-atto .card-col-allegati {
        min-width: 0;
        max-width: none;
        width: 100%;
        padding: var(--albo-card-list-col-allegati-padding, 20px);
        margin-top: var(--spacing-md);
        border-top: 1px solid var(--albo-border);
    }
    
    .dettaglio-row {
        flex-direction: column;
    }
    
    .dettaglio-label {
        width: 100%;
        margin-bottom: 5px;
    }
    
    .albo-paginazione {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .albo-footer-bottom-content {
        flex-direction: column;
        text-align: center;
    }
}

@media (max-width: 575px) {
    :root {
        --font-4xl: 2rem;
        --font-3xl: 1.6rem;
        --font-2xl: 1.5rem;
        --font-xl: 1.4rem;
        --font-lg: 1.3rem;
        /* Menu: su schermi stretti evita voci troppo grandi */
        --albo-nav-l1-font-size: var(--font-2xl);
        --albo-nav-l2-font-size: var(--font-lg);
    }
    
    .albo-main-content {
        padding: var(--spacing-lg) var(--spacing-md);
    }
    
    .albo-nav-link {
        padding-block: var(--albo-nav-link-padding-y, var(--spacing-sm));
        padding-inline: var(--albo-nav-link-padding-x, var(--spacing-lg));
    }
    
    .card-title-row {
        flex-direction: column;
        align-items: flex-start;
    }
    
    .albo-card-allegati .allegato-card {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .albo-card-allegati .allegato-card .allegato-icon {
        justify-self: center;
    }

    .albo-card-allegati .allegato-card .allegato-actions {
        width: 100%;
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
    }
    
    .paginazione-list {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* ========================================
   PAGAMENTI PUBBLICO (shortcode trasparenza_pagamenti)
======================================== */
.ta-pagamenti-pubblico {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.ta-pagamenti-pubblico__title {
    font-size: var(--font-2xl);
    font-weight: 700;
    color: var(--albo-dark);
    margin: 0 0 var(--spacing-sm);
}

.ta-pagamenti-pubblico__note,
.ta-pagamenti-pubblico__count {
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    margin: 0 0 var(--spacing-lg);
}

.ta-pagamenti-pubblico__filtri {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
    padding: var(--spacing-md);
    background: var(--albo-bg-light, #f8f9fa);
    border-radius: 8px;
    border: 1px solid rgba(0, 61, 122, 0.12);
}

.ta-pagamenti-pubblico__label {
    font-weight: 600;
    color: var(--albo-dark);
}

.ta-pagamenti-pubblico__select {
    min-width: 12rem;
    padding: 0.5rem 0.75rem;
    border-radius: 4px;
    border: 1px solid #ced4da;
}

.ta-pagamenti-pubblico__submit {
    padding: 0.5rem 1.25rem;
    font-weight: 600;
    color: #fff;
    background: var(--albo-primary, #0066cc);
    border: none;
    border-radius: 4px;
    cursor: pointer;
}

.ta-pagamenti-pubblico__submit:hover {
    filter: brightness(0.95);
}

.ta-pagamenti-pubblico__table-wrap {
    overflow-x: auto;
    margin-bottom: var(--spacing-lg);
}

.ta-pagamenti-pubblico__table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--font-sm);
}

.ta-pagamenti-pubblico__table thead th {
    text-align: left;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--albo-dark, #003d7a);
    color: #fff;
    font-weight: 600;
    white-space: nowrap;
}

.ta-pagamenti-pubblico__table tbody td {
    padding: var(--spacing-sm) var(--spacing-md);
    border-bottom: 1px solid #e9ecef;
    vertical-align: top;
}

.ta-pagamenti-pubblico__table tbody tr:nth-child(even) {
    background: rgba(0, 61, 122, 0.03);
}

.ta-pagamenti-pubblico__num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.ta-pagamenti-pubblico__meta {
    font-size: 0.85em;
    color: var(--albo-text-muted);
}

.ta-pagamenti-pubblico-empty {
    padding: var(--spacing-xl);
    text-align: center;
    color: var(--albo-text-muted);
}

.ta-pagamenti-pubblico__nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.ta-pagamenti-pubblico__page-link {
    font-weight: 600;
    color: var(--albo-primary, #0066cc);
    text-decoration: none;
}

.ta-pagamenti-pubblico__page-link:hover {
    text-decoration: underline;
}

.ta-pagamenti-pubblico__page-info {
    color: var(--albo-text-muted);
    font-size: var(--font-sm);
}

@media (max-width: 767px) {
    .ta-pagamenti-pubblico__table thead {
        display: none;
    }

    .ta-pagamenti-pubblico__table tbody tr {
        display: block;
        margin-bottom: var(--spacing-lg);
        padding: var(--spacing-md);
        border: 1px solid #e9ecef;
        border-radius: 8px;
        background: #fff;
    }

    .ta-pagamenti-pubblico__table tbody td {
        display: block;
        border: none;
        padding: 0.35rem 0;
    }

    .ta-pagamenti-pubblico__table tbody td::before {
        content: attr(data-label);
        display: block;
        font-weight: 600;
        font-size: 0.75rem;
        text-transform: uppercase;
        letter-spacing: 0.02em;
        color: var(--albo-text-muted);
        margin-bottom: 0.2rem;
    }

    .ta-pagamenti-pubblico__num {
        text-align: left;
    }
}

/* ========================================
   HOME PORTALE ENTE (AGID / accessibilità)
======================================== */
.albo-skip-link {
    position: fixed;
    left: -9999px;
    top: 0;
    z-index: 99999;
    margin: 0 !important;
    padding: 0.75rem 1rem;
    background: var(--albo-primary);
    color: #fff !important;
    font-weight: 600;
    text-decoration: none;
    border-radius: var(--radius-md);
}
.albo-skip-link:focus {
    left: var(--spacing-md);
    top: var(--spacing-md);
    outline: 3px solid #fff;
    outline-offset: 2px;
}

.albo-header-title--visible {
    display: block !important;
    font-size: var(--font-4xl);
    font-weight: 700;
    margin: 0 0 var(--spacing-xs) 0;
    color: #fff;
    line-height: 1.2;
}

.albo-ente-home__main {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--spacing-xl) var(--spacing-lg);
}

.albo-ente-home__section-title {
    font-size: var(--font-2xl);
    color: var(--albo-dark);
    margin: 0 0 var(--spacing-md) 0;
    font-weight: 700;
}

.albo-ente-home__lead {
    font-size: var(--font-lg);
    color: var(--albo-text);
    max-width: 52rem;
    margin: 0 0 var(--spacing-xl) 0;
}

.albo-ente-home__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
}

.albo-ente-home__card {
    margin: 0;
    border: 1px solid var(--albo-border);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.albo-ente-home__card:hover {
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
    border-color: var(--albo-primary);
}

.albo-ente-home__card-link {
    display: block;
    padding: var(--spacing-lg);
    text-decoration: none;
    color: inherit;
    height: 100%;
    border-radius: var(--radius-lg);
}

.albo-ente-home__card-link:focus {
    outline: 3px solid var(--albo-primary);
    outline-offset: 2px;
}

.albo-ente-home__card-icon {
    display: block;
    font-size: 2rem;
    color: var(--albo-primary);
    margin-bottom: var(--spacing-sm);
}

.albo-ente-home__card-title {
    font-size: var(--font-xl);
    margin: 0 0 var(--spacing-sm) 0;
    color: var(--albo-dark);
    font-weight: 700;
}

.albo-ente-home__card-text {
    margin: 0;
    font-size: var(--font-base);
    color: var(--albo-text-muted);
    line-height: 1.5;
}

.albo-ente-home__card-static {
    padding: var(--spacing-lg);
}

.albo-ente-home__card--highlight {
    border-color: rgba(0, 102, 204, 0.35);
    background: var(--albo-bg-light);
}

.albo-ente-home__note {
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    max-width: 52rem;
    margin: 0;
}

/* Amministrazione trasparente — macro-categorie a schede (D.Lgs. 33/2013) */
.albo-at-profilo-badge {
    margin: 10px 0 0;
    font-size: var(--font-md);
    color: rgba(255, 255, 255, 0.95);
    font-weight: 600;
}

.albo-at-macrocategorie--cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-xl);
}

.albo-at-card {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--albo-border-light);
    border-radius: var(--radius-lg);
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.albo-at-card:hover {
    border-color: rgba(0, 102, 204, 0.35);
    box-shadow: 0 6px 16px rgba(0, 102, 204, 0.12);
}

.albo-at-card__head {
    padding: var(--spacing-md) var(--spacing-lg);
    background: linear-gradient(180deg, var(--albo-bg-highlight) 0%, #fff 100%);
    border-bottom: 3px solid var(--albo-primary);
}

.albo-at-card__title {
    margin: 0 0 var(--spacing-xs) 0;
    font-size: var(--font-lg);
    font-weight: 600;
    color: var(--albo-primary);
    line-height: 1.3;
}

.albo-at-card__art {
    display: inline-block;
    font-size: var(--font-sm);
    font-weight: 600;
    color: var(--albo-secondary);
}

.albo-at-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: var(--spacing-md) var(--spacing-lg) var(--spacing-lg);
}

.albo-at-card__descr {
    margin: 0 0 var(--spacing-md);
    color: var(--albo-text);
    font-size: var(--font-md);
    line-height: 1.6;
    flex: 1;
}

.albo-at-card__subs-label {
    margin: 0 0 var(--spacing-xs);
    font-size: var(--font-sm);
    font-weight: 600;
    color: var(--albo-dark);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.albo-at-card__subs {
    margin: 0 0 var(--spacing-md);
    padding-left: 1.2rem;
    color: var(--albo-text);
    font-size: var(--font-md);
    line-height: 1.5;
}

.albo-at-card__subs li {
    margin-bottom: 6px;
}

.albo-at-card__subs li::marker {
    color: var(--albo-primary);
}

.albo-at-card__note {
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    font-style: italic;
    margin: auto 0 0;
    padding-top: var(--spacing-sm);
    border-top: 1px dashed var(--albo-border-light);
}

.albo-at-card--linked .albo-at-card__link {
    display: flex;
    flex-direction: column;
    flex: 1;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.albo-at-card--linked .albo-at-card__link:hover {
    text-decoration: none;
}

.albo-at-card--linked .albo-at-card__body {
    flex: 1;
    position: relative;
    padding-bottom: var(--spacing-xl);
}

.albo-at-card--linked .card-arrow {
    position: absolute;
    right: var(--spacing-md);
    bottom: var(--spacing-md);
    color: var(--albo-primary);
    font-size: 1.25rem;
}

.albo-at-card__meta {
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    margin: 0;
}

.albo-at-voci-list {
    list-style: none;
    margin: 0 0 var(--spacing-xl);
    padding: 0;
    max-width: var(--max-width);
}

.albo-at-voce-item {
    margin: 0 0 var(--spacing-sm);
    border: 1px solid var(--albo-border-light);
    border-radius: var(--radius-md);
    background: #fff;
}

.albo-at-voce-item a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--spacing-md) var(--spacing-lg);
    text-decoration: none;
    color: var(--albo-dark);
    font-weight: 600;
}

.albo-at-voce-item a:hover {
    background: var(--albo-bg-highlight);
    color: var(--albo-primary);
}

.albo-at-link-rapidi {
    margin-top: var(--spacing-xl);
}

/* Sfondo pagina: trasparente sopra header; grigio chiaro solo sul contenuto sotto chrome */
body.trasparenza-amministrativa-full .albo-pagina-pubblica {
    background-color: transparent;
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica > .albo-main-content:not(.ta-layout-albo),
body.trasparenza-amministrativa-full .albo-pagina-pubblica > main.albo-main-content:not(.ta-layout-albo) {
    background-color: var(--albo-portale-page-bg, #f0f0f0);
}

body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-at-page-shell:not(:has(> main.ta-layout-albo)):not(:has(> .ta-layout-albo-subnav)),
body.trasparenza-amministrativa-full .albo-pagina-pubblica .albo-page-shell:not(:has(> main.ta-layout-albo)):not(:has(> .ta-layout-albo-subnav)),
body.trasparenza-amministrativa-full .albo-at-layout {
    background-color: var(--albo-bg-light, #f0f4f8);
}

/*
 * Colonna centrata condivisa (reset .albo-pagina-pubblica * annulla margin:auto).
 * Header, menu, contenuto e footer allineati sulla stessa larghezza massima.
 */
.albo-container .albo-pagina-pubblica .albo-header-content,
.albo-container .albo-pagina-pubblica .albo-header-institutional__link,
.albo-container .albo-pagina-pubblica .albo-nav-list,
.albo-container .albo-pagina-pubblica .albo-portale-top-bar__inner,
.albo-container .albo-pagina-pubblica > .albo-main-content,
.albo-container .albo-pagina-pubblica > main.albo-main-content,
.albo-container .albo-pagina-pubblica > .albo-portale-colonna,
.albo-container .albo-pagina-pubblica .albo-portale-colonna,
.albo-container .albo-pagina-pubblica > .albo-at-page-shell,
.albo-container .albo-pagina-pubblica > .albo-page-shell,
.albo-container .albo-pagina-pubblica .albo-footer-brand,
.albo-container .albo-pagina-pubblica .albo-footer-grid,
.albo-container .albo-pagina-pubblica .albo-footer-bottom-content {
    width: 100%;
    max-width: var(--albo-portale-max-width, var(--max-width, 1200px));
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

/* Contenuto dentro la colonna portale: usa tutta la larghezza dello shell */
.albo-portale-colonna .albo-main-content,
.albo-at-page-shell .albo-main-content,
.albo-page-shell .albo-main-content,
.albo-portale-colonna .albo-at-layout,
.albo-at-page-shell .albo-at-layout {
    max-width: 100% !important;
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.albo-container .albo-pagina-pubblica .albo-footer-brand {
    margin-bottom: var(--albo-footer-brand-margin-bottom, var(--spacing-xl)) !important;
}

/* Ripristina margin auto (il reset .albo-pagina-pubblica * imposta margin:0 su tutti i figli) */
.albo-container .albo-pagina-pubblica.albo-at-pubblico > .albo-at-page-shell,
.albo-container .albo-pagina-pubblica > .albo-at-page-shell {
    max-width: var(--albo-portale-max-width, var(--albo-at-page-max-width, 1200px));
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

.albo-container .albo-pagina-pubblica.albo-at-pubblico > .albo-at-page-shell,
.albo-container .albo-pagina-pubblica > .albo-page-shell {
    margin-bottom: var(--spacing-xl) !important;
    padding: var(--spacing-lg) var(--spacing-md) var(--spacing-xl) !important;
    background: #fff;
}

.albo-container .albo-pagina-pubblica > .albo-page-shell {
    max-width: var(--albo-portale-max-width, var(--albo-page-max-width, 1200px));
    width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    box-sizing: border-box;
}

.albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell,
.albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell {
    max-width: var(--ta-albo-layout-max-width, var(--albo-page-max-width, 1200px));
    margin-bottom: var(--spacing-xl) !important;
    padding-bottom: calc((var(--spacing-xl) + var(--spacing-lg)) / 2) !important;
    padding-inline: var(--ta-albo-layout-shell-padding-inline, var(--spacing-xl)) !important;
}

.albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell--dettaglio,
.albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell--dettaglio {
    max-width: var(--ta-albo-layout-detail-max-width, var(--ta-albo-layout-max-width, var(--albo-page-max-width, 1200px)));
}

.albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell--dettaglio.ta-portale-atti-dettaglio-shell,
.albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell--dettaglio.ta-portale-atti-dettaglio-shell {
    max-width: var(--ta-portale-atti-hub-detail-max-width, var(--ta-portale-atti-hub-max-width, var(--albo-page-max-width, 1200px)));
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell--dettaglio,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell--dettaglio {
    max-width: var(--ta-albo-layout-detail-max-width, var(--ta-albo-layout-max-width, var(--albo-page-max-width, 1200px))) !important;
}

body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-page-shell.ta-layout-albo-shell--dettaglio.ta-portale-atti-dettaglio-shell,
body.trasparenza-amministrativa-full .albo-container .albo-pagina-pubblica > .albo-at-page-shell.ta-layout-albo-shell--dettaglio.ta-portale-atti-dettaglio-shell {
    max-width: var(--ta-portale-atti-hub-detail-max-width, var(--ta-portale-atti-hub-max-width, var(--albo-page-max-width, 1200px))) !important;
}

.albo-header-institutional {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 6px var(--spacing-lg);
    text-align: right;
    background: rgba(0, 0, 0, 0.12);
    box-sizing: border-box;
}

.albo-header-institutional__link {
    display: block;
    max-width: var(--albo-portale-max-width, var(--max-width, 1200px));
    margin-left: auto;
    margin-right: auto;
    color: #fff;
    font-size: 0.875rem;
    text-decoration: none;
    font-weight: 600;
}

.albo-header-institutional__link:hover,
.albo-header-institutional__link:focus {
    text-decoration: underline;
    color: #fff;
}

.ta-tema-admin-wrap .ta-tema-tab-panel {
    background: #fff;
    border: 1px solid #c3c4c7;
    padding: 16px 20px;
    margin-top: 0;
}

/* Specificità > reset .albo-container .albo-pagina-pubblica * { margin/padding: 0 } */
.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb {
    margin: var(--ta-at-breadcrumb-margin, 0 0 var(--spacing-md));
    padding: var(--ta-at-breadcrumb-padding, 0);
    background: var(--ta-at-breadcrumb-bg, transparent);
    border: var(--ta-at-breadcrumb-border, 0);
    border-style: var(--ta-at-breadcrumb-border-style, solid);
    border-radius: var(--ta-at-breadcrumb-radius, 0);
    color: var(--ta-at-breadcrumb-text-color, inherit);
    font-size: var(--ta-at-breadcrumb-font-size, inherit);
    line-height: var(--ta-at-breadcrumb-line-height, inherit);
}

.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb ol {
    font-size: inherit;
    color: inherit;
}

.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb ol li[aria-current="page"] {
    color: var(--ta-at-breadcrumb-text-color, var(--albo-text-muted));
}

.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb ol li a {
    color: var(--ta-at-breadcrumb-link-color, var(--albo-primary));
}

.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb ol li a:hover,
.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb ol li a:focus {
    color: var(--ta-at-breadcrumb-link-hover-color, var(--ta-at-breadcrumb-link-color, var(--albo-primary)));
}

.albo-container .albo-pagina-pubblica .albo-breadcrumb.albo-at-breadcrumb.albo-portale-breadcrumb-bar {
    margin: var(--ta-at-breadcrumb-margin, 0 calc(-1 * var(--spacing-md, 1rem)) var(--spacing-md));
    padding: var(--ta-at-breadcrumb-padding, var(--spacing-sm) var(--spacing-md));
    background: var(--ta-at-breadcrumb-bg, var(--albo-portale-breadcrumb-bg, #f8f8f8));
    border: var(--ta-at-breadcrumb-border, 0);
    border-style: var(--ta-at-breadcrumb-border-style, solid);
    border-radius: var(--ta-at-breadcrumb-radius, var(--radius-sm, 4px));
}

.albo-at-pubblico .albo-at-layout__main-inner {
    max-width: none;
    margin: 0;
    padding: 0;
    margin-top: var(--ta-at-main-margin-top, 0);
    padding: var(--ta-at-main-padding, 0);
}

/* Amministrazione trasparente — layout con sidebar ad albero */
.albo-at-layout {
    display: grid;
    grid-template-columns: var(--albo-at-sidebar-col, minmax(240px, 300px)) minmax(0, 1fr);
    gap: var(--spacing-xl);
    align-items: start;
    max-width: 100%;
    margin: 0;
    padding: 0;
    font-size: var(--albo-at-font-base, 1rem);
}

.albo-at-layout--sidebar-right {
    grid-template-columns: minmax(0, 1fr) var(--albo-at-sidebar-col, minmax(240px, 300px));
}

.albo-at-layout--sidebar-right .albo-at-layout__sidebar {
    order: 2;
}

.albo-at-layout--sidebar-right .albo-at-layout__main {
    order: 1;
}

.albo-at-layout--show-icons .albo-at-sidebar-nav__macro-link,
.albo-at-layout--show-icons .albo-at-sidebar-nav__macro-bar-link {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-sm);
}

.albo-at-sidebar-nav__macro-icon {
    flex-shrink: 0;
    margin-top: 2px;
    color: var(--albo-primary);
    font-size: 1.1em;
}

.albo-at-layout--menu-compact .albo-at-sidebar-nav__macro-bar-link {
    padding-top: var(--albo-at-menu-item-gap, 2px);
    padding-bottom: var(--albo-at-menu-item-gap, 2px);
}

.albo-at-layout--menu-normal .albo-at-sidebar-nav__macro-bar-link {
    padding-top: var(--albo-at-menu-item-gap, 6px);
    padding-bottom: var(--albo-at-menu-item-gap, 6px);
}

.albo-at-layout--menu-relaxed .albo-at-sidebar-nav__macro-bar-link {
    padding-top: var(--albo-at-menu-item-gap, 12px);
    padding-bottom: var(--albo-at-menu-item-gap, 12px);
}

.albo-container .albo-pagina-pubblica .albo-at-layout--menu-compact .albo-at-sidebar-nav__sub-item,
.albo-container .albo-pagina-pubblica .albo-at-layout--menu-compact .albo-at-sidebar-nav__summary--l2 {
    padding-top: var(--albo-at-sub-padding-top, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 2px)));
    padding-bottom: var(--albo-at-sub-padding-bottom, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 2px)));
}

.albo-container .albo-pagina-pubblica .albo-at-layout--menu-relaxed .albo-at-sidebar-nav__sub-item,
.albo-container .albo-pagina-pubblica .albo-at-layout--menu-relaxed .albo-at-sidebar-nav__summary--l2 {
    padding-top: var(--albo-at-sub-padding-top, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 12px)));
    padding-bottom: var(--albo-at-sub-padding-bottom, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 12px)));
}

.albo-at-layout__sidebar {
    position: sticky;
    top: var(--spacing-md);
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    border: 1px solid var(--albo-border-light);
    border-radius: var(--radius-md);
    background: var(--albo-at-sidebar-bg, #fff);
    color: var(--albo-at-sidebar-text, inherit);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__hub a,
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link,
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link {
    color: var(--albo-at-sidebar-text, var(--albo-dark));
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__hub a:hover,
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link:hover,
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link:hover,
.albo-at-layout__sidebar .albo-at-sidebar-nav__sezione-link:hover,
.albo-at-layout__sidebar .albo-at-sidebar-nav__subs a:hover {
    color: var(--albo-at-sidebar-accent, var(--albo-primary));
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__hub a[aria-current="page"],
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link[aria-current="page"],
.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link[aria-current="page"],
.albo-at-layout__sidebar .albo-at-sidebar-nav__sezione-link[aria-current="page"],
.albo-at-layout__sidebar .albo-at-sidebar-nav__subs a[aria-current="page"] {
    color: var(--albo-at-sidebar-accent, var(--albo-primary));
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__subs a {
    color: var(--albo-at-sidebar-text, var(--albo-text));
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__macro-icon {
    color: var(--albo-at-sidebar-accent, var(--albo-primary));
}

.albo-at-layout__sidebar .albo-at-sidebar-nav__subs a[aria-current="page"] {
    border-left-color: var(--albo-at-sidebar-accent, var(--albo-primary));
}

.albo-at-layout__main,
.albo-at-layout__main-inner {
    min-width: 0;
}

.albo-at-pubblico .ta-portale-cat-header .page-title-categorie {
    display: var(--ta-at-main-title-display, block);
    text-align: var(--ta-at-main-title-align, left);
    color: var(--ta-at-main-title-color, inherit);
    font-size: var(--ta-at-main-title-size, inherit);
    font-family: var(--ta-at-main-title-font, inherit);
    font-weight: var(--ta-at-main-title-weight, inherit);
    margin-bottom: var(--ta-at-main-title-mb, 1rem);
}

/* Fallback: applica le stesse regole anche al titolo contenuto AT nella vista sottovoce. */
.albo-at-pubblico .ta-at-voce-content-title {
    display: var(--ta-at-main-title-display, block);
    text-align: var(--ta-at-main-title-align, left);
    color: var(--ta-at-main-title-color, var(--ta-at-main-content-title-color, inherit));
    font-size: var(--ta-at-main-title-size, var(--ta-at-main-content-title-size, inherit));
    margin-bottom: var(--ta-at-main-title-mb, 1rem);
}

.albo-at-pubblico .ta-at-area-hub-content,
.albo-at-pubblico .albo-at-layout__main-inner > .entry-content,
.albo-at-pubblico .albo-at-layout__main-inner > article,
.albo-at-pubblico .albo-at-layout__main-inner > section {
    background: var(--ta-at-main-content-bg, transparent);
    padding: var(--ta-at-main-content-padding, 0);
    border-radius: var(--ta-at-main-content-radius, 0);
    font-size: var(--ta-at-main-content-font-size, inherit);
    line-height: var(--ta-at-main-content-line-height, inherit);
}

.albo-at-pubblico .ta-at-voce-content-title {
    color: var(--ta-at-main-content-title-color, var(--ta-at-main-title-color, inherit));
    font-size: var(--ta-at-main-content-title-size, var(--ta-at-main-title-size, inherit));
}

.albo-at-pubblico .ta-at-contenuto-date-footer {
    text-align: var(--ta-at-main-dates-align, left);
    color: var(--ta-at-main-dates-color, #50575e);
    font-size: var(--ta-at-main-dates-font-size, .9em);
    line-height: var(--ta-at-main-dates-line-height, 1.45);
    margin: var(--ta-at-main-dates-margin, 1.75em 0 0);
    padding: var(--ta-at-main-dates-padding, 1em 0 0);
    background: var(--ta-at-main-dates-bg, transparent);
    border-radius: var(--ta-at-main-dates-radius, 0);
    border-top: var(--ta-at-main-dates-border-top, 1px solid #dcdcde);
    border-top-style: var(--ta-at-main-dates-border-style, solid);
}

.albo-at-pubblico .ta-at-area-hub-content ul,
.albo-at-pubblico .ta-at-area-hub-content ol,
.albo-at-pubblico .albo-at-layout__main-inner > article ul,
.albo-at-pubblico .albo-at-layout__main-inner > article ol,
.albo-at-pubblico .albo-at-layout__main-inner > section ul,
.albo-at-pubblico .albo-at-layout__main-inner > section ol {
    margin: var(--ta-at-list-margin, 0 0 1rem);
    padding-left: var(--ta-at-list-padding-left, 1.25rem);
    font-size: var(--ta-at-list-font-size, inherit);
    line-height: var(--ta-at-list-line-height, inherit);
    color: var(--ta-at-list-text-color, inherit);
}

.albo-at-pubblico .ta-at-area-hub-content ul,
.albo-at-pubblico .albo-at-layout__main-inner > article ul,
.albo-at-pubblico .albo-at-layout__main-inner > section ul {
    list-style-type: var(--ta-at-list-style-ul, disc);
}

.albo-at-pubblico .ta-at-area-hub-content ol,
.albo-at-pubblico .albo-at-layout__main-inner > article ol,
.albo-at-pubblico .albo-at-layout__main-inner > section ol {
    list-style-type: var(--ta-at-list-style-ol, decimal);
}

.albo-at-pubblico .ta-at-area-hub-content li + li,
.albo-at-pubblico .albo-at-layout__main-inner > article li + li,
.albo-at-pubblico .albo-at-layout__main-inner > section li + li {
    margin-top: var(--ta-at-list-item-spacing, .35rem);
}

.albo-at-pubblico li:has(.ta-at-file-bi)::before {
    display: none !important;
    content: none !important;
    background-image: none !important;
}

.albo-at-pubblico a.ta-at-file-link {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.albo-at-pubblico a.ta-at-file-link .ta-at-file-bi {
    display: inline-block;
    margin-right: 0.4em;
    font-size: 1.35em;
    line-height: 1;
    vertical-align: -0.12em;
}

.albo-at-pubblico a.ta-at-file-pdf .ta-at-file-bi { color: #c1121f; }
.albo-at-pubblico a.ta-at-file-p7m .ta-at-file-bi { color: #6f42c1; }
.albo-at-pubblico a.ta-at-file-word .ta-at-file-bi { color: #0d6efd; }
.albo-at-pubblico a.ta-at-file-excel .ta-at-file-bi { color: #198754; }
.albo-at-pubblico a.ta-at-file-ppt .ta-at-file-bi { color: #d24726; }
.albo-at-pubblico a.ta-at-file-zip .ta-at-file-bi,
.albo-at-pubblico a.ta-at-file-file .ta-at-file-bi { color: #6c757d; }

/* Specificità > reset * { margin:0 } — titoletti, paragrafi, elenchi nel contenuto AT */
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .albo-at-breadcrumb {
    position: relative;
    z-index: 2;
    margin: 0 0 1rem;
    padding: 0.35rem 0 0.5rem;
    scroll-margin-top: var(--ta-portale-chrome-offset, 6rem);
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-portale-cat-header {
    margin: 0 0 1.1rem;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .page-title-categorie {
    margin: 0 0 var(--ta-at-main-title-mb, 0.35rem);
    font-family: var(--ta-at-main-title-font, inherit);
    font-weight: var(--ta-at-main-title-weight, inherit);
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-content-title {
    margin: 0 0 0.85rem;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body p,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content p,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .albo-at-hub-intro__content p {
    margin: 0 0 1em;
    line-height: 1.55;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body h2,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body h3,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content h2,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content h3 {
    margin: 1.35em 0 0.55em;
    line-height: 1.3;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body h2:first-child,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body h3:first-child {
    margin-top: 0.15em;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body ul,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body ol,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content ul,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content ol {
    margin: 0.6em 0 1.25em;
    padding-left: 0.25rem;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body li,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content li {
    margin: 0;
    padding: 0.28em 0;
    line-height: 1.5;
}

.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-voce-body li + li,
.albo-container .albo-pagina-pubblica .albo-at-layout__main-inner .ta-at-area-hub-content li + li {
    margin-top: 0.2em;
}


/* AT frontend: rimuove il bordo del contenitore centrale (menu + contenuto). */
.albo-at-pubblico .albo-at-page-shell,
.albo-at-pubblico .albo-main-content,
.albo-at-pubblico .albo-at-layout {
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
}

.albo-at-sidebar-nav__mobile-toggle {
    display: none;
}

.albo-at-sidebar-nav {
    padding: var(--spacing-md);
}

.albo-at-sidebar-nav__hub {
    margin: 0 0 var(--spacing-md);
    font-weight: 700;
}

.albo-at-sidebar-nav__hub a {
    text-decoration: none;
    color: var(--albo-primary);
}

.albo-at-sidebar-nav__hub a[aria-current="page"],
.albo-at-sidebar-nav__macro-link[aria-current="page"],
.albo-at-sidebar-nav__macro-bar-link[aria-current="page"],
.albo-at-sidebar-nav__subs a[aria-current="page"] {
    font-weight: 700;
    color: var(--albo-primary);
}

.albo-at-sidebar-nav__sezione-item > a,
.albo-at-sidebar-nav__sezione-link {
    font-weight: 600;
}
.albo-at-sezione-obblighi {
    margin: 0;
    padding-left: 1.25rem;
}
.albo-at-sezione-obblighi li {
    margin: 0.35rem 0;
}

.albo-at-sidebar-nav__tree {
    list-style: none;
    margin: 0;
    padding: 0;
}

.albo-at-sidebar-nav__area {
    margin: 0 0 var(--spacing-xs);
}

.albo-at-sidebar-nav__details {
    margin: 0;
}

.albo-at-sidebar-nav__expandable {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: none;
}

.albo-at-sidebar-nav__details.is-expanded > .albo-at-sidebar-nav__expandable {
    max-height: var(--ta-acc-panel-max, 5000px);
    opacity: 1;
    transition: none;
}

.albo-at-sidebar-nav__details.is-collapsing > .albo-at-sidebar-nav__expandable {
    max-height: 0 !important;
    opacity: 0;
    transition: max-height 0.28s ease, opacity 0.22s ease;
}

.albo-at-sidebar-nav__details--l2 > .albo-at-sidebar-nav__expandable {
    max-height: none !important;
    overflow: visible;
    opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
    .albo-at-sidebar-nav__details.is-collapsing > .albo-at-sidebar-nav__expandable {
        transition: none;
    }

    .albo-at-sidebar-nav__chevron .bi {
        transition: none;
    }
}

.albo-at-sidebar-nav__summary {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: stretch;
    gap: 0;
    margin: 0;
    padding: 0;
    min-height: var(--albo-at-macro-min-height, 0);
    border-bottom: 1px var(--albo-at-macro-border-style, solid) var(--albo-at-macro-border-color, rgba(255, 255, 255, 0.35));
    background: var(--albo-at-sidebar-btn-bg, var(--albo-primary, #0066cc));
    color: var(--albo-at-sidebar-btn-color, #fff);
    transition: background-color var(--albo-at-chevron-transition, 0.2s ease);
    user-select: none;
}

.albo-at-sidebar-nav__summary::-webkit-details-marker {
    display: none;
}

.albo-at-sidebar-nav__summary:hover,
.albo-at-sidebar-nav__summary:focus-visible {
    background: var(--albo-at-sidebar-btn-hover-bg, var(--albo-primary-dark, #005299));
    outline: none;
}

.albo-at-sidebar-nav__area > .albo-at-sidebar-nav__details.is-open > .albo-at-sidebar-nav__summary,
.albo-at-sidebar-nav__area > .albo-at-sidebar-nav__details.is-expanded > .albo-at-sidebar-nav__summary {
    background: var(--albo-at-macro-active-bg, var(--albo-at-sidebar-accent, #17324d));
}

.albo-at-sidebar-nav__chevron {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    min-width: 2.25rem;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    opacity: 0.95;
    cursor: pointer;
    font: inherit;
    line-height: 1;
}

.albo-at-sidebar-nav__chevron:hover,
.albo-at-sidebar-nav__chevron:focus-visible {
    opacity: 1;
    outline: none;
}

.albo-at-sidebar-nav__chevron .bi {
    font-size: var(--albo-at-sub-chevron-size, 0.7rem);
    line-height: 1;
    transform: rotate(0deg);
    transition: transform var(--albo-at-chevron-transition, 0.25s ease);
}

.albo-at-sidebar-nav__details.is-open > .albo-at-sidebar-nav__summary > .albo-at-sidebar-nav__chevron .bi,
.albo-at-sidebar-nav__details.is-expanded > .albo-at-sidebar-nav__summary > .albo-at-sidebar-nav__chevron .bi {
    transform: rotate(90deg);
}

.albo-at-sidebar-nav__chevron--static {
    cursor: default;
    pointer-events: none;
}

.albo-at-sidebar-nav__details.is-open > .albo-at-sidebar-nav__summary > .albo-at-sidebar-nav__chevron--static .bi,
.albo-at-sidebar-nav__details.is-expanded > .albo-at-sidebar-nav__summary > .albo-at-sidebar-nav__chevron--static .bi {
    transform: none;
}

.albo-at-sidebar-nav__macro-bar-link {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    min-width: 0;
    padding: var(--albo-at-menu-item-gap, 0.65rem) var(--spacing-md);
    text-decoration: none;
    color: inherit;
    line-height: 1.35;
    font-weight: 600;
    font-size: inherit;
    cursor: pointer;
}

.albo-at-sidebar-nav__macro-bar-link:hover,
.albo-at-sidebar-nav__macro-bar-link:focus-visible {
    color: inherit;
    text-decoration: underline;
    outline: none;
}

.albo-at-sidebar-nav__macro-title {
    display: block;
    min-width: 0;
    font-weight: inherit;
    font-size: inherit;
}

.albo-at-sidebar-nav__macro-art {
    display: block;
    font-size: var(--font-sm);
    color: var(--albo-text-muted);
    margin-top: 2px;
}

.albo-at-sidebar-nav__subs {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--albo-at-sub-bg, #2c3e50);
}

.albo-at-sidebar-nav__sezione {
    margin: 0;
}

.albo-at-sidebar-nav__summary--l2 {
    background: var(--albo-at-sub-row-bg, transparent);
    color: var(--albo-at-sub-text, #fff);
    border-bottom: 1px var(--albo-at-sub-border-style, dashed) var(--albo-at-sub-border-color, rgba(255, 255, 255, 0.25));
    min-height: var(--albo-at-sub-min-height, 0);
}

.albo-at-sidebar-nav__summary--l2:hover,
.albo-at-sidebar-nav__summary--l2:focus-visible {
    background: var(--albo-at-sub-hover-bg, rgba(255, 255, 255, 0.08));
}

.albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2,
.albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 {
    background: var(--albo-at-sub-active-bg, rgba(0, 0, 0, 0.18));
    color: var(--albo-at-sidebar-accent, var(--albo-at-sub-text, #fff));
}

.albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__sezione-link,
.albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__sezione-link,
.albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__chevron,
.albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__chevron {
    color: var(--albo-at-sidebar-accent, var(--albo-at-sub-text, #fff));
}

.albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__chevron {
    width: var(--albo-at-sub-chevron-width, 2rem);
    min-width: var(--albo-at-sub-chevron-width, 2rem);
    color: var(--albo-at-sub-chevron-color, var(--albo-at-sub-text, #fff));
}

.albo-at-sidebar-nav__sezione-link {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    min-width: 0;
    padding: 0;
    text-decoration: none;
    color: inherit;
    font-size: var(--albo-at-sub-font-size, 0.9375em);
    line-height: 1.4;
}

.albo-at-sidebar-nav__obblighi {
    list-style: none;
    margin: 0;
    padding: 0;
    background: var(--albo-at-l3-bg, rgba(0, 0, 0, 0.12));
}

.albo-at-sidebar-nav__obblighi .albo-at-sidebar-nav__obbligo-item {
    padding-left: 0.85rem;
}

.albo-at-sidebar-nav__sub-item {
    display: flex;
    align-items: center;
    gap: 0;
    margin: 0;
    border-bottom: 1px var(--albo-at-sub-border-style, dashed) var(--albo-at-sub-border-color, rgba(255, 255, 255, 0.25));
}

.albo-at-sidebar-nav__sub-item:last-child {
    border-bottom: 0;
}

.albo-at-sidebar-nav__sub-chevron {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--albo-at-sub-chevron-width, 2rem);
    min-width: var(--albo-at-sub-chevron-width, 2rem);
    color: var(--albo-at-sub-chevron-color, var(--albo-at-sub-text, #fff));
    opacity: var(--albo-at-sub-chevron-opacity, 0.85);
}

.albo-at-sidebar-nav__sub-chevron .bi {
    font-size: var(--albo-at-sub-chevron-size, 0.7rem);
}

.albo-at-sidebar-nav__subs a {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    min-width: 0;
    text-decoration: none;
    color: var(--albo-at-sub-text, #fff);
    font-size: var(--albo-at-sub-font-size, 0.9375em);
    line-height: 1.4;
    font-weight: 400;
}

/* Specificità > reset .albo-container .albo-pagina-pubblica * { padding: 0 } */
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__subs {
    padding-top: var(--albo-at-sub-panel-padding-top, 0);
    padding-right: var(--albo-at-sub-panel-padding-right, 0);
    padding-bottom: var(--albo-at-sub-panel-padding-bottom, 0);
    padding-left: var(--albo-at-sub-panel-padding-left, 0);
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__subs > .albo-at-sidebar-nav__sub-item,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__subs > .albo-at-sidebar-nav__sezione {
    margin-top: var(--albo-at-sub-margin-top, var(--albo-at-sub-margin-y, 0));
    margin-right: var(--albo-at-sub-margin-right, var(--albo-at-sub-margin-x, 0));
    margin-bottom: var(--albo-at-sub-margin-bottom, var(--albo-at-sub-margin-y, 0));
    margin-left: var(--albo-at-sub-margin-left, var(--albo-at-sub-margin-x, 0));
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__obblighi .albo-at-sidebar-nav__sub-item {
    margin: 0;
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__summary--l2 {
    min-height: var(--albo-at-sub-min-height, 0);
    padding-top: var(--albo-at-sub-padding-top, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 0.5rem)));
    padding-right: var(--albo-at-sub-padding-right, var(--albo-at-sub-padding-x, var(--spacing-md, 0.75rem)));
    padding-bottom: var(--albo-at-sub-padding-bottom, var(--albo-at-sub-padding-y, var(--albo-at-menu-item-gap, 0.5rem)));
    padding-left: var(--albo-at-sub-padding-left, 0);
    box-sizing: border-box;
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item {
    background: var(--albo-at-sub-row-bg, transparent);
    transition: background-color var(--albo-at-chevron-transition, 0.2s ease);
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item:hover,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item:focus-within {
    background: var(--albo-at-sub-hover-bg, rgba(255, 255, 255, 0.08));
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item.is-current,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item:has(a[aria-current="page"]) {
    background: var(--albo-at-sub-active-bg, rgba(0, 0, 0, 0.18));
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__subs a,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sezione-link {
    padding: 0;
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__obblighi .albo-at-sidebar-nav__obbligo-item {
    padding-left: calc(1.35rem + var(--albo-at-sub-padding-left, 0px));
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__summary--l2 {
    display: flex;
    align-items: stretch;
    background: var(--albo-at-sub-row-bg, transparent);
    color: var(--albo-at-sub-text, #fff);
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__summary--l2:hover,
.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__summary--l2:focus-visible {
    background: var(--albo-at-sub-hover-bg, rgba(255, 255, 255, 0.08));
}

.albo-at-sidebar-nav__subs a:hover,
.albo-at-sidebar-nav__subs a:focus-visible {
    color: var(--albo-at-sub-text, #fff);
    text-decoration: underline;
    outline: none;
}

.albo-at-sidebar-nav__subs a[aria-current="page"] {
    font-weight: 700;
    text-decoration: underline;
    border-left: 0;
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__subs a[aria-current="page"] {
    padding-inline-start: 0;
}

/* Stile ad albero PA — pannello menu senza cornice né scroll interno */
.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar {
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    border: 0;
    box-shadow: none;
    background: var(--albo-at-sidebar-bg, transparent);
    padding: 0;
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav {
    padding: var(--albo-at-sidebar-nav-padding, 0);
    overflow: visible;
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav__tree {
    border-radius: var(--radius-sm, 2px);
    overflow: hidden;
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav__area:last-child > .albo-at-sidebar-nav__details > .albo-at-sidebar-nav__summary {
    border-bottom: 0;
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav__title {
    margin-bottom: var(--spacing-md);
    padding: 0;
    border: 0;
    color: var(--albo-at-sidebar-title-color, var(--albo-at-sidebar-text, var(--albo-dark)));
    font-size: 1.125rem;
    font-weight: 700;
}

.albo-at-layout--sidebar-title-align-left .albo-at-sidebar-nav__title {
    text-align: left;
}

.albo-at-layout--sidebar-title-align-center .albo-at-sidebar-nav__title {
    text-align: center;
}

.albo-at-layout--sidebar-title-align-right .albo-at-sidebar-nav__title {
    text-align: right;
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav__hub {
    display: none;
}

.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link,
.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link {
    color: var(--albo-at-sidebar-btn-color, #fff);
}

.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link:hover,
.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link:hover,
.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-link[aria-current="page"],
.albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__macro-bar-link[aria-current="page"] {
    color: var(--albo-at-sidebar-btn-color, #fff);
}

.albo-at-layout--sidebar-style-tree .albo-at-sidebar-nav__macro-icon {
    color: inherit;
}

/*
 * Sottovoci (albero): testo normale = sidebar_sub_text;
 * hover/attivo = Accento sul testo + Sfondo riga hover/voce corrente.
 * Specificità alta (container + tree) così Accento bianco non resta su pannello #f4f4f4.
 */
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__subs a,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sezione-link {
    color: var(--albo-at-sub-text, #fff);
    background-color: transparent;
}

.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:hover,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:focus-within,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__summary--l2:hover,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__summary--l2:focus-visible {
    background-color: var(--albo-at-sub-hover-bg, rgba(255, 255, 255, 0.08));
}

.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:hover > a,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:focus-within > a,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__subs a:hover,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__subs a:focus-visible,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__summary--l2:hover .albo-at-sidebar-nav__sezione-link,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__summary--l2:focus-visible .albo-at-sidebar-nav__sezione-link {
    color: var(--albo-at-sidebar-accent, var(--albo-at-sub-text, #fff));
    background-color: transparent;
}

.albo-container .albo-pagina-pubblica .albo-at-sidebar-nav__sub-item.is-current,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item.is-current,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:has(> a[aria-current="page"]),
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sub-item:has(a[aria-current="page"]),
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 {
    background-color: var(--albo-at-sub-active-bg, rgba(0, 0, 0, 0.18));
}

/* L2 aperta: stesso sfondo scuro della voce corrente → testo Accento (non Testo normale). */
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 {
    color: var(--albo-at-sidebar-accent, #fff);
}

.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__sezione-link,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__sezione-link,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-open > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__chevron,
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__details--l2.is-expanded > .albo-at-sidebar-nav__summary--l2 .albo-at-sidebar-nav__chevron {
    color: var(--albo-at-sidebar-accent, #fff);
}

.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__subs a[aria-current="page"],
.albo-container .albo-pagina-pubblica .albo-at-layout--sidebar-style-tree .albo-at-layout__sidebar .albo-at-sidebar-nav__sezione-link[aria-current="page"] {
    color: var(--albo-at-sidebar-accent, var(--albo-at-sub-text, #fff));
    background-color: transparent;
}

.albo-at-area-hint {
    font-style: italic;
    color: var(--albo-text-muted);
}

/* Indice sottovoci sulla pagina macroarea / tipologia (chevron al posto del pallino) */
.albo-container .albo-pagina-pubblica .albo-at-index-links {
    margin: 1.15rem 0 0;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__list--nested {
    margin: 0.15rem 0 0.65rem 1.35rem;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__item,
.albo-container .albo-pagina-pubblica .albo-at-index-links__group {
    margin: 0;
    padding: 0;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 0.1rem;
    text-decoration: none;
    color: var(--albo-primary, #003366);
    border-bottom: 1px solid var(--albo-border, #dcdcde);
    line-height: 1.4;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__link:hover,
.albo-container .albo-pagina-pubblica .albo-at-index-links__link:focus {
    color: var(--albo-link-hover, var(--albo-primary, #001f3f));
    text-decoration: underline;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__chevron {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.1rem;
    color: var(--albo-primary, #c8102e);
    opacity: 0.9;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__chevron .bi {
    font-size: 0.75rem;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__label {
    flex: 1 1 auto;
    min-width: 0;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__link--sez .albo-at-index-links__label {
    font-weight: 600;
}
.albo-container .albo-pagina-pubblica .albo-at-index-links__ext {
    flex: 0 0 auto;
    font-size: 0.8rem;
    opacity: 0.75;
}

/* Hub AT — contenuto introduttivo (pagina Contenuto AT) */
.albo-at-hub-intro__header {
    margin-bottom: var(--spacing-md, 1rem);
}

.albo-at-hub-intro__content {
    max-width: 100%;
    line-height: 1.6;
    color: var(--albo-text);
}

.albo-at-hub-intro__content a {
    color: var(--albo-primary);
}

.albo-at-hub-intro__content ul,
.albo-at-hub-intro__content ol {
    margin: 0 0 var(--spacing-md);
    padding-left: 1.5rem;
}

.albo-at-hub-intro__content h2,
.albo-at-hub-intro__content h3,
.albo-at-hub-intro__content h4 {
    margin: var(--spacing-md) 0 var(--spacing-sm);
    color: var(--albo-dark);
}

.albo-at-hub-intro-unavailable {
    color: var(--albo-text-muted);
}

@media (max-width: 991px) {
    .albo-at-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .albo-at-sidebar-nav__mobile-toggle {
        display: inline-flex;
        align-items: center;
        gap: var(--spacing-xs);
        margin-bottom: var(--spacing-md);
        padding: var(--spacing-sm) var(--spacing-md);
        border: 1px solid var(--albo-border-light);
        border-radius: var(--radius-md);
        background: #fff;
        color: var(--albo-primary);
        font-weight: 600;
        cursor: pointer;
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

    .albo-at-layout__sidebar {
        position: fixed;
        left: 0;
        top: 0;
        z-index: 10050;
        width: min(320px, 88vw);
        max-height: 100vh;
        margin: 0;
        transform: translateX(-110%);
        transition: transform 0.2s ease;
        border-radius: 0;
    }

    .albo-at-layout--sidebar-right .albo-at-layout__sidebar {
        left: auto;
        right: 0;
        transform: translateX(110%);
    }

    .albo-at-layout__sidebar.is-open {
        transform: translateX(0);
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.15);
    }

    .albo-at-layout--sidebar-right .albo-at-layout__sidebar.is-open {
        box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    }

    .albo-at-layout__sidebar.is-open::before {
        content: "";
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.35);
        z-index: -1;
    }
}

@media (max-width: 576px) {
    .albo-ente-home__grid {
        grid-template-columns: 1fr;
    }
}

/* Barra superiore portale + accento menu */
.albo-portale-top-bar {
    width: 100%;
    max-width: none;
    background: var(--albo-portale-topbar-bg, #1a1a1a);
    color: var(--albo-portale-topbar-color, #fff);
    font-size: var(--albo-portale-topbar-font-size, 0.8125rem);
    line-height: 1.4;
    min-height: var(--albo-portale-topbar-min-height, 32px);
    display: flex;
    align-items: center;
    box-sizing: border-box;
    border-bottom: var(--albo-portale-topbar-border-bottom, none);
}

.albo-portale-top-bar__inner {
    max-width: var(--albo-portale-max-width, var(--max-width, 1200px));
    width: 100%;
    margin: 0 auto;
    padding: 0 var(--albo-portale-topbar-padding-x, var(--spacing-lg));
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
}

.albo-portale-top-bar__start {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}

.albo-portale-top-bar__end {
    flex: 0 0 auto;
    text-align: right;
}

.albo-portale-top-bar .btn-area-riservata,
.albo-portale-top-bar__area-riservata {
    white-space: nowrap;
    padding: var(--albo-portale-topbar-btn-padding-y, 0.35rem) var(--albo-portale-topbar-btn-padding-x, 0.75rem);
    border-radius: var(--albo-portale-topbar-btn-border-radius, var(--radius-sm, 4px));
    background: var(--albo-portale-topbar-btn-bg, var(--albo-primary, #0066cc));
    color: var(--albo-portale-topbar-btn-color, #fff) !important;
}

.albo-portale-top-bar .btn-area-riservata:hover,
.albo-portale-top-bar .btn-area-riservata:focus,
.albo-portale-top-bar__area-riservata:hover,
.albo-portale-top-bar__area-riservata:focus {
    background: var(--albo-portale-topbar-btn-hover-bg, var(--albo-primary-dark, #005299));
    color: var(--albo-portale-topbar-btn-color, #fff) !important;
}

.albo-portale-top-bar__link,
.albo-portale-top-bar__text {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

.albo-portale-top-bar__link:hover,
.albo-portale-top-bar__link:focus {
    text-decoration: underline;
    color: var(--albo-portale-topbar-link-hover-color, inherit);
}

.albo-portale-nav-accent {
    width: 100%;
    max-width: none;
    margin: 0;
    height: var(--albo-portale-nav-accent-height, 4px);
    background: var(--albo-portale-nav-accent, var(--albo-primary));
    flex-shrink: 0;
}

/* AT — titolo menu laterale */
.albo-at-sidebar-nav__title {
    margin: 0 0 var(--spacing-sm);
    font-weight: 700;
    font-size: var(--font-md);
    color: var(--albo-at-sidebar-title-color, var(--albo-at-sidebar-text, var(--albo-dark)));
}

/* AT — sidebar a card (macroaree) */

.albo-at-layout--sidebar-style-cards .albo-at-layout__sidebar {
    border: 0;
    box-shadow: none;
    background: transparent;
}

.albo-at-layout--sidebar-style-cards .albo-at-sidebar-nav {
    padding: 0;
}

.albo-at-sidebar-nav__cards {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.albo-at-sidebar-nav__card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-sm);
    padding: 0.75rem 1rem;
    border-radius: var(--radius-sm, 4px);
    background: var(--albo-at-sidebar-btn-bg, #b5121b);
    color: var(--albo-at-sidebar-btn-color, #fff);
    text-decoration: none;
    font-weight: 700;
    line-height: 1.35;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
    transition: background-color 0.15s ease, filter 0.15s ease;
}

.albo-at-sidebar-nav__card:hover,
.albo-at-sidebar-nav__card:focus-visible {
    background: var(--albo-at-sidebar-btn-hover-bg, #8f0e15);
    color: var(--albo-at-sidebar-btn-color, #fff);
    text-decoration: none;
    filter: brightness(1.05);
}

.albo-at-sidebar-nav__card[aria-current="page"] {
    outline: 3px solid var(--albo-at-sidebar-accent, rgba(255, 255, 255, 0.5));
    outline-offset: 2px;
}

.albo-at-sidebar-nav__card-title {
    flex: 1;
    min-width: 0;
}

.albo-at-sidebar-nav__card-chevron {
    flex-shrink: 0;
    font-size: 1rem;
    opacity: 0.9;
}

.albo-at-sidebar-nav__card-subs {
    list-style: none;
    margin: 0 0 var(--spacing-xs);
    padding: 0 0 var(--spacing-xs) var(--spacing-md);
}

.albo-at-sidebar-nav__card-subs a {
    display: block;
    padding: 4px 0;
    text-decoration: none;
    color: var(--albo-at-sidebar-text, var(--albo-text));
    font-size: var(--font-sm);
}

.albo-at-sidebar-nav__card-subs a:hover,
.albo-at-sidebar-nav__card-subs a[aria-current="page"] {
    color: var(--albo-at-sidebar-accent, var(--albo-primary));
    font-weight: 600;
}

.albo-at-sidebar-nav__card-sez {
    font-weight: 600;
    margin: 0.35rem 0 0.15rem;
}

.albo-at-sidebar-nav__card-sez > ul {
    list-style: none;
    margin: 0.15rem 0 0.45rem;
    padding-left: 0.9rem;
    font-weight: 400;
}

.albo-at-sidebar-nav__card-subs .albo-at-sidebar-nav__sub-chevron {
    display: none;
}

.albo-at-layout--sidebar-macro-only .albo-at-sidebar-nav__card-subs {
    display: none;
}

/* ========================================
   PORTALE CHROME — shrink + menu toggle
======================================== */
.albo-portale-chrome {
    position: sticky;
    top: 0;
    z-index: 10040;
    width: 100%;
    max-width: none;
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    align-self: stretch;
    background-color: var(--albo-primary, #0066cc);
    --ta-shrink-progress: 0;
    --ta-shrink-collapse-max: 8rem;
    --ta-header-pad-expanded: var(--albo-header-padding-y, var(--spacing-xl, 1.5rem));
    --ta-header-pad-shrunk: var(--spacing-sm, 0.5rem);
    --ta-logo-scale-end: 0.6;
}

.albo-pagina-pubblica > .albo-skip-link + .albo-portale-chrome,
.albo-pagina-pubblica > .albo-portale-chrome:first-child {
    margin-top: 0 !important;
}

html:not(.admin-bar) .albo-pagina-pubblica > .albo-skip-link + .albo-portale-chrome,
html:not(.admin-bar) .albo-pagina-pubblica > .albo-portale-chrome:first-child {
    padding-top: 0 !important;
}

/* Sticky sotto admin bar: offset solo via ::before, non top:32px (evita doppia fascia). */
html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome,
html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome {
    top: 0;
}

/* Shrink attivo: sticky (niente fixed/spacer — gestito da ta-portale-frontend.js) */
.albo-portale-chrome.ta-shrink-enabled {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    z-index: 10040;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled,
html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled,
body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome.ta-shrink-enabled {
    top: var(--wp-admin--admin-bar--height, 32px) !important;
    margin-top: var(--wp-admin--admin-bar--height, 32px) !important;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled::before,
html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled::before,
body.trasparenza-amministrativa-full.admin-bar .albo-portale-chrome.ta-shrink-enabled::before {
    display: none !important;
    height: 0 !important;
    content: none !important;
}

.albo-portale-chrome.ta-shrink-enabled + .albo-portale-chrome-spacer {
    display: none !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Legacy fixed pin (solo se shrink disattivato nel tema) */
.albo-portale-chrome--pinned:not(.ta-shrink-enabled) {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin-top: 0 !important;
    z-index: 10040;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome--pinned:not(.ta-shrink-enabled),
html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome--pinned:not(.ta-shrink-enabled) {
    top: var(--wp-admin--admin-bar--height, 32px) !important;
}

html.admin-bar body.trasparenza-amministrativa-full .albo-portale-chrome--pinned:not(.ta-shrink-enabled)::before,
html.admin-bar.trasparenza-amministrativa-full .albo-portale-chrome--pinned:not(.ta-shrink-enabled)::before {
    display: none !important;
    height: 0 !important;
    content: none !important;
}

.albo-portale-chrome-spacer {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100%;
    flex-shrink: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0;
    overflow: hidden;
    pointer-events: none;
}

.albo-portale-chrome--pinned + .albo-portale-chrome-spacer {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
}

body.trasparenza-amministrativa-full .albo-portale-chrome:not(.albo-portale-chrome--pinned) + .albo-portale-chrome-spacer {
    display: none !important;
    height: 0 !important;
}

/* Shrink progressivo legato allo scroll (--ta-shrink-progress via JS) */
body.trasparenza-amministrativa-full .albo-portale-chrome.ta-shrink-enabled .albo-header-trasparenza,
.albo-portale-chrome.ta-shrink-enabled .albo-header-trasparenza {
    padding-top: calc(
        (1 - var(--ta-shrink-progress)) * var(--ta-header-pad-expanded)
        + var(--ta-shrink-progress) * var(--ta-header-pad-shrunk)
    ) !important;
    padding-bottom: calc(
        (1 - var(--ta-shrink-progress)) * var(--ta-header-pad-expanded)
        + var(--ta-shrink-progress) * var(--ta-header-pad-shrunk)
    ) !important;
    box-shadow: 0 calc(2px - 1px * var(--ta-shrink-progress)) calc(10px - 4px * var(--ta-shrink-progress)) rgba(0, 0, 0, calc(0.1 - 0.02 * var(--ta-shrink-progress)));
}

.albo-portale-chrome.ta-shrink-enabled .albo-logo-ente,
.albo-portale-chrome.ta-shrink-enabled .albo-logo-placeholder {
    transform: scale(calc(1 - var(--ta-shrink-progress) * (1 - var(--ta-logo-scale-end))));
    transform-origin: center left;
}

.albo-portale-chrome.ta-shrink-enabled .albo-header-title,
.albo-portale-chrome.ta-shrink-enabled a.albo-header-brand .albo-header-ente-nome {
    font-size: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-header-title-size, var(--font-4xl, 1.75rem))
        + var(--ta-shrink-progress) * var(--albo-header-title-size-shrunk, var(--font-2xl, 1.25rem))
    );
}

.albo-portale-chrome.ta-shrink-enabled .albo-header-institutional,
.albo-portale-chrome.ta-shrink-enabled .albo-portale-top-bar {
    max-height: calc(var(--ta-shrink-collapse-max) * (1 - var(--ta-shrink-progress)));
    opacity: calc(1 - var(--ta-shrink-progress));
    margin-block: calc(-0.25rem * var(--ta-shrink-progress));
    padding-block: calc(6px * (1 - var(--ta-shrink-progress)));
    overflow: hidden;
}

.albo-portale-chrome.ta-shrink-enabled .albo-header-subtitle,
.albo-portale-chrome.ta-shrink-enabled .albo-at-profilo-badge {
    max-height: calc(4rem * (1 - var(--ta-shrink-progress)));
    opacity: calc(1 - var(--ta-shrink-progress));
    margin-block: calc(-0.15rem * var(--ta-shrink-progress));
    overflow: hidden;
}

.albo-portale-chrome.ta-shrink-enabled .albo-nav-livello1 {
    padding-top: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-padding-y, var(--spacing-md))
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-y-shrunk, 0.35rem)
    );
    padding-bottom: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-padding-y, var(--spacing-md))
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-y-shrunk, 0.35rem)
    );
}

.albo-portale-chrome.ta-shrink-enabled .albo-nav-link {
    font-size: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-l1-font-size, var(--font-2xl, 1.25rem))
        + var(--ta-shrink-progress) * var(--albo-nav-l1-font-size-shrunk, var(--font-lg, 1.125rem))
    );
    padding-top: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-link-padding-y, 0.65rem)
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-y-shrunk, 0.35rem)
    );
    padding-bottom: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-link-padding-y, 0.65rem)
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-y-shrunk, 0.35rem)
    );
    padding-left: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-link-padding-x, 1.25rem)
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-x-shrunk, 0.75rem)
    );
    padding-right: calc(
        (1 - var(--ta-shrink-progress)) * var(--albo-nav-link-padding-x, 1.25rem)
        + var(--ta-shrink-progress) * var(--albo-nav-link-padding-x-shrunk, 0.75rem)
    );
}

/* Stato compatto: solo comportamento (pin, hamburger); dimensioni da --ta-shrink-progress */
.albo-portale-chrome.ta-shrink-enabled.albo-portale-chrome--shrunk .albo-header-trasparenza {
    min-height: var(--albo-header-min-height-shrunk, 0);
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-header-trasparenza {
    padding-top: var(--spacing-sm, 0.5rem) !important;
    padding-bottom: var(--spacing-sm, 0.5rem) !important;
    box-shadow: 0 1px 6px rgba(0, 0, 0, 0.12);
    min-height: var(--albo-header-min-height-shrunk, 0);
}

.albo-portale-chrome--shrunk .albo-header-trasparenza {
    justify-content: flex-start;
}

.albo-portale-chrome--shrunk .albo-header-content {
    flex: 1 1 auto;
    width: 100%;
    align-self: stretch;
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-logo-ente {
    height: var(--albo-header-logo-height-shrunk, 48px);
    width: auto;
    max-height: var(--albo-header-logo-height-shrunk, 48px);
    object-fit: contain;
    transform: none;
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-logo-placeholder {
    height: var(--albo-header-logo-height-shrunk, 48px);
    width: var(--albo-header-logo-height-shrunk, 48px);
    font-size: 1.5rem;
    transform: none;
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-header-institutional,
.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-portale-top-bar {
    max-height: 0;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0;
    overflow: hidden;
    border: 0;
    pointer-events: none;
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-header-title {
    font-size: var(--albo-header-title-size-shrunk, var(--font-2xl, 1.35rem));
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-header-subtitle,
.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-at-profilo-badge {
    max-height: 0;
    margin: 0;
    padding: 0;
    opacity: 0;
    overflow: hidden;
}

.albo-portale-chrome.ta-shrink-enabled.albo-portale-chrome--shrunk .albo-header-institutional,
.albo-portale-chrome.ta-shrink-enabled.albo-portale-chrome--shrunk .albo-portale-top-bar {
    pointer-events: none;
}

.albo-portale-chrome--shrunk .albo-header-ente-nome {
    margin-bottom: 0;
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-nav-livello1 {
    min-height: var(--albo-nav-min-height-shrunk, 0);
}

.albo-portale-chrome:not(.ta-shrink-enabled).albo-portale-chrome--shrunk .albo-nav-link {
    font-size: var(--albo-nav-l1-font-size-shrunk, var(--albo-nav-l1-font-size, var(--font-2xl)));
    padding: var(--albo-nav-link-padding-y-shrunk, 0.35rem) var(--albo-nav-link-padding-x-shrunk, 0.75rem);
}

/* Hamburger nello header compatto (sostituisce la barra "Menu sezioni") */
.albo-nav-hamburger {
    display: none;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    gap: var(--albo-nav-hamburger-gap, 0.3rem);
    margin-left: auto;
    margin-right: 0;
    padding: var(--albo-nav-hamburger-padding-y, 0.25rem) var(--albo-nav-hamburger-padding-x, 0.5rem);
    border: 2px solid rgba(255, 255, 255, 0.85);
    border-radius: var(--radius-sm, 4px);
    background: rgba(0, 0, 0, 0.15);
    color: #fff;
    font-weight: 700;
    font-size: var(--font-sm, 0.875rem);
    font-family: inherit;
    cursor: pointer;
    line-height: 1;
    box-sizing: border-box;
}

.albo-nav-hamburger__icon {
    font-size: 1.35rem;
    line-height: 1;
    flex-shrink: 0;
}

.albo-nav-hamburger__label {
    display: inline-block;
    padding: 0;
    white-space: nowrap;
}

body.trasparenza-amministrativa-full .albo-portale-chrome--shrunk .albo-header-trasparenza {
    justify-content: flex-start !important;
}

.albo-nav-hamburger:hover,
.albo-nav-hamburger:focus-visible {
    background: rgba(0, 0, 0, 0.28);
    color: #fff;
    outline: 3px solid #fff;
    outline-offset: 2px;
}

.albo-nav-hamburger[hidden] {
    display: none !important;
}

.albo-portale-chrome--shrunk[data-ta-shrink-hide-menu="1"] .albo-nav-hamburger:not([hidden]) {
    display: inline-flex;
}

.albo-portale-chrome--shrunk[data-ta-shrink-hide-menu="1"] .albo-nav-livello1 {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 10050;
    max-height: 0;
    padding-top: 0;
    padding-bottom: 0;
    opacity: 0;
    overflow: hidden;
    border-bottom-width: 3px;
    pointer-events: none;
    box-shadow: none;
}

.albo-portale-chrome--shrunk.albo-portale-chrome--menu-open .albo-nav-livello1 {
    max-height: min(70vh, 420px);
    opacity: 1;
    padding: var(--albo-nav-padding-y, var(--spacing-md)) 0;
    overflow-y: auto;
    pointer-events: auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

.albo-nav-principale-toggle {
    display: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .albo-header-trasparenza,
    .albo-logo-ente,
    .albo-logo-placeholder,
    .albo-header-title,
    .albo-nav-livello1,
    .albo-nav-link,
    .albo-header-institutional,
    .albo-portale-top-bar,
    .albo-portale-chrome--shrunk .albo-header-subtitle,
    .albo-portale-chrome-spacer {
        transition: none !important;
    }

    .albo-portale-chrome.ta-shrink-enabled .albo-logo-ente,
    .albo-portale-chrome.ta-shrink-enabled .albo-logo-placeholder {
        transform: none;
    }
}

/* Scroll-driven: niente transition (aggiornato ogni frame via --ta-shrink-progress) */
.albo-portale-chrome.ta-shrink-enabled .albo-header-trasparenza,
.albo-portale-chrome.ta-shrink-enabled .albo-header-institutional,
.albo-portale-chrome.ta-shrink-enabled .albo-portale-top-bar,
.albo-portale-chrome.ta-shrink-enabled .albo-logo-ente,
.albo-portale-chrome.ta-shrink-enabled .albo-logo-placeholder,
.albo-portale-chrome.ta-shrink-enabled .albo-header-title,
.albo-portale-chrome.ta-shrink-enabled .albo-header-subtitle,
.albo-portale-chrome.ta-shrink-enabled .albo-at-profilo-badge,
.albo-portale-chrome.ta-shrink-enabled .albo-nav-livello1,
.albo-portale-chrome.ta-shrink-enabled .albo-nav-link,
.albo-portale-chrome.ta-shrink-enabled a.albo-header-brand .albo-header-ente-nome {
    transition: none;
}

.albo-header-trasparenza,
.albo-header-institutional,
.albo-portale-top-bar,
.albo-logo-ente,
.albo-logo-placeholder,
.albo-header-title,
.albo-header-subtitle,
.albo-at-profilo-badge,
.albo-nav-livello1,
.albo-nav-link {
    transition:
        max-height 0.32s ease,
        opacity 0.32s ease,
        padding 0.32s ease,
        margin 0.32s ease,
        height 0.32s ease,
        font-size 0.32s ease,
        box-shadow 0.32s ease,
        transform 0.32s ease;
}

/* Torna su */
.albo-back-to-top {
    position: fixed;
    z-index: 10060;
    bottom: 1.25rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.65rem 1rem;
    border: 0;
    border-radius: var(--radius-md, 6px);
    background: var(--albo-btt-bg, var(--albo-primary));
    color: var(--albo-btt-color, #fff);
    font-weight: 700;
    font-size: var(--font-sm, 0.875rem);
    font-family: inherit;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.2);
}

.albo-back-to-top--right {
    right: 1.25rem;
}

.albo-back-to-top--left {
    left: 1.25rem;
}

.albo-back-to-top:hover,
.albo-back-to-top:focus-visible {
    filter: brightness(1.08);
    color: var(--albo-btt-color, #fff);
    outline: 3px solid var(--albo-primary);
    outline-offset: 2px;
}

.albo-back-to-top[hidden] {
    display: none !important;
}

.albo-back-to-top__icon {
    font-size: 1.1em;
    line-height: 1;
}

/* ========================================
   UTILITY CLASSES
======================================== */
.text-primary { color: var(--albo-primary) !important; }
.bg-primary { background-color: var(--albo-primary) !important; }
.me-1 { margin-right: 0.25rem !important; }
.me-2 { margin-right: 0.5rem !important; }
.ms-1 { margin-left: 0.25rem !important; }
.mb-2 { margin-bottom: 0.5rem !important; }

/* ========================================
   PASSPORT LOGIN (ingresso operatori)
======================================== */
html:has(body.ta-passport-page),
body.ta-passport-page {
    background: #eef1f5 !important;
    min-height: 100%;
}

body.ta-passport-page .albo-container--passport {
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border: 0;
}

.ta-passport {
    --ta-passport-blue: #2f6fed;
    --ta-passport-ink: #1b2a4a;
    --ta-passport-muted: #6b7a90;
    --ta-passport-line: #d7dee8;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1.25rem 1.5rem;
    box-sizing: border-box;
    font-family: 'Titillium Web', system-ui, sans-serif;
    background:
        radial-gradient(circle at 12% 8%, rgba(47, 111, 237, 0.09), transparent 28%),
        radial-gradient(circle at 88% 12%, rgba(47, 111, 237, 0.06), transparent 22%),
        #eef1f5;
}

.ta-passport__stage {
    width: 100%;
    max-width: 26rem;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 1.75rem;
}

.ta-passport__brand {
    text-align: center;
}

.ta-passport__logo {
    width: 4.25rem;
    height: 4.25rem;
    margin: 0 auto 1rem;
    border-radius: 1rem;
    background: linear-gradient(160deg, #3b7cff 0%, #1e4fbf 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(30, 79, 191, 0.28);
}

.ta-passport__logo .bi {
    font-size: 2rem;
    line-height: 1;
}

.ta-passport__title {
    margin: 0;
    font-size: clamp(1.65rem, 3vw, 2rem);
    font-weight: 700;
    color: var(--ta-passport-ink);
    letter-spacing: -0.02em;
    line-height: 1.15;
}

.ta-passport__subtitle {
    margin: 0.55rem 0 0;
    font-size: 0.98rem;
    line-height: 1.4;
    color: var(--ta-passport-muted);
}

.ta-passport__main {
    width: 100%;
}

.ta-passport__panel {
    background: #fff;
    border: 1px solid rgba(27, 42, 74, 0.06);
    border-radius: 12px;
    padding: 1.35rem 1.25rem 1.4rem;
    box-shadow: 0 12px 32px rgba(27, 42, 74, 0.08);
}

.ta-passport__panel-title {
    margin: 0 0 1rem;
    font-size: 0.95rem;
    font-weight: 700;
    color: #4a5568;
    text-transform: none;
}

.ta-passport__notice {
    margin: 0 0 1rem;
    padding: 0.7rem 0.85rem;
    border-radius: 8px;
    background: #fdecec;
    color: #9b1c1c;
    font-size: 0.92rem;
}

.ta-passport__form {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

.ta-passport__field {
    display: block;
    margin: 0;
}

.ta-passport__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
}

.ta-passport__input-icon {
    position: absolute;
    left: 0.85rem;
    color: #94a3b8;
    font-size: 1.05rem;
    pointer-events: none;
}

.ta-passport__input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--ta-passport-line);
    border-radius: 8px;
    background: #fff;
    color: var(--ta-passport-ink);
    font: inherit;
    font-size: 1rem;
    padding: 0.85rem 2.6rem 0.85rem 2.55rem;
    outline: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.ta-passport__input:focus {
    border-color: var(--ta-passport-blue);
    box-shadow: 0 0 0 3px rgba(47, 111, 237, 0.18);
}

#ta_ar_pwd.ta-passport__input {
    padding-left: 0.95rem;
}

.ta-passport__toggle-pwd {
    position: absolute;
    right: 0.35rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: #94a3b8;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 6px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ta-passport__toggle-pwd:hover,
.ta-passport__toggle-pwd:focus-visible {
    color: var(--ta-passport-blue);
    outline: none;
    background: rgba(47, 111, 237, 0.08);
}

.ta-passport__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    flex-wrap: wrap;
    margin-top: 0.15rem;
}

.ta-passport__remember {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0;
    font-size: 0.92rem;
    color: #4a5568;
    cursor: pointer;
}

.ta-passport__remember input {
    width: 1rem;
    height: 1rem;
    accent-color: var(--ta-passport-blue);
}

.ta-passport__lost {
    font-size: 0.92rem;
    color: var(--ta-passport-blue);
    text-decoration: none;
    font-weight: 600;
}

.ta-passport__lost:hover,
.ta-passport__lost:focus-visible {
    text-decoration: underline;
}

.ta-passport__submit {
    margin-top: 0.35rem;
    width: 100%;
    border: 0;
    border-radius: 8px;
    background: var(--ta-passport-blue);
    color: #fff;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 700;
    padding: 0.9rem 1rem;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(47, 111, 237, 0.28);
}

.ta-passport__submit:hover,
.ta-passport__submit:focus-visible {
    filter: brightness(1.06);
    outline: 3px solid rgba(47, 111, 237, 0.35);
    outline-offset: 2px;
}

.ta-passport__2fa .ta-area-riservata__form,
.ta-passport__2fa .ta-2fa-login-form {
    margin: 0;
}

.ta-passport__footer {
    text-align: center;
    color: var(--ta-passport-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

.ta-passport__footer-brand,
.ta-passport__footer-copy {
    margin: 0;
}

.ta-passport__footer-copy {
    margin-top: 0.25rem;
}

.ta-passport .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

@media (max-width: 480px) {
    .ta-passport {
        padding: 1.25rem 1rem 1rem;
        align-items: flex-start;
    }

    .ta-passport__panel {
        padding: 1.15rem 1rem 1.25rem;
    }
}

/* v2.5.0 — layout portale per ente */

