body {
    background-color: #f8f4fc;
    color: #000;
    font-family: "Lato", Arial, Helvetica, sans-serif;
    font-size: 13pt;
    line-height: 1.7em;
    margin: 0;
}

.accessible-hidden {
    clip: rect(1px 1px 1px 1px);
    height: 1px;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
}

.message-success {
    background-color: #dfd;
    border: 2px solid #080;
    border-radius: 1rem;
    padding: 1rem;
}

.btn {
    background-color: #f1579d;
    border-radius: 2rem;
    color: #fff;
    font-size: .8rem;
    font-weight: bold;
    letter-spacing: .07em;
    margin-right: 1rem;
    padding: .5rem 1rem;
    text-decoration: none;
    text-transform: uppercase;

    &.btn-white {
        background-color: #fff;
        color: #321366;
    }
}

h1,
h2,
h3 {
    color: #321366;
    font-family: "Finger Paint", sans-serif;
    margin: 1rem auto 2rem;
    text-align: center;
}

label {
    display: block;
    margin-top: 1rem;
}

input[type=submit] {
    margin: 1rem 0;
}

input,
select,
textarea {
    border: 1px solid #ccc;
    border-radius: .5rem;
    box-sizing: border-box;
    display: block;
    font-size: 1rem;
    padding: .5rem;

    &[aria-invalid] {
        border-color: #f00;
    }
}

.error-message {
    color: #f00;
}

.heart {
    position: relative;

    &:after {
        color: #f1579d;
        content: "♡";
        display: inline-block;
        font-size: 150%;
        padding-left: .25rem;
        transform: rotate(15deg);
    }

    &.heart-yellow:after {
        color: #fede13;
    }

    &.heart-turquoise:after {
        color: #10adb6;
    }
}

.highlight {
    color: #f1579d;
}

#main {
    margin: 0 auto;
    width: 1024px;

    @media (max-width: 600px) {
        width: 100%;
    }
}

header {
    background-image: url('../img/header-background-plain.png');
    background-size: cover;
    background-position: center bottom;
    background-repeat: no-repeat;
    padding-bottom: 4rem;

    .logo-nav {
        display: flex;
        flex-direction: row-reverse;
        justify-content: space-between;
        position: relative;

        .main-menu-toggle,
        #main-menu-label {
            display: none;
        }

        @media (max-width: 600px) {
            .main-menu-toggle {
                display: block;
                height: 3rem;
                margin: .5rem;
                width: 3rem;
            }

            nav {
                display: none;

                &.active {
                    display: block;
                    position: absolute;
                    top: 4rem;
                    z-index: 1;

                    ul {
                        background-color: #fff;
                        display: block;
                        border-radius: 0;
                        margin: 0;
                    }

                    li {
                        margin: 0;
                        text-align: center;

                        a {
                            display: block;
                        }

                        &.active {
                            a {
                                background-color: #f1579d;
                                border-radius: 0;
                                color: #fff;
                                cursor: pointer;
                                outline: none;
                                padding: 0;
                            }
                        }
                    }
                }
            }

            img {
                height: auto;
                margin: .5rem;
                width: 7rem;
            }
        }
    }

    nav {
        width: 100%;

        ul {
            align-items: center;
            background-color: rgba(255, 255, 255, .75);
            border-radius: 2rem;
            display: flex;
            justify-content: space-between;
            list-style-type: none;
            margin: 1rem;
            padding: 0;

            li {
                margin: 0 1rem;
            }

            a {
                color: #321366;
                font-weight: bold;
                padding: .5rem;
                text-decoration: none;
            }

            li.active a {
                border-radius: 2rem;
                outline: 2px solid #f1579d;
            }

            li.book-now {
                margin-left: 2rem;
                background-color: transparent;

                a {
                    background-color: #f1579d;
                    border-radius: 2rem;
                    color: #fff;
                    padding: .5rem 1rem;
                    white-space: pre;
                }
            }
        }
    }

    h1 {
        color: #fff;
        font-family: "Finger Paint", sans-serif;
        font-size: 3rem;
        font-weight: 400;
        font-style: normal;
        line-height: 1em;
        margin: .5rem 4rem;
        text-align: left;
        width: 25rem;
    }

    p {
        color: #fff;
        font-size: 1.2rem;
        margin: 0 4rem;
        width: 25rem;

        .highlight {
            color: #fede13;
            font-size: 1.5rem;
            font-weight: bold;
        }
    }

    .cta-buttons {
        display: flex;
        gap: 1rem;
        margin: 1rem 4rem;
    }
}

