/* ==========================================================
   AIIM — MASTER CSS
   ========================================================== */


/* ==========================================================
   1. VARIABILI GLOBALI
   ========================================================== */

:root {

    --aiim-max-width: 1200px;

    /* Compensazione spazi automatici Yapla */
    --aiim-yapla-gap: 40px;

    /* Pagine interne */
    --aiim-page-top: 10px;
    --aiim-page-bottom: 56px;
    --aiim-section-gap: 56px;

    /* Hero default — Home */
    --aiim-hero-height: 720px;
    --aiim-hero-top: 150px;
    --aiim-hero-bottom: 80px;
    /* ==========================================================
   HEADER — PARAMETRI INDIPENDENTI
   ========================================================== */

    /* Altezza minima della barra header */
    --aiim-header-height: 20px;
    
    /* Altezza minima della barra su tablet e mobile */
    --aiim-header-height-mobile: 20px;
    
    /* Compensazione spazio Yapla dopo l'header */
    --aiim-header-gap: 40px;
}



/* ==========================================================
   2. HEADER
   ========================================================== */

#aiim-header {

    width: 100vw;

    position: relative;
    left: 50%;

    margin-left: -50vw;

    background: #fff;

    box-sizing: border-box;

    z-index: 1000;
    
    margin-bottom:
    calc(var(--aiim-header-gap) * -1) !important;
}


.aiim-header-inner {

    width: calc(100% - 40px);

    max-width: var(--aiim-max-width);

    min-height: var(--aiim-header-height);

    margin: 0 auto;

    display: flex;

    align-items: center;

    justify-content: space-between;

    box-sizing: border-box;
}


/* LOGO */

.aiim-header-logo {

    display: flex;

    align-items: center;

    flex: 0 0 auto;
}


.aiim-header-logo img {

    display: block;

    width: auto;

    max-width: 230px;

    max-height: 58px;
}


/* NAV */

.aiim-navigation {

    display: flex;

    align-items: center;

    gap: 28px;
}


.aiim-navigation > a {

    color: inherit;

    text-decoration: none;

    font-size: 14px;

    line-height: 1.2;

    font-weight: 500;

    white-space: nowrap;

    transition: opacity .2s ease;
}


.aiim-navigation > a:hover {

    opacity: .60;
}


.aiim-navigation .aiim-header-cta {

    padding: 11px 24px;

    border: 1px solid currentColor;

    border-radius: 30px;

    font-weight: 600;
}



/* ==========================================================
   3. MOBILE MENU
   ========================================================== */

.aiim-menu-toggle {

    display: none;

    position: relative;

    width: 44px;
    height: 44px;

    flex: 0 0 44px;

    padding: 0 !important;
    margin: 0 !important;

    background: transparent !important;

    border: 0 !important;

    border-radius: 0 !important;

    box-shadow: none !important;

    color: #111 !important;

    cursor: pointer;

    opacity: 1 !important;
    visibility: visible !important;

    appearance: none;
    -webkit-appearance: none;
}


/* ----------------------------------------------------------
   LE TRE RIGHE

   Colore impostato direttamente.
   Non dipendiamo più da currentColor
   perché Yapla può sovrascriverlo.
   ---------------------------------------------------------- */

.aiim-menu-toggle span {

    position: absolute;

    left: 10px;

    display: block !important;

    width: 24px !important;
    height: 2px !important;

    margin: 0 !important;
    padding: 0 !important;

    background-color: #111 !important;

    border: 0 !important;
    border-radius: 0 !important;

    opacity: 1 !important;
    visibility: visible !important;

    filter: none !important;

    transform-origin: center;

    transition:
        transform .25s ease,
        opacity .25s ease;
}


/* Riga superiore */

.aiim-menu-toggle span:nth-child(1) {

    top: 13px;
}


/* Riga centrale */

.aiim-menu-toggle span:nth-child(2) {

    top: 21px;
}


/* Riga inferiore */

.aiim-menu-toggle span:nth-child(3) {

    top: 29px;
}


/* ==========================================================
   HAMBURGER APERTO -> X
   ========================================================== */

.aiim-menu-toggle.aiim-menu-toggle-open span:nth-child(1) {

    top: 21px;

    transform:
        rotate(45deg);
}


.aiim-menu-toggle.aiim-menu-toggle-open span:nth-child(2) {

    opacity: 0 !important;
}


