@import url('https://fonts.googleapis.com/css2?family=Commissioner:wght@400;800,900&display=swap');

* {
    box-sizing: border-box;
}

:root {
    --clr-Red: #F94F4F;
    --clr-Red-rgb: rgb(249, 79, 79);
    --clr-Red-hsl: hsl(0, 93%, 64%);

    --clr-BGBlack: #191921;
    --clr-BGBlack-rgb: rgb(25, 25, 33);
    --clr-BGBlack-hsl: hsl(240, 14%, 11%);

    --clr-White: #FFFFFF;
    --clr-White-rgb: rgb(255, 255, 255);
    --clr-White-hsl: hsl(0, 100%, 100%);

    --clr-TextBlack: #000000;
    --clr-TextBlack-rgb: rgb(0, 0, 0);
    --clr-TextBlack-hsl: hsl(0, 100%, 0%);
}

body {
    margin: 0;
    font-size: 15px;
    color: var(--clr-TextBlack);
    font-family: "Commissioner", Arial, Helvetica, sans-serif;

    & img {
        max-width: 100%;
    }

    & .btn-primary {
        background-color: var(--clr-Red);
        color: var(--clr-White);
        text-decoration: none;
        padding: 1.80em 3.25em;
        margin-block: 1.5em;
        display: inline-block;

        &:hover {
            text-decoration: underline;
            opacity: .9;
        }
    }

    & .btn-secondary {
        background-color: var(--clr-BGBlack);
        color: var(--clr-Red);
        text-decoration: none;
        padding-block: .5rem;
        border-bottom: 3px solid var(--clr-Red);

        &:hover {
            opacity: .9;
        }
    }

    & a {
        font-weight: 800;
    }

    @media screen and (max-width: 767px) {
        & {
            font-size: 18px;
        }
    }

    @media screen and (min-width: 1201px) {
        & {
            font-size: 16px;
        }
    }
}