.feature-list {
    color: #321366;
    display: flex;
    font-weight: bold;
    gap: 1rem;
    justify-content: center;
    list-style-type: none;
    margin: 0 4rem;
    padding: 0;
    text-align: center;

    @media (max-width: 600px) {
        flex-wrap: wrap;
        margin: 0 1rem;
    }

    li {
        background-color: #fff;
        background-position: center 1rem;
        background-repeat: no-repeat;
        border-radius: .5rem;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        flex: 1 1 0;
        padding: 6rem 1rem .5rem;

        .description {
            color: #000;
            display: block;
            font-weight: normal;
        }

        &.birthday {
            background-image: url('../img/feature-icons/birthday.png');
        }

        &.fairs {
            background-image: url('../img/feature-icons/fairs.png');
        }

        &.festivals {
            background-image: url('../img/feature-icons/festivals.png');
        }

        &.corporate {
            background-image: url('../img/feature-icons/corporate.png');
        }

        &.themes {
            background-image: url('../img/feature-icons/themes.png');
        }

        &.friendly {
            background-image: url('../img/feature-icons/friendly.png');
        }

        &.checked {
            background-image: url('../img/feature-icons/checked.png');
        }

        &.quality {
            background-image: url('../img/feature-icons/quality.png');
        }
    }
}

body.home {
    @media (max-width: 600px) {
        h1 {
            color: #321366;
            font-size: 2rem;
            margin: 2rem 1rem 1rem;
            width: initial;
        }

        p {
            color: #321366;
            margin: 1rem;
            width: initial;
        }

        .cta-buttons {
            margin: 1rem 1rem 0;

            a {
                margin: 0;
            }
        }

        .cta-buttons .btn-white {
            background-color: #321366;
            color: #fff;
        }

        main > h2 {
            margin: 1rem;
            text-align: left;
        }
    }

    header {
        background-image: url('../img/header-background2.png');
        padding-bottom: 2rem;

        @media (max-width: 600px) {
            background-image: url('../img/header-background-plain-mobile.png');
            background-position: center top;
            background-size: 100% auto;
            padding-bottom: 0;
        }
    }
}

