:root {
    --black: #1d1d1d;
    --primary: #5d5fef;
    --primary-dark: #3b3dc5;
}

* {
    transition: 0.2s;
    -webkit-transition: 0.2s;
    -moz-transition: 0.2s;
    -ms-transition: 0.2s;
    -o-transition: 0.2s;
}

html,
body {
    height: 100%;
}

body {
    font-family: "Montserrat", sans-serif;
    color: var(--black);
    background: #fafafa;
}

h1 {
    font-size: 8rem;
    font-weight: 700;
    font-family: "Neutral Face";
    line-height: 110%;
}

h2 {
    font-size: 1.5rem;
    font-weight: 400;
    font-family: "Montserrat", sans-serif;
}

main#main {
    flex: 1 0 auto;
    margin-top: 6.25rem;
    margin-bottom: 8.75rem;
}

[class*="--primary"] {
    color: var(--primary);
}

.wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}

.container {
    max-width: 1700px;
    padding: 0 20px;
    margin: 0 auto;
}

.header {
    margin-top: 3.125rem;
}

.header__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header__logo,
.footer__logo {
    display: flex;
    flex-direction: column;
}

.header-logo__domain,
.footer-logo__domain {
    font-size: 2.25rem;
    font-weight: 700;
}

.header__logo {
    color: var(--black);
}

.header-socials {
    display: flex;
    align-items: center;
    gap: 1.875rem;
}

.header-socials__link {
    display: flex;
    align-items: center;
    gap: 0.3125rem;
    font-size: 1.125rem;
    font-weight: 500;
    font-family: "Montserrat", sans-serif;
    color: var(--black);
    padding: 1.25rem 1.875rem;
    border: 1px solid var(--black);
    border-radius: 100px;
    -webkit-border-radius: 100px;
    -moz-border-radius: 100px;
    -ms-border-radius: 100px;
    -o-border-radius: 100px;
}

.header-socials__link:hover {
    color: #fff;
    background: var(--primary);
    border: 1px solid var(--primary);
}

.header-socials__link:hover .header-socials__icon path {
    fill: #fff;
}

.header-socials__link:hover .header-socials__icon {
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -o-transform: rotate(45deg);
}

.header-socials__link:active {
    color: #fff;
    background: var(--primary-dark);
    border: 1px solid var(--primary-dark);
}

.header-socials__link:active .header-socials__icon {
    transform: translate(3px, 0) rotate(45deg);
    -webkit-transform: translate(3px, 0) rotate(45deg);
    -moz-transform: translate(3px, 0) rotate(45deg);
    -ms-transform: translate(3px, 0) rotate(45deg);
    -o-transform: translate(3px, 0) rotate(45deg);
}

.intro {
    position: relative;
}

.intro__title {
    margin-bottom: 1.875rem;
}

.intro__subtitle {
    max-width: 750px;
}

.intro__blob {
    position: absolute;
    right: -20%;
    top: 30%;
}

.footer {
    width: 100%;
    position: relative;
    background: var(--primary);
    background-image: url("../images/footer/blob.png");
    background-repeat: no-repeat;
    background-position: 32% 0;
}

.footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 2.5rem 0;
    overflow: hidden;
}

.footer__logo {
    color: #fff;
}

.footer__image {
    position: absolute;
    top: 0;
    right: 55%;
    pointer-events: none;
}

.footer__links {
    display: flex;
    align-items: center;
    gap: 6.25rem;
}

.footer__mails,
.footer__socials {
    display: flex;
    gap: 1.875rem;
}

.footer-mail__link {
    font-size: 1.25rem;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    color: #fff;
}

.footer-mail__link::after {
    width: 0;
    height: 2px;
    content: "";
    display: block;
    background: #fff;
    transition: 0.2s;
    -webkit-transition: 0.2s;
    -moz-transition: 0.2s;
    -ms-transition: 0.2s;
    -o-transition: 0.2s;
    transform: translate(0, 5px);
    -webkit-transform: translate(0, 5px);
    -moz-transform: translate(0, 5px);
    -ms-transform: translate(0, 5px);
    -o-transform: translate(0, 5px);
}

.footer-mail__link:hover::after {
    width: 60%;
    height: 2px;
}

.footer-mail__link:active {
    opacity: 0.6;
}

.footer-socials__link:hover .footer-socials__icon {
    transform: translate(0, -5px);
    -webkit-transform: translate(0, -5px);
    -moz-transform: translate(0, -5px);
    -ms-transform: translate(0, -5px);
    -o-transform: translate(0, -5px);
}

.footer-socials__link:active {
    opacity: 0.6;
}

.footer-socials__icon,
.footer-socials__item {
    width: 2.5rem;
    height: 2.5rem;
}