main {

    & picture {
        width: 100%;
        display: block;
        text-align: center;
    }

    & h1 {
        font-size: 40px;
        font-weight: 800;
        line-height: 1em;
    }

    & h2 {
        font-size: 32px;
        font-weight: 800;

        &#BuildTitle {
            font-size: 27px;
            font-weight: 900;
        }
    }

    & h3 {
        font-size: 15px;
        font-weight: 800;
    }

    & p {
        line-height: 1.5em;
    }

    & img {
        object-fit: cover;
    }

    & section#CreativeHero {
        margin-bottom: 2em;

        & div {
            margin: 3rem 1.5rem;
        }

        & img {
            position: relative;
            z-index: -1;
        }

        /* Styles for tablet */
        @media screen and (min-width: 501px) {
            & {
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                margin-bottom: 0 !important;

                & picture {
                    text-align: right;
                    grid-column: 2 / 5;
                    grid-row: 1 / 2;

                    & img {
                        object-fit: cover;
                        height: 100%;
                    }
                }

                & div {
                    grid-column: 1 / 4;
                    grid-row: 1 / 2;
                    padding-right: 2em;
                    margin-top: 5em;
                }
            }
        }

        @media screen and (min-width:501px) and (max-width: 768px) {
            & div p {
                padding-right: 6em;
            }

            & div h1 {
                padding-right: 2em;
            }
        }

        @media screen and (min-width: 769px) {
            & div {
                padding-right: 6em;
                margin-left: 4.5rem;
            }
        }

        @media screen and (min-width: 1000px) {
            & div {
                margin-left: 150px;
                padding-right: 15em;
            }
        }

        @media screen and (min-width: 1200px) {
            & div {
                padding-right: 18em;
            }
        }
    }

    & section#Designstrat {
        background-color: var(--clr-BGBlack);
        color: var(--clr-White);
        position: relative;

        & svg {
            scale: .467 .4762;
            position: absolute;
            top: 170px;
        }

        & span#Design {
            color: var(--clr-Red);
        }

        & div {
            margin-inline: 1.5rem;
            padding-block: 2em 4em;
        }

        @media screen and (min-width: 376px) {
            & svg {
                top: 638px;
            }
        }

        @media screen and (min-width: 379px) {
            & svg {
                top: 954px;
            }
        }

        /* Styles for tablet */
        @media screen and (min-width: 501px) {
            & {
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                margin-bottom: 0 !important;

                & picture {
                    text-align: right;
                    grid-column: 1 / 3;
                    grid-row: 1 / 2;
                    max-height: 658px;
                }

                & div {
                    grid-column: 3 / 5;
                    grid-row: 1 / 2;
                    margin-top: 3em;
                    margin-bottom: 100px;

                    padding: 1em 2em;
                }

                & svg {
                    top: 100px;
                    right: calc(50% - 65px);
                }
            }
        }

        @media screen and (min-width:501px) and (max-width:541px) {
            & div {
                padding: 1em 1em;
            }
        }

        /* Styles for desktop */
        @media screen and (min-width: 769px) {
            & div {
                margin-top: 0em;
                margin-bottom: initial;
                padding: 3em;
            }

            & picture {
                max-height: 984px;
            }
        }

        @media screen and (min-width: 1000px) {
            & div {
                padding: 4.25em;
            }
        }

        /* Styles for large desktop */
        @media screen and (min-width: 1200px) {
            & div {
                padding: 6em;
            }

            & svg {
                scale: 1;
                top: 180px;
            }
        }
    }

    & section#Brandstrat {
        color: var(--clr-White);

        & h2 {
            padding-top: 2rem;
            margin-inline: 1.5rem;
        }

        & #BrandstratNums {
            padding-top: 1em;
            background-color: var(--clr-Red);
            margin-inline: 1.5rem;

            & #BrandstratNum {
                margin-block: 4em;
            }
        }

        & .appbrndstrat_bfre {
            position: relative;

            &::before {
                position: absolute;
                font-family: arial;
                top: -4rem;
                left: -5%;
                width: 92px;
                height: 88px;
                font-size: 80px;
                font-weight: 900;
                opacity: 30%;
            }
        }

        & #app_bstrat::before {
            content: "01";
        }

        & #app_bd::before {
            content: "02";
        }

        & #app_wd::before {
            content: "03";
        }

        @media screen and (max-width: 375px) {
            & {
                padding-block: 2em;
                background-color: var(--clr-Red);

                & #BrandstratNums {
                    margin-top: 4.5rem;
                    margin-inline: 1.5rem;
                    margin-bottom: 3rem;

                    & .BrandstratNum {
                        margin-inline: .75em;
                    }

                    & .BrandstratNum:not(:last-of-type) {
                        margin-bottom: 5rem;
                    }
                }
            }
        }

        @media screen and (min-width: 376px) {
            & div {
                margin: 0;
                padding-bottom: 2em;

                & h2,
                & div {
                    margin: 1.5rem;
                }

                & .BrandstratNum {
                    margin-left: 3.5rem;
                }
            }

            & h2 {
                color: var(--clr-BGBlack);
            }
        }

        /* Styles for tablet */
        @media screen and (min-width: 501px) {
            & div {
                margin: 0;
            }

            & {
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                margin-bottom: 0 !important;

                & h2 {
                    grid-column: 1 / 3;
                    grid-row: 1;
                    text-align: center;
                    margin-right: 25%;
                    margin-top: 25%;
                }

                & #BrandstratNums {
                    grid-column: 2 / 5;
                    grid-row: 1 / 2;
                    margin-left: 25%;
                    margin-top: clamp(-20%, -15%, 0%);
                    z-index: 1;
                    margin-right: 0;
                    padding-top: 10.5em;
                }
            }
        }

        @media screen and (min-width: 769px) {
            & h2 {
                margin-left: 67.5px;
                margin-right: 1em;
                z-index: 2;
                text-align: left;

                @media screen and (min-width: 900px) {
                    & {
                        margin-right: 2em;
                    }
                }

                @media screen and (min-width: 1000px) {
                    & {
                        margin-right: 0;
                    }
                }
            }

            & #BrandstratNums {
                margin-left: 15%;

                & .appbrndstrat_bfre {

                    &::before {
                        top: -.72rem;
                        left: -10%;
                    }
                }
            }

            & .BrandstratNum {
                margin-left: 7rem !important;
            }
        }

        @media screen and (min-width: 1000px) {
            & div {
                padding-inline: 10% 5%;
            }

            & h2 {
                margin-left: 150px;
            }
        }
    }

    & section#Brand_spot {
        color: var(--clr-White);
        padding-bottom: 3em;
        position: relative;
        background-color: var(--clr-BGBlack);

        & img {
            position: relative;
        }

        & h2 {
            margin: 3.5rem 1.5rem 0 1.5rem;
        }

        & div div {
            margin-inline: 1.5rem;
        }

        & .Brand_wavy-white {
            scale: .467 .4762;

            @media screen and (max-width:1000px) {
                & {
                    display: none;
                }
            }
        }

        & div:nth-child(4) {
            background-color: var(--clr-BGBlack);
        }

        & .Brand_spot2,
        & .Brand_spot3 {
            display: none;
            opacity: 0;
        }

        & .Brand_spot1 .picOL,
        & .Brand_spot2 .picOL,
        & .Brand_spot3 .picOL {
            position: absolute;
            bottom: 40%;
            right: 0;
        }

        & #slideprev,
        & #slidenext {
            background-color: var(--clr-BGBlack);
            border: none;
            border-radius: 100%;
            padding: 0;
            height: 40px;

            &:hover {
                background-color: var(--clr-BGBlack);
                opacity: .6;
            }
        }

        & #slidebtns {
            margin-left: 1.5rem;
        }

        & #slidenext {
            margin-left: .5rem
        }

        & h3 {
            margin-bottom: 0;
        }

        & .picOL p {
            margin-top: 0;
        }

        & #slidebtns {
            margin-top: 2em;
        }

        /* Styles for tablet */
        @media screen and (min-width: 501px) {
            & {
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                margin-bottom: 0 !important;
                padding-bottom: 0;
                position: relative;
                background-color: var(--clr-White);

                & .BrandTitle {
                    grid-column: 1 / 3;
                    grid-row: 1;
                    height: 65%;
                    z-index: 0;
                    margin-bottom: 8em;

                    & #slidebtns {
                        margin-block: 3em;
                    }
                }

                & .Brand_spot1-Img,
                & .Brand_spot2-Img,
                & .Brand_spot3-Img {
                    grid-column: 2 / 5;
                    grid-row: 1 / 2;

                    img {
                        width: 100%;
                    }
                }

                & .Brand_spot1 .picOL,
                & .Brand_spot2 .picOL,
                & .Brand_spot3 .picOL {
                    position: absolute;
                    bottom: 40%;
                    right: 0;
                }

                & picture,
                & .picOL {
                    text-align: right;
                }

                & .picOL {
                    transform: translateY(25%);
                }

                & .Brand_wavy-white {
                    position: absolute;
                    top: 25%;
                    right: calc(50% - 65px);
                }

            }
        }

        @media screen and (min-width: 501px) and (max-width: 615px) {
            & .BrandTitle h2 {
                width: 200px;
            }
        }

        @media screen and (min-width: 616px) {

            & .Brand_spot1 .picOL,
            & .Brand_spot2 .picOL,
            & .Brand_spot3 .picOL {
                bottom: 30%;
            }
        }

        @media screen and (min-width: 655px) {

            & .Brand_spot1 .picOL,
            & .Brand_spot2 .picOL,
            & .Brand_spot3 .picOL {
                bottom: 20%;
            }
        }

        @media screen and (min-width: 769px) {
            & .BrandTitle {
                padding-left: 67.5px;
            }

            & h2 {
                margin-top: max(2em, 30%);
            }

            & h2,
            & #slidebtns {
                margin-left: 0;
            }
        }

        /* Styles for desktop */
        @media screen and (min-width: 1000px) {
            & .BrandTitle {
                padding-left: 150px;
            }
        }

        @media screen and (min-width: 1440px) {
            & h2 {
                margin-top: 10.677rem;
            }
        }

        @media screen and (min-width: 1791px) {

            & .Brand_spot1-Img,
            & .Brand_spot2-Img,
            & .Brand_spot3-Img {
                grid-column: 3 / 5;

                & picture {
                    text-align: left;
                }
            }

            & .Brand_spot1 .picOL,
            & .Brand_spot2 .picOL,
            & .Brand_spot3 .picOL {
                margin: initial;
                right: calc(50% - 865px);
            }
        }
    }

    & section#Build {
        padding-block: 4em 2em;

        & div {
            margin-inline: 1.5rem;

        }

        & svg {
            display: none;
        }

        /* Styles for tablet */
        @media screen and (min-width: 700px) {
            & {
                padding-top: 0;

                & div {
                    display: flex;
                    flex-direction: row;
                    align-items: center;
                    justify-content: space-between;

                    & h2 {
                        width: 50%;
                        text-align: left;
                    }

                    & a {
                        text-align: center;
                        padding: 2em;
                        margin-block: 2em;
                        height: fit-content;
                    }
                }
            }
        }

        @media screen and (min-width: 769px) {
            & div {
                margin-left: 67.5px;
            }
        }

        @media screen and (min-width: 1000px) {
            & div {
                margin-inline: 150px;
            }
        }

        @media screen and (min-width: 1200px) {
            & div {
                height: 142px;
                position: relative;

                & h2 {
                    width: 60%;
                }

                & a.btn-primary.altLight {
                    font-size: initial;
                    line-height: initial;
                }
            }

            & svg {
                display: block;
                position: absolute;
                left: -217px;
            }
        }
    }

    /* Styles for tablet */
    @media screen and (min-width: 501px) {

        & p {
            line-height: 1.5em;
        }

        & img {
            object-fit: contain;
            object-position: top;
            height: auto;
        }
    }

    /* Styles for tablet */
    @media screen and (min-width: 769px) {
        & h1 {
            font-size: 56px;
        }
    }

    /* Styles for desktop */
    @media screen and (min-width: 1200px) {
        & {
            font-size: 18px;
            line-height: 2rem;
        }

        & h1 {
            font-size: 80px;
            line-height: 5.5rem;
        }

        & h2 {
            font-size: 56px;
            line-height: 4rem;
        }

        & h3 {
            font-size: 20px;
        }
    }

}

