/* =========================================================
   PQ FILE - PUBLIC FOOTER
   Il footer esteso compare solo quando nella pagina esiste .pq-site.
   Nelle altre pagine resta il footer compatto legacy.
   ========================================================= */

.pq-public-footer {
    display: none;
}


/* Home / pagine pubbliche PQ */
.pq-site ~ .pq-public-footer {
    display: block;

    position: relative;
    z-index: 20;

    overflow: hidden;

    margin-top: 0;

    background:
        radial-gradient(
            circle at 10% 0%,
            rgba(23,126,255,.16),
            transparent 30%
        ),
        radial-gradient(
            circle at 92% 15%,
            rgba(75,128,178,.13),
            transparent 28%
        ),
        linear-gradient(
            145deg,
            #071426 0%,
            #0a1b32 52%,
            #0d223c 100%
        );

    color: #ffffff;
}


/* Sulle pagine pubbliche nascondiamo il vecchio footer */
.pq-site ~ .pq-public-footer + .pq-compact-footer {
    display: none !important;
}


.pq-public-footer::before {
    content: "";

    position: absolute;

    top: 0;
    left: 0;
    right: 0;

    height: 1px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(100,180,255,.52),
            transparent
        );
}


.pq-public-footer::after {
    content: "";

    position: absolute;

    right: -170px;
    bottom: -260px;

    width: 560px;
    height: 560px;

    border:
        1px solid
        rgba(119,180,236,.08);

    border-radius: 50%;

    box-shadow:
        0 0 0 72px rgba(71,135,196,.025),
        0 0 0 150px rgba(71,135,196,.018);

    pointer-events: none;
}


.pq-footer-inner {
    position: relative;
    z-index: 2;

    width:
        min(
            1380px,
            calc(100% - 48px)
        );

    margin: 0 auto;

    padding:
        72px
        0
        28px;
}


/* =========================================================
   MAIN GRID
   ========================================================= */

.pq-footer-main {
    display: grid;

    grid-template-columns:
        minmax(310px,1.45fr)
        minmax(130px,.55fr)
        minmax(130px,.55fr)
        minmax(310px,1.15fr);

    gap:
        42px
        52px;

    align-items: start;
}


/* =========================================================
   BRAND
   ========================================================= */

.pq-footer-brand {
    display: inline-flex;

    align-items: center;

    margin-bottom: 22px;
}


.pq-footer-brand img {
    width: 142px;
    height: auto;

    display: block;

    filter: none !important;

    opacity: 1;
}


.pq-footer-tagline {
    max-width: 350px;

    margin:
        0
        0
        24px;

    color:
        rgba(225,237,250,.76);

    font-size: 15px;

    line-height: 1.65;
}


.pq-footer-trust {
    display: flex;

    flex-direction: column;

    gap: 10px;
}


.pq-footer-trust span {
    display: flex;

    align-items: center;

    gap: 9px;

    color:
        rgba(214,230,247,.66);

    font-size: 12px;

    line-height: 1.4;
}


.pq-footer-trust i {
    width: 18px;

    color: #62b2ff;

    font-size: 13px;

    text-align: center;
}


/* =========================================================
   NAV
   ========================================================= */

.pq-footer-heading {
    margin-bottom: 18px;

    color:
        rgba(255,255,255,.94);

    font-size: 11px;

    font-weight: 800;

    letter-spacing: .11em;

    text-transform: uppercase;
}


.pq-footer-nav-col {
    display: flex;

    flex-direction: column;

    align-items: flex-start;

    gap: 12px;
}


.pq-footer-nav-col a,
.pq-footer-legal a {
    color:
        rgba(216,231,247,.70) !important;

    font-size: 13px;

    line-height: 1.4;

    text-decoration: none;

    transition:
        color .18s ease,
        transform .18s ease;
}


.pq-footer-nav-col a:hover,
.pq-footer-legal a:hover {
    color: #ffffff !important;
}


.pq-footer-nav-col a:hover {
    transform:
        translateX(3px);
}


/* =========================================================
   CTA
   ========================================================= */

.pq-footer-cta-col {
    padding:
        25px
        26px;

    border:
        1px solid
        rgba(128,180,230,.13);

    border-radius: 17px;

    background:
        rgba(255,255,255,.045);

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.025);

    backdrop-filter:
        blur(8px);
}


.pq-footer-cta-col .pq-footer-heading {
    margin-bottom: 10px;

    color: #75bfff;
}


.pq-footer-cta-col h3 {
    margin: 0;

    color: #ffffff;

    font-size: 18px;

    line-height: 1.38;

    font-weight: 750;

    letter-spacing: -.015em;
}


.pq-footer-cta-col p {
    margin:
        10px
        0
        20px;

    color:
        rgba(215,230,246,.67);

    font-size: 12px;

    line-height: 1.6;
}


.pq-footer-cta {
    min-height: 42px;

    display: inline-flex;

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

    gap: 12px;

    padding:
        0
        15px;

    border:
        1px solid
        rgba(125,190,255,.26);

    border-radius: 9px;

    background:
        linear-gradient(
            135deg,
            #3f75a8,
            #0a74ff
        );

    color: #ffffff !important;

    font-size: 12px;

    font-weight: 750;

    text-decoration: none;

    box-shadow:
        0 9px 24px rgba(0,91,214,.18);

    transition:
        transform .18s ease,
        box-shadow .18s ease;
}


.pq-footer-cta:hover {
    transform:
        translateY(-1px);

    box-shadow:
        0 12px 28px rgba(0,91,214,.24);
}


/* =========================================================
   BOTTOM
   ========================================================= */

.pq-footer-divider {
    height: 1px;

    margin:
        48px
        0
        25px;

    background:
        linear-gradient(
            90deg,
            rgba(255,255,255,.04),
            rgba(255,255,255,.13),
            rgba(255,255,255,.04)
        );
}


.pq-footer-bottom {
    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 24px;
}


.pq-footer-copyright {
    color:
        rgba(198,217,237,.50);

    font-size: 11px;

    line-height: 1.5;
}


.pq-footer-legal {
    display: flex;

    align-items: center;

    gap: 22px;
}


.pq-footer-legal a {
    font-size: 11px;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1050px) {

    .pq-footer-main {
        grid-template-columns:
            minmax(280px,1.2fr)
            1fr
            1fr;

        gap:
            42px
            38px;
    }


    .pq-footer-cta-col {
        grid-column:
            1 / -1;

        display: grid;

        grid-template-columns:
            minmax(0,1fr)
            auto;

        column-gap: 30px;

        align-items: center;
    }


    .pq-footer-cta-col .pq-footer-heading {
        grid-column:
            1 / -1;
    }


    .pq-footer-cta-col p {
        margin-bottom: 0;
    }

}


@media (max-width: 700px) {

    .pq-footer-inner {
        width:
            calc(100% - 32px);

        padding:
            54px
            0
            24px;
    }


    .pq-footer-main {
        grid-template-columns: 1fr;

        gap: 38px;
    }


    .pq-footer-brand-col {
        padding-bottom: 4px;
    }


    .pq-footer-tagline {
        max-width: 100%;
    }


    .pq-footer-nav-col {
        gap: 11px;
    }


    .pq-footer-cta-col {
        grid-column: auto;

        display: block;

        padding: 22px;
    }


    .pq-footer-cta-col p {
        margin-bottom: 18px;
    }


    .pq-footer-cta {
        width: 100%;
    }


    .pq-footer-divider {
        margin-top: 38px;
    }


    .pq-footer-bottom {
        align-items: flex-start;

        flex-direction: column-reverse;

        gap: 15px;
    }

}