.aiim-menu-toggle.aiim-menu-toggle-open span:nth-child(3) {

    top: 21px;

    transform:
        rotate(-45deg);
}


/* ==========================================================
   4. HERO
   ========================================================== */

#aiim-hero {

    width: 100vw;

    position: relative;
    left: 50%;

    margin-left: -50vw;

    margin-top:
        calc(var(--aiim-yapla-gap) * -1) !important;

    margin-bottom:
        calc(var(--aiim-yapla-gap) * -1) !important;

    min-height:
        var(--aiim-hero-height);

    background-image:

        linear-gradient(
            rgba(
                0,
                0,
                0,
                var(--aiim-hero-overlay, .30)
            ),
            rgba(
                0,
                0,
                0,
                var(--aiim-hero-overlay, .30)
            )
        ),

        var(--aiim-hero-image);

    background-size: cover;

    background-position:
        var(--aiim-hero-position, center);

    background-repeat: no-repeat;

    box-sizing: border-box;
}


.aiim-hero-inner {

    width: calc(100% - 40px);

    max-width: var(--aiim-max-width);

    min-height:
        var(--aiim-hero-height);

    margin: 0 auto;

    padding-top:
        var(--aiim-hero-top);

    padding-bottom:
        var(--aiim-hero-bottom);

    box-sizing: border-box;
}


.aiim-hero-content {

    width: 100%;

    max-width: 600px;

    text-align: left;
}


.aiim-hero-title {

    margin: 0 0 16px;

    color: #fff;

    font-size: 42px;

    line-height: 1.15;

    font-weight: 700;
}


.aiim-hero-subtitle {

    margin: 0 0 28px;

    color: #fff;

    font-size: 18px;

    line-height: 1.5;
}



/* ==========================================================
   5. HERO BUTTONS
   ========================================================== */

.aiim-hero-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 16px;
}


.aiim-hero-button {

    display: inline-block;

    padding: 14px 32px;

    border-radius: 30px;

    text-decoration: none !important;

    font-weight: 600;

    line-height: 1.2;

    transition:
        opacity .2s ease,
        transform .2s ease;
}


.aiim-hero-button:hover {

    opacity: .85;

    transform: translateY(-1px);
}


.aiim-hero-button-primary {

    background: #fff;

    color: #000 !important;
}


.aiim-hero-button-secondary {

    background: transparent;

    color: #fff !important;

    border: 1px solid #fff;
}



/* ==========================================================
   6. PAGINA
   ========================================================== */

.aiim-page {

    width: 100%;

    margin-top:
        calc(var(--aiim-yapla-gap) * -1) !important;

    margin-bottom:
        calc(var(--aiim-yapla-gap) * -1) !important;
}


.aiim-page-inner {

    width: calc(100% - 40px);

    max-width: var(--aiim-max-width);

    margin: 0 auto;

    padding-top:
        var(--aiim-page-top);

    padding-bottom:
        var(--aiim-page-bottom);

    box-sizing: border-box;
}



/* ==========================================================
   7. SEZIONI
   ========================================================== */

.aiim-section {

    margin: 0;
}


.aiim-section + .aiim-section {

    margin-top:
        var(--aiim-section-gap);
}


.aiim-section-head {

    width: 100%;

    max-width: 760px;

    margin:
        0 auto 38px;

    text-align: center;
}


.aiim-section-head h2 {

    margin-bottom: 16px;
}


.aiim-section-head p {

    margin-left: auto;

    margin-right: auto;
}



/* ==========================================================
   8. TIPOGRAFIA
   ========================================================== */

.aiim-page h1 {

    margin: 0 0 20px;

    font-size: 42px;

    line-height: 1.15;

    font-weight: 700;
}


.aiim-page h2 {

    margin: 0 0 18px;

    font-size: 32px;

    line-height: 1.2;

    font-weight: 700;
}


.aiim-page h3 {

    margin: 0 0 12px;

    font-size: 22px;

    line-height: 1.3;

    font-weight: 600;
}


.aiim-page p {

    margin: 0 0 16px;

    line-height: 1.6;
}


.aiim-page p:last-child {

    margin-bottom: 0;
}


.aiim-lead {

    max-width: 800px;

    font-size: 20px;

    line-height: 1.55;
}



/* ==========================================================
   9. BOTTONI
   ========================================================== */

