:root {
    --primary-text: #333;
    --secondary-text: #FFF;
    --primary: #F2ABD1;
    --primary-light: #FFE9FF;
    --primary-dark: #BE7BA0;
    --secondary: #7C2D8E;
    --secondary-light: #AE5CBF;
    --secondary-dark: #4C0060;
}

html {
    scroll-behavior: smooth;
}

body,
h1,
h2,
h3,
p {
    margin: 0;
}

body {
    padding: 0;
    border: 0;
    color: var(--primary-text);
    font-size: 18px;
    font-family: 'FuturaMedium', 'Arial Nova', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
}

u {
    text-decoration-color: var(--secondary);
}

/* HEADER */

header {
    position: fixed;
    top: 0;
    z-index: 10000;
    overflow: hidden;
    width: 100%;
    border-bottom: 4px solid var(--secondary);
    background-color: var(--primary-light);
    box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.29);
}

nav.main-menu {
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    line-height: 66px;
}

nav.main-menu a {
    color: var(--primary-text);
    font-weight: 700;
    text-decoration: none;
}

nav.main-menu span {
    max-width: 25%;
    padding: 0 calc((100vw - 248px) / 8);
    text-align: center;
}

nav.main-menu a:hover {
    background-color: var(--primary);
}

nav.social-menu {
    display: none;
}

/* MAIN */

main {
    right: 0;
    left: 0;
    z-index: 1;
    display: block;
    margin-top: 68px;
}

h1 {
    font-weight: 900;
    font-size: 42px;
    font-family: 'FuturaBold', 'Arial Nova', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
    text-transform: uppercase;
}

h2 {
    font-size: 36px;
    font-family: 'FuturaBold', 'Arial Nova', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
}

button {
    padding: 15px 16px 10px;
    border: 0;
    border-radius: 2px;
    font-size: 14px;
    font-family: 'FuturaMedium', 'Arial Nova', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
    line-height: 1;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

button.primary {
    border: 1px solid var(--secondary);
    background-color: var(--secondary);
    color: var(--secondary-text);
}

button.secondary {
    border: 1px solid var(--primary);
    background-color: transparent;
}

a.anchor {
    position: relative;
    top: -69px;
    display: block;
    visibility: hidden;
}

/* HERO section */

.hero {
    position: relative;
    display: flex;
    overflow: hidden;
    width: 100%;
    height: calc(100vh - 136px);
    background-image: url(../img/photos/hero-full.jpg);
    background-position: center center;
    background-size: cover;
}

.hero::before {
    content: '';
    position: absolute;
    z-index: 1;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.45) 13px, transparent) center, rgba(242, 171, 209, 0.1);
    background-size: 10px 10px;
}

.hero-wrapper {
    z-index: 2;
    display: flex;
    flex-wrap: wrap;
    align-content: space-evenly;
    width: 100%;
    height: 100%;
    padding: 0 24px;
    color: var(--secondary-text);
}

.hero-video {
    display: none;
}

.cta {
    display: flex;
    justify-content: space-evenly;
    width: 100%;
}

.cta button {
    color: var(--secondary-text);
}

/* QUOTE section */

.quote {
    padding: 24px 16px;
    background-color: var(--secondary);
    color: var(--secondary-text);
    text-align: center;
}

/* ABOUT section */

.about {
    background-color: var(--primary-light);
}

.about-text {
    padding: 56px 24px;
}

.about-text p {
    padding-top: 24px;
    line-height: 1.5;
}

.about-image {
    height: 100vw;
    background-image: url(../img/photos/about-full.jpg);
    background-position: center center;
    background-size: cover;
}

/* SERVICES section */

.services {
    border-bottom: 4px solid var(--secondary-light);
    background-color: #000;
    color: var(--secondary-text);
}

.services h2 {
    padding: 56px 0 24px;
    text-align: center;
}

.services-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
}

.services-text {
    padding: 0 24px;
}

.services-text p {
    line-height: 1.5;
}

.service-box-container {
    display: flex;
    flex-wrap: wrap;
    padding: 24px 16px;
}

.service-box {
    display: flex;
    flex-basis: 50%;
    align-items: center;
    justify-content: center;
    max-width: 50%;
    height: 120px;
    text-align: center;
}

.service-box h3 {
    position: absolute;
    margin-top: 8px;
    color: var(--secondary-dark);
    font-size: 100px;
}

.service-box p {
    z-index: 2;
    width: 156px;
    line-height: 1;
    text-transform: uppercase;
    text-shadow: 2px 2px 4px #000;
}

