@import url("candidatura_progetto.css");
@import url("contatti.css");
/* ==========================================================
   C.S.S. e F. MESSINA - USER.CSS MASTER
   Home + Header + Menu + Slider + Mission
   ========================================================== */

/* 01 - BASE / SFONDO GENERALE */
:root {
    --cssef-navy: #082657;
    --cssef-menu: #0098EE;
    --cssef-orange: #f39a32;
    --cssef-page-bg: #eef7fb;
    --cssef-text: #102b52;
    --cssef-green: #0098EE;
}

body,
.site-grid {
    background: var(--cssef-page-bg);
}

.container-header {
    background: #eef7fb !important;
    background-image: none !important;
    box-shadow: none;
}

/* 02 - TESTATA E LOGO */
.container-header .container-nav,
.container-header .grid-child {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
}

.container-header .navbar-brand,
.container-header .brand-logo {
    padding-top: 10px;
    padding-bottom: 10px;
}

.container-header .navbar-brand img,
.container-header .brand-logo img,
.container-header .site-logo img {
    width: auto !important;
    max-width: 360px !important;
    max-height: 105px !important;
    height: auto !important;
    object-fit: contain;
}

/* 03 - MENU PRINCIPALE */
.container-header .container-nav {
    width: calc(100% - 30px);
    max-width: 1320px;
    margin: 14px auto 26px;
    padding: 0 20px;
    min-height: 58px;
    background: var(--cssef-menu) !important;
    border-radius: 0;
    display: flex;
    align-items: center;
}

.container-header .mod-menu {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
}

.container-header .mod-menu > li > a,
.container-header .mod-menu > li > span,
.container-header .navbar-nav .nav-link {
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
    padding: 17px 16px;
}

.container-header .mod-menu > li > a:hover,
.container-header .mod-menu > li > a:focus,
.container-header .mod-menu > li.active > a,
.container-header .mod-menu > li.current > a {
    color: #fff !important;
    background: rgba(255,255,255,.12);
}

/* dropdown */
.container-header .mod-menu .metismenu.mod-menu .mm-collapse,
.container-header .mod-menu .dropdown-menu {
    background: var(--cssef-menu);
}
.container-header .mod-menu .metismenu.mod-menu .mm-collapse a,
.container-header .mod-menu .dropdown-menu a {
    color: #fff !important;
}

/* 04 - AREA CONTENUTI */
.site-grid > .grid-child,
main .com-content-article,
main .blog,
main .com-content-category-blog {
    max-width: 1320px;
    margin-left: auto;
    margin-right: auto;
}

main {
    background: transparent;
}

/* 05 - SLIDER HOME */
#slideHome {
    width: 100%;
    max-width: 1320px;
    margin: 0 auto 34px;
    position: relative;
    overflow: hidden;
}

#slideHome .carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
}

#slideHome .carousel-item {
    display: none;
    width: 100%;
}

#slideHome .carousel-item.active {
    display: block;
}

#slideHome .carousel-indicators {
    position: absolute;
    right: 0;
    bottom: 13px;
    left: 0;
    z-index: 5;
    display: flex;
    justify-content: center;
    gap: 7px;
    margin: 0;
}

#slideHome .carousel-indicators button {
    width: 28px;
    height: 4px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 4px;
    background: rgba(255,255,255,.55);
    cursor: pointer;
}

#slideHome .carousel-indicators button.active {
    background: #fff;
}

#slideHome .carousel-control-prev,
#slideHome .carousel-control-next {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 4;
    width: 8%;
    border: 0;
    background: transparent;
    cursor: pointer;
}

#slideHome .carousel-control-prev { left: 0; }
#slideHome .carousel-control-next { right: 0; }

#slideHome .carousel-control-prev-icon,
#slideHome .carousel-control-next-icon {
    display: inline-block;
    width: 38px;
    height: 38px;
    background-size: 100% 100%;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,.35));
}

/* 06 - MODULI / CARD HOME */
.cssef-home-section,
.cssef-section {
    max-width: 1320px;
    margin: 0 auto 35px;
}

.cssef-home-section h2,
.cssef-section h2 {
    color: var(--cssef-navy);
    font-weight: 800;
}

.cssef-card,
.cssef-home-card {
    background: #fff;
    border: 1px solid rgba(8,38,87,.08);
    border-radius: 10px;
    box-shadow: 0 7px 24px rgba(8,38,87,.06);
}

/* 07 - PULSANTI GENERALI */
.btn-primary,
.cssef-btn {
    background: var(--cssef-menu);
    border-color: var(--cssef-menu);
    color: #fff;
}

.btn-primary:hover,
.cssef-btn:hover {
    background: var(--cssef-navy);
    border-color: var(--cssef-navy);
    color: #fff;
}

/* 08 - RESPONSIVE GENERALE */
@media (max-width: 991px) {
    .container-header .container-nav {
        width: calc(100% - 24px);
        padding: 8px 14px;
        margin-bottom: 18px;
    }

    .container-header .mod-menu {
        justify-content: flex-start;
        gap: 0;
    }

    .container-header .navbar-brand img,
    .container-header .brand-logo img,
    .container-header .site-logo img {
        max-width: 300px !important;
        max-height: 90px !important;
    }

    #slideHome {
        width: calc(100% - 24px);
    }
}

@media (max-width: 600px) {
    body,
    .site-grid {
        background: #fff;
    }

    .container-header .navbar-brand img,
    .container-header .brand-logo img,
    .container-header .site-logo img {
        max-width: 240px !important;
        max-height: 78px !important;
    }

    .container-header .container-nav {
        width: calc(100% - 20px);
        margin-top: 8px;
    }

    #slideHome {
        width: calc(100% - 20px);
        margin-bottom: 24px;
    }

    #slideHome .carousel-item > div {
        min-height: 320px;
    }
}


/* ==========================================================
   09 - MISSION V2
   ========================================================== */

.mission-page-v2 {
    --mission-blue: #082657;
    --mission-orange: #ff9f1c;
    --mission-text: #102b52;
    --mission-border: #e4ebf2;

    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;

    background: #ffffff;
    color: var(--mission-text);
}


/* ==========================================================
   HERO
   ========================================================== */

.mission-v2-hero {
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.mission-v2-hero img {
    display: block;
    width: 100%;
    height: auto;
    margin: 0;
}


/* ==========================================================
   CHI SIAMO
   ========================================================== */

.mission-v2-about {
    width: 100%;
    max-width: 1180px;

    margin: 0 auto;
    padding: 48px 35px 36px;

    display: grid;
    grid-template-columns: 0.85fr 1.15fr;

    gap: 75px;
    align-items: start;
}

.mission-v2-label {
    color: var(--mission-blue);

    font-size: 13px;
    line-height: 1.2;

    font-weight: 800;
    letter-spacing: 1.5px;
}

.mission-v2-line {
    width: 45px;
    height: 4px;

    margin: 10px 0 14px;

    border-radius: 4px;

    background: var(--mission-orange);
}

.mission-v2-line.small {
    width: 32px;
    margin-top: 13px;
    margin-bottom: 19px;
}

.mission-v2-about h2 {
    margin: 0;

    color: var(--mission-blue);

    font-size: clamp(31px, 3vw, 42px);
    line-height: 1.08;

    font-weight: 800;
    letter-spacing: -0.5px;
}

.mission-v2-about-text {
    padding-top: 5px;
}

.mission-v2-about-text p {
    margin: 0 0 11px;

    color: var(--mission-text);

    font-size: 16px;
    line-height: 1.55;
}


/* ==========================================================
   TRE CARD
   ========================================================== */

.mission-v2-cards {
    width: 100%;
    max-width: 1180px;

    margin: 0 auto;
    padding: 5px 35px 45px;

    display: grid;
    grid-template-columns: repeat(3, 1fr);

    gap: 25px;
}

.mission-v2-card {
    padding: 27px 26px 30px;

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #ffffff 55%,
            #f8fafc 100%
        );

    border: 1px solid var(--mission-border);
    border-radius: 9px;

    box-shadow:
        0 7px 25px rgba(8, 38, 87, 0.045);
}

.mission-v2-icon {
    width: 72px;
    height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 20px;

    border-radius: 50%;
}

.mission-v2-icon span {
    font-size: 37px;
    line-height: 1;

    font-weight: 700;
}

.mission-v2-blue {
    color: #0b4a80;
    background: #dceefa;
}

.mission-v2-orange {
    color: #e78b00;
    background: #fff0d9;
}

.mission-v2-green {
    color: #13745e;
    background: #d9f1e8;
}

.mission-v2-card h2 {
    margin: 0;

    color: var(--mission-blue);

    font-size: 25px;
    line-height: 1.15;

    font-weight: 800;
}

.mission-v2-card p {
    margin: 0 0 11px;

    color: var(--mission-text);

    font-size: 15.5px;
    line-height: 1.55;
}


/* ==========================================================
   IL NOSTRO IMPEGNO
   ========================================================== */