.aiim-buttons {

    display: flex;

    flex-wrap: wrap;

    gap: 16px;

    margin-top: 28px;
}


.aiim-button {

    display: inline-block;

    padding: 13px 30px;

    border-radius: 30px;

    text-decoration: none !important;

    font-weight: 600;

    line-height: 1.2;

    transition:
        opacity .2s ease,
        transform .2s ease;
}


.aiim-button:hover {

    opacity: .78;

    transform: translateY(-1px);
}


.aiim-button-primary {

    background: #111;

    color: #fff !important;

    border: 1px solid #111;
}


.aiim-button-outline {

    background: transparent;

    color: inherit;

    border: 1px solid currentColor;
}



/* ==========================================================
   10. DOCUMENTI
   ========================================================== */

.aiim-doc-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 18px;
}


/*
   IMPORTANTE YAPLA

   .aiim-doc-card deve essere un DIV.

   Il link deve essere solo
   <a class="aiim-doc-link">.

   In questo modo Yapla non spezza
   titolo, testo e link in tre card diverse.
*/

.aiim-doc-card {

    display: flex;

    flex-direction: column;

    min-height: 165px;

    padding: 22px;

    box-sizing: border-box;

    background: #fff;

    border:
        1px solid rgba(0,0,0,.11);

    border-radius: 6px;

    transition:
        border-color .2s ease,
        transform .2s ease,
        background .2s ease;
}


.aiim-doc-card:hover {

    border-color:
        rgba(0,0,0,.30);

    background:
        rgba(0,0,0,.015);

    transform:
        translateY(-2px);
}


.aiim-doc-card h3 {

    margin: 0 0 10px;

    font-size: 20px;

    line-height: 1.3;

    font-weight: 600;
}


.aiim-doc-card p {

    margin: 0 0 20px;

    font-size: 14px;

    line-height: 1.5;

    opacity: .70;
}


.aiim-doc-link {

    display: inline-block;

    align-self: flex-start;

    margin-top: auto;

    color: inherit !important;

    font-size: 14px;

    font-weight: 700;

    text-decoration: none !important;
}


.aiim-doc-link:hover {

    text-decoration:
        underline !important;
}



/* ==========================================================
   11. PERSONE — CHI SIAMO SENZA FOTO
   ========================================================== */

.aiim-people-list {

    width: 100%;

    max-width: 900px;

    margin: 0 auto;

    border-top:
        1px solid rgba(0,0,0,.12);
}


.aiim-people-row {

    position: relative;

    display: grid;

    grid-template-columns:
        260px 1fr;

    gap: 40px;

    align-items: center;

    padding: 22px 0;

    overflow: hidden;
}


/* Linea */

.aiim-people-row::after {

    content: "";

    position: absolute;

    left: 0;
    bottom: 0;

    width: 100%;
    height: 1px;

    background:
        rgba(0,0,0,.12);
}


/* Nome */

.aiim-people-row strong {

    display: block;

    font-size: 18px;

    line-height: 1.35;

    font-weight: 600;
}


/* Ruolo */

.aiim-people-row > span {

    display: block;

    font-size: 15px;

    line-height: 1.5;
}


@media (hover: hover) {

    .aiim-people-row strong {

        transition:
            transform .2s ease;
    }


    .aiim-people-row:hover strong {

        transform:
            translateX(5px);
    }

}



/* ==========================================================
   12. ACCORDION
   ========================================================== */

.aiim-accordion {

    width: 100%;

    max-width: 860px;

    margin: 0 auto;

    border-top:
        1px solid rgba(0,0,0,.12);
}


.aiim-accordion-item {

    border-bottom:
        1px solid rgba(0,0,0,.12);
}


.aiim-accordion-item summary {

    list-style: none;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;

    padding: 24px 2px;

    cursor: pointer;
}


.aiim-accordion-item summary::-webkit-details-marker {

    display: none;
}


.aiim-accordion-name {

    font-size: 19px;

    font-weight: 600;
}


.aiim-accordion-icon {

    position: relative;

    flex: 0 0 30px;

    width: 30px;
    height: 30px;

    border:
        1px solid rgba(0,0,0,.18);

    border-radius: 50%;
}


.aiim-accordion-icon::before,
.aiim-accordion-icon::after {

    content: "";

    position: absolute;

    top: 50%;
    left: 50%;

    width: 12px;
    height: 1px;

    background: currentColor;

    transform:
        translate(-50%,-50%);
}


