/* ######################### */
/* #         FONTS         # */
/* ######################### */

@font-face {
    font-family: 'Satoshi';
    font-weight: normal;
    src: url(../../_fonts/Satoshi-Regular.woff2) format('woff2'),
        url(../../_fonts/Satoshi-Regular.woff) format('woff'),
        url(../../_fonts/Satoshi-Regular.ttf) format('truetype');
}

@font-face {
    font-family: 'Satoshi';
    font-weight: bold;
    src: url(../../_fonts/Satoshi-Bold.woff2) format('woff2'),
        url(../../_fonts/Satoshi-Bold.woff) format('woff'),
        url(../../_fonts/Satoshi-Bold.ttf) format('truetype');
}

@font-face {
    font-family: 'Satoshi';
    font-weight: 900;
    src: url(../../_fonts/Satoshi-Black.woff2) format('woff2'),
        url(../../_fonts/Satoshi-Black.woff) format('woff'),
        url(../../_fonts/Satoshi-Black.ttf) format('truetype');
}

/* ######################### */
/* #        GENERAL        # */
/* ######################### */

:root {
    interpolate-size: allow-keywords;

    --clear: #fff;
    --dark: 0, 0, 0;
    --star-green: #86B918;
    --star-green-dark: #76A215;
    --atomic-lime: 199, 254, 11;
    --star-green-btn-hover: #94BF00;
    --vivid-violet: #9018ba;
    --error-color-clear: 239, 69, 69;
    --error-color-dark: #6F1515;
    --error-background-color: #E9C0C0;

    --primary-color: var(--star-green);
    --secondary-color: var(--clear);
    --primary-text-color: rgb(var(--dark));
    --secondary-text-color: var(--vivid-violet);
    --alt-color: var(--clear);
    --alt-text-color: rgb(var(--dark));
}

html,
body {
    background-color: var(--star-green);
    scroll-behavior: smooth;
}

* {
    margin: 0px;
    border: none;
    color: rgb(var(--dark));
    font-family: 'Satoshi';
    padding: 0px;
    box-sizing: border-box;
}

h1,
h2,
h3 {
    display: block;
    font-weight: 900;
    text-transform: uppercase;
    width: 100%;
}

strong {
    font-weight: 900;
}

.clear-bg {
    background-color: var(--clear);

    * {
        color: rgb(var(--dark));
    }
}

.dark-bg {
    background-color: rgb(var(--dark));

    * {
        color: var(--clear);
    }
}

.green-text {
    color: var(--star-green);

    &.dark {
        color: var(--star-green-dark);
    }
}

.purple-text {
    color: var(--vivid-violet);
}

.btn {
    display: block;
    border: none;
    border-radius: 10px;
    background-color: rgb(var(--atomic-lime));
    color: rgb(var(--dark));
    font-size: 16px;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    line-height: 20px;
    padding: 15px;
    transition: background-color 150ms ease-in-out;

    @media(min-width:1024px) {
        font-size: 25px;
        padding: 24px 20px;
    }

    strong {
        color: inherit;
    }

    &:hover {
        background-color: var(--star-green-btn-hover);
    }

    &:before {
        display: inline-block;
        margin: 0px 12px -1px 0px;
        border-top: 8px solid transparent;
        border-left: 15px solid rgb(var(--dark));
        border-bottom: 8px solid transparent;
        content: '';
        width: 0px;
        height: 0px;

        @media(min-width:1024px) {
            margin: 0px 17px 0px 0px;
            border-top: 9px solid transparent;
            border-left: 16px solid rgb(var(--dark));
            border-bottom: 9px solid transparent;
        }
    }
}

/* ######################### */
/* #        HEADER         # */
/* ######################### */