header {
    --headingPaddingBlock: 2rem;

    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: var(--headingPaddingBlock) 1rem;

    & nav {
        position: absolute;
        top: calc(30px + calc(2* var(--headingPaddingBlock)));
        background-color: var(--clr-BGBlack);
        color: var(--clr-White);
        right: 1.5em;
        opacity: 0;
        transition: all 400ms ease-in-out;
        display: none;

        & ul {
            list-style: none;
            text-align: center;
            padding: 0;

            & li {
                margin: .20rem 2rem;

                & a {
                    margin: 0 !important;
                    padding: 1.4rem 3.00rem !important;
                    text-decoration: none;
                    color: var(--clr-White);

                    &:hover {
                        text-decoration: underline;
                        opacity: .5;
                    }
                }

                & a:not(.btn-primary) {
                    font-weight: 400;
                }
            }
        }
    }

    & button {
        padding: 0;
        width: 30px;
        background-color: var(--clr-White);
        border: none;
    }

    & button.open {
        display: block;
    }

    & button.close {
        display: none;
    }

    & nav li:last-of-type {
        font-size: 16px;
        font-weight: 800;
    }

    /* Styles for tablet */
    @media screen and (max-width: 768px) {
        & {
            & svg.logo {
                margin-left: 1.5rem;
            }
        }
    }

    @media screen and (min-width: 768px) {
        & {
            height: 10em;
            padding: 0;
            align-items: center;

            & .logo {
                margin-left: 4.5rem;
            }

            & button.close,
            & button.open {
                display: none;
            }

            & nav {
                display: inline-block;
                background-color: var(--clr-Red);
                display: flex;
                align-content: center;
                opacity: initial;
                max-width: 50%;
                height: 100%;
                position: relative;
                top: 0;
                right: 0;

                & ul {
                    display: flex;
                    flex-direction: row;
                    justify-content: flex-start;
                    align-items: center;
                    padding: 0;
                    margin: 0;
                    width: clamp(438px, 705px, 705px);

                    & li {
                        margin: 0;
                        padding-block: 1rem;

                        &:last-of-type a {
                            background-color: var(--clr-BGBlack);
                        }

                        & a {
                            padding: .75em !important;
                        }
                    }
                }
            }


            & header> :nth-child(4) {
                width: 50%;
            }
        }
    }

    /* Styles for desktop */
    @media screen and (min-width: 1000px) {
        & nav ul li a {
            padding-inline: 1.75em !important;
        }

        & .logo {
            margin-left: 150px;
        }
    }
}