.aiim-accordion-icon::after {

    transform:
        translate(-50%,-50%)
        rotate(90deg);
}


.aiim-accordion-item[open]
.aiim-accordion-icon::after {

    transform:
        translate(-50%,-50%)
        rotate(0deg);
}


.aiim-accordion-body {

    padding:
        0 54px 24px 2px;
}


.aiim-accordion-body p {

    margin: 0;

    font-size: 15px;

    opacity: .72;
}



/* ==========================================================
   13. CTA — ENTRA IN ASSOCIAZIONE
   ========================================================== */

.aiim-cta {

    position: relative;

    overflow: hidden;

    min-height: 360px;

    padding: 54px;

    display: flex;

    align-items: center;

    box-sizing: border-box;

    border-radius: 10px;

    background-image:

        linear-gradient(
            rgba(0,0,0,.42),
            rgba(0,0,0,.42)
        ),

        url(
            'https://cdn.eu.yapla.com/company/CPYCaGEBYSA5o1V7MfTguhLvi/asset/files/web-site/6985e908b4b84e3d70097d99_entra-p-1080.png'
        );

    background-size: cover;

    background-position: center;

    background-repeat: no-repeat;
}


.aiim-cta-content {

    position: relative;

    z-index: 1;

    max-width: 620px;

    color: #fff;
}


.aiim-cta h2 {

    margin: 0 0 14px;

    color: #fff;
}


.aiim-cta p {

    max-width: 600px;

    margin: 0;

    color: #fff;

    font-size: 18px;

    line-height: 1.55;
}


.aiim-cta .aiim-button-primary {

    background: #fff;

    color: #111 !important;

    border-color: #fff;
}


.aiim-cta .aiim-button-outline {

    background: transparent;

    color: #fff !important;

    border-color: #fff;
}



/* ==========================================================
   14. FOOTER
   ========================================================== */

#aiim-footer {

    width: 100%;

    margin-top:
        -10px !important;

    margin-bottom:
        -10px !important;

    padding:
        26px 0 22px;

    box-sizing: border-box;

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 50px;

    border-top:
        1px solid rgba(0,0,0,.10);

    color:
        rgba(0,0,0,.82);
}


/* SINISTRA */

.aiim-footer-left {

    flex: 1 1 auto;

    max-width: 720px;

    padding: 0;

    text-align: left;
}


#aiim-footer .aiim-footer-left p {

    margin: 0 !important;

    font-size: 14px !important;

    line-height: 1.5 !important;

    font-weight: 400;
}


#aiim-footer .aiim-footer-meta,
#aiim-footer .aiim-footer-left p:first-child {

    color:
        rgba(0,0,0,.84);

    font-weight: 500;
}


#aiim-footer .aiim-footer-address,
#aiim-footer .aiim-footer-left p + p {

    margin-top:
        7px !important;

    color:
        rgba(0,0,0,.68);
}


/* DESTRA */

.aiim-footer-right {

    flex: 0 0 auto;

    padding: 0;

    display: flex;

    align-items: center;

    justify-content: flex-end;

    white-space: nowrap;

    text-align: right;
}


#aiim-footer .aiim-footer-right a {

    color:
        rgba(0,0,0,.82) !important;

    font-size:
        14px !important;

    line-height:
        1.4 !important;

    font-weight:
        500 !important;

    text-decoration:
        none !important;

    transition:
        opacity .2s ease;
}


#aiim-footer .aiim-footer-right a:hover {

    opacity: .60;

    text-decoration:
        underline !important;
}


/* separatori automatici */

#aiim-footer
.aiim-footer-right
a + a::before {

    content: "·";

    display: inline-block;

    margin:
        0 11px;

    color:
        rgba(0,0,0,.40);

    font-weight: 400;

    text-decoration: none;
}



/* ==========================================================
   15. GENERIC REVEAL ON SCROLL
   ==========================================================
   FAIL SAFE:

   Il contenuto è SEMPRE visibile.

   Se il JavaScript non viene caricato
   correttamente da Yapla,
   non spariscono sezioni della pagina.
   ========================================================== */

.aiim-reveal {

    opacity: 1;

    transform: none;
}


/*
   Se il JS esistente aggiunge .aiim-visible
   non cambia nulla: il contenuto resta visibile.
*/

