/************************************************************************
 * Landing Page Template Blocks
 ************************************************************************/

/************************************************************************
 * Hero
 ************************************************************************/

 section.landing-hero {
    background-color: #deedf8;
    padding: 6rem 0 4rem;
    text-align: center;
    overflow: hidden;

    h1 {
        font-size: 3rem;
    }

    p {
        font-size: 1.8rem;
        font-weight: 600;
        opacity: 0.8;
        line-height: 1.3;
    }

    .button {
        font-size: 1.2rem;
    }

    * {
        position: relative;
        z-index: 1;
    }

    .hero-bg {
        margin: -4rem 0 -3rem;
        position: relative;
        z-index: 0;
    }

    @media(max-width: 1000px) {
        padding: 3rem 0;
        .hero-bg {
            display: none;
        }
    }

    @media(max-width: 600px) {
        padding: 3rem 0;
        background-image: none;

        h1 {
            font-size: 2rem;
        }

        p {
            font-size: 1.4rem;
        }

        .button {
            font-size: 1rem;
        }

        .hero-bg {
            display: none;
        }
    }
 }

/************************************************************************
 * Boxed - Full Width
 ************************************************************************/

section.landing-boxed-full-width {

}

/************************************************************************
 * Boxed - Two Columns
 ************************************************************************/

section.landing-boxed-two-columns {
    .boxed {
        h2.title {
            grid-column: 1 / -1;
            margin-bottom: -1.5rem;
            text-align: center;

            @media(max-width: 600px) {
                margin-bottom: 0.5rem;
            }
        }

        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 4rem;

        @media(max-width: 700px) {
            grid-template-columns: 1fr;
            gap: 1.5rem;
        }
    }
 }

/************************************************************************
 * FAQs
 ************************************************************************/