.mission-v2-commitment {
    width: 100%;
    max-width: 1180px;

    margin: 0 auto;
    padding: 0 35px 48px;

    display: grid;
    grid-template-columns: 1.05fr 0.95fr;

    gap: 42px;
    align-items: center;
}

.mission-v2-commitment-image {
    overflow: hidden;

    border-radius: 9px;

    box-shadow:
        0 8px 25px rgba(8, 38, 87, 0.08);
}

.mission-v2-commitment-image img {
    display: block;

    width: 100%;
    height: auto;

    margin: 0;

    border-radius: 9px;
}

.mission-v2-commitment-text {
    padding: 10px 0;
}

.mission-v2-commitment-text h2 {
    margin: 0 0 24px;

    color: var(--mission-blue);

    font-size: clamp(32px, 3.4vw, 44px);
    line-height: 1.07;

    font-weight: 800;
    letter-spacing: -0.5px;
}

.mission-v2-commitment-text p {
    margin: 0 0 12px;

    color: var(--mission-text);

    font-size: 16px;
    line-height: 1.6;
}


/* ==========================================================
   BANNER FINALE
   ========================================================== */

.mission-v2-footer {
    width: 100%;

    margin: 0;
    padding: 0;

    overflow: hidden;
}

.mission-v2-footer a {
    display: block;

    width: 100%;

    margin: 0;
    padding: 0;

    text-decoration: none;
}

.mission-v2-footer img {
    display: block;

    width: 100%;
    height: auto;

    margin: 0;
    padding: 0;

    transition:
        filter 0.25s ease,
        transform 0.35s ease;
}

.mission-v2-footer a:hover img {
    filter: brightness(1.03);
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 900px) {

    .mission-v2-about {
        grid-template-columns: 1fr;

        gap: 25px;

        padding-left: 28px;
        padding-right: 28px;
    }

    .mission-v2-cards {
        grid-template-columns: 1fr;

        padding-left: 28px;
        padding-right: 28px;
    }

    .mission-v2-commitment {
        grid-template-columns: 1fr;

        gap: 30px;

        padding-left: 28px;
        padding-right: 28px;
    }

}


/* ==========================================================
   SMARTPHONE
   ========================================================== */

@media (max-width: 600px) {

    .mission-v2-hero {
        overflow: hidden;
    }

    .mission-v2-hero img {
        width: 100%;
        min-height: 230px;

        object-fit: cover;
        object-position: center;
    }


    /* CHI SIAMO */

    .mission-v2-about {
        padding:
            35px
            20px
            27px;

        gap: 22px;
    }

    .mission-v2-about h2 {
        font-size: 31px;
    }

    .mission-v2-about-text p {
        font-size: 15.5px;
    }


    /* CARD */

    .mission-v2-cards {
        padding:
            5px
            20px
            38px;

        gap: 18px;
    }

    .mission-v2-card {
        padding: 24px 22px;
    }

    .mission-v2-card h2 {
        font-size: 24px;
    }


    /* IMPEGNO */

    .mission-v2-commitment {
        padding:
            0
            20px
            40px;

        gap: 27px;
    }

    .mission-v2-commitment-text h2 {
        font-size: 32px;
    }


    /* BANNER FINALE */

    .mission-v2-footer img {
        width: 100%;
        min-height: 220px;

        object-fit: cover;

        /*
         * Su smartphone privilegiamo la parte sinistra
         * dove si trova il titolo/pulsante.
         */
        object-position: 35% center;
    }

}


/* ==========================================================
   SCHERMI MOLTO PICCOLI
   ========================================================== */

@media (max-width: 420px) {

    .mission-v2-hero img {
        min-height: 210px;
        object-position: 40% center;
    }

    .mission-v2-footer img {
        min-height: 210px;
        object-position: 27% center;
    }

}

/* ===== MISSION - RIFINITURA DESKTOP ===== */

.mission-v2-about,
.mission-v2-cards,
.mission-v2-commitment {
    max-width: 1240px;
}

.mission-v2-card p {
    font-size: 16px;
    line-height: 1.6;
}

.mission-v2-about-text p,
.mission-v2-commitment-text p {
    font-size: 17px;
    line-height: 1.6;
}

.mission-v2-card h2 {
    font-size: 27px;
}

.mission-v2-label {
    font-size: 14px;
}

@media (min-width: 1000px) {
    .mission-v2-card {
        padding: 30px 28px 32px;
    }

    .mission-v2-cards {
        gap: 28px;
    }
}
/* ==========================================================
   FOOTER - STESSA LARGHEZZA DI MENU E HOME
   ========================================================== */

.container-footer,
footer.container-footer {
    width: calc(100% - 30px) !important;
    max-width: 1320px !important;

    margin: 20px auto 0 !important;
    padding: 22px 30px !important;

    min-height: auto !important;

    background: var(--cssef-menu) !important;
    background-image: none !important;

    color: #ffffff !important;

    box-sizing: border-box;
}

/* contenitore interno */
.container-footer .grid-child {
    width: 100% !important;
    max-width: none !important;

    margin: 0 auto !important;
    padding: 0 !important;
}

/* elimina spazi eccessivi */
.container-footer .moduletable,
.container-footer .mod-custom {
    margin: 0 !important;
    padding: 0 !important;
}

/* testi */
.container-footer,
.container-footer p,
.container-footer div,
.container-footer span {
    color: #ffffff !important;
}

/* link */
.container-footer a {
    color: #ffffff !important;
    text-decoration: none;
}

.container-footer a:hover {
    color: #ffffff !important;
    text-decoration: underline;
}

/* paragrafi */
.container-footer p {
    margin-top: 0;
    margin-bottom: 6px;
}

.container-footer p:last-child {
    margin-bottom: 0;
}


/* TABLET / TELEFONO */
@media (max-width: 991px) {

    .container-footer,
    footer.container-footer {
        width: calc(100% - 24px) !important;
        padding: 20px !important;
    }

}

@media (max-width: 600px) {

    .container-footer,
    footer.container-footer {
        width: calc(100% - 20px) !important;
        margin-top: 15px !important;
        padding: 18px !important;
    }

}

/* ==========================================================
   DOVE SIAMO - C.S.S. e F. MESSINA
   ========================================================== */

.dove-page {
    --dove-blue: #082657;
    --dove-menu: #0098EE;
    --dove-orange: #ff9f1c;
    --dove-text: #102b52;

    width: 100%;
    max-width: 1320px;
    margin: 0 auto;
    background: #fff;
    color: var(--dove-text);
}


/* HERO */

.dove-hero {
    position: relative;
    min-height: 360px;

    display: flex;
    align-items: center;

    padding: 55px 65px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 75% 45%,
            rgba(53,139,190,.55),
            transparent 32%
        ),
        linear-gradient(
            115deg,
            #082657 0%,
            #0b4779 57%,
            #0877a7 100%
        );
}

.dove-hero-content {
    position: relative;
    z-index: 2;
}

