@charset "utf-8";

/* ========================================
   Base — Mobile First
   ======================================== */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
}

.bodyHolder {
    min-height: 100vh;
}

.footer__holder {
    margin-top: auto;
}

/* ========================================
   Header
   ======================================== */
.header {
    position: relative;
    padding: 3rem 1.5rem;
    background: #0082F2;
    text-align: center;
}

.headerWrapper {
    position: relative;
    width: 100%;
    z-index: 2;
}

.headerMaxWidth {
    position: relative;
    max-width: 85.375rem;
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4rem;
}

.headerContainer {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.headerLogoMoloni img {
    width: 150px;
}

.headerTitle {
    margin-top: 2rem;
    font-weight: 600;
    font-size: clamp(1.8rem, 5vw, 3rem);
    line-height: 1.2;
    color: #fff;
}

.headerSubtitle {
    margin-top: 2rem;
    font-weight: 400;
    font-size: clamp(1.2rem, 4vw, 1.75rem);
    line-height: 1.3;
    color: #fff;
}

.headerButtons {
    display: flex;
    justify-content: center;
    margin-top: 2.5rem;
}

.headerImage {
    max-width: min(100%, 40rem);
    margin-top: 2rem;
}

.headerBottomBG {
    position: absolute;
    bottom: 0;
    left: 0;
    width: max(1920px, 100%);
    max-width: 100%;
    height: 25rem;
    z-index: 1;
    overflow-x: hidden;
}

/* ========================================
   CTA Button
   ======================================== */
.ctaButtonHeader {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1rem 1.875rem;
    border-radius: 0.375rem;
    background: #303A4D;
    cursor: pointer;
    text-decoration: none;
    transition: transform 0.2s ease, background-color 0.2s ease;
    position: relative;
}

.ctaButtonHeader span {
    font-weight: 400;
    font-size: 1.25rem;
    color: #fff;
}

.ctaButtonHeader:hover {
    background: #3f4b63;
    transform: translateY(-2px);
}

/* Confetti */
.ctaButtonHeader::before,
.ctaButtonHeader::after,
.ctaButtonHeader span::before,
.ctaButtonHeader span::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    background: transparent;
    pointer-events: none;
}

.ctaButtonHeader::before {
    top: 50%;
    left: 50%;
}

.ctaButtonHeader::after {
    top: 40%;
    left: 55%;
}

.ctaButtonHeader span::before {
    top: 60%;
    left: 48%;
}

.ctaButtonHeader span::after {
    top: 45%;
    left: 42%;
}

.ctaButtonHeader:hover::before {
    animation: confettiBurst1 1.2s forwards;
}

.ctaButtonHeader:hover::after {
    animation: confettiBurst2 1.5s forwards 0.5s;
}

.ctaButtonHeader:hover span::before {
    animation: confettiBurst3 1s forwards 0.8s;
}

.ctaButtonHeader:hover span::after {
    animation: confettiBurst4 0.8s forwards 0.6s;
}

/* Confetti keyframes */
@keyframes confettiBurst1 {
    0% {
        box-shadow: 0 0 #ff3b30, 0 0 #ffcc00, 0 0 #4cd964;
        opacity: 1;
    }
    100% {
        box-shadow: -40px -60px #ff3b30, -60px 0px #ffcc00, -30px 40px #4cd964;
        opacity: 0;
    }
}

@keyframes confettiBurst2 {
    0% {
        box-shadow: 0 0 #ff9500, 0 0 #ff2d55, 0 0 #34c759;
        opacity: 1;
    }
    100% {
        box-shadow: 60px -50px #ff9500, -50px -30px #ff2d55, 40px 50px #34c759;
        opacity: 0;
    }
}

@keyframes confettiBurst3 {
    0% {
        box-shadow: 0 0 #007aff, 0 0 #af52de, 0 0 #ff3b30;
        opacity: 1;
    }
    100% {
        box-shadow: -50px 20px #007aff, 60px -40px #af52de, 40px 60px #ff3b30;
        opacity: 0;
    }
}

@keyframes confettiBurst4 {
    0% {
        box-shadow: 0 0 #ffcc00, 0 0 #4cd964, 0 0 #5ac8fa;
        opacity: 1;
    }
    100% {
        box-shadow: 50px 50px #ffcc00, -40px -50px #4cd964, 60px 30px #5ac8fa;
        opacity: 0;
    }
}

/* ========================================
   Sections
   ======================================== */
.tmplSectionContainer {
    margin: 0;
    padding: 2.5rem 1.5rem;
}

.sectionMaxWidth {
    max-width: 85.375rem;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.sectionFloatTitle {
    font-weight: 600;
    font-size: clamp(1.5rem, 5vw, 2.25rem);
    line-height: 1.2;
    text-align: center;
    color: #303A4D;
    margin-bottom: 1.5rem;
}

.sectionFloatText {
    font-weight: 400;
    font-size: 1rem;
    color: #303A4D;
    line-height: 1.6;
}

.conditionsList li {
    text-align: left;
}

.conditionsList li::marker {
    font-weight: 600;
}

/* ========================================
   Footer
   ======================================== */
.tmplFooterBgColor {
    background: #0082F2;
}

/* ========================================
   Media Queries
   ======================================== */
@media (min-width: 576px) {
    .tmplSectionContainer {
        padding: 3.75rem 1.5rem;
    }

    .sectionFloatText {
        font-size: 1.125rem;
    }
}

@media (min-width: 960px) {
    .header {
        padding: 5rem 5%;
    }

    .headerLogoMoloni img {
        width: 250px;
    }

    .headerTitle {
        margin-top: 3rem;
    }

    .headerSubtitle {
        margin-top: 2rem;
    }

    .headerButtons {
        margin-top: 2rem;
    }


    .headerBottomBG {
        height: 55rem;
    }
}

@media (min-width: 1366px) {
    .tmplSectionContainer {
        padding: 5rem 5%;
    }

    .headerMaxWidth {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
    }

    .headerContainer {
        align-items: flex-start;
        text-align: left;
    }

    .headerImage {
        margin-top: 10rem;
    }

    .headerBottomBG {
        height: 100%;
    }
}
