:root {
    --white: #ffffff;
    --blue-primary: #F5FBFF;
    --blue-secondary: #0118D8;
    --blue-tertiary: #000743;
    --gray-primary: #373D43;
}

html, body {
    scroll-behavior: smooth;
}

*, html, body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: "Outfit", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}

button {
    cursor: pointer;
    transition: all 0.3s ease;
}

.btn {
  text-decoration: none;
  cursor: pointer;
  display: inline-flex;
  border-radius: 8px;
  font-weight: 500;
  transition: .3s;
  border: none;
  outline: none;
}

.btn.small {
  padding: 10px 40px;
}
.btn.medium {
  padding: 18px 62px;
}

.btn.white {
  background: var(--white);
  color: var(--blue-secondary);
  &:not(.disabled-hover):hover {
    background: var(--blue-secondary);
    color: var(--white);
  }
}

.btn.blue {
  background: var(--blue-secondary);
  color: var(--white);
  &:not(.disabled-hover):hover {
    background: var(--white);
    color: var(--blue-secondary);
  }
}

.container_principal {
    background-color: var(--blue-primary);
    padding: 8px 8px 0;
    transition: height 0.5s ease;
}

/* Generals */
.flex_24 {
    display: block;
    gap: 24px;

    > div {
        width: 100%;
    }

    .icon_number {
        display: none;
    }
}

.text_left {
    text-align: left;
}

.w296 {
    width: 296px;
    min-width: 296px;
}

img {
    max-width: 100%;
}

.wrapper {
  max-width: 984px;
  margin: 0 auto;
  padding: 0 24px;
}

.relative {
  position: relative;
}

header {
  position: fixed;
  left: 0;
  right: 0;
  top: 24px;
  z-index: 4;
  background: transparent;
  transition: .3s;
}
header.scrolling {
  background: var(--white);
  top: 0;
}
header.scrolling .head {
  height: 104px;
}
header.scrolling .logo-blue {
  display: block;
}
header.scrolling .logo-white {
  display: none;
}

header.scrolling  .btn {
  background: var(--blue-secondary);
  color: var(--white);
  top: 50%;
}
.logo-white {
  display: block;
}
.logo-blue {
  display: none;
}

.head {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 120px;
  border-bottom: 1px solid rgba(255, 255,255, .24);
  .btn {
    position: absolute;
    right: 24px;
    top: 50%;
    transform: translateY(-50%);
  }
}

/* banner */
.container_banner {
    border-radius: 16px;
    width: 100%;
    height: calc(100vh - 16px);
    position: relative;
    margin-bottom: 48px;
    overflow: hidden;

    .box_banner {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 48px;
        max-width: 936px;
        text-align: center;
        padding: 0 16px;
        margin: 0 auto;

        .box_content {
            position: absolute;
            top: 50%;
            transform: translate(0, -50%);
            width: 100%;
            padding: 0 16px;
            left: 0;

            .title {
                color: #ffffff;
                font-weight: 600;
                font-size: 32px;
                line-height: 40px;
            }

            .subtitle {
                font-weight: 400;
                color: #ffffff;
                font-size: 16px;
                line-height: 20px;
                margin-top: 16px;
              margin-bottom: 32px;
            }
        }

        .box_scroll {
            position: absolute;
            margin: 0 auto;
            left: 0;
            right: 0;
            border: 2px solid #FFFFFF3D;
            box-shadow: 0 8px 16px 0 #777A7C0A;
            width: 72px;
            height: 72px;
            border-radius: 100%;
            bottom: 40px;
            transition: .3s;

            .down {
                cursor: pointer;
                display: flex;
                justify-content: center;
                height: 100%;
                align-items: center;
                transition: .3s;
                transform: translateY(0);

                img {
                    width: 24px;
                }
            }
            &:hover {
              border-color: rgba(255, 255, 255, .4);
              .down {
                transform: translateY(5px);
              }
            }         }
    }

    .banner {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 16px;
    }

    &::before {
        content: "";
        display: block;
        background-image: url("img/opacidad.png");
        position: absolute;
        height: 100%;
        width: 100%;
        background-size: cover;
        border-radius: 16px;
        background-repeat: no-repeat;
    }
}