section.landing-faqs {
    .landing-faqs-accordion {
        margin: 3rem 0;

        details {
            margin: 0 0 1rem 0;
            background: var(--white);
            border: solid 1px var(--grey-border);
            
            summary {
                position: relative;
                cursor: pointer;
                padding-right: 2rem;
                list-style: none;
                padding: 2rem 5rem 1.9rem 2rem;
                color: var(--primary);
                font-weight: 650;
                font-size: 1.2rem;
 
                &::after {
                    content: '+';
                    position: absolute;
                    right: 2rem;
                    top: 50%;
                    transform: translateY(-50%);
                    font-size: 1.5rem;
                    font-weight: 900;
                }

                details[open] &::after {
                    content: '–';
                }
            }

            p {
                padding: 0 2rem 1rem 2rem;
            }

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

/************************************************************************
 * Text & Image
 ************************************************************************/

section.landing-text-image {
    background-color: var(--white);
    padding: 4rem 0;

    .container {
        display: grid;
        grid-template-columns: 5fr 4fr;
        gap: 5rem;

        .landing-text-image-text, .landing-text-image-image {
            display: flex;
            flex-direction: column;
            justify-content: center;
        }

        .landing-text-image-image img {
            aspect-ratio: 1 / 1;
            object-fit: contain;
            object-position: center center;
        }

        .landing-text-image-text blockquote {
            background: rgba(0,0,0,0.025);
            border-left: solid 4px var(--primary);
            padding: 2rem;
            margin-bottom: 1.5rem;

            p {
                margin-bottom: 0.5rem;
                font-style: italic;
                color: var(--primary);

                strong {
                    font-style: normal;
                }

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

        @media(max-width: 750px) {
            grid-template-columns: 1fr;
            gap: 2rem;

            .landing-text-image-image {
                order: 1;

                img {
                    max-width: 300px;
                    margin: auto;
                    aspect-ratio: auto;
                }
            }

            .landing-text-image-text {
                order: 2;
                text-align: center;
            }
        }
    }

    &.has-background {
        background-color: var(--primary-light);
    }

    @media(min-width: 751px) {
        &.image-left {
            .container {
                grid-template-columns: 4fr 5fr;
            }

            .landing-text-image-image {
                order: -1;
            }

            .landing-text-image-text {
                order: 1;
            } 
        }
    }
}

/************************************************************************
 * Landing Category Grid
 ************************************************************************/

section.landing-category-grid {
    padding: 4rem 0;
    background: var(--primary-light);

    .landing-category-grid-grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr;
        gap: 2rem;
    }

    .landing-category-grid-item {
        text-align: center;
        transition: all 0.3s ease;
        text-decoration: none;

        .landing-category-grid-icon {
            background: var(--primary);
            width: fit-content;
            margin: 0 auto 1rem;
            border-radius: 50%;
            max-width: 10rem;
            width: 100%;
            height: auto;
            aspect-ratio: 1 / 1;
            display: grid;
            place-items: center;
            transition: 300ms;
            padding: 1.5rem;
        }

        img {
            max-width: 100%;
            aspect-ratio: 1 / 1;
            height: auto;
            width: 100%;
            filter: invert(1);
        }

        h3 {
            font-size: 1.5rem;
            margin-bottom: 1rem;
            text-decoration: none;

            @media(max-width: 600px) {
                font-size: 1.2rem;
            }

            @media(max-width: 400px) {
                font-size: 1rem;
            }
        }

        &:hover {
            .landing-category-grid-icon {
                transform: scale(1.1);
            }
        }
    }
}

/************************************************************************
 * Pricing Table
 ************************************************************************/

section.landing-pricing-table {
    padding: 5rem 0 6rem;

    @media(max-width: 1000px) {
        padding: 3rem 0;
    }

    .pricing-toggle {
        text-align: center;
        margin: 0 0 3rem 0;

        .switch {
            position: relative;
            display: inline-block;
            width: 60px;
            height: 34px;
        }

        .switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-color: #ccc;
            transition: .4s;
            border-radius: 34px;
        }

        .slider:before {
            position: absolute;
            content: "";
            height: 26px;
            width: 26px;
            left: 4px;
            bottom: 4px;
            background-color: white;
            transition: .4s;
            border-radius: 50%;
        }

        input:checked + .slider {
            background-color: var(--primary);
        }

        input:checked + .slider:before {
            transform: translateX(26px);
        }

        .pricing-toggle {
            display: flex;
            align-items: center;
            gap: 10px;
            margin-bottom: 20px;
        }

        #toggle-label-monthly,
        #toggle-label-annually {
            font-size: 15px;
            font-weight: bold;
            color: var(--primary);
            padding: 0 1rem;
            font-family: var(--heading-font);
            letter-spacing: 1px;
            text-transform: uppercase;
        }
    }

    .pricing-table {
        display: flex;
        flex-wrap: wrap;
        gap: 2rem;
        margin-bottom: 1rem;

        .pricing-column {
            border: solid 1px var(--primary);
            border-radius: 0 2rem 0 2rem;
            background: var(--white);
            padding: 2rem;
            flex: 1 0;
            min-width: 300px;
            
            h3 {
                margin: 0;
            }

            .price {
                font-size: 1.5rem;
                font-weight: 700;
                margin: 0;
                color: var(--primary);
                opacity: 0.8;
            }

            &:last-child {
                background: var(--primary);
                color: #fff;

                h3 {
                    color: var(--white);
                }

                .price {
                    color: var(--primary-light);
                }

                .button:not(:hover) {
                    background: var(--white);
                    color: var(--primary);
                    border: solid 1px var(--white);
                }

                .button:hover {
                    border: solid 1px var(--white);
                }
            }

            ul.features {
                list-style: none;
                padding: 0;
                margin: 0.5rem 0 0.5rem 0;

                li {
                    padding: 0.5rem 0;
                    border-bottom: solid 1px var(--grey-border);

                    &.tick {
                        &:before {
                            content: '✓';
                            margin-right: 0.5rem;
                            font-weight: bold;
                            color: rgb(83, 161, 83);
                            font-size: 1.3rem;
                        }
                    }

                    &.cross {
                        &:before {
                            content: '✗';
                            margin-right: 0.5rem;
                            font-weight: bold;
                            color: rgb(184, 47, 47);
                            font-size: 1.3rem;
                        }
                    }
                }

                li:last-child {
                    border-bottom: none;
                }
            }
        }
    }
}


/************************************************************************
 * Testimonials
 ************************************************************************/

section.landing-testimonial-grid {
    padding: 4rem 0;
    background-color: var(--primary-light);

    .testimonial-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;

        @media(max-width: 900px) {
            grid-template-columns: 1fr 1fr;
        }

        @media(max-width: 600px) {
            grid-template-columns: 1fr;
        }
    }

    .testimonial {
        background: var(--white);
        padding: 1.5rem;
        border-radius: 0.5rem;
        border: solid 1px #bdd6e7;

        blockquote {
       
            margin-bottom: 1.5rem;
        }

        cite {
            display: flex;
            align-items: center;
            gap: 1rem;

            img {
                border-radius: 50%;
                width: 50px;
                height: 50px;
                object-fit: cover;
            }

            div {
                text-align: left;

                strong {
                    display: block;
                    font-size: 1.1rem;
                    color: var(--primary);
                    line-height: 1;
                }

                span {
                    font-size: 0.9rem;
                    opacity: 0.75;
                }
            }
        }
    }
}