.services-wrapper button {
    margin-bottom: 56px;
}

/* REFERENCES section */

.references {
    position: relative;
    min-height: 400px;
    background-color: var(--primary-light);
}

.references-wrapper {
    padding: 56px 24px;
}

.reference p {
    position: relative;
    padding: 24px 0;
    line-height: 1.5;
}

.reference p::before {
    content: '“';
    position: absolute;
    right: 0;
    margin-top: -6px;
    color: var(--primary-dark);
    font-weight: 700;
    font-size: 88px;
    font-family: serif;
    line-height: 0;
}

.reference p::after {
    content: '„';
    position: absolute;
    bottom: 60px;
    color: var(--primary-dark);
    font-weight: 700;
    font-size: 88px;
    font-family: serif;
    line-height: 0;
}

.reference span {
    display: block;
    font-style: italic;
    text-align: right;
}

.reference .numbertext {
    display: none;
    text-align: center;
}

.reference-arrows {
    position: absolute;
    right: 0;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 40px;
}

.prev,
.next {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--primary);
    box-shadow: 0 4px 10px 2px rgba(0, 0, 0, 0.05);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    cursor: pointer;
}

.prev:hover,
.next:hover {
    background-color: var(--primary-dark);
    color: var(--secondary-text);
    transition: background-color 200ms ease-in-out;
}

.reference-dots {
    text-align: center;
}

.dot {
    display: inline-block;
    width: 15px;
    height: 15px;
    margin: 0 2px;
    border-radius: 50%;
    background-color: #BBB;
    cursor: pointer;
    transition: background-color 0.6s ease;
}

.active,
.dot:hover {
    background-color: var(--secondary);
}

.fade {
    pointer-events: none;
    -webkit-animation-name: fade;
    animation-name: fade;
    -webkit-animation-duration: 1.5s;
    animation-duration: 1.5s;
}

@-webkit-keyframes fade {
    from { opacity: 0.4; }
    to { opacity: 1; }
}

@keyframes fade {
    from { opacity: 0.4; }
    to { opacity: 1; }
}

/* CONTACT section */

.contact {
    position: relative;
    width: 100%;
    background-image: url(../img/photos/contact-full.jpg);
    background-position: center center;
    background-size: cover;
    color: var(--secondary-text);
    box-shadow: inset 0 10px 10px 0 rgba(0, 0, 0, 0.1);
}

.contact::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.45) 13px, transparent) center, rgba(242, 171, 209, 0.1);
    background-size: 10px 10px;
}

.contact-wrapper {
    position: relative;
    padding: 0 24px;
}

.contact-text {
    z-index: 2;
    padding: 56px 0;
}

.contact-text h2 {
    padding-bottom: 24px;
}

.contact-text h3 {
    font-family: 'FuturaBold', 'Arial Nova', 'Arial', 'Helvetica Neue', 'Helvetica', sans-serif;
}

.contact-text p {
    display: flex;
    padding-top: 24px;
    line-height: 1.5;
}

.contact-text p:first-of-type {
    padding-top: 0;
}

.contact-text span {
    width: 24px;
    height: 24px;
    margin-right: 8px;
}

.contact-text a {
    border-bottom: 4px solid var(--primary);
    color: var(--secondary-text);
    text-decoration: none;
}

.social-services {
    justify-content: flex-end;
}

.social-services span {
    width: 40px;
    height: 40px;
    margin: 0;
    padding-left: 16px;
}

.social-services a {
    border: 0;
}

/* FOOTER section */

.copyright {
    background-color: var(--secondary);
    color: var(--secondary-text);
}

.copyright-wrapper {
    padding: 24px;
    line-height: 1;
}

@media only screen and (min-width: 768px) {
    h1 {
        font-size: 72px;
        line-height: 1;
    }

    .hero-wrapper,
    .about-text,
    .services-wrapper,
    .references-wrapper,
    .contact-wrapper {
        width: 576px;
        margin: 0 auto;
    }

    /* HEADER */

    header {
        display: flex;
        justify-content: space-between;
    }

    nav.main-menu span {
        padding: 0 24px;
    }

    nav.social-menu {
        display: flex;
        align-items: center;
        padding-right: 16px;
    }

    nav.social-menu span {
        line-height: 0;
    }

    nav.social-menu nav,
    nav.social-menu img {
        width: 28px;
        height: 28px;
        padding: 0 8px;
    }

    /* HERO section */

    .hero {
        height: calc(100vw / 1.78);
        max-height: calc(100vh - 70px);
        background-image: none;
    }

    .hero-wrapper {
        position: relative;
        overflow: hidden;
    }

    .hero-video {
        position: absolute;
        display: block;
        width: 100%;
    }

    /* ABOUT section */

    .about-image {
        height: 440px;
    }

    /* SERVICES section */

    .services-wrapper {
        flex-direction: column;
        align-items: center;
    }

    .services-text {
        padding: 0;
    }

    /* REFERENCES section */

    .reference p::before {
        margin-top: -12px;
    }

    .reference p::after {
        display: none;
    }

    .reference-arrows {
        position: relative;
        display: flex;
        margin-top: -32px;
    }

    .prev,
    .next {
        border-radius: 2px;
    }

    .reference .numbertext {
        display: block;
    }

    .reference-dots {
        display: none;
    }
}