/*We are*/
.container_who_we_are {
    padding: 40px 16px;
    text-align: left;
    max-width: 936px;
    margin: 0 auto;

    .box_one {
        margin-bottom: 24px;
    }

    .subtitle_principal {
        font-weight: 400;
        font-size: 14px;
        line-height: 18px;
        text-transform: uppercase;
        color: #0118D8;
        letter-spacing: 0.16em;
    }

    .cont_text {
        flex: 1;

        .title {
            font-weight: 600;
            font-size: 32px;
            line-height: 40px;
            color: #373D43;
            text-align: left;
            margin-bottom: 16px;
        }

        .subtitle {
            font-weight: 400;
            font-size: 16px;
            line-height: 20px;
            text-align: left;
            color: #777A7C;
          span {
            color: #373D43;
            font-weight: 500;
          }
        }
    }

    .box_blue {
        background: #0118D8;
        color: #fff;
        border-radius: 16px;
        text-align: left;
        width: 100%;
        padding: 32px;
        height: auto;

        .title {
            font-weight: 500;
            font-size: 32px;
            line-height: 40px;
        }

        .subtitle {
            font-weight: 400;
            font-size: 20px;
            line-height: 28px;
            margin-top: 24px;
        }
    }

    .box_img {
        height: 352px;
        width: 100%;
        object-fit: cover;
        margin-top: 16px;
        border-radius: 16px;
    }
}

/* What we do*/
.container_what_we_do {
    padding: 40px 16px;
    text-align: center;
    max-width: 936px;
    margin: 0 auto;

    .subtitle {
        font-weight: 400;
        font-size: 16px;
        line-height: 20px;
        text-transform: uppercase;
        color: #0118D8;
        letter-spacing: 0.16em;
    }

    .title {
        font-weight: 600;
        color: #373D43;
        margin-top: 4px;
        font-size: 32px;
        line-height: 40px;
        margin-bottom: 16px;
    }

    .box_list_item {
        background: #fff;
        border: 2px solid #FFFFFF;
        border-radius: 16px;
        box-shadow: 0px 8px 16px 0px #777A7C0A;
        padding: 16px;
        display: block;
        justify-content: left;
        gap: 24px;
        margin-bottom: 8px;

        .icon {
            background: #C3C9FF3D;
            min-width: 40px;
            height: 40px;
            display: none;
            border-radius: 100%;
            justify-content: center;

            &.interno {
                display: flex;
            }
        }

        img {
            width: 24px;
        }

        .title {
            margin: 0;
            font-weight: 500;
            text-align: left;
            color: #373D43;
            display: flex;
            align-items: center;
            gap: 8px;
            margin-bottom: 16px;
            font-size: 16px;
            line-height: 20px;
        }
    }

    .text {
        font-weight: 400;
        font-size: 14px;
        line-height: 18px;
        text-align: left;
        color: #777A7C;
    }
}

/*Competitive*/
.container_competitive {
    max-width: 936px;
    margin: 0 auto;
    text-align: center;
    padding: 40px 16px;

    .subtitle {
        font-weight: 400;
        font-size: 16px;
        line-height: 20px;
        text-transform: uppercase;
        color: #0118D8;
        letter-spacing: 0.16em;
    }

    .title {
        font-weight: 600;
        color: #373D43;
        margin-top: 4px;
        font-size: 32px;
        line-height: 40px;
        margin-bottom: 16px;
    }

    .text {
        color: #777A7C;
        font-weight: 400;
        font-size: 16px;
        line-height: 20px;
        margin-top: 24px;
        text-align: left;
    }

    .box_text {
        border-bottom: 0.5px dashed #CDCDC2;
        margin-bottom: 16px;
        padding-bottom: 16px;

        &:last-child {
            border-bottom: none;
            margin-bottom: 0;
            padding-bottom: 0;
        }

        .title {
            font-weight: 500;
            font-size: 16px;
            line-height: 20px;
            color: #373D43;
            margin-bottom: 4px;
        }

        .text {
            font-weight: 400;
            font-size: 14px;
            line-height: 18px;
            color: #777A7C;
            margin-top: 4px;
        }
    }

    .box_list_competitive {
        margin-top: 16px;
    }
}