main {
    background-color: #f8f4fc;
    background-image: url('../img/splat.svg');
    background-position: top right;
    background-repeat: no-repeat;
    padding: 1rem 0 0;

    .about-me {
        display: flex;
        gap: 1rem;
        margin-top: 2rem;
        padding-top: 1rem;

        @media (max-width: 600px) {
            display: inherit;
            margin: 0 1rem 1rem;
        }

        img {
            margin-left: 1rem;

            @media (max-width: 600px) {
                margin-left: 0;
                max-width: 100%;
            }
        }

        h2 {
            margin: 0;
            text-align: left;
        }

        ul {
            padding: 0;
            list-style-type: none;

            li {
                background-image: url('../img/tick.png');
                background-position: 0 center;
                background-repeat: no-repeat;
                padding-left: 1.5rem;
            }
        }

        aside {
            align-items: center;
            background-image: url('../img/purple-splat.png');
            background-position: center center;
            background-repeat: no-repeat;
            background-size: contain;
            color: #fff;
            display: flex;
            font-family: "Finger Paint", sans-serif;
            justify-items: center;
            min-width: 246px;
            width: 246px;

            @media (max-width: 600px) {
                display: none;
            }

            p {
                margin: 0 4rem;
                text-align: center;
                transform: rotate(5deg);
            }

            .highlight {
                color: #fede13;
            }
        }
    }

    .gallery {
        background-color: #f0e5f7;
        margin: 1rem 0 0 0;
        padding: 1rem 4rem;

        @media (max-width: 600px) {
            margin: 0;
            padding: 1rem;
        }

        .gallery-heading-cta {
            align-items: center;
            display: flex;
            justify-content: space-between;

            a {
                margin: 0;
            }
        }

        h2 {
            margin: 0;
            text-align: left;
        }

        ul {
            display: flex;
            list-style-type: none;
            gap: 1rem;
            margin: 1rem 0;
            overflow-x: auto;
            padding: 0;
        }

        img {
            border-radius: 1.5rem;
        }
    }

    .testimonials {
        background-color: #fefefd;
        background-image: url('../img/turquoise-splat.svg');
        background-position: left center;
        background-repeat: no-repeat;
        padding: 1rem 4rem;

        @media (max-width: 600px) {
            padding: 1rem;
        }

        ul {
            display: flex;
            gap: 1rem;
            list-style-type: none;
            margin: 0;
            padding: 0;

            @media (max-width: 600px) {
                flex-direction: column;
            }

            li {
                background-color: rgba(255, 255, 255, 0.8);
                border-radius: .5rem;
                box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
                margin-bottom: 1rem;
                padding: 0 1rem 1rem 1rem;
                position: relative;

                &::before {
                    color: #ac76d2;
                    content: "“";
                    font-size: 3rem;
                    position: absolute;
                    top: 1rem;
                }

                .stars {
                    color: #fede13;
                    font-size: 1.5rem;
                    text-align: center;
                }

                .client-name {
                    color: #ac76d2;
                    font-style: italic;
                    text-align: center;
                }
            }
        }
    }
}

footer {
    align-items: flex-start;
    background-color: #311662;
    background-image: url('../img/pink-splat.png');
    background-position: right bottom;
    background-repeat: no-repeat;
    color: #fff;
    display: flex;
    justify-content: space-between;
    padding: 1rem 10rem 1rem 4rem;

    @media (max-width: 600px) {
        display: block;
        padding: 1rem;
    }

    h2 {
        background-image: url('../img/yellow-heart.png');
        background-position: right bottom;
        background-repeat: no-repeat;
        color: #fff;
        margin: 0;
        padding-right: 1.5rem;
        width: 15rem;

        @media (max-width: 600px) {
            width: inherit;
        }
    }

    .contact-info {
        p {
            font-family: "Finger Paint", sans-serif;

            @media (max-width: 600px) {
                color: #fff;
            }
        }

        ul {
            list-style-type: none;
            margin: 0;
            padding: 0;
        }

        li:before {
            background-image: url('../img/phone.svg');
            background-position: left center;
            background-repeat: no-repeat;
            background-size: contain;
            content: "";
            display: inline-block;
            height: 1.25rem;
            margin-right: .5rem;
            width: 1.25rem;
        }

        li.email:before {
            background-image: url('../img/email.svg');
        }

        li.facebook:before {
            background-image: url('../img/facebook.svg');
        }

        li.insta:before {
            background-image: url('../img/instagram.svg');
        }

        a {
            color: #fff;
            text-decoration: none;
        }
    }
}

body.about,
body.services {
    .content {
        padding: 1rem 4rem;

        @media (max-width: 600px) {
            padding: 1rem;
        }
    }
}

body.about {
    .content {
        img {
            float: right;
        }

        .more-than {
            clear: both;
            padding-top: 1rem;

            p {
                text-align: center;
            }
        }

        .feature-list {
            margin: 0;
        }
    }

    .experience {
        display: flex;
        gap: 1rem;
        margin: 1rem 4rem;

        .service-list {
            border: 2px dashed #f1579d;
            border-radius: 1rem;
            padding: 1rem;

            h3 {
                margin: 0;
            }

            ul {
                display: flex;
                flex-wrap: wrap;
                gap: 1rem;
                list-style: none;
                margin: 1rem 0 0 0;
                padding: 0;
            }

            li {
                box-sizing: border-box;
                background-image: url('../img/tick.png');
                background-position: 0 .45rem;
                background-repeat: no-repeat;
                padding-left: 1.5rem;
                width: 45%;
            }
        }
    }
}