body header {
    display: grid;
    position: relative;
    float: left;
    background-color: rgb(var(--dark));
    grid-template-columns: min(100%, 1600px);
    justify-content: center;
    padding: 11px 20px;
    width: 100%;

    a.skip-btn {
        display: block;
        position: absolute;
        top: 0px;
        left: 0px;
        border-radius: 0px 0px 12px 0px;
        background-color: var(--star-green);
        color: rgb(var(--dark));
        font-size: 16px;
        font-weight: bold;
        text-decoration: underline;
        text-transform: uppercase;
        transform: translateX(-110%);
        padding: 16px 24px;
        box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.5);
        z-index: 3;

        &:focus {
            transform: translateX(0%);
        }

        &:hover {
            text-decoration: none;
        }
    }

    &>div {
        display: flex;
        position: relative;
        justify-content: end;
        align-items: center;

        .logo-link {
            display: block;
            position: absolute;
            top: -11px;
            left: 0px;
            color: var(--clear);
            width: clamp(140px, 21%, 227px);
            z-index: 2;

            img {
                display: block;
                width: 100%;
            }
        }

        .actions-container {
            display: flex;
            gap: 24px;

            .menu-btn {
                display: block;
                position: relative;
                border-radius: 10px;
                background-color: var(--clear);
                width: 40px;
                height: 40px;

                @media(min-width:1440px) {
                    display: none;
                }

                &:before,
                &:after,
                span {
                    display: block;
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    border-radius: 2px;
                    background-color: rgb(var(--dark));
                    transform: translate(-50%, -50%);
                    content: '';
                    width: 20px;
                    height: 3px;
                    transition: all 250ms ease-in-out;
                }

                &:before {
                    margin-top: -6px;
                }

                &:after {
                    margin-top: 6px;
                }

                &.open:before {
                    margin-top: 0px;
                    transform: translate(-50%, -50%) rotate(45deg);
                }

                &.open:after {
                    margin-top: 0px;
                    transform: translate(-50%, -50%) rotate(-45deg);
                }

                &.open span {
                    opacity: 0;
                }
            }

            nav {
                display: none;
                position: absolute;
                top: 51px;
                left: -20px;
                background-color: rgb(var(--dark));
                width: calc(100% + 40px);
                overflow: hidden;
                z-index: 1;
                transition: box-shadow 150ms;

                &.open {
                    box-shadow: 0px 100000px 0px 100000px rgba(0, 0, 0, 0.5);
                }

                @media(min-width:1440px) {
                    display: block !important;
                    position: static;
                    width: auto;
                    transition: box-shadow 0s;

                    &.open {
                        box-shadow: none;
                    }
                }

                ul {
                    display: grid;
                    grid-template-columns: 1fr;
                    gap: 24px;
                    padding: 12px 20px 24px;

                    @media(min-width:1440px) {
                        display: flex;
                        gap: 34px;
                        padding: 10px;
                    }

                    li {
                        display: grid;
                        grid-template-columns: 1fr;

                        a {
                            color: var(--clear);
                            font-size: 16px;
                            font-weight: 900;
                            text-align: right;
                            text-decoration: none;
                            text-transform: uppercase;
                            line-height: 20px;

                            @media(min-width:600px) {
                                text-align: center;
                            }

                            &:hover {
                                text-decoration: underline;
                            }
                        }
                    }
                }
            }

            .btn {
                display: none;

                @media(min-width:1024px) {
                    display: block;
                    font-size: 16px;
                    line-height: 20px;
                    padding: 10px 20px;
                }

                &:before {
                    margin: 0px 12px -2px 0px;
                    border-top: 8px solid transparent;
                    border-left: 14px solid rgb(var(--dark));
                    border-bottom: 8px solid transparent;
                }
            }
        }
    }
}

/* ######################### */
/* #         MAIN          # */
/* ######################### */