/*Category products*/
.container_category_products {
    text-align: center;
    padding: 40px 16px;
    max-width: 936px;
    margin: 0 auto;

    .subtitle {
        font-weight: 400;
        font-size: 16px;
        line-height: 20px;
        text-transform: uppercase;
        color: #0118D8;
        letter-spacing: 0.16em;
    }

    .title {
        font-weight: 600;
        font-size: 32px;
        line-height: 40px;
        color: #373D43;
        margin-top: 4px;
    }

    .text {
        color: #777A7C;
        font-weight: 400;
        margin-top: 16px;
        font-size: 14px;
        line-height: 18px;
        text-align: center;
        span {
          color: #373D43;
          font-weight: 500;
        }
    }

    .bold {
        font-weight: 500;
    }
}

/*Partners*/
.container_partners {
    border-radius: 24px;
    background: #FFFFFF;
    box-shadow: 0px 8px 16px 0px #777A7C14;
    padding: 40px 16px;
    text-align: center;

    .title {
        font-weight: 400;
        font-size: 16px;
        line-height: 20px;
        text-transform: uppercase;
        color: #0118D8;
        letter-spacing: 0.16em;
    }

    .images {
        display: flex;
        gap: 24px;
        justify-content: center;
        margin-top: 40px;
        flex-wrap: wrap;

        img {
            height: 24px;
        }
    }
}


/*Questions*/
.container_questions {
    padding: 40px 16px;
    max-width: 936px;
    margin: 0 auto;

    .box_title {
        font-weight: 600;
        color: var(--gray-primary);
        font-size: 32px;
        line-height: 40px;
        text-align: center;
        margin-bottom: 16px;
    }

    .box_dropdown {
        cursor: pointer;
        max-width: 100%;
        opacity: 1;
        border-radius: 16px;
        border-width: 2px;
        box-shadow: 0px 8px 16px 0px #777A7C0A;
        background: var(--white);
        padding: 16px;
        margin-top: 8px;
        transition: all .3s ease;

        summary {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;

            .icon_number {
                min-width: 56px;
                height: 56px;
                opacity: 1;
                background: #C3C9FF3D;
                font-weight: 500;
                font-size: 20px;
                line-height: 28px;
                text-align: center;
                color: #373D43;
                border-radius: 100%;
                align-content: center;
            }
        }

        .txt_open_dropdown {
            color: #777A7C;
            display: block;
            font-weight: 400;
            font-size: 16px;
            line-height: 20px;
            margin: 0 auto;
            margin-top: 24px;
        }

        &[open] {
            background: #C3C9FF3D;
            box-shadow: 0px 8px 16px 0px #777A7C0A;

            .txt_dropdown {
                color: #0118D8;
            }

            .icon_dropdown {
                background-image: url("img/minus.svg");
            }

            summary {
                .icon_number {
                    background: #ffffff;
                }
            }
        }

        .txt_dropdown {
            font-weight: 500;
            font-size: 16px;
            line-height: 20px;
            color: var(--gray-primary);
            width: 100%;
        }

        .icon_dropdown {
            background-image: url("img/plus.svg");
            background-repeat: no-repeat;
            display: block;
            height: 24px;
            width: 24px;
        }
    }
}

/* Contact */
.container_contact {
    padding: 40px 16px;

    .box_contact {
        background-color: var(--blue-secondary);
        max-width: 936px;
        height: 264px;
        transition: height 0.5s ease;
        box-shadow: 0px 8px 16px 0px #777A7C14;
        border-radius: 16px;
        display: flex;
        align-items: center;
        flex-direction: column;
        justify-content: center;
        padding: 0 16px;
        margin: 0 auto;

        .text_contact {
            font-weight: 600;
            font-size: 24px;
            line-height: 32px;
            color: var(--white);
            max-width: 776px;
            text-align: center;
            margin-bottom: 40px;
        }

        .btn_contact {
            width: 200px;
            height: 56px;
            border-radius: 8px;
            box-shadow: 0px 8px 16px 0px #777A7C14;
            font-weight: 500;
            font-size: 14px;
            line-height: 18px;
            text-align: center;
            color: #0118D8;
            border: none;
            margin-top: 24px;

            &:hover {
                background-color: #C3C9FF3D !important;
                color: #ffffff !important;
            }
        }
    }
}

