*{
    margin: 0;
    padding: 0;
}

html, body { height: 100%;}

body{
    max-width: 100%;
    width: 100%;
    overflow-x: hidden;
}

header{
    position: relative;
    width: 100%;
    height: 150px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

header::after{
    content: '';
    display: block;
    height: 2px;
    width: 100%;
    background: rgb(29,209,161);
    background: radial-gradient(circle, rgba(0,146,137,1) 0%, rgba(255,255,255,1) 100%);
}

#logoIFF{
    display: flex;
    justify-content: center;
    gap: 10px;
    flex: 1 1 0;
    height: 100%;
    align-items: center;
}

#logo{
    flex: 1 1 0;
    height: 100%;
}

#logoIFF > img{
    height: 80%;
    max-width: 100%;
}

#logo > img{
    height: 100%;
    max-width: 100%;
}

.iff{
    color: #d4121a;
    font-size: clamp(20px, 5em, 50px);
    font-weight: bold;
}

#mainContainer{
    position: relative;
}

#mainContainer, .sp, .prim{
    min-height: calc(70vh - 300px - 86px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    width: 100%;
}

.ps, .btnS, .btnL{
    width: 200px;
    padding: 1rem;
    text-align: center;
    font-size: 20px;
    transition: 0.1s ease-in-out;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ps, .btnS{
    border: 1px solid rgb(189, 189, 189);
    background-color: #40739e;
    color: white;
    border-radius: 8px;
}

a.btnL[aria-expanded='true']{
    border: none;
    background: rgb(190,190,190);
    background: linear-gradient(180deg, rgba(190,190,190,1) 0%, rgba(255,255,255,1) 100%);
}

.btnL{
    color: black;
    font-weight: 500;
    border-bottom: 1px solid rgb(189, 189, 189);
}

.sp{
    padding: 20px 0;
}

.sp > div{
    width: 90%;
}

.btnS, .btnL{
    width: 100%;
}

.btnS::before{
    transition: 0.2s ease-in-out;
    content: "";
    background-image: url("img/arrow_down.svg");
    background-repeat: no-repeat;
    display: block;
    width: 0px;
    height: 20px;
    color: white;
    opacity: 0;
}

.btnS:hover::before{
    content: "";
    opacity: 1;
    width: 20px;
}

.btnS::after{
    transition: 0.2s ease-in-out;
    content: "";
    background-image: url("img/arrow_down.svg");
    background-repeat: no-repeat;
    display: block;
    width: 0px;
    height: 20px;
    color: white;
    opacity: 0;
}

.btnS:hover::after{
    content: "";
    opacity: 1;
    width: 20px;
}

.ps:hover, .btnS:hover{
    background-color: #487eb0;
}


.ps > *:nth-child(1), 
.btnS > div:nth-child(1),
.btnL > div:nth-child(1){
    flex: 1 1 0;
}

.ps::after{
    transition: 0.2s ease-in-out;
    content: "";
    background-image: url("img/arrow_right.svg");
    background-repeat: no-repeat;
    display: block;
    width: 0px;
    height: 20px;
    color: white;
    opacity: 0;
}

.ps:hover::after{
    content: "";
    opacity: 1;
    width: 20px;
}

.gs > div{
    background: rgb(190,190,190);
    background: linear-gradient(90deg, rgba(190,190,190,1) 0%, rgba(255,255,255,1) 100%);
}
.gd > div{
    background: rgb(190,190,190);
    background: linear-gradient(270deg, rgba(190,190,190,1) 0%, rgba(255,255,255,1) 100%);
}
.gs, .gd{
    flex: 1 1 0;
    display: flex;
    justify-content: center;
    align-items: center;
}

.gs > div,
.gd > div{
    width: 100%;
    height: 2px;
}

.linkP{
    color: black;
    font-weight: 800;
    display: flex;
    justify-content: center;
    margin: 8px 0;
}

.cc{
    font-size: 18px;
    text-align: center;
    flex: 1 1 0;
}

.out_l{
    position: absolute;
    animation: out_left 1s forwards;
}

.c_in_l_1{
    animation: c_in_l 1s forwards;
}

.sp{
    position: absolute;
    animation: c_in 1s forwards;
}

.c_in_o_1{
    position: absolute;
    animation: c_in_o 1s forwards;
}

@keyframes out_left {
    0%{
        transform: translateX(0);
        opacity: 1;
    }
    100%{
        transform: translateX(-50vw);
        opacity: 0;
        display: none;
    }
}

@keyframes c_in {
    0%{
        transform: translateX(50vw);
        opacity: 0;
    }
    100%{
        position: relative;
        transform: translateX(0vw);
        opacity: 1;
    }
}

@keyframes c_in_l {
    0%{
        transform: translateX(-50vw);
        opacity: 0;
    }
    100%{
        transform: translateX(0vw);
        opacity: 1;
    }
}

@keyframes c_in_o {
    0%{
        transform: translateX(0vw);
        opacity: 1;
    }
    50%{
        opacity: 0;
    }
    100%{
        transform: translateX(50vw);
        opacity: 0;
    }
}

#nv{
    font-size: 20px;
    padding: 20px 16px;
}

#back{
    text-decoration: underline;
}

.breadcrumb-item > a{
    color: black !important;
}

#altro, #othd{
    padding: 20px 24px;
}

#othd{
    font-size: 20px;
}

#othd > a{
    color: #40739e;
    font-weight: bold;
}

.titoloAltro{
    color: #40739e;
    font-weight: bold;
    font-size: 30px;
}

.j{
    text-align: justify;
    text-justify: inter-word;
}

#fineAltro{
    padding-top: 10px;
    padding-left: 40px;
}

.linkDisabled{
    cursor: default;
    pointer-events: none;
    opacity: 0.7;
    font-weight: 100;
}

a{
    color: white;
    text-decoration: none;
    font-weight: bold;
}

.text-muted {
    --bs-text-opacity: 1;
    color: #6c757d !important;
}

body > footer {
    height: 150px;
    position: sticky !important;
    top: 100vh !important;
}

@media (max-width: 1450px) {
    header{
        height: 250px;
        display: flex;
        flex-direction: column;
    }

    #logo, #logoIFF{
        height: 50%;   
    }
}

@media (max-width: 677px) {
    .iff{
        font-size: 30px;
    }
}

@media (max-width: 377px) {
    .iff{
        font-size: 22px;
    }
}