body main {
    display: block;
    float: left;
    width: 100%;

    section {
        display: grid;
        float: left;
        grid-template-columns: min(100%, 1600px);
        justify-content: center;
        padding: 40px 4.6875% 50px;
        width: 100%;

        .clear-bg+&.clear-bg {
            padding-top: 0px;
        }

        @media(min-width:1024px) {
            padding: 72px 4.6875% 82px;
        }

        &.intro-section {
            background-color: var(--clear);
            background-image: url(../_img/background-header.webp?v=0);
            background-repeat: no-repeat;
            background-position: center bottom;
            background-size: 393px auto;
            align-items: end;
            padding: max(80px, 10%) 4.6875% 345px;

            @media(min-width:1024px) {
                background-position: right center;
                background-size: auto 100%;
                padding: 130px 4.6875% 58px;
            }

            .intro-text {
                display: flex;
                justify-content: start;

                div {
                    display: grid;
                    grid-template-columns: 1fr;
                    gap: 10px;
                    justify-items: start;
                    width: min(100%, 920px);

                    @media(min-width:1024px) {
                        gap: 20px;
                    }

                    h1 {
                        font-size: 26px;
                        text-wrap: balance;

                        @media(min-width:1024px) {
                            font-size: 40px;
                            line-height: 50px;
                            text-shadow: 0px 0px 5px rgba(255, 255, 255, 0.75);
                        }

                        @media(min-width:1440px) {
                            font-size: 68px;
                            line-height: 70px;
                        }
                    }

                    p {
                        font-size: 20px;
                        text-wrap: balance;

                        @media(min-width:1024px) {
                            font-size: 28px;
                            text-shadow: 0px 0px 5px rgba(255, 255, 255, 0.75);
                        }

                        @media(min-width:1440px) {
                            font-size: 34px;
                        }
                    }

                    .btn {
                        margin: 40px auto 0px;
                        
                        @media(min-width:1024px) {
                            margin: 50px 0px 0px;
                        }
                    }
                }
            }
        }

        &.big-question-container {
            position: relative;
            grid-template-columns: min(100%, 1780px);
            padding: 65px 0px 56px;

            @media(min-width:1024px) {
                background-image: url(../_img/background-clear.webp?v=0);
                background-position: center bottom -57px;
                background-repeat: repeat-x;
                background-size: 35px auto;
                padding: 90px 0px 80px;
                overflow: hidden;
            }

            .big-question-content {
                display: grid;
                justify-content: center;
                justify-items: center;
                gap: 0px;
                width: 100%;

                @media(min-width:1280px) {
                    grid-template-columns: 1fr min(100%, 1038px) 1fr;
                    grid-template-areas:
                        "side-1 content side-2";
                    align-items: end;
                }

                div {
                    display: grid;
                    position: relative;
                    grid-template-columns: 1fr;
                    grid-area: content;
                    gap: 36px;
                    justify-content: center;
                    justify-items: center;
                    text-align: center;
                    z-index: 1;

                    h2 {
                        font-size: 24px;

                        @media(min-width:1024px) {
                            font-size: 30px;
                        }

                        @media(min-width:1440px) {
                            font-size: 70px;
                        }

                        .green-container {
                            display: inline-block;
                            margin-top: 8px;
                            border-radius: 14px;
                            background-color: var(--star-green);
                            font-size: 25px;
                            font-weight: 400;
                            text-transform: none;
                            line-height: 35px;
                            padding: 10px 25px 15px;
                            width: min(100%, 430px);

                            @media(min-width:1024px) {
                                margin-top: 15px;
                                border-radius: 34px;
                                font-size: 58px;
                                line-height: 75px;
                                padding: 25px 60px 35px;
                                width: min(100%, 930px);
                            }

                            span {
                                display: block;
                                font-size: 27px;

                                &.highlighted {
                                    font-weight: 900;
                                    text-transform: uppercase;
                                }

                                @media(min-width:1024px) {
                                    font-size: 58px;
                                }
                            }
                        }
                    }

                    p {
                        font-size: 22px;
                        font-weight: 900;
                        text-wrap: balance;
                        padding: 0px 4.6875%;

                        @media(min-width:1024px) {
                            font-size: 34px;
                        }

                        strong {
                            display: block;
                            font-size: 26px;

                            @media(min-width:1024px) {
                                font-size: 60px;
                            }
                        }
                    }
                }

                img {
                    display: none;
                    float: right;
                    grid-area: side-1;

                    img+& {
                        float: left;
                        grid-area: side-2;
                    }

                    @media(min-width:1280px) {
                        display: block;
                        margin: 0px -25px -80px;
                        width: max(100%, 378px);
                    }
                }
            }

            &:after {
                display: block;
                position: absolute;
                left: 50%;
                bottom: 0px;
                margin-left: -19px;
                border-left: 19px solid transparent;
                border-right: 19px solid transparent;
                border-bottom: 21px solid rgb(var(--dark));
                content: '';
                transform: translateX(-50%);
                width: 0px;
                height: 0px;

                @media(min-width:1024px) {
                    margin-left: -38px;
                    border-left: 38px solid transparent;
                    border-right: 38px solid transparent;
                    border-bottom: 43px solid rgb(var(--dark));
                }
            }
        }

        .steps-container {
            display: grid;
            border-radius: 16px;
            grid-template-columns: 1fr;
            justify-items: center;
            gap: 16px;
            padding: 20px 0px;

            @media(min-width:1024px) {
                padding-bottom: 0px;
            }

            h2 {
                font-size: 22px;
                text-align: center;
                text-wrap: balance;

                @media(min-width:1024px) {
                    font-size: 45px;
                }
            }

            ol {
                display: grid;
                margin-top: 38px;
                grid-template-columns: min(100%, 500px);
                gap: 40px;
                justify-content: center;
                counter-reset: steps;
                padding-bottom: 40px;

                @media(min-width:1024px) {
                    grid-template-columns: repeat(3, 1fr);
                }

                li {
                    display: grid;
                    align-content: start;
                    gap: 15px;

                    @media(min-width:1024px) {
                        gap: 30px;
                    }

                    div {
                        display: block;
                        position: relative;
                        border-radius: 10px;
                        aspect-ratio: 501/361;
                        overflow: hidden;

                        img {
                            display: block;
                            position: absolute;
                            top: 50%;
                            left: 50%;
                            transform: translate(-50%, -50%);
                            width: 100%;
                        }

                        &:before {
                            display: block;
                            position: absolute;
                            top: 0px;
                            left: 0px;
                            background-color: var(--star-green);
                            color: rgb(var(--dark));
                            font-size: 28px;
                            font-weight: 900;
                            text-align: center;
                            counter-increment: steps;
                            content: counter(steps);
                            line-height: 55px;
                            width: 55px;
                            z-index: 1;

                            @media(min-width:1024px) {
                                font-size: 36px;
                                line-height: 77px;
                                width: 77px;
                            }
                        }
                    }

                    h3 {
                        font-size: 22px;
                        text-wrap: balance;
                        width: 100%;

                        @media(min-width:1440px) {
                            font-size: 30px;
                            padding-right: 12%;
                        }
                    }

                    p {
                        font-size: 16px;
                        text-wrap: balance;
                        width: 100%;

                        @media(min-width:1440px) {
                            font-size: 23px;
                        }
                    }
                }
            }
        }

        &.text-section {
            background-image: url(../_img/background-clear.webp?v=0);
            background-position: center bottom -185px;
            background-repeat: repeat-x;
            background-size: 35px auto;
            padding: 40px 4.6875% 50px;

            @media(min-width:1024px){
                background-position: center bottom -110px;
                padding: 72px 4.6875% 82px;

                &.revert {
                    background-position: center bottom -143px;
                }
            }

            .text-container {
                display: flex;
                flex-wrap: wrap;
                gap: 20px;
                justify-content: space-between;
                align-items: flex-start;

                .revert & {
                    flex-direction: row-reverse;
                    align-items: center;
                }

                div {
                    display: grid;
                    margin: auto;
                    gap: 30px;
                    justify-items: left;
                    width: min(100%, 500px);

                    .revert & {
                        gap: 10px 30px;
                    }

                    @media(min-width:1024px) {
                        margin: 0px;
                        width: min(47.5%, 760px);

                        .revert & {
                            width: min(47.5%, 660px);
                        }
                    }

                    h2 {
                        font-size: 22px;
                        text-align: center;
                        text-wrap: balance;
                        width: 100%;

                        .revert & {
                            font-weight: 700;
                            text-align: left;
                            text-transform: none;
                        }

                        @media(min-width:1024px) {
                            font-size: 34px;
                            text-align: left;
                        }

                        @media(min-width:1440px) {
                            font-size: 52px;
                        }
                    }

                    p {
                        font-size: 16px;
                        text-wrap: balance;

                        .revert & {
                            font-size: 22px;
                        }

                        @media(min-width:1024px) {
                            font-size: 24px;

                            .revert & {
                                font-size: 34px;
                            }
                        }

                        @media(min-width:1440px) {
                            font-size: 38px;

                            .revert & {
                                font-size: 52px;
                            }
                        }

                        &.hightlighted-text {
                            display: block;
                            margin: 0px -5.125%;
                            border-radius: 22px;
                            background-color: rgb(var(--dark));
                            color: var(--clear);
                            font-size: 37px;
                            text-align: center;
                            line-height: 37px;
                            padding: 22px;
                            width: 110.25%;

                            @media(min-width:1024px) {
                                margin: 0px;
                                width: 100%;
                            }

                            @media(min-width:1440px) {
                                font-size: 69px;
                                line-height: 69px;
                            }

                            span {
                                display: block;
                                color: inherit;
                                font-size: 34px;
                                font-weight: 900;
                                text-transform: uppercase;
                                line-height: 37px;

                                @media(min-width:1440px) {
                                    font-size: 64px;
                                    line-height: 77px;
                                }

                                &.big {
                                    font-size: 43px;
                                    line-height: 43px;

                                    @media(min-width:1440px) {
                                        font-size: 81px;
                                        line-height: 81px;
                                    }
                                }
                            }
                        }
                    }

                    .btn {
                        margin: 0px;
                    }
                }

                img {
                    display: block;
                    margin: 0px auto;
                    border-radius: 10px;
                    width: min(90%, 580px);

                    @media(min-width:1024px) {
                        margin: 0px;
                        width: min(50%, 790px);

                        .revert & {
                            width: min(50%, 667px);
                        }
                    }
                }
            }
        }

        &.advantages-section {
            background-image: url(../_img/background-dark.webp?v=0);
            background-position: center bottom -420px;
            background-repeat: repeat-x;
            background-size: 35px 520px;
            padding: 40px 4.6875% 150px;

            @media(min-width:1024px) {
                background-position: center bottom -322px;
                padding: 72px 4.6875% 159px;
            }

            h2 {
                font-size: 22px;
                text-align: center;
                text-wrap: balance;

                @media(min-width:1024px){
                    font-size: 34px;
                }

                @media(min-width:1440px){
                    font-size: 61px;
                }
            }

            ol {
                display: grid;
                margin-top: 27px;
                gap: 45px;
                counter-reset: advantages;

                @media(min-width:1024px){
                    margin-top: 100px;
                    gap: 90px;
                }

                &>li {
                    display: grid;
                    grid-template-columns: min(100%, 480px);
                    grid-template-areas: 
                        "image"
                        "content";
                    gap: 33px 54px;
                    justify-content: center;

                    @media(min-width:1024px){
                        grid-template-columns: min(40%, 444px) 1fr;
                        grid-template-areas: 
                            "image content";

                        &:nth-child(even) {
                            grid-template-columns: 1fr min(40%, 444px);
                            grid-template-areas: 
                                "content image";
                        }
                    }

                    div {
                        grid-area: content;

                        h3 {
                            position: relative;
                            font-size: 22px;
                            text-wrap: balance;
                            align-items: center;
                            line-height: 25px;
                            padding-left: 60px;
                            
                            @media(min-width:1024px){
                                font-size: 30px;
                                line-height: 34px;
                                padding-left: 68px;
                            }
                            
                            @media(min-width:1440px){
                                margin-bottom: -7px;
                                font-size: 40px;
                                line-height: 59px;
                                padding-left: 83px;
                            }

                            &:before {
                                display: block;
                                position: absolute;
                                top: 0px;
                                left: 0px;
                                background-color: rgb(var(--atomic-lime));
                                color: rgb(var(--dark));
                                font-size: 25px;
                                font-weight: 900;
                                text-align: center;
                                counter-increment: advantages;
                                content: counter(advantages);
                                line-height: 50px;
                                width: 50px;
                                z-index: 1;

                                @media(min-width:1440px) {
                                    font-size: 36px;
                                    line-height: 59px;
                                    width: 59px;
                                }
                            }
                        }

                        ul {
                            display: block;

                            li {
                                display: block;
                                position: relative;
                                margin-top: 20px;
                                font-size: 16px;
                                line-height: 22px;
                                padding-top: 2px;
                                padding-left: 25px;
                                
                                @media(min-width:1024px){
                                    font-size: 20px;
                                    line-height: 28px;
                                    padding-top: 3px;
                                    padding-left: 68px;
                                }
                                
                                @media(min-width:1440px){
                                    margin-top: 40px;
                                    font-size: 28px;
                                    line-height: 42px;
                                    padding-left: 83px;
                                }

                                &:before {
                                    position: absolute;
                                    top: 0px;
                                    left: 0px;
                                    color: rgb(var(--atomic-lime));
                                    font-size: 33px;
                                    font-weight: 900;
                                    content: '+';
                                
                                    @media(min-width:1024px){
                                        left: 22px;
                                        font-size: 45px;
                                    }
                                
                                    @media(min-width:1440px){
                                        left: 32px;
                                    }
                                }
                            }
                        }

                        .btn {
                            margin: 40px auto 0px;
                            width: 266px;
                                
                            @media(min-width:1024px){
                                margin: 40px 0px 0px 68px;
                            }
                                
                            @media(min-width:1440px){
                                margin: 40px 0px 0px 83px;
                            }
                        }
                    }

                    img {
                        display: block;
                        grid-area: image;
                        width: 100%;
                    }
                }
            }
        }

        &.brands-container {
            padding: 40px 0px 50px;

            @media(min-width:1024px) {
                padding: 72px 0px 82px;
            }

            h2 {
                font-size: 22px;
                font-weight: 400;
                text-align: center;
                text-wrap: balance;
                text-transform: none;
                padding: 0px 4.6875%;

                @media(min-width:1024px) {
                    font-size: 40px;
                }

                @media(min-width:1440px) {
                    font-size: 58px;
                    line-height: 65px;
                }

                span {
                    font-size: inherit;
                    font-weight: 700;
                }
            }

            div {
                display: grid;
                margin: 26px auto 0px;
                grid-template-columns: 1fr;
                width: min(100%, 1024px);

                @media(min-width:1440px){
                    margin: 72px auto 0px;
                    grid-template-columns: 256px 1073px 1fr;
                    padding: 0px 4.6875%;
                    width: min(100%, 1480px);
                }

                p {
                    display: block;
                    background-color: rgb(var(--atomic-lime));
                    font-size: 15px;
                    font-weight: 700;
                    text-align: center;
                    text-transform: uppercase;
                    line-height: 26px;
                    padding-top: 4px;
                    width: 117px;

                    @media(min-width:1440px){
                        background-color: transparent;
                        font-size: 33px;
                        font-weight: 900;
                        text-align: left;
                        line-height: 37px;
                        padding-top: 0px;
                        width: auto;
                    }
                }

                img {
                    display: block;
                    width: min(100%, 1073px);
                }
            }
        }

        &.form-section {
            display: grid;
            background-image: url(../_img/background-dark.webp?v=0);
            background-position: center bottom -290px;
            background-repeat: repeat-x;
            background-size: 35px 520px;
            grid-template-columns: min(100%, 690px);
            justify-content: center;
            gap: 20px;
            padding: 50px 10px 130px;

            @media(min-width:1024px) {
                gap: 30px;
                padding: 80px 10px 194px;
            }

            h2 {
                font-size: 22px;
                text-align: center;
                text-wrap: balance;

                @media(min-width:1024px) {
                    font-size: 36px;
                }

                @media(min-width:1440px) {
                    font-size: 60px;
                }
            }

            &>p {
                font-size: 16px;
                font-weight: bold;
                text-align: center;
                text-wrap: balance;

                @media(min-width:1024px) {
                    font-size: 28px;
                }

                @media(min-width:1440px) {
                    font-size: 40px;
                }

                &.form-answer {
                    display: block;
                    border-radius: 10px;
                    font-size: 22px;
                    font-weight: bold;
                    text-align: center;
                    padding: 15px;

                    @media(min-width:1024px) {
                        font-size: 28px;
                    }

                    &.visually-hidden {
                        display: none;
                    }

                    &.bg-success {
                        border: 5px solid var(--star-green);
                        color: var(--star-green);
                        background-color: rgba(var(--atomic-lime), 0.1);
                    }

                    &.bg-danger {
                        border: 5px solid rgb(var(--error-color-clear));
                        color: rgb(var(--error-color-clear));
                        background-color: rgba(var(--error-color-clear), 0.2);
                    }
                }
            }

            form {
                display: grid;
                grid-template-columns: min(100%, 690px);
                justify-content: center;
                gap: 18px;
                padding: 0px 20px;

                @media(min-width:1024px) {
                    padding: 0px;
                }

                label {
                    display: block;
                    font-size: 18px;
                    font-weight: bold;
                    line-height: 36px;

                    @media(min-width:1024px) {
                        font-size: 24px;
                        line-height: 50px;
                    }

                    &.error {
                        color: rgb(var(--error-color-clear));
                    }

                    input {
                        display: block;
                        border: none;
                        border-radius: 4px;
                        background-color: var(--clear);
                        color: rgb(var(--dark));
                        font-size: 16px;
                        font-weight: normal;
                        line-height: 28px;
                        padding: 8px 10px;
                        width: 100%;

                        @media(min-width:1024px) {
                            border-radius: 10px;
                            font-size: 20px;
                            padding: 14px 21px;
                        }

                        .error & {
                            background-color: var(--error-background-color);
                            color: var(--error-color-dark);
                        }
                    }

                    textarea {
                        display: block;
                        border: none;
                        border-radius: 4px;
                        background-color: var(--clear);
                        color: rgb(var(--dark));
                        font-size: 16px;
                        font-weight: normal;
                        line-height: 28px;
                        padding: 8px 10px;
                        width: 100%;
                        height: 150px;
                        resize: none;

                        @media(min-width:1024px) {
                            border-radius: 10px;
                            font-size: 20px;
                            padding: 14px 21px;
                        }

                        .error & {
                            background-color: var(--error-background-color);
                            color: var(--error-color-dark);
                        }
                    }

                    &.legal-field {
                        position: relative;
                        margin-top: 10px;
                        border-radius: 4px;
                        background-color: rgba(var(--dark), 0.7);
                        font-size: 16px;
                        font-weight: normal;
                        line-height: 20px;
                        padding: 8px 8px 8px 42px;

                        @media(min-width:1024px) {
                            margin-top: 18px;
                            border-radius: 10px;
                            font-size: 18px;
                            line-height: 22px;
                            padding: 8px 8px 8px 48px;
                        }

                        a {
                            color: rgb(var(--atomic-lime));
                            font-size: inherit;
                            font-weight: inherit;
                            text-decoration: underline;

                            &:hover {
                                text-decoration: none;
                            }
                        }

                        input {
                            display: grid;
                            position: absolute;
                            top: 8px;
                            left: 8px;
                            border-radius: 5px;
                            -webkit-appearance: none;
                            appearance: none;
                            place-content: center;
                            padding: 0px;
                            width: 20px;
                            height: 20px;

                            @media(min-width:1024px) {
                                width: 23px;
                                height: 23px;
                            }

                            &:checked:before {
                                display: block;
                                border-radius: 3px;
                                background-color: var(--vivid-violet);
                                transform-origin: bottom left;
                                clip-path: polygon(18% 32%, 0 50%, 45% 96%, 100% 15%, 81% 1%, 42% 58%);
                                content: '';
                                width: 18px;
                                height: 18px;

                                @media(min-width:1024px) {
                                    width: 21px;
                                    height: 21px;
                                }
                            }
                        }
                    }
                }

                .error_validacion_form {
                    display: block;
                    color: rgb(var(--error-color-clear));
                    font-size: 14px;
                    font-weight: normal;
                    line-height: 28px;

                    &:before {
                        margin-right: 6px;
                        color: inherit;
                        font-size: 18px;
                        content: '\026A0';
                    }
                }

                .captcha_container {
                    display: block;
                    width: 100%;

                    .captcha {
                        display: block;
                        margin: auto;
                        width: 304px;

                        @media(min-width:1024px){
                            margin: 0px;
                        }
                    }
                }

                .btn {
                    margin: 40px auto 0px;
                    width: 266px;

                    @media(min-width:1024px){
                        margin: 40px 0px 0px;
                        width: 417px;
                    }
                }

                p {
                    margin-top: 10px;
                    font-size: 16px;
                    font-weight: bold;
                    text-align: center;
                    line-height: 16px;

                    @media(min-width:1024px) {
                        font-size: 20px;
                    }

                    &:before {
                        display: inline-block;
                        margin-top: -3px;
                        margin-right: 10px;
                        background-image: url(../_img/icon-info.webp?v=0);
                        background-repeat: no-repeat;
                        background-position: center;
                        background-size: 16px 16px;
                        vertical-align: middle;
                        content: '';
                        width: 16px;
                        height: 16px;

                        @media(min-width:1024px) {
                            margin-top: -5px;
                        }
                    }
                }

                .loading-container {
                    display: none;
                    margin: 0 auto;

                    svg {
                        width: 75px;
                        height: 75px;

                        .spin {
                            transform-origin: center;
                            animation: spin 1.5s linear infinite;
                        }
                    }
                }
            }
        }
    }
}