body.services {
    .services-why {
        display: flex;
        gap: 1rem;

        @media (max-width: 600px) {
            display: block;
        }

        .service-list {
            list-style: none;
            margin: 0;
            padding: 0;

            .service-name {
                color: #321366;
                font-family: "Finger Paint", sans-serif;
                font-size: 1.5rem;
                margin: 0 0 .5rem 0;
            }

            li ul {
                list-style: none;
                padding: 0;
            }

            li li {
                background-image: url('../img/tick.png');
                background-position: 0 center;
                background-repeat: no-repeat;
                padding-left: 1.5rem;
                margin-bottom: .5rem;
            }

            > li {
                background-position: left top;
                background-repeat: no-repeat;
                border-bottom: 2px solid #ddd;
                margin-bottom: 1rem;
                padding-bottom: 1rem;
                padding-left: 10rem;

                @media (max-width: 600px) {
                    background-size: 6rem 6rem;
                    padding-left: 7rem;
                }

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

            .birthdays {
                background-image: url('../img/services/balloons.png');
            }

            .fairs {
                background-image: url('../img/services/castle.png');

            }

            .festivals {
                background-image: url('../img/services/tent.png');

            }

            .corporate {
                background-image: url('../img/services/party.png');

            }

            .themes {
                background-image: url('../img/services/diamond.png');
            }


        }

        aside {
            background-color: #eee8f6;
            border-radius: 1rem;
            padding: 1rem;

            ul {
                list-style: none;
                padding: 0;
            }

            li {
                background-position: left top;
                background-repeat: no-repeat;
                padding-left: 5rem;
            }

            .dbs-checked {
                background-image: url('../img/services/shield.png');
            }

            .high-quality {
                background-image: url('../img/services/leaf.png');
            }

            .experienced {
                background-image: url('../img/services/smiley.png');
            }

            .reliable {
                background-image: url('../img/services/clock.png');
            }

            .passionate {
                background-image: url('../img/services/heart.png');
            }

            .why-name {
                color: #321366;
                font-family: "Finger Paint", sans-serif;
            }

            .book {
                border: 2px dashed #f1579d;
                border-radius: 1rem;
                margin-top: 2rem;
                padding: 1rem;
                position: relative;
                text-align: center;

                &:after {
                    content: '';
                    background-image: url('../img/services/splat.png');
                    height: 72px;
                    right: -2.5rem;
                    position: absolute;
                    top: -2rem;
                    width: 68px;
                }

                h2 {
                    margin: 0;
                }
            }
        }
    }
}

body.gallery {
    .gallery-images {
        display: flex;
        flex-wrap: wrap;
        gap: 1rem;
        margin: 1rem 4rem;
        padding: 0;

        @media (max-width: 600px) {
            display: grid;
            grid-template-columns: auto auto auto;
            margin: 1rem;
        }

        li {
            list-style: none;
            height: 8rem;
            width: 8rem;

            @media (max-width: 600px) {
                height: 28vw;
                width: 28vw;
            }
        }

        button {
            appearance: none;
            background-color: transparent;
            background-position: center center;
            background-repeat: no-repeat;
            background-size: cover;
            border: none;
            height: 100%;
            width: 100%;
        }
    }

    dialog {
        border-radius: 1rem;
        max-height: 90vh;
        max-width: 90vw;
        position: relative;

        &::backdrop {
            background-color: rgba(0, 0, 0, 0.5);
        }

        .close {
            background-color: transparent;
            border: none;
            cursor: pointer;
            height: 2rem;
            position: absolute;
            right: 1rem;
            top: 1rem;
            width: 2rem;
        }

        img {
            margin-top: 2rem;
            max-height: 90%;
            max-width: 100%;
        }
    }
}

body.contact {
    form {
        box-sizing: border-box;
        margin: 0 auto;
        width: 25rem;

        @media (max-width: 600px) {
            padding: 1rem;
            max-width: 100%;
            width: 100%;
        }
    }

    input,
    select,
    textarea {
        box-sizing: border-box;
        width: 100%;
    }

    textarea {
        height: 10rem;
    }
}