@media only screen and (min-width: 1024px) {
    h1 {
        font-size: 96px;
    }

    h2 {
        font-size: 40px;
    }

    button {
        font-size: 16px;
    }

    .hero-wrapper,
    .about-text,
    .services-wrapper,
    .references-wrapper,
    .contact-wrapper {
        width: 768px;
    }

    /* HERO section */

    .hero {
        height: calc(100vw / 1.78);
        max-height: calc(100vh - 176px);
    }

    .hero-wrapper {
        align-content: flex-end;
    }

    .cta {
        justify-content: flex-start;
        margin: 24px 0 56px;
    }

    .cta button {
        margin-right: 16px;
    }

    /* QUOTE section */

    .quote-wrapper {
        font-size: 24px;
    }

    /* SERVICES section */
    .service-box {
        margin: 24px 0;
    }

    .service-box h3 {
        font-size: 136px;
    }

    .service-box p {
        width: 240px;
        font-size: 24px;
    }
}

@media only screen and (min-width: 1366px) {
    body {
        font-size: 20px;
    }

    h2 {
        font-size: 48px;
    }

    .hero-wrapper,
    .about-wrapper,
    .services-wrapper,
    .references-wrapper,
    .contact-wrapper {
        width: 1200px;
    }

    button {
        box-shadow: 0 5px 15px 0 rgba(0, 0, 0, 0.05);
        font-size: 18px;
        cursor: pointer;
    }

    button.primary:hover {
        background-color: var(--secondary-dark);
        box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.1);
        transition: background-color 200ms, box-shadow 200ms;
    }

    button.secondary:hover {
        background-color: var(--primary-dark);
        color: var(--secondary-text);
        box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.1);
        transition: background-color 200ms, box-shadow 200ms;
    }

    /* HERO section */

    .hero {
        height: calc(100vw / 1.78);
        max-height: calc(100vh - 92px);
    }

    /* QUOTE section */

    .quote {
        padding: 32px 0;
    }

    .quote-wrapper {
        font-size: 32px;
    }

    /* ABOUT section */

    .about-wrapper {
        display: flex;
        margin: 0 auto;
    }

    .about-text {
        display: flex;
        flex-wrap: wrap;
        align-content: center;
        width: 600px;
        padding: 0;
    }

    .about-text h2,
    .about-text p {
        padding-right: 40px;
    }

    .about-image {
        width: 600px;
        height: 600px;
    }

    /* SERVICES section */

    .services h2 {
        padding-top: 88px;
    }

    .services-text p {
        max-width: 720px;
    }

    .services-wrapper button {
        margin-bottom: 88px;
    }

    /* REFERENCE section */

    .references-wrapper {
        padding: 88px 24px;
    }

    .references h2 {
        padding-bottom: 24px;
        text-align: center;
    }

    .reference,
    .reference-arrows {
        max-width: 720px;
        margin: -32px auto 0;
    }

    /* CONTACT section */

    .contact-text {
        padding: 88px 0 56px;
    }

    .contact-text a:hover {
        border-bottom-color: var(--secondary-text);
    }
}

@font-face {
    font-weight: 400;
    font-family: 'FuturaMedium';
    src: url('../fonts/Futura-Med.eot');
    src:
        url('../fonts/Futura-Med.woff') format('woff'),
        url('../fonts/Futura-Med.ttf')  format('truetype'),
        url('../fonts/Futura-Med.svg#Futura') format('svg');
}

@font-face {
    font-weight: 900;
    font-family: 'FuturaBold';
    src: url('../fonts/Futura-ExtBol.eot');
    src:
        url('../fonts/Futura-ExtBol.woff') format('woff'),
        url('../fonts/Futura-ExtBol.ttf')  format('truetype'),
        url('../fonts/Futura-ExtBol.svg#Futura') format('svg');
}