@media screen and (max-width: 1440px) {
    h1 {
        font-size: 7rem;
    }

    .footer {
        background-size: 18%;
        background-position: 25% -5%;
    }
}

@media screen and (max-width: 1230px) {
    h1 {
        font-size: 6rem;
    }

    .footer {
        background-size: 18%;
        background-position: 26% -5%;
    }

    .footer__links {
        gap: 3.125rem;
    }
}

@media screen and (max-width: 1140px) {
    .footer {
        background-image: none;
    }
}

@media screen and (max-width: 1060px) {
    html {
        font-size: 90%;
    }
}

@media screen and (max-width: 920px) {
    .footer__inner {
        gap: 3.125rem;
    }

    .footer__mails {
        flex-direction: column;
        gap: 0.3125rem;
    }

    .footer__socials {
        gap: 1.25rem;
    }
}

@media screen and (max-width: 768px) {
    html {
        font-size: 80%;
    }
}

@media screen and (max-width: 620px) {
    .header-logo__domain,
    .footer-logo__domain {
        font-size: 2rem;
    }

    .intro__subtitle {
        max-width: 500px;
    }

    .footer__links {
        gap: 1.875rem;
    }

    .footer-mail__link {
        font-size: 1rem;
    }
}

@media screen and (max-width: 557px) {
    h1 {
        font-size: 5rem;
    }

    h2 {
        font-size: 1.25rem;
    }

    .header__socials {
        gap: 1.25rem;
    }

    .header-socials__link {
        padding: 0.9375rem 1.25rem;
    }

    .footer__inner {
        flex-direction: column;
    }

    .footer__logo {
        align-items: center;
    }
}

@media screen and (max-width: 480px) {
    .header-socials__link {
        gap: 0.1875rem;
        font-size: 1rem;
        padding: 0.875rem 1.125rem;
    }

    .header-socials__icon {
        transform: scale(0.8);
        -webkit-transform: scale(0.8);
        -moz-transform: scale(0.8);
        -ms-transform: scale(0.8);
        -o-transform: scale(0.8);
    }

    .header-socials__link:hover .header-socials__icon {
        transform: rotate(45deg) scale(0.8);
        -webkit-transform: rotate(45deg) scale(0.8);
        -moz-transform: rotate(45deg) scale(0.8);
        -ms-transform: rotate(45deg) scale(0.8);
        -o-transform: rotate(45deg) scale(0.8);
    }
    .header-socials__link:active .header-socials__icon {
        transform: translate(3px, 0) rotate(45deg) scale(0.8);
        -webkit-transform: translate(3px, 0) rotate(45deg) scale(0.8);
        -moz-transform: translate(3px, 0) rotate(45deg) scale(0.8);
        -ms-transform: translate(3px, 0) rotate(45deg) scale(0.8);
        -o-transform: translate(3px, 0) rotate(45deg) scale(0.8);
    }
}

@media screen and (max-width: 445px) {
    html {
        font-size: 75%;
    }

    .footer__inner {
        gap: 1.875rem;
    }

    .footer__mails {
        gap: 0.125rem;
    }

    .footer-socials__icon,
    .footer-socials__item {
        width: 2rem;
        height: 2rem;
    }

    .footer-mail__link {
        font-size: 0.9375rem;
    }
}

@media screen and (max-width: 420px) {
    html {
        font-size: 70%;
    }

    .header-logo__domain,
    .footer-logo__domain {
        font-size: 1.625rem;
    }

    .header-logo__name,
    .footer-logo__name {
        font-size: 0.875rem;
    }

    .header__socials {
        gap: 0.625rem;
    }

    .header-socials__icon {
        transform: scale(0.7);
        -webkit-transform: scale(0.7);
        -moz-transform: scale(0.7);
        -ms-transform: scale(0.7);
        -o-transform: scale(0.7);
    }

    .header-socials__link:hover .header-socials__icon {
        transform: rotate(45deg) scale(0.7);
        -webkit-transform: rotate(45deg) scale(0.7);
        -moz-transform: rotate(45deg) scale(0.7);
        -ms-transform: rotate(45deg) scale(0.7);
        -o-transform: rotate(45deg) scale(0.7);
}
    .header-socials__link:active .header-socials__icon {
        transform: translate(3px, 0) rotate(45deg) scale(0.7);
        -webkit-transform: translate(3px, 0) rotate(45deg) scale(0.7);
        -moz-transform: translate(3px, 0) rotate(45deg) scale(0.7);
        -ms-transform: translate(3px, 0) rotate(45deg) scale(0.7);
        -o-transform: translate(3px, 0) rotate(45deg) scale(0.7);
}
}

@media screen and (max-width: 391px) {
    html {
        font-size: 65%;
    }

    h1 {
        font-size: 4.5rem;
    }
}