@keyframes open-details {
    0% {
        margin-left: -10px;
        opacity: 0;
    }

    100% {
        margin-left: 0px;
        opacity: 1;
    }
}

/* ######################### */
/* #        FOOTER         # */
/* ######################### */

body footer {
    display: grid;
    float: left;
    grid-template-columns: min(100%, 1600px);
    justify-content: center;
    padding: 26px 30px;
    width: 100%;

    @media(min-width:1024px) {
        padding: 26px 20px;
    }

    div {
        display: grid;
        grid-template-columns: 1fr;
        gap: 24px;
        justify-items: center;

        @media(min-width:1024px) {
            display: flex;
            justify-content: space-between;
        }

        p {
            font-size: 18px;
            font-weight: bold;
            text-align: center;
            text-wrap: balance;
            line-height: 24px;
        }

        nav {
            display: flex;
            flex-direction: column;
            justify-items: center;
            gap: 10px;

            @media(min-width:1024px) {
                flex-direction: row;
                gap: 24px;
            }

            a,
            button {
                background-color: transparent;
                font-size: 16px;
                font-weight: bold;
                text-align: center;
                text-decoration: underline;
                line-height: 24px;

                @media(min-width:1024px) {
                    font-size: 18px;
                }

                &:hover {
                    text-decoration: none;
                }
            }
        }
    }
}