.aiim-reveal.aiim-visible {

    opacity: 1;

    transform: none;
}



/* ==========================================================
   16. TABLET
   ========================================================== */

@media (max-width: 900px) {


    /* HEADER */

    .aiim-header-inner {

        min-height: var(--aiim-header-height-mobile);

        position: relative;
    }


    .aiim-header-logo img {

        max-width: 190px;

        max-height: 50px;
    }


    /* HAMBURGER */

    .aiim-menu-toggle {

    display: block !important;

    position: relative;

    flex: 0 0 44px;

    width: 44px;
    height: 44px;

    padding: 0 !important;

    color: #111 !important;

    background: transparent !important;

    border: 0 !important;

    opacity: 1 !important;
    visibility: visible !important;

    z-index: 1002;
}


    /* MENU CHIUSO */

    .aiim-navigation {

        display:
            none !important;

        position: absolute;

        top: 100%;
        left: -20px;

        width:
            calc(100% + 40px);

        padding:
            14px 20px 24px;

        box-sizing: border-box;

        flex-direction: column;

        align-items: stretch;

        gap: 0;

        background: #fff;

        border-top:
            1px solid rgba(0,0,0,.08);

        box-shadow:
            0 14px 24px
            rgba(0,0,0,.08);

        z-index: 1001;
    }


    /*
       APERTURA NORMALE:
       classe aggiunta dal JS già esistente.
    */

    .aiim-navigation.aiim-menu-open {

        display:
            flex !important;
    }


    /*
       FALLBACK CSS.

       Se per qualche motivo il JS non gira,
       cliccando il pulsante l'header riceve focus
       e il menu rimane comunque accessibile.
    */

    #aiim-header:focus-within
    .aiim-navigation {

        display:
            flex !important;
    }


    /* LINK MENU */

    .aiim-navigation > a {

        display:
            block !important;

        width: 100%;

        padding:
            13px 0;

        box-sizing:
            border-box;

        color:
            #111 !important;

        font-size:
            16px !important;

        line-height:
            1.3;

        text-align:
            left;

        text-decoration:
            none !important;
    }


    .aiim-navigation > a + a {

        border-top:
            1px solid rgba(0,0,0,.06);
    }


    .aiim-navigation .aiim-login {

        font-weight: 500;
    }


    /* UNISCITI */

    .aiim-navigation
    .aiim-header-cta {

        width: 100%;

        margin-top: 12px;

        padding:
            13px 22px;

        box-sizing:
            border-box;

        border:
            1px solid #111 !important;

        border-radius:
            30px;

        text-align:
            center;

        font-weight:
            600;
    }


    /* DOCUMENTI */

    .aiim-doc-grid {

        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    /* FOOTER */

    #aiim-footer {

        align-items:
            flex-start;

        gap: 30px;
    }


    .aiim-footer-left {

        flex:
            1 1 60%;

        max-width: 60%;
    }


    .aiim-footer-right {

        flex: 0 0 auto;

        flex-wrap: wrap;
    }

}



/* ==========================================================
   17. MOBILE
   ========================================================== */

@media (max-width: 768px) {

    :root {

        --aiim-page-top: 36px;

        --aiim-page-bottom: 44px;

        --aiim-section-gap: 46px;

        --aiim-hero-height: 540px;

        --aiim-hero-top: 90px;

        --aiim-hero-bottom: 60px;
    }


    /* HERO */

    #aiim-hero {

        background-position:
            var(
                --aiim-hero-position-mobile,
                var(--aiim-hero-position, center)
            );
    }


    .aiim-hero-title {

        font-size: 34px;
    }


    .aiim-hero-subtitle {

        font-size: 17px;
    }


    /* TYPO */

    .aiim-page h1 {

        font-size: 34px;
    }


    .aiim-page h2 {

        font-size: 27px;
    }


    .aiim-lead {

        font-size: 18px;
    }


    .aiim-section-head {

        margin-bottom: 30px;
    }


    /* PERSONE */

    .aiim-people-row {

        grid-template-columns: 1fr;

        gap: 5px;

        padding: 18px 0;
    }


    /* CTA */

    .aiim-cta {

        min-height: 340px;

        padding:
            38px 28px;
    }


    /* FOOTER */

    #aiim-footer {

        display: block;

        padding:
            22px 0 18px;
    }


    .aiim-footer-left {

        width: 100%;

        max-width: 100%;
    }


    .aiim-footer-right {

        width: 100%;

        margin-top: 16px;

        justify-content:
            flex-start;

        white-space:
            normal;

        text-align:
            left;
    }


    #aiim-footer
    .aiim-footer-left p,

    #aiim-footer
    .aiim-footer-right a {

        font-size:
            13px !important;
    }

}



