﻿/* HTML: <div class="loader"></div> */
.loader {
    width: 60px;
    aspect-ratio: 4;
    --_g: no-repeat radial-gradient(circle closest-side,var(--colore-dettaglio1) 90%,#0000);
    background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;
    background-size: calc(100%/3) 100%;
    animation: l7 1s infinite linear;
}

@keyframes l7 {
    33% {
        background-size: calc(100%/3) 0%,calc(100%/3) 100%,calc(100%/3) 100%
    }

    50% {
        background-size: calc(100%/3) 100%,calc(100%/3) 0%,calc(100%/3) 100%
    }

    66% {
        background-size: calc(100%/3) 100%,calc(100%/3) 100%,calc(100%/3) 0%
    }
}

.bannerCookiePolicy p, .bannerCookiePolicy a {
    color: var(--colore-sfondo);
}

.logo-img {
    max-width: 100px;
    margin-right: 1rem;
}

.logo-footer {
    max-width: 120px;
}

.socialnetwork {
    margin: 0px;
}

    .socialnetwork a i {
        font-size: 1.1rem;
    }

@media (min-width: 992px) {
    .navbar-expand-lg .navbar-nav .nav-link {
        padding-right: 0.8rem;
        padding-left: 0.87rem;
    }
}

.cerca-nel-sito button {
    background: var(--colore-sfondo);
    border-color: var(--colore-sfondo);
    color: var(--colore-dettaglio1);
    color: #003566;
    background: #fff;
    border-color:#fff;
}

footer .testo-copyright li, footer .testo-copyright li a {
    font-size: .91rem;
}

.menu-2livello > li > a {
    padding: 0.3rem 0.8rem;
}
.navbar-toggler {
    color: var(--colore-sfondo);
    border-color: var(--colore-sfondo);
}
/* Struttura Home*/
.riga-1 {
    z-index: 2;
    position: relative;
    padding-top: 4rem;
    padding-bottom: 4rem;
}

    .riga-1 .box-riga-1:nth-child(1), .riga-1 .box-riga-1:nth-child(2), .riga-1 .box-riga-1:nth-child(3) {
        margin-top: -120px;
    }

.bg-riga-2 {
    position: relative;
}

    .bg-riga-2::after {
        background-image: url(/css/forum/images/evidenza-header.png);
        background-position: top center;
        background-repeat: no-repeat;
        z-index: -1;
        background-size: cover;
        width: 100%;
        height: 220px;
        top: 0;
        content: " ";
        position: absolute;
    }

.riga-1 .content-box-home, .riga-2 .content-box-home {
    background: var(--colore-sfondo);
    padding: 1.6rem;
    border: 1px solid #d4d4d4;
    box-shadow: 0 .125rem .25rem rgba(0,0,0,.075);
    border-radius: .25rem;
}

.box-link {
    margin-bottom: 1rem;
}

    .box-link div > span, .box-link div a {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        row-gap: 1rem;
    }

    .box-link a:hover {
        text-decoration: none;
    }

    .box-link i {
        font-size: 2.6rem;
    }

    .box-link span {
        font-family: var(--titoli-font);
        font-size: var(--titoli-size);
        color: var(--titoli-colore);
        font-weight: normal;
        font-style: var(--titoli-style);
        text-align: center;
    }

.riga-2 {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.riga-3 {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.box-news .news-txt > a {
    font-weight: bold;
}

.bg-colore-base p, .bg-colore-base a, .bg-colore-base ul {
    color: var(--colore-sfondo);
}

.bg-colore-dettaglio1 p, .bg-colore-dettaglio1 a, .bg-colore-dettaglio1 ul {
    color: var(--colore-sfondo);
}

.bg-colore-dettaglio2 p, .bg-colore-dettaglio2 a, .bg-colore-dettaglio2 ul {
    color: var(--colore-sfondo);
}

.btn-primary-pvo {
    --bs-btn-color: var(--colore-sfondo);
    --bs-btn-bg: var(--colore-dettaglio1);
    --bs-btn-border-color: var(--colore-dettaglio1);
    --bs-btn-hover-color: var(--colore-dettaglio1);
    --bs-btn-hover-bg: var(--colore-sfondo);
    --bs-btn-hover-border-color: var(--colore-dettaglio1);
    --bs-btn-active-color: var(--colore-sfondo);
    --bs-btn-active-bg: var(--colore-dettaglio1);
    --bs-btn-active-border-color: var(--colore-dettaglio1);
    color: #fff;
    background-color: rgb(32, 42, 46);
    border-color: rgb(32, 42, 46);
}

#CarouselHome .carousel-caption {
    left: 0%;
    right: auto;
    bottom: 25%;
    text-align: left;
    padding: 1rem 1.3rem;
    background: rgba(255,255,255,0.8)
}

    #CarouselHome .carousel-caption p.h3 {
        font-family: var(--titoli-font);
        font-size: var(--titoli-size);
        color: var(--titoli-colore);
        font-weight: var(--titoli-weight);
        font-style: var(--titoli-style);
    }

        #CarouselHome .carousel-caption p.h3 span {
            display: block;
        }

    #CarouselHome .carousel-caption .btn {
        margin-top: 10px;
    }