footer {
    background-color: var(--blue-tertiary);
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: height 0.5s ease;

    p {
        color: var(--white);
        font-weight: 400;
        font-size: 12px;
        line-height: 20px;
        vertical-align: middle;
    }
}

/*Media queries*/
@media (max-width: 700px) {
  header .head {
    justify-content: flex-start;
  }
}
@media (max-width: 1020px) {
  header {
    top: 8px;
  }
  header .head {
    height: 88px;
  }
  header.scrolling .head {
    height: 56px;
  }
}
@media (min-width: 1020px) {
    .flex_24 {
        display: flex;
        gap: 24px;

        > div {
            width: 50%;
        }

        .icon_number {
            display: block;
        }
    }

    footer {
        height: 80px;

        p {
            line-height: 16px;
        }
    }

    .container_who_we_are {
        padding: 96px 0;
        text-align: center;

        .box_one {
            margin-bottom: 32px;
        }

        .subtitle_principal {
            font-size: 16px;
            line-height: 20px;
        }

        .box_blue {
            width: 296px;
            height: 352px;
            padding: 40px;

            .subtitle {
                margin-top: 24px;
            }
        }

        .cont_text {
            .title {
                font-size: 48px;
                line-height: 56px;
                margin-bottom: 24px;
            }
        }

        .box_img {
            height: auto;
            width: auto;
            margin: 0;
        }
    }

    .container_category_products {
        padding: 72px 0;

        .title {
            font-size: 48px;
            line-height: 56px;
        }

        .text {
            font-size: 16px;
            line-height: 20px;
            margin-top: 24px;
            text-align: left;
        }
    }

    .container_what_we_do {
        padding: 72px 0 40px 0;

        .title {
            font-size: 48px;
            line-height: 56px;
            margin-bottom: 32px;
        }

        .box_list_item {
            padding: 24px;
            display: flex;

            .icon {
                min-width: 80px;
                height: 80px;
                display: flex;

                &.interno {
                    display: none;
                }

                img {
                    width: 40px;
                }
            }

            .title {
                font-size: 20px;
                line-height: 28px;
                margin-bottom: 4px;
                display: block;
            }

            .text {
                font-size: 16px;
                line-height: 20px;
            }
        }
    }

    .container_competitive {
        padding: 95px 0;

        .title {
            font-size: 48px;
            line-height: 56px;
            margin-bottom: 24px;
        }

        .box_list_competitive {
            margin-top: 0;
        }

        .box_text {
            .title {
                font-size: 20px;
                line-height: 28px;
            }

            .text {
                font-size: 16px;
                line-height: 20px;
            }
        }
    }

    .container_principal {
        padding: 24px 24px 0;
    }

    .container_banner {
        height: calc(100vh - 48px);
        .box_banner {
            .head {
                display: block;
                img {
                    margin-top: 8px;
                }
            }

            .box_content {
                padding: 0;

                .title {
                    font-size: 56px;
                    line-height: 72px;
                }

                .subtitle {
                    font-size: 20px;
                    line-height: 28px;
                    margin-top: 8px;
                }

                .btn_contact {
                    height: 56px;
                    font-size: 16px;
                    line-height: 20px;
                }
            }

            .box_scroll {
                height: 88px;
                width: 88px;
            }
        }
    }

    .container_partners {
        padding: 72px 0;

        .images {
            gap: 72px;
            justify-content: center;
            margin-top: 32px;

            img {
                height: 40px;
            }
        }
    }

    .container_questions {
        padding: 96px 0;

        .box_title {
            font-size: 48px;
            line-height: 56px;
            text-align: left;
            margin-bottom: 0;
        }

        .box_dropdown {
            padding: 24px;
            margin-top: 24px;
            max-width: 456px;

            .txt_dropdown {
                width: 100%;
            }
        }
    }

    .container_contact {
        padding: 72px 0;

        .box_contact {
            height: 336px;

            .text_contact {
                font-size: 32px;
                line-height: 40px;
            }

            .btn_contact {
                font-size: 16px;
                line-height: 24px;
                margin-top: 40px;
            }
        }
    }
}