/* ==========================================================
   18. MOBILE PICCOLO
   ========================================================== */

@media (max-width: 600px) {


    .aiim-section-head {

        text-align: left;
    }


    /* DOCUMENTI */

    .aiim-doc-grid {

        grid-template-columns: 1fr;
    }


    .aiim-doc-card {

        min-height: 0;
    }


    /* CTA */

    .aiim-cta {

        min-height: 320px;

        padding:
            32px 24px;
    }


    .aiim-cta p {

        font-size: 17px;
    }


    /* HERO BUTTONS */

    .aiim-hero-buttons {

        gap: 12px;
    }


    .aiim-hero-button {

        padding:
            13px 25px;
    }


    /* FOOTER */

    .aiim-footer-right {

        row-gap: 7px;
    }


    #aiim-footer
    .aiim-footer-right
    a + a::before {

        margin:
            0 8px;
    }

}



/* ==========================================================
   19. ACCESSIBILITÀ
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .aiim-button,
    .aiim-hero-button,
    .aiim-menu-toggle span,
    .aiim-doc-card,
    .aiim-people-row strong {

        transition:
            none !important;
    }

}

/* ==========================================================
   20. FIX HAMBURGER YAPLA
   DEVE RIMANERE ALLA FINE DEL CSS
   ========================================================== */

@media (max-width: 900px) {

    /*
       Nascondiamo le vecchie tre linee.
       L'icona viene disegnata direttamente
       sul pulsante con ::before e ::after.
    */

    html body #aiim-header
    .aiim-menu-toggle > span {

        display: none !important;
    }


    html body #aiim-header
    .aiim-menu-toggle {

        display: block !important;

        position: relative !important;

        width: 44px !important;
        height: 44px !important;

        min-width: 44px !important;
        min-height: 44px !important;

        padding: 0 !important;
        margin: 0 !important;

        background: transparent !important;

        border: 0 !important;

        box-shadow: none !important;

        opacity: 1 !important;

        visibility: visible !important;

        filter: none !important;

        mix-blend-mode: normal !important;

        appearance: none !important;
        -webkit-appearance: none !important;
    }


    /* ------------------------------------------------------
       HAMBURGER CHIUSO
       ------------------------------------------------------ */

    html body #aiim-header
    .aiim-menu-toggle::before {

        content: "" !important;

        display: block !important;

        position: absolute !important;

        left: 10px !important;
        top: 13px !important;

        width: 24px !important;
        height: 2px !important;

        background: #111 !important;
        background-color: #111 !important;

        border: 0 !important;

        opacity: 1 !important;

        visibility: visible !important;

        box-shadow:
            0 8px 0 #111,
            0 16px 0 #111 !important;

        transform: none !important;

        filter: none !important;
    }


    html body #aiim-header
    .aiim-menu-toggle::after {

        content: none !important;
    }


    /* ------------------------------------------------------
       HAMBURGER APERTO -> X
       ------------------------------------------------------ */

    html body #aiim-header
    .aiim-menu-toggle.aiim-menu-toggle-open::before {

        top: 21px !important;

        background: #111 !important;
        background-color: #111 !important;

        box-shadow: none !important;

        transform:
            rotate(45deg) !important;
    }


    html body #aiim-header
    .aiim-menu-toggle.aiim-menu-toggle-open::after {

        content: "" !important;

        display: block !important;

        position: absolute !important;

        left: 10px !important;
        top: 21px !important;

        width: 24px !important;
        height: 2px !important;

        background: #111 !important;
        background-color: #111 !important;

        border: 0 !important;

        opacity: 1 !important;

        visibility: visible !important;

        box-shadow: none !important;

        transform:
            rotate(-45deg) !important;

        filter: none !important;
    }

}
/* ==========================================================
   21. CONFERMA INVIO MODULO
   ========================================================== */

.aiim-form-confirmation {
    padding: 36px 0;
}

.aiim-form-confirmation h2 {
    margin: 0 0 14px;

    font-size: 28px;
    line-height: 1.25;
    font-weight: 600;
}