.dove-label {
    color: var(--dove-blue);
    font-size: 13px;
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.dove-label-light {
    color: #fff;
}

.dove-line {
    width: 46px;
    height: 4px;
    margin: 10px 0 14px;
    background: var(--dove-orange);
    border-radius: 5px;
}

.dove-hero h1 {
    margin: 0 0 20px;

    color: #fff;

    font-size: clamp(52px,6vw,76px);
    line-height: .92;
    font-weight: 800;
}

.dove-hero h1 strong {
    color: var(--dove-orange);
}

.dove-hero p {
    margin: 0;

    color: #fff;

    font-size: 22px;
    line-height: 1.45;
}

.dove-hero-writing {
    position: absolute;

    right: 75px;
    bottom: 55px;

    color: #fff;

    font-family: cursive;
    font-size: 28px;
    font-style: italic;
    line-height: 1.35;

    transform: rotate(-5deg);
}

.dove-hero-writing::after {
    content: "";
    display: block;

    width: 90px;
    height: 4px;

    margin: 14px 0 0 5px;

    background: var(--dove-orange);

    transform: rotate(-7deg);
}


/* INTRO */

.dove-intro {
    padding: 55px 65px 45px;

    display: grid;
    grid-template-columns: .9fr 1.1fr;

    gap: 80px;
}

.dove-intro h2 {
    margin: 0;

    color: var(--dove-blue);

    font-size: 40px;
    line-height: 1.08;
    font-weight: 800;
}

.dove-intro-text {
    padding-top: 8px;
}

.dove-intro-text p {
    margin: 0 0 12px;

    font-size: 17px;
    line-height: 1.6;
}


/* SEDE + MAPPA */

.dove-location {
    padding: 10px 65px 55px;

    display: grid;
    grid-template-columns: .72fr 1.28fr;

    gap: 40px;
    align-items: stretch;
}

.dove-info {
    padding: 35px;

    background: #f8fbfd;

    border: 1px solid #e1eaf1;
    border-radius: 12px;
}

.dove-info h2 {
    margin: 0 0 15px;

    color: var(--dove-blue);

    font-size: 34px;
    font-weight: 800;
}

.dove-info > p {
    margin-bottom: 27px;

    font-size: 16px;
    line-height: 1.55;
}

.dove-info-item {
    display: flex;
    gap: 15px;
    align-items: center;

    padding: 16px 0;

    border-top: 1px solid #dde7ef;
}

.dove-info-icon {
    width: 43px;
    height: 43px;

    flex: 0 0 43px;

    display: flex;
    align-items: center;
    justify-content: center;

    border-radius: 50%;

    color: var(--dove-blue);
    background: #dceefa;

    font-size: 21px;
    font-weight: 800;
}

.dove-info-item strong,
.dove-info-item span {
    display: block;
}

.dove-info-item strong {
    color: var(--dove-blue);
    font-size: 16px;
}

.dove-info-item span {
    margin-top: 2px;
    font-size: 14px;
}

.dove-map {
    overflow: hidden;

    border-radius: 12px;

    box-shadow: 0 10px 30px rgba(8,38,87,.10);
}

.dove-map img {
    display: block;

    width: 100%;
    height: 100%;

    min-height: 470px;

    object-fit: cover;
}


/* PULSANTE */

.dove-button {
    display: inline-flex;
    align-items: center;
    gap: 15px;

    margin-top: 25px;
    padding: 12px 23px;

    border-radius: 30px;

    background: var(--dove-blue);
    color: #fff !important;

    text-decoration: none !important;

    font-weight: 800;
}

.dove-button span {
    font-size: 21px;
}

.dove-button:hover {
    background: var(--dove-menu);
}


/* COME RAGGIUNGERCI */

.dove-reach {
    padding: 50px 65px;

    background: #f8fbfd;

    display: grid;
    grid-template-columns: .9fr 1.1fr;

    gap: 70px;
}

.dove-reach-title h2 {
    margin: 0;

    color: var(--dove-blue);

    font-size: 38px;
    line-height: 1.1;
    font-weight: 800;
}

.dove-reach-items {
    display: grid;
    grid-template-columns: repeat(2,1fr);

    gap: 25px;
}

.dove-reach-item {
    padding: 5px 15px;
}

.dove-reach-number {
    margin-bottom: 13px;

    color: var(--dove-orange);

    font-size: 30px;
    font-weight: 800;
}

.dove-reach-item h3 {
    margin: 0 0 10px;

    color: var(--dove-blue);

    font-size: 20px;
    font-weight: 800;
}

.dove-reach-item p {
    margin: 0;

    font-size: 15px;
    line-height: 1.55;
}


/* CTA FINALE */

.dove-cta {
    position: relative;

    min-height: 280px;

    display: flex;
    align-items: center;

    padding: 48px 65px;

    overflow: hidden;

    background:
        radial-gradient(
            circle at 75% 30%,
            rgba(30,137,190,.55),
            transparent 34%
        ),
        linear-gradient(
            110deg,
            #082657,
            #07578a
        );
}

.dove-cta h2 {
    margin: 0 0 13px;

    color: #fff;

    font-size: 43px;
    line-height: 1.05;
    font-weight: 800;
}

.dove-cta p {
    color: #fff;

    font-size: 17px;
}

.dove-button-orange {
    background: var(--dove-orange);
    color: var(--dove-blue) !important;
}

.dove-button-orange:hover {
    background: #fff;
}

.dove-cta-writing {
    position: absolute;

    right: 75px;
    bottom: 55px;

    color: #fff;

    font-family: cursive;
    font-style: italic;

    font-size: 27px;
    line-height: 1.35;

    transform: rotate(-5deg);
}


/* TABLET */

@media (max-width: 900px) {

    .dove-intro,
    .dove-location,
    .dove-reach {
        grid-template-columns: 1fr;
    }

    .dove-hero-writing,
    .dove-cta-writing {
        display: none;
    }

    .dove-location {
        gap: 25px;
    }
}


/* SMARTPHONE */

@media (max-width: 600px) {

    .dove-hero {
        min-height: 310px;
        padding: 40px 24px;
    }

    .dove-hero h1 {
        font-size: 52px;
    }

    .dove-hero p {
        font-size: 18px;
    }

    .dove-intro,
    .dove-location,
    .dove-reach {
        padding-left: 22px;
        padding-right: 22px;
    }

    .dove-intro {
        gap: 25px;
    }

    .dove-intro h2 {
        font-size: 32px;
    }

    .dove-info {
        padding: 25px 22px;
    }

    .dove-map img {
        min-height: 330px;
    }

    .dove-reach-items {
        grid-template-columns: 1fr;
    }

    .dove-cta {
        padding: 42px 24px;
    }

    .dove-cta h2 {
        font-size: 35px;
    }
}

/* ==========================================================
   FIX SPAZIO VUOTO PRIMA DEL FOOTER
   ========================================================== */

body.site {
    min-height: auto !important;
}

.site-grid {
    min-height: 0 !important;
    grid-template-rows: auto !important;
}

.site-grid > .grid-child {
    min-height: 0 !important;
}

main,
main.grid-child,
.container-component {
    min-height: 0 !important;
}

.dove-page {
    margin-bottom: 20px !important;
}

.container-footer,
footer.container-footer {
    margin-top: 0 !important;
}

/* DOVE SIAMO - HERO CON FOTO */

.dove-hero {
    background-image:
        linear-gradient(
            90deg,
            rgba(8, 38, 87, .96) 0%,
            rgba(8, 38, 87, .82) 32%,
            rgba(8, 38, 87, .48) 55%,
            rgba(8, 38, 87, .12) 78%,
            rgba(8, 38, 87, .05) 100%
        ),
        url("/images/dove-hero.jpg") !important;

    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* DOVE SIAMO - CTA E FOOTER CONTINUI */
.dove-page {
    margin-bottom: 0 !important;
}

.dove-page + * {
    margin-top: 0 !important;
}

.container-footer,
footer.container-footer {
    margin-top: 0 !important;
}

/* =========================================================
   CONTATTACI - LAYOUT DEFINITIVO
   Si applica alla pagina del componente Customizable Form.
   ========================================================= */

/* Contenitore pagina */
body:has(.container-component form) .grid-child.container-component {
    width: 100% !important;
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

body:has(.container-component form) main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Nasconde il titolo originale del componente */
body:has(.container-component form) .page-header,
body:has(.container-component form) .componentheading,
body:has(.container-component form) .page-title,
body:has(.container-component form) main > h1,
body:has(.container-component form) main > h2:first-of-type {
    display: none !important;
}



/* FORM */
body:has(.container-component form) main form {
    position: relative;
    box-sizing: border-box;
    width: calc(100% - 160px) !important;
    max-width: 1060px !important;
    margin: 65px auto !important;
    padding: 55px 65px !important;
    background: #fff !important;
    border: 1px solid #e1ebf1 !important;
    border-radius: 12px !important;
    box-shadow: 0 15px 40px rgba(5,50,90,.10) !important;
}

body:has(.container-component form) main form::before {
    content: "INVIACI LA TUA CANDIDATURA";
    display: block;
    margin-bottom: 32px;
    padding-bottom: 15px;
    color: #073b70;
    border-bottom: 1px solid #dce7ee;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: 2px;
}

body:has(.container-component form) main form::after {
    content: "";
    position: absolute;
    top: 84px;
    left: 65px;
    width: 52px;
    height: 4px;
    border-radius: 3px;
    background: #ff9f0a;
}

/* Wrapper e righe del componente */
body:has(.container-component form) main form > div,
body:has(.container-component form) main form .control-group,
body:has(.container-component form) main form .controls,
body:has(.container-component form) main form .form-group {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
}

/* Etichette */
body:has(.container-component form) main form label {
    display: block !important;
    margin: 0 0 8px !important;
    color: #073b70 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
}

/* Campi */
body:has(.container-component form) main form input[type="text"],
body:has(.container-component form) main form input[type="email"],
body:has(.container-component form) main form input[type="tel"],
body:has(.container-component form) main form input[type="number"],
body:has(.container-component form) main form select,
body:has(.container-component form) main form textarea {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 50px !important;
    margin: 0 0 22px !important;
    padding: 12px 15px !important;
    background: #f8fbfd !important;
    color: #092f59 !important;
    border: 1px solid #c9d9e4 !important;
    border-radius: 5px !important;
    font-family: inherit !important;
    font-size: 15px !important;
}

body:has(.container-component form) main form textarea {
    min-height: 180px !important;
    resize: vertical;
}

body:has(.container-component form) main form input:focus,
body:has(.container-component form) main form textarea:focus,
body:has(.container-component form) main form select:focus {
    outline: none !important;
    background: #fff !important;
    border-color: #168fc2 !important;
    box-shadow: 0 0 0 3px rgba(22,143,194,.12) !important;
}

/* Pulsante invio */
body:has(.container-component form) main form button[type="submit"],
body:has(.container-component form) main form input[type="submit"] {
    min-height: 49px !important;
    padding: 12px 30px !important;
    background: #ff9f0a !important;
    color: #062f5c !important;
    border: 0 !important;
    border-radius: 26px !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    cursor: pointer;
    box-shadow: 0 7px 18px rgba(255,159,10,.24) !important;
}

body:has(.container-component form) main form button[type="submit"]:hover,
body:has(.container-component form) main form input[type="submit"]:hover {
    background: #ffad27 !important;
}


/* Smartphone */
@media (max-width: 600px) {
    body:has(.container-component form) main::before {
        min-height: 220px;
        padding: 35px 24px;
        background-position: 58% center !important;
        font-size: 16px;
        line-height: 1.75;
    }

    body:has(.container-component form) main form {
        width: calc(100% - 30px) !important;
        margin: 30px auto 35px !important;
        padding: 35px 24px !important;
    }

    body:has(.container-component form) main form::after {
        left: 24px;
        top: 64px;
        width: 45px;
    }

    body:has(.container-component form) main form input,
    body:has(.container-component form) main form textarea,
    body:has(.container-component form) main form select {
        font-size: 16px !important;
    }

    body:has(.container-component form) main form button[type="submit"],
    body:has(.container-component form) main form input[type="submit"] {
        width: 100% !important;
    }

    body:has(.container-component form) main::after {
        padding: 35px 24px;
        font-size: 15px;
    }
}

/* =========================================================
   CONTATTACI - RESPONSIVE FINALE
   ========================================================= */

@media (max-width: 900px) {

    body:has(.container-component form) main::before {
        min-height: 250px;
        padding: 45px 40px;
        background-position: 58% center !important;
    }

    body:has(.container-component form) main form {
        width: calc(100% - 60px) !important;
        margin: 45px auto !important;
        padding: 45px 40px !important;
    }

    body:has(.container-component form) main form::after {
        left: 40px;
        top: 74px;
    }

    body:has(.container-component form) main::after {
        padding: 40px;
    }
}


/* SMARTPHONE */

@media (max-width: 600px) {

    body:has(.container-component form) main::before {
        content:
            "C.S.S. e F. MESSINA\A"
            "━━━━\A"
            "\A"
            "PARLIAMO DEL TUO FUTURO.\A"
            "Siamo qui per ascoltarti.";

        white-space: pre;

        min-height: 220px;
        padding: 28px 20px;

        font-size: 13px;
        line-height: 1.65;
        font-weight: 600;

        background-image:
            linear-gradient(
                90deg,
                rgba(5,48,91,.96) 0%,
                rgba(5,48,91,.76) 48%,
                rgba(5,48,91,.20) 100%
            ),
            url("/images/dove-hero.jpg") !important;

        background-size: cover !important;
        background-position: 62% center !important;
        background-repeat: no-repeat !important;
    }

    body:has(.container-component form) main form {
        width: calc(100% - 30px) !important;
        margin: 30px auto 35px !important;
        padding: 35px 24px !important;
    }

    body:has(.container-component form) main form::after {
        left: 24px;
        top: 64px;
        width: 45px;
    }

    body:has(.container-component form) main form input,
    body:has(.container-component form) main form textarea,
    body:has(.container-component form) main form select {
        font-size: 16px !important;
    }

    body:has(.container-component form) main form button[type="submit"],
    body:has(.container-component form) main form input[type="submit"] {
        width: 100% !important;
    }

    body:has(.container-component form) main::after {
        padding: 35px 24px;
        font-size: 15px;
    }
}

/* =========================================================
   HERO CONTATTACI - MODULO HTML
   ========================================================= */

.contact-hero {
    box-sizing: border-box;
    width: 100%;
    min-height: 330px;

    display: flex;
    align-items: center;

    padding: 55px 70px;

    color: #fff;

    background-image:
        linear-gradient(
            90deg,
            rgba(5,48,91,.97) 0%,
            rgba(5,48,91,.86) 36%,
            rgba(5,48,91,.45) 62%,
            rgba(5,48,91,.08) 100%
        ),
        url("/images/dove-hero.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.contact-hero-inner {
    max-width: 600px;
}

.contact-kicker {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
}

.contact-accent {
    width: 42px;
    height: 4px;
    margin: 0 0 15px;
    background: #ff9f00;
}

.contact-hero h1 {
    margin: 0 0 14px !important;
    padding: 0 !important;
    color: #fff !important;

    font-size: 58px !important;
    line-height: 0.95 !important;
    font-weight: 800 !important;
    letter-spacing: -2px;
}

.contact-hero h1 span {
    color: #ff9f00 !important;
}

.contact-hero p {
    margin: 0;
    color: #fff;
    font-size: 17px;
    line-height: 1.5;
    font-weight: 500;
}


/* TABLET */

@media (max-width: 900px) {

    .contact-hero {
        min-height: 280px;
        padding: 45px 40px;
        background-position: 58% center;
    }

    .contact-hero h1 {
        font-size: 44px !important;
    }
}


/* SMARTPHONE */

@media (max-width: 600px) {

    .contact-hero {
        min-height: 230px;
        padding: 30px 24px;
        align-items: center;
        background-position: 62% center;
    }

    .contact-kicker {
        font-size: 10px;
    }

    .contact-accent {
        width: 32px;
        height: 3px;
        margin-bottom: 11px;
    }

    .contact-hero h1 {
        font-size: 36px !important;
        letter-spacing: -1px;
        margin-bottom: 12px !important;
    }

    .contact-hero p {
        font-size: 14px;
    }
}

/* Nasconde credito Customizable Form */
body:has(.container-component form) a[href*="freecmsplugins.com"] {
    display: none !important;
}


/* =========================================================
   BANDI E AVVISI
   ========================================================= */

.bandi-page {
    max-width: 1180px;
    margin: 0 auto;
    color: #102f50;
}

.bandi-page * {
    box-sizing: border-box;
}

.bandi-page p {
    font-size: 16px;
    line-height: 1.7;
}

.bandi-section-label,
.bandi-kicker {
    color: #073b70;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.bandi-accent {
    width: 44px;
    height: 4px;
    margin: 10px 0 18px;
    background: #ff9f00;
}


/* ================= HERO ================= */

.bandi-hero {
    min-height: 360px;
    display: flex;
    align-items: center;
    padding: 65px 70px;

    background-image:
        linear-gradient(
            90deg,
            rgba(5,48,91,.98) 0%,
            rgba(5,48,91,.90) 35%,
            rgba(5,48,91,.48) 65%,
            rgba(5,48,91,.15) 100%
        ),
        url("/images/reclutamento.jpg");

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.bandi-hero-content {
    max-width: 650px;
}

.bandi-hero .bandi-kicker {
    color: #fff;
}

.bandi-hero h1 {
    margin: 0 0 20px !important;
    padding: 0 !important;
    color: #fff !important;
    font-size: 58px !important;
    line-height: .93 !important;
    font-weight: 800 !important;
    letter-spacing: -2px;
}

.bandi-hero h1 span {
    color: #ff9f00 !important;
}

.bandi-hero p {
    margin: 0;
    color: #fff;
    font-size: 18px;
    font-weight: 600;
}


/* ================= INTRO ================= */

.bandi-intro {
    padding: 65px 70px;
    background: #fff;
}

.bandi-intro h2,
.bandi-heading h2 {
    margin: 8px 0 18px;
    color: #073b70;
    font-size: 36px;
    line-height: 1.05;
    font-weight: 800;
}

.bandi-intro p {
    max-width: 900px;
}


/* ================= AVVISI APERTI ================= */

.bandi-aperti {
    padding: 70px;
    background: #f3f8fb;
}

.bandi-heading {
    margin-bottom: 35px;
}

.bandi-heading p {
    margin-top: 0;
}


/* CARD PRINCIPALE */

.bando-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 45px;

    margin-bottom: 45px;
    padding: 45px;

    background: #fff;
    border: 1px solid #dbe7ee;
    border-radius: 14px;
    box-shadow: 0 14px 35px rgba(5,50,90,.08);
}

.bando-badge {
    display: inline-block;
    margin-bottom: 18px;
    padding: 7px 12px;

    color: #fff;
    background: #168552;
    border-radius: 20px;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
}

.bando-numero {
    color: #ff8c00;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 1.5px;
}

.bando-content > h2 {
    margin: 8px 0 8px;
    color: #073b70;
    font-size: 34px;
    line-height: 1.05;
    font-weight: 800;
}

.bando-content > h2 span {
    color: #1688b8;
}

.bando-data {
    margin-bottom: 30px;
    color: #667c8e;
    font-size: 14px;
    font-weight: 600;
}


/* GRUPPI DOCUMENTI */

.bando-gruppo {
    margin-top: 30px;
    padding-top: 25px;
    border-top: 1px solid #dce7ee;
}

.bando-gruppo h3 {
    margin: 0 0 14px;
    color: #073b70;
    font-size: 21px;
    font-weight: 800;
}

.bando-main-link {
    display: inline-block;
    margin-bottom: 15px;
    padding: 11px 17px;

    color: #fff !important;
    background: #073b70;
    border-radius: 6px;

    text-decoration: none !important;
    font-size: 14px;
    font-weight: 700;
}

.bando-main-link:hover {
    background: #0a5a91;
}


/* ALLEGATI */

.bando-files {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
}

.bando-files a {
    display: flex;
    flex-direction: column;

    padding: 12px 14px;

    color: #173a59 !important;
    background: #f5f9fc;

    border: 1px solid #dce7ee;
    border-radius: 6px;

    text-decoration: none !important;
}

.bando-files a:hover {
    background: #eaf3f8;
    border-color: #a9c9dc;
}

.bando-files strong {
    color: #073b70;
    font-size: 13px;
}

.bando-files span {
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.35;
}


/* LOCANDINA */

.bando-poster {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.bando-poster img {
    display: block;
    width: 100%;
    max-width: 310px;
    height: auto;

    border-radius: 8px;
    box-shadow: 0 8px 25px rgba(5,50,90,.12);
}


/* ================= ARCHIVIO ================= */

.bandi-archivio {
    padding: 70px;
    background: #fff;
}

.archivio-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.archivio-card {
    position: relative;
    padding: 28px;

    background: #f7fafc;
    border: 1px solid #dce7ee;
    border-radius: 9px;
}

.archivio-stato {
    display: inline-block;
    margin-bottom: 13px;
    padding: 5px 9px;

    color: #6d7780;
    background: #e7edf1;
    border-radius: 4px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
}

.archivio-card h3 {
    margin: 0 0 4px;
    color: #073b70;
    font-size: 21px;
    font-weight: 800;
}

.archivio-data {
    margin-bottom: 20px;
    color: #6d7f8d;
    font-size: 13px;
}

.archivio-card > a {
    display: block;
    margin: 11px 0;

    color: #073b70 !important;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none !important;
}

.archivio-card > a:hover {
    text-decoration: underline !important;
}

.archivio-allegati {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    align-items: center;

    margin: 10px 0 20px;
}

.archivio-allegati span {
    margin-right: 4px;
    font-size: 12px;
    font-weight: 600;
}

.archivio-allegati a {
    min-width: 30px;
    padding: 5px 8px;

    color: #fff !important;
    background: #1688b8;
    border-radius: 4px;

    text-align: center;
    text-decoration: none !important;
    font-size: 11px;
    font-weight: 800;
}


/* ================= TABLET ================= */

@media (max-width: 900px) {

    .bandi-hero {
        min-height: 310px;
        padding: 50px 40px;
    }

    .bandi-hero h1 {
        font-size: 48px !important;
    }

    .bandi-intro,
    .bandi-aperti,
    .bandi-archivio {
        padding: 50px 40px;
    }

    .bando-card {
        grid-template-columns: minmax(0,1fr) 260px;
        gap: 30px;
        padding: 35px;
    }

    .bando-files {
        grid-template-columns: 1fr;
    }
}


/* ================= SMARTPHONE ================= */

@media (max-width: 650px) {

    .bandi-hero {
        min-height: 270px;
        padding: 35px 25px;
        background-position: 58% center;
    }

    .bandi-hero h1 {
        font-size: 42px !important;
    }

    .bandi-hero p {
        font-size: 15px;
    }

    .bandi-intro,
    .bandi-aperti,
    .bandi-archivio {
        padding: 40px 22px;
    }

    .bandi-intro h2,
    .bandi-heading h2 {
        font-size: 30px;
    }

    .bando-card {
        display: flex;
        flex-direction: column;
        padding: 25px 20px;
        gap: 30px;
        border-radius: 10px;
    }

    .bando-content > h2 {
        font-size: 28px;
    }

    .bando-files {
        grid-template-columns: 1fr;
    }

    .bando-poster {
        order: 2;
    }

    .bando-poster img {
        max-width: 280px;
    }

    .archivio-grid {
        grid-template-columns: 1fr;
    }

    .archivio-card {
        padding: 23px 20px;
    }
}

/* =========================================================
   SISTEMAZIONE FASCIA PROGETTO + FOOTER
   ========================================================= */

/* Fascia finale progetto Uno Zaino da Riempire */
main .progetto-footer,
main .project-footer,
main .zaino-footer {
    box-sizing: border-box;
    width: 100%;
    margin: 50px 0 45px 0 !important;
    padding: 42px 60px !important;

    /*background: #1000b8 !important;*/
    border-top: 5px solid #ff9f00;

    color: #fff !important;
}

main .progetto-footer h2,
main .project-footer h2,
main .zaino-footer h2 {
    margin: 0 0 18px 0 !important;

    color: #fff !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1.3;
}

main .progetto-footer p,
main .project-footer p,
main .zaino-footer p {
    margin: 0 0 12px 0 !important;

    color: #fff !important;
    font-size: 14px !important;
    line-height: 1.7;
}


/* =========================================================
   FOOTER GENERALE
   ========================================================= */

footer,
.container-footer {
    box-sizing: border-box;

    margin-top: 45px !important;
    padding: 45px 60px !important;

    /*background: #1000b8 !important;*/
    color: #fff !important;

    min-height: 0 !important;
}


/* Contenitore interno footer */

footer .grid-child,
.container-footer .grid-child {
    width: 100% !important;
    max-width: 1250px !important;

    margin: 0 auto !important;
    padding: 0 !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 55px !important;

    align-items: start !important;
}


/* Testi */

footer p,
footer div,
footer span,
.container-footer p,
.container-footer div,
.container-footer span {
    color: #fff;
}

footer p,
.container-footer p {
    margin: 0 0 10px 0 !important;

    font-size: 13px !important;
    line-height: 1.6 !important;
}


/* Titolo centrale */

footer strong,
.container-footer strong {
    color: #fff !important;
    font-weight: 700;
}


/* Link */

footer a,
.container-footer a {
    color: #fff !important;
    text-decoration: none;
}

footer a:hover,
.container-footer a:hover {
    text-decoration: underline;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    main .progetto-footer,
    main .project-footer,
    main .zaino-footer {
        margin: 35px 0 !important;
        padding: 35px 30px !important;
    }

    footer,
    .container-footer {
        margin-top: 35px !important;
        padding: 35px 30px !important;
    }

    footer .grid-child,
    .container-footer .grid-child {
        grid-template-columns: 1fr 1fr !important;
        gap: 30px !important;
    }
}


/* =========================================================
   SMARTPHONE
   ========================================================= */

@media (max-width: 600px) {

    main .progetto-footer,
    main .project-footer,
    main .zaino-footer {
        margin: 30px 0 !important;
        padding: 30px 22px !important;
    }

    main .progetto-footer h2,
    main .project-footer h2,
    main .zaino-footer h2 {
        font-size: 17px !important;
    }

    main .progetto-footer p,
    main .project-footer p,
    main .zaino-footer p {
        font-size: 12px !important;
    }

    footer,
    .container-footer {
        margin-top: 30px !important;
        padding: 32px 24px !important;
    }

    footer .grid-child,
    .container-footer .grid-child {
        display: block !important;
    }

    footer .moduletable,
    .container-footer .moduletable {
        margin-bottom: 28px !important;
    }

    footer p,
    .container-footer p {
        font-size: 12px !important;
    }
}

/* =========================================================
   CORREZIONE FINALE PAGINA "UNO ZAINO DA RIEMPIRE"
   Fascia PNRR + separazione footer
   ========================================================= */


/* FASCIA PNRR FINALE */
.zaino-page .zaino-pnrr {
    box-sizing: border-box !important;

    width: 100% !important;
    margin: 0 !important;
    padding: 35px 55px !important;

    /* background: #019BF0 !important; */
    border-top: 5px solid #ff9f00 !important;

    color: #ffffff !important;

    min-height: 0 !important;
    height: auto !important;

    background: linear-gradient(
    105deg,
    #075486 0%,
    #0875a5 55%,
    #1595c5 100%) !important;
}


/* Titolo */
.zaino-page .zaino-pnrr > strong {
    display: block !important;

    margin: 0 0 16px 0 !important;

    color: #ffffff !important;

    font-size: 16px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
}


/* Testo PNRR */
.zaino-page .zaino-pnrr p {
    margin: 0 0 12px 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 13px !important;
    line-height: 1.65 !important;
}


/* Ultima riga senza spazio inutile */
.zaino-page .zaino-pnrr p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   FINE DELLA PAGINA
   ========================================================= */

.zaino-page {
    margin-bottom: 45px !important;
}


/* =========================================================
   FOOTER JOOMLA
   ========================================================= */

.container-footer {
    margin-top: 0 !important;

    padding-top: 42px !important;
    padding-bottom: 42px !important;

    min-height: 0 !important;
    height: auto !important;
}


/* Contenuto interno footer */
.container-footer .grid-child {
    min-height: 0 !important;
    height: auto !important;

    padding-top: 0 !important;
    padding-bottom: 0 !important;
}


/* Moduli del footer */
.container-footer .moduletable {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}


/* Paragrafi footer */
.container-footer p {
    margin-top: 0 !important;
    margin-bottom: 10px !important;

    line-height: 1.6 !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .zaino-page .zaino-pnrr {
        padding: 30px 35px !important;
    }

    .zaino-page {
        margin-bottom: 35px !important;
    }

    .container-footer {
        padding-top: 35px !important;
        padding-bottom: 35px !important;
    }

}


/* =========================================================
   TELEFONO
   ========================================================= */

@media (max-width: 600px) {

    .zaino-page .zaino-pnrr {
        padding: 28px 22px !important;
    }

    .zaino-page .zaino-pnrr > strong {
        font-size: 14px !important;
    }

    .zaino-page .zaino-pnrr p {
        font-size: 11px !important;
        line-height: 1.6 !important;
    }

    .zaino-page {
        margin-bottom: 30px !important;
    }

    .container-footer {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }

}

/* =========================================================
   UNO ZAINO DA RIEMPIRE
   RESTYLING BLOCCHI FINALI
   ========================================================= */


/* ---------------------------------------------------------
   LA FORZA DEL TERZO SETTORE
   --------------------------------------------------------- */

.zaino-page .zaino-terzo {
    position: relative;
    overflow: hidden;
    box-sizing: border-box;

    margin: 35px 0 !important;
    padding: 48px 55px !important;

    background: linear-gradient(
        110deg,
        #075486 0%,
        #0879a8 55%,
        #1599c7 100%
    ) !important;

    border-radius: 18px !important;
    box-shadow: 0 12px 30px rgba(5, 50, 90, .10);

    color: #fff !important;
}

.zaino-page .zaino-terzo .zaino-label {
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 1.5px;
}

.zaino-page .zaino-terzo .zaino-label::after {
    content: "";
    display: block;
    width: 45px;
    height: 4px;
    margin-top: 10px;

    background: #ff9f00;
    border-radius: 10px;
}

.zaino-page .zaino-terzo h2 {
    margin: 16px 0 18px !important;

    color: #fff !important;
    font-size: clamp(28px, 3vw, 40px) !important;
    line-height: 1.05 !important;
}

.zaino-page .zaino-terzo p {
    max-width: 850px;
    margin-bottom: 12px !important;

    color: #fff !important;
    line-height: 1.7 !important;
}


/* ---------------------------------------------------------
   DETTAGLI DEL PROGETTO
   --------------------------------------------------------- */

.zaino-page .zaino-dettagli {
    box-sizing: border-box;

    margin: 35px 0 !important;
    padding: 45px 45px !important;

    background: #fff !important;

    border: 1px solid #e1ebf1;
    border-radius: 18px !important;

    box-shadow: 0 10px 30px rgba(5, 50, 90, .06);
}

.zaino-page .zaino-dettagli > .zaino-label {
    color: #073b70 !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 1.5px;
}

.zaino-page .zaino-dettagli > .zaino-label::after {
    content: "";
    display: block;

    width: 45px;
    height: 4px;

    margin-top: 10px;

    background: #ff9f00;
    border-radius: 10px;
}

.zaino-page .zaino-dettagli > h2 {
    margin: 14px 0 30px !important;

    color: #073b70 !important;

    font-size: clamp(27px, 3vw, 38px) !important;
}


/* LE TRE CARD */

.zaino-page .zaino-detail-grid {
    display: grid !important;

    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;

    gap: 22px !important;

    margin: 0 0 30px !important;
}

.zaino-page .zaino-detail-grid > div {
    position: relative;

    box-sizing: border-box;

    min-height: 190px;

    padding: 28px 25px 30px !important;

    background: #fff !important;

    border: 1px solid #dce8ef !important;
    border-radius: 14px !important;

    box-shadow: 0 8px 22px rgba(5, 50, 90, .08);

    color: #aebdcc !important;

    font-size: 13px !important;
    font-weight: 700;
}


/* linea arancione sotto ogni card */

.zaino-page .zaino-detail-grid > div::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;
    bottom: 0;

    height: 4px;

    background: #ff9f00;

    border-radius: 0 0 14px 14px;
}


.zaino-page .zaino-detail-grid h3 {
    margin: 18px 0 10px !important;

    color: #073b70 !important;

    font-size: 17px !important;
    font-weight: 800 !important;
}

.zaino-page .zaino-detail-grid p {
    margin: 0 !important;

    color: #425d75 !important;

    font-size: 13px !important;
    font-weight: 400 !important;

    line-height: 1.6 !important;
}


/* frase conclusiva */

.zaino-page .zaino-conclusione {
    margin: 0 !important;

    padding: 25px 0 0 !important;

    border-top: 1px solid #dce8ef;

    color: #425d75 !important;

    line-height: 1.7 !important;
}


/* ---------------------------------------------------------
   UNISCITI A NOI
   --------------------------------------------------------- */

.zaino-page .zaino-join {
    box-sizing: border-box;

    margin: 35px 0 !important;
    padding: 45px 50px !important;

    background: linear-gradient(
        110deg,
        #f7fbfe 0%,
        #edf7fc 100%
    ) !important;

    border: 1px solid #e0edf4;
    border-radius: 18px !important;

    box-shadow: 0 10px 30px rgba(5, 50, 90, .05);
}

.zaino-page .zaino-join .zaino-label {
    color: #073b70 !important;

    font-size: 11px !important;
    font-weight: 800 !important;
    letter-spacing: 1.5px;
}

.zaino-page .zaino-join .zaino-label::after {
    content: "";

    display: block;

    width: 45px;
    height: 4px;

    margin-top: 10px;

    background: #ff9f00;

    border-radius: 10px;
}

.zaino-page .zaino-join > h2 {
    margin: 14px 0 16px !important;

    color: #073b70 !important;

    font-size: clamp(28px, 3vw, 38px) !important;
}

.zaino-page .zaino-join > h3 {
    margin: 28px 0 10px !important;

    color: #073b70 !important;

    font-size: 20px !important;
}

.zaino-page .zaino-join p {
    color: #425d75 !important;
    line-height: 1.7 !important;
}


/* ---------------------------------------------------------
   BOX CANDIDATURA
   --------------------------------------------------------- */

.zaino-page .zaino-candidatura {
    box-sizing: border-box;

    margin: 28px 0 !important;

    padding: 22px 28px !important;

    background: #fff !important;

    border: 1px solid #f3dfb4 !important;
    border-left: 5px solid #ff9f00 !important;

    border-radius: 12px !important;

    box-shadow: 0 6px 18px rgba(5, 50, 90, .05);

    color: #294c69 !important;
}

.zaino-page .zaino-candidatura > strong {
    display: block;

    margin-bottom: 8px;

    color: #073b70 !important;

    font-size: 16px !important;
}

.zaino-page .zaino-candidatura ol {
    margin: 8px 0 0 22px !important;
    padding: 0 !important;
}

.zaino-page .zaino-candidatura li {
    margin-bottom: 7px;
    line-height: 1.6;
}

.zaino-page .zaino-candidatura a {
    color: #075486 !important;
    font-weight: 700;
}


/* ---------------------------------------------------------
   FASCIA PNRR FINALE
   --------------------------------------------------------- */

.zaino-page .zaino-pnrr {
    box-sizing: border-box !important;

    width: 100% !important;

    margin: 35px 0 45px !important;

    padding: 35px 45px !important;

    background: linear-gradient(
        105deg,
        #075486 0%,
        #0875a5 55%,
        #1595c5 100%
    ) !important;

    border: 0 !important;
    border-top: 4px solid #ff9f00 !important;

    border-radius: 16px !important;

    box-shadow: 0 10px 25px rgba(5, 50, 90, .08);

    color: #fff !important;

    min-height: 0 !important;
    height: auto !important;
}

.zaino-page .zaino-pnrr > strong {
    display: block !important;

    margin: 0 0 15px !important;

    color: #fff !important;

    font-size: 16px !important;
    font-weight: 800 !important;
}

.zaino-page .zaino-pnrr p {
    margin: 0 0 10px !important;

    color: #fff !important;

    font-size: 12px !important;
    line-height: 1.65 !important;
}

.zaino-page .zaino-pnrr p:last-child {
    margin-bottom: 0 !important;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .zaino-page .zaino-terzo,
    .zaino-page .zaino-dettagli,
    .zaino-page .zaino-join {
        padding: 35px 30px !important;
    }

    .zaino-page .zaino-detail-grid {
        grid-template-columns: 1fr 1fr !important;
    }

    .zaino-page .zaino-pnrr {
        padding: 30px !important;
    }

}


/* =========================================================
   SMARTPHONE
   ========================================================= */

@media (max-width: 600px) {

    .zaino-page .zaino-terzo,
    .zaino-page .zaino-dettagli,
    .zaino-page .zaino-join {
        margin: 25px 0 !important;
        padding: 28px 22px !important;

        border-radius: 14px !important;
    }

    .zaino-page .zaino-detail-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;

        gap: 16px !important;
    }

    .zaino-page .zaino-detail-grid > div {
        min-height: 0 !important;
        padding: 22px !important;
    }

    .zaino-page .zaino-candidatura {
        padding: 20px !important;
    }

    .zaino-page .zaino-pnrr {
        margin: 25px 0 30px !important;

        padding: 25px 22px !important;

        border-radius: 14px !important;
    }

    .zaino-page .zaino-pnrr > strong {
        font-size: 14px !important;
    }

    .zaino-page .zaino-pnrr p {
        font-size: 11px !important;
    }

}
/* =========================================================
   UNO ZAINO DA RIEMPIRE - OVERRIDE DEFINITIVO COMPLETO
   ========================================================= */

.zaino-page {
  max-width: 1180px !important;
  margin: 0 auto 28px !important;
  padding: 0 !important;
  color: #29485f !important;
}
.zaino-page * { box-sizing: border-box; }
.zaino-page p { line-height: 1.65 !important; }
.zaino-page .zaino-label,
.zaino-page .zaino-kicker {
  color: #075486 !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 1.4px !important;
}
.zaino-page .zaino-label::after {
  content: "";
  display: block;
  width: 38px;
  height: 3px;
  margin-top: 8px;
  background: #ff9f00;
  border-radius: 20px;
}

/* HERO */
.zaino-page .zaino-hero {
  display: flex !important;
  align-items: center !important;
  min-height: 285px !important;
  margin: 0 0 28px !important;
  padding: 52px 55px !important;
  overflow: hidden !important;
  border-radius: 16px !important;
  background-image:
    linear-gradient(90deg,rgba(5,48,91,.96) 0%,rgba(5,48,91,.80) 42%,rgba(5,48,91,.18) 100%),
    url('/images/dove-hero.jpg') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
}
.zaino-page .zaino-hero-content { max-width: 600px !important; }
.zaino-page .zaino-hero .zaino-kicker { color: #fff !important; }
.zaino-page .zaino-line {
  width: 42px !important;
  height: 4px !important;
  margin: 10px 0 16px !important;
  background: #ff9f00 !important;
  border-radius: 20px !important;
}
.zaino-page .zaino-hero h1 {
  margin: 0 0 12px !important;
  color: #fff !important;
  font-size: clamp(38px,5vw,58px) !important;
  line-height: .98 !important;
  font-weight: 800 !important;
}
.zaino-page .zaino-hero p {
  margin: 0 !important;
  color: #fff !important;
  font-size: 16px !important;
}

/* INTRO */
.zaino-page .zaino-intro {
  display: grid !important;
  grid-template-columns: 200px minmax(0,1fr) !important;
  gap: 42px !important;
  align-items: center !important;
  margin: 0 0 28px !important;
  padding: 36px 40px !important;
  background: #fff !important;
  border: 1px solid #dfe9ef !important;
  border-radius: 14px !important;
}
.zaino-page .zaino-logo { text-align: center !important; }
.zaino-page .zaino-logo img {
  display: block !important;
  width: 100% !important;
  max-width: 160px !important;
  height: auto !important;
  margin: 0 auto !important;
}
.zaino-page .zaino-intro-text h2 {
  margin: 10px 0 15px !important;
  color: #073b70 !important;
  font-size: clamp(26px,3vw,34px) !important;
  line-height: 1.08 !important;
}
.zaino-page .zaino-intro-text p:last-child { margin-bottom: 0 !important; }

/* OBIETTIVO + 3 CARD */
.zaino-page .zaino-obiettivo {
  margin: 0 0 28px !important;
  padding: 38px 40px !important;
  background: #f5f9fc !important;
  border-radius: 14px !important;
}
.zaino-page .zaino-obiettivo > h2 {
  margin: 10px 0 15px !important;
  color: #073b70 !important;
  font-size: clamp(26px,3vw,34px) !important;
  line-height: 1.08 !important;
}
.zaino-page .zaino-cards {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 18px !important;
  margin: 26px 0 0 !important;
}
.zaino-page .zaino-card {
  min-height: 165px !important;
  padding: 23px !important;
  background: #fff !important;
  border: 1px solid #dce8ef !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: #9aabba !important;
  font-size: 12px !important;
}
.zaino-page .zaino-card h3 {
  margin: 12px 0 8px !important;
  color: #073b70 !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
}
.zaino-page .zaino-card p {
  margin: 0 !important;
  color: #526b7f !important;
  font-size: 13px !important;
}

/* TERZO SETTORE */
.zaino-page .zaino-terzo {
  margin: 0 0 28px !important;
  padding: 40px 44px !important;
  background: linear-gradient(110deg,#075486 0%,#0878a6 58%,#1595c5 100%) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
  color: #fff !important;
}
.zaino-page .zaino-terzo .zaino-label,
.zaino-page .zaino-terzo h2,
.zaino-page .zaino-terzo p { color: #fff !important; }
.zaino-page .zaino-terzo h2 {
  margin: 10px 0 15px !important;
  font-size: clamp(27px,3vw,34px) !important;
  line-height: 1.05 !important;
}

/* DETTAGLI */
.zaino-page .zaino-dettagli {
  margin: 0 0 28px !important;
  padding: 36px 40px !important;
  background: #fff !important;
  border: 1px solid #dfe9ef !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}
.zaino-page .zaino-dettagli > h2 {
  margin: 10px 0 24px !important;
  color: #073b70 !important;
  font-size: clamp(25px,3vw,32px) !important;
}
.zaino-page .zaino-detail-grid {
  display: grid !important;
  grid-template-columns: repeat(3,minmax(0,1fr)) !important;
  gap: 18px !important;
  margin: 0 !important;
}
.zaino-page .zaino-detail-grid > div {
  min-height: 130px !important;
  padding: 21px !important;
  background: #f7fafc !important;
  border: 1px solid #dce8ef !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  color: #9aabba !important;
  font-size: 11px !important;
}
.zaino-page .zaino-detail-grid > div::after { display: none !important; }
.zaino-page .zaino-detail-grid h3 {
  margin: 10px 0 7px !important;
  color: #073b70 !important;
  font-size: 15px !important;
}
.zaino-page .zaino-detail-grid p {
  margin: 0 !important;
  color: #526b7f !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
.zaino-page .zaino-conclusione {
  margin: 24px 0 0 !important;
  padding: 19px 0 0 !important;
  border-top: 1px solid #e0e9ef !important;
  color: #526b7f !important;
}

/* UNISCITI A NOI */
.zaino-page .zaino-join {
  margin: 0 0 28px !important;
  padding: 36px 40px !important;
  background: #f7fbfd !important;
  border: 1px solid #dfe9ef !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}
.zaino-page .zaino-join > h2 {
  margin: 10px 0 15px !important;
  color: #073b70 !important;
  font-size: clamp(26px,3vw,32px) !important;
}
.zaino-page .zaino-join > h3 {
  margin: 23px 0 9px !important;
  color: #073b70 !important;
  font-size: 18px !important;
}
.zaino-page .zaino-join p { color: #425d75 !important; }
.zaino-page .zaino-candidatura {
  margin: 20px 0 !important;
  padding: 18px 22px !important;
  background: #fff !important;
  border: 1px solid #e1eaf0 !important;
  border-left: 4px solid #ff9f00 !important;
  border-radius: 9px !important;
  box-shadow: none !important;
  color: #294c69 !important;
}
.zaino-page .zaino-candidatura > strong {
  display: block !important;
  margin-bottom: 7px !important;
  color: #073b70 !important;
  font-size: 15px !important;
}
.zaino-page .zaino-candidatura ol { margin: 7px 0 0 20px !important; padding: 0 !important; }
.zaino-page .zaino-candidatura a { color: #075486 !important; font-weight: 700 !important; }

/* PNRR */
.zaino-page .zaino-pnrr {
  width: 100% !important;
  min-height: 0 !important;
  height: auto !important;
  margin: 0 0 26px !important;
  padding: 24px 30px !important;
  background: linear-gradient(105deg,#075486 0%,#0879a8 58%,#1595c5 100%) !important;
  border: 0 !important;
  border-top: 4px solid #ff9f00 !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  color: #fff !important;
}
.zaino-page .zaino-pnrr > strong {
  display: block !important;
  margin: 0 0 9px !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
}
.zaino-page .zaino-pnrr p {
  margin: 4px 0 !important;
  padding: 0 !important;
  color: #fff !important;
  font-size: 10px !important;
  line-height: 1.55 !important;
}

/* FOOTER: COMPATTO */
body .container-footer {
  min-height: 0 !important;
  height: auto !important;
  margin-top: 0 !important;
  padding-top: 20px !important;
  padding-bottom: 20px !important;
}
body .container-footer .grid-child {
  min-height: 0 !important;
  height: auto !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body .container-footer .moduletable {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body .container-footer p {
  margin: 3px 0 !important;
  line-height: 1.4 !important;
}

@media (max-width: 900px) {
  .zaino-page .zaino-intro { grid-template-columns: 155px 1fr !important; gap: 28px !important; }
  .zaino-page .zaino-cards,
  .zaino-page .zaino-detail-grid { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}

@media (max-width: 600px) {
  .zaino-page { padding: 0 10px !important; }
  .zaino-page .zaino-hero { min-height: 235px !important; padding: 30px 24px !important; border-radius: 10px !important; }
  .zaino-page .zaino-hero h1 { font-size: 37px !important; }
  .zaino-page .zaino-intro { display: block !important; padding: 26px 22px !important; border-radius: 10px !important; }
  .zaino-page .zaino-logo { margin-bottom: 25px !important; }
  .zaino-page .zaino-logo img { max-width: 135px !important; }
  .zaino-page .zaino-obiettivo,
  .zaino-page .zaino-terzo,
  .zaino-page .zaino-dettagli,
  .zaino-page .zaino-join { padding: 27px 22px !important; border-radius: 10px !important; }
  .zaino-page .zaino-cards,
  .zaino-page .zaino-detail-grid { grid-template-columns: 1fr !important; }
  .zaino-page .zaino-card,
  .zaino-page .zaino-detail-grid > div { min-height: 0 !important; }
  .zaino-page .zaino-pnrr { padding: 21px !important; border-radius: 10px !important; }
  body .container-footer { padding-top: 16px !important; padding-bottom: 16px !important; }
}

/* =========================================================
   HOME - LOCANDINE IN EVIDENZA PIÙ GRANDI
   ========================================================= */

.home-evidenza img,
.evidenza-card img,
.home-card img {
    width: auto !important;
    height: 340px !important;
    max-width: 100% !important;
    object-fit: contain !important;
    display: block !important;
    margin: 0 auto 22px !important;
}

/* Tablet */
@media (max-width: 900px) {
    .home-evidenza img,
    .evidenza-card img,
    .home-card img {
        height: 300px !important;
    }
}

/* Smartphone */
@media (max-width: 600px) {
    .home-evidenza img,
    .evidenza-card img,
    .home-card img {
        width: 100% !important;
        height: auto !important;
        max-height: 420px !important;
        object-fit: contain !important;
    }
}
/* ==========================================================
   FOOTER - RESTYLING
   ========================================================== */

.container-footer,
footer.container-footer {
    background: var(--cssef-green) !important;
    color: #ffffff !important;
    padding: 42px 45px 38px !important;
    min-height: 0 !important;
}

.container-footer .grid-child,
footer.container-footer .grid-child {
    max-width: 1320px !important;
    margin: 0 auto !important;
}

/* Testi */
.container-footer,
.container-footer p,
.container-footer div,
.container-footer span,
.container-footer a {
    color: #ffffff !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

/* Titolo centrale */
.container-footer strong,
.container-footer b {
    font-size: 16px !important;
    font-weight: 800 !important;
}

/* Link */
.container-footer a {
    text-decoration: none !important;
}

.container-footer a:hover {
    text-decoration: underline !important;
}


/* =========================
   MOBILE
   ========================= */

@media (max-width: 767.98px) {

    .container-footer,
    footer.container-footer {
        padding: 32px 24px !important;
    }

    .container-footer .grid-child {
        display: block !important;
    }

    .container-footer,
    .container-footer p,
    .container-footer div,
    .container-footer span,
    .container-footer a {
        font-size: 14px !important;
        line-height: 1.7 !important;
    }
}

/* ==========================================================
   HOME - SEPARAZIONE HERO / FOOTER
   ========================================================== */

/* Slider / immagine */
#slideHome {
    border-radius: 16px !important;
    overflow: hidden !important;
    margin-bottom: 35px !important;
}

/* Footer */
.container-footer,
footer.container-footer {
    width: calc(100% - 30px) !important;
    max-width: 1320px !important;

    margin: 35px auto 20px !important;
    padding: 42px 45px 38px !important;

    border-radius: 16px !important;
    overflow: hidden !important;

    /* per ora manteniamo il tuo verde */
}

/* MOBILE */
@media (max-width: 767.98px) {

    #slideHome {
        width: calc(100% - 20px) !important;
        margin: 0 auto 25px !important;
        border-radius: 12px !important;
    }

    .container-footer,
    footer.container-footer {
        width: calc(100% - 20px) !important;
        margin: 25px auto 10px !important;
        padding: 30px 22px !important;
        border-radius: 12px !important;
    }
}

/* ==========================================================
   C.S.S.E.F. - OVERRIDE FINALE MENU + FOOTER
   Un solo colore: modificare SOLO --cssef-green
   ========================================================== */

/* MENU DESKTOP */
.container-header .container-nav,
.container-header .container-nav .mod-menu {
    background-color: var(--cssef-menu) !important;
}

.container-header .container-nav {
    background-image: none !important;
}

.container-header .mod-menu .mm-collapse,
.container-header .mod-menu .dropdown-menu {
    background: var(--cssef-green) !important;
}

/* eventuale pulsante/menu mobile */
.mobile-menu-toggle,
.container-header .navbar-toggler,
.container-header .navbar-toggler.collapsed {
    background-color: var(--cssef-green) !important;
}

/* FOOTER ESTERNO */
footer.container-footer,
.container-footer {
    width: calc(100% - 30px) !important;
    max-width: 1320px !important;
    margin: 30px auto 18px !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    background: var(--cssef-green) !important;
    background-image: none !important;
    color: #fff !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

/* IMPORTANTE: il grid-child di Cassiopeia NON deve creare 3 colonne.
   Le 3 colonne sono gestite da .cssef-footer-grid. */
footer.container-footer > .grid-child,
.container-footer > .grid-child,
footer.container-footer .grid-child,
.container-footer .grid-child {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    height: auto !important;
}

.container-footer .moduletable,
.container-footer .mod-custom,
.container-footer #mod-custom146 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: none !important;
    box-sizing: border-box !important;
}

/* FOOTER HTML NUOVO */
.cssef-footer {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 32px 42px 35px !important;
    box-sizing: border-box !important;
    color: #fff !important;
}

.cssef-footer-title {
    margin: 0 0 25px !important;
    padding: 0 0 18px !important;
    border-bottom: 1px solid rgba(255,255,255,.25) !important;
    color: #fff !important;
    font-size: 16px !important;
    line-height: 1.35 !important;
    font-weight: 800 !important;
    letter-spacing: .4px !important;
}

.cssef-footer-grid {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 55px !important;
    align-items: start !important;
}

.cssef-footer-block {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.cssef-footer-block h3 {
    margin: 0 0 13px !important;
    color: #fff !important;
    font-size: 13px !important;
    line-height: 1.25 !important;
    font-weight: 800 !important;
    letter-spacing: 1px !important;
}

.cssef-footer-block p,
.container-footer .cssef-footer-block p {
    margin: 0 0 11px !important;
    color: rgba(255,255,255,.96) !important;
    font-size: 15px !important;
    line-height: 1.6 !important;
}

.cssef-footer a,
.container-footer .cssef-footer a {
    color: #fff !important;
    font-size: inherit !important;
    text-decoration: none !important;
}

.cssef-footer a:hover {
    text-decoration: underline !important;
}

.cssef-footer-contact {
    display: flex !important;
    gap: 10px !important;
    align-items: flex-start !important;
}

/* TABLET */
@media (max-width: 900px) {
    .cssef-footer {
        padding: 30px !important;
    }

    .cssef-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 30px 40px !important;
    }

    .cssef-footer-block:last-child {
        grid-column: 1 / -1 !important;
    }
}

/* MOBILE */
@media (max-width: 600px) {
    footer.container-footer,
    .container-footer {
        width: calc(100% - 20px) !important;
        margin: 25px auto 10px !important;
        padding: 0 !important;
        border-radius: 12px !important;
    }

    .cssef-footer {
        padding: 28px 24px 30px !important;
    }

    .cssef-footer-title {
        margin-bottom: 24px !important;
        padding-bottom: 17px !important;
        font-size: 15px !important;
        line-height: 1.4 !important;
    }

    .cssef-footer-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }

    .cssef-footer-block,
    .cssef-footer-block:last-child {
        grid-column: auto !important;
        width: 100% !important;
        padding: 20px 0 !important;
        border-bottom: 1px solid rgba(255,255,255,.18) !important;
    }

    .cssef-footer-block:first-child {
        padding-top: 0 !important;
    }

    .cssef-footer-block:last-child {
        padding-bottom: 0 !important;
        border-bottom: 0 !important;
    }

    .cssef-footer-block h3 {
        font-size: 12px !important;
    }

    .cssef-footer-block p,
    .container-footer .cssef-footer-block p {
        font-size: 15px !important;
        line-height: 1.65 !important;
    }
}