.box-menu ul {
    margin-top: 0.8rem;
}

    .box-menu ul li {
        margin-bottom: 0.5rem;
        padding-bottom: 0.4rem;
        border-bottom: 1px solid var(--colore-base);
    }

.struttura-home .socialnetwork {
    margin: 0.1rem 0px !important;
}

.box-laterale {
    margin-bottom: 2rem;
}

    .box-laterale h2 {
        font-size: calc(var(--titoli-size) - 0.2rem);
    }
.box-laterale {
    background: var(--bs-light);
    padding: 1.6rem;
}

@media (max-width: 768px) {
    .box-riga-2 {
        width: 100%;
    }

    .box-riga-3 {
        width: 100%;
    }

    .box-menu-home {
        width: 100%;
    }

    #CarouselHome .carousel-caption {
        right: 1%;
        left: 1%;
        top: 40%;
        text-align: left;
    }
}

@media (max-width: 600px) {
    #CarouselHome .carousel-caption {
        display: none;
    }
}

/*Accessibilità*/
input {
    display: block;
    width: 100%;
}

label, select {
    display: block;
    width: 100%;
    max-width: 100%;
}
html, body {
    line-height: 1.5; /* interlinea */
}

p {
    line-height: 1.5; /* interlinea */
    margin-bottom: 2em; /* spazio tra paragrafi */
}
.menu {
    background: #003566;
}
    .menu a {
        color: #ffffff !important;
        background: #003566 !important;
    }
    .menu a:focus-visible, .menu a:focus {
        outline: 3px solid #ffffff !important;
        outline-offset: 2px !important;
        color: #ffffff !important;
        box-shadow: none;
    }
/* Aggiungi questo nel tuo CSS personalizzato */
button:focus-visible,
button:focus,
.btn:focus-visible,
.btn:focus {
    outline: 3px solid #003566 !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
.cerca-nel-sito .form-control,
.cerca-nel-sito .btn {
    color: #003566 !important;
    background: #ffffff !important;
}
    .cerca-nel-sito .form-control:focus,
    .cerca-nel-sito .btn:focus {
        outline: 3px solid #ffffff !important;
        outline-offset: 3px !important;
    }

    .cerca-nel-sito .btn:focus {
        box-shadow: 0 0 0 3px rgba(176, 0, 0, 0.3) !important;
    }
.btn-close:focus,
.btn-close:focus-visible {
    outline: 3px solid #003566 !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
.form-control:focus-visible,
.form-control:focus {
    outline: 3px solid #003566 !important;
    outline-offset: 2px !important;
    border-color: #003566 !important;
    box-shadow: none !important;
}

.btn:focus-visible,
.btn:focus {
    outline: 3px solid #003566 !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
#CarouselHome .carousel-caption p.h3 span {
    color: #001d3d;
}
/* Evita width fissi che rompono il reflow */
.form-group > label,
.form-group > .form-control {
    width: auto !important;
    max-width: 100%;
}

/* Se usi .input-group dentro .form-group */
.form-group .input-group {
    flex: 1 1 16rem;
    min-width: 12rem;
    max-width: 100%;
}
/* Layout robusto per .form-group */
.form-group:not(.form-check) {
    display: flex;
    flex-wrap: wrap; /* consente il reflow fino al 400% */
    gap: .5rem 1rem; /* spazio tra label e campo */
}
.form-group.form-check {
    display: flex;
    flex-wrap: wrap; /* consente il reflow fino al 400% */
    gap: .3rem; /* spazio tra label e campo */
}
    /* Label: a schermi piccoli va su una riga dedicata */
    .form-group > label {
        flex: 1 1 100%;
        max-width: 100%;
        min-width: 12ch; /* evita label troppo strette */
        word-break: break-word; /* spezza parole lunghe */
    }

    /* Campi: crescono e si restringono senza rompere il layout */
    .form-group > .form-control,
    .form-group > input:not(.form-check-input),
    .form-group > select,
    .form-group > textarea {
        flex: 1 1 30rem; /* base ragionevole */
        min-width: 12rem; /* larghezza minima utile */
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
        min-height: 2.25rem; /* evita schiacciamenti */
    }

.form-check {
    padding-left: 1.6rem;
}

.form-check-input {
    min-width: 1.2rem;
    max-width: 100%;
    box-sizing: border-box;
    min-height: 1.2rem;
}

.form-check-input {
    margin-left: -1.6rem;
}
/* Focus visibile su tutti gli elementi interattivi del menu */
.menu .nav-link:focus-visible,
.menu .btn-menu:focus-visible,
.menu .dropdown-item:focus-visible {
    outline: 3px solid #0d6efd; /* colore ben visibile (blu Bootstrap) */
    outline-offset: 2px;
    box-shadow: none; /* rimuove eventuale shadow di Bootstrap */
    border-radius: 2px;
}

/* Fallback per browser che non supportano :focus-visible */
.menu .nav-link:focus,
.menu .btn-menu:focus,
.menu .dropdown-item:focus {
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
    box-shadow: none;
}
.form-control:focus-visible {
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
    box-shadow: none;
}

/* Fallback */
.form-control:focus {
    outline: 3px solid #0d6efd;
    outline-offset: 2px;
    box-shadow: none;
}