.aiim-form-confirmation p {
    margin: 0;

    max-width: 520px;

    font-size: 17px;
    line-height: 1.6;
}

/* ==========================================================
   22. COSA FACCIAMO
   ========================================================== */

.aiim-activity-grid {

    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    gap: 50px;
}


/* ----------------------------------------------------------
   CARD
   ---------------------------------------------------------- */

.aiim-activity-card {

    position: relative;

    display: flex;

    flex-direction: column;

    min-height: 300px;

    padding: 32px;

    box-sizing: border-box;

    background: #fff;

    border:
        1px solid rgba(0,0,0,.11);

    border-radius: 8px;

    overflow: hidden;

    transition:
        transform .30s ease,
        border-color .30s ease,
        box-shadow .30s ease;
}


/*
   Linea superiore:
   entra in hover con movimento leggero.
*/

.aiim-activity-card::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 2px;

    background: currentColor;

    transform:
        scaleX(0);

    transform-origin:
        left center;

    transition:
        transform .50s ease;
}


/* ----------------------------------------------------------
   NUMERO
   ---------------------------------------------------------- */

.aiim-activity-number {

    display: block;

    margin-bottom: 34px;

    font-size: 13px;

    line-height: 1;

    font-weight: 600;

    letter-spacing: .08em;

    opacity: .42;
}


/* ----------------------------------------------------------
   TITOLO
   ---------------------------------------------------------- */

.aiim-activity-card h3 {

    margin:
        0 0 16px;

    font-size: 23px;

    line-height: 1.25;

    font-weight: 600;
}


/* ----------------------------------------------------------
   TESTO
   ---------------------------------------------------------- */

.aiim-activity-card p {

    margin:
        0;

    font-size: 15px;

    line-height: 1.65;

    opacity: .78;
}


/* ==========================================================
   HOVER — SOLO DESKTOP
   ========================================================== */

@media (hover: hover) {

    .aiim-activity-card:hover {

        transform:
            translateY(-4px);

        border-color:
            rgba(0,0,0,.24);

        box-shadow:
            0 14px 32px
            rgba(0,0,0,.055);
    }


    .aiim-activity-card:hover::before {

        transform:
            scaleX(1);
    }

}


/* ==========================================================
   TABLET / MOBILE
   ========================================================== */

@media (max-width: 768px) {

    .aiim-activity-grid {

        grid-template-columns: 1fr;

        gap: 16px;
    }


    .aiim-activity-card {

        min-height: 0;

        padding: 26px;
    }


    .aiim-activity-number {

        margin-bottom: 24px;
    }


    .aiim-activity-card h3 {

        font-size: 21px;
    }


    .aiim-activity-card p {

        font-size: 15px;
    }

}


/* ==========================================================
   ACCESSIBILITÀ
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .aiim-activity-card,
    .aiim-activity-card::before {

        transition:
            none !important;
    }

}

/* ==========================================================
   23. FORMAZIONE PERMANENTE
   ========================================================== */


/* ----------------------------------------------------------
   TESTATA
   ---------------------------------------------------------- */

.aiim-training-heading {

    max-width: 780px;

    margin:
        0 auto 46px;

    text-align: center;
}


.aiim-training-eyebrow {

    display: block;

    margin-bottom: 12px;

    font-size: 13px;

    line-height: 1.3;

    font-weight: 600;

    letter-spacing: .08em;

    text-transform: uppercase;

    opacity: .48;
}


.aiim-training-heading h1 {

    margin: 0;

    font-size: 42px;

    line-height: 1.15;

    font-weight: 700;
}



/* ----------------------------------------------------------
   GRIGLIA PRINCIPI
   ---------------------------------------------------------- */

.aiim-training-grid {

    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 20px;
}



/* ----------------------------------------------------------
   CARD
   ---------------------------------------------------------- */

.aiim-training-card {

    position: relative;

    min-height: 330px;

    padding: 32px;

    box-sizing: border-box;

    background: #fff;

    border:
        1px solid rgba(0,0,0,.11);

    border-radius: 8px;

    overflow: hidden;

    transition:
        transform .30s ease,
        border-color .30s ease,
        box-shadow .30s ease;
}


/* linea animata superiore */

.aiim-training-card::before {

    content: "";

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 2px;

    background: currentColor;

    transform:
        scaleX(0);

    transform-origin:
        left center;

    transition:
        transform .50s ease;
}



/* ----------------------------------------------------------
   NUMERO
   ---------------------------------------------------------- */

.aiim-training-number {

    display: block;

    margin-bottom: 34px;

    font-size: 13px;

    line-height: 1;

    font-weight: 600;

    letter-spacing: .08em;

    opacity: .42;
}



/* ----------------------------------------------------------
   TESTO CARD
   ---------------------------------------------------------- */

.aiim-training-card h3 {

    margin:
        0 0 16px;

    font-size: 22px;

    line-height: 1.3;

    font-weight: 600;
}


.aiim-training-card p {

    margin: 0;

    font-size: 15px;

    line-height: 1.65;

    opacity: .78;
}



/* ----------------------------------------------------------
   IMMAGINE FINALE
   ---------------------------------------------------------- */

.aiim-training-visual {

    width: 100%;

    overflow: hidden;

    border-radius: 10px;
}


.aiim-training-visual img {

    display: block;

    width: 100%;

    height: auto;

    object-fit: cover;
}



/* ----------------------------------------------------------
   PULSANTI SOTTO IMMAGINE
   ---------------------------------------------------------- */

.aiim-training-actions {

    display: flex;

    justify-content: center;

    flex-wrap: wrap;

    gap: 16px;

    margin-top: 28px;
}



/* ==========================================================
   HOVER
   ========================================================== */

@media (hover: hover) {

    .aiim-training-card:hover {

        transform:
            translateY(-4px);

        border-color:
            rgba(0,0,0,.24);

        box-shadow:
            0 14px 32px
            rgba(0,0,0,.055);
    }


    .aiim-training-card:hover::before {

        transform:
            scaleX(1);
    }

}



/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width: 900px) {

    .aiim-training-grid {

        grid-template-columns: 1fr;

        gap: 16px;
    }


    .aiim-training-card {

        min-height: 0;

        padding: 28px;
    }

}



/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 600px) {

    .aiim-training-heading {

        margin-bottom: 32px;

        text-align: left;
    }


    .aiim-training-heading h1 {

        font-size: 34px;
    }


    .aiim-training-card {

        padding: 26px;
    }


    .aiim-training-number {

        margin-bottom: 24px;
    }


    .aiim-training-card h3 {

        font-size: 21px;
    }


    .aiim-training-actions {

        justify-content: flex-start;

        margin-top: 22px;

        gap: 12px;
    }

}



/* ==========================================================
   ACCESSIBILITÀ
   ========================================================== */

@media (prefers-reduced-motion: reduce) {

    .aiim-training-card,
    .aiim-training-card::before {

        transition:
            none !important;
    }

}


/* ==========================================================
   24. PAGINA 404 — AIIM
   ========================================================== */

/* Contenitore principale */

.aiim-404 .aiim-page-inner {

    min-height: 65vh;

    display: flex;

    align-items: center;

    justify-content: center;

    padding-top: 80px;

    padding-bottom: 100px;

    box-sizing: border-box;
}


/* Contenuto centrale */

.aiim-404-content {

    width: 100%;

    max-width: 760px;

    margin: 0 auto;

    text-align: center;
}


/* Numero 404 */

.aiim-404-number {

    display: block;

    margin-bottom: 28px;

    font-size: clamp(90px, 15vw, 160px);

    line-height: 1;

    font-weight: 700;

    letter-spacing: -0.06em;

    color: #111;
}


/* Titolo */

.aiim-404 h1 {

    margin: 0 0 24px;

    font-size: clamp(30px, 4vw, 44px);

    line-height: 1.2;

    font-weight: 700;
}


/* Descrizione */

.aiim-404-content > p {

    max-width: 560px;

    margin: 0 auto;

    font-size: 18px;

    line-height: 1.6;

    color: rgba(0,0,0,.65);
}


/* Pulsanti */

.aiim-404-buttons {

    justify-content: center;

    margin-top: 36px;
}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width: 768px) {

    .aiim-404 .aiim-page-inner {

        min-height: 60vh;

        padding-top: 60px;

        padding-bottom: 80px;
    }

    .aiim-404-number {

        margin-bottom: 24px;
    }

    .aiim-404-content > p {

        font-size: 16px;
    }

    .aiim-404-buttons {

        gap: 12px;
    }

}
