/* ============================================================
    General Page Styles
============================================================ */

:root {
    /* wireframing */
    --light-bg: #F8F9FA;
    --light-text: #212529;
    --light-gray-1: #E9ECEF;
    --light-gray-2: #DEE2E6;
    --light-gray-3: #CED4DA;

    /* theme colors */
    --theme-gray: #808080;
    --theme-dark-green: #463d15;
    --theme-dark-purple: #800080;
    --theme-light-purple: #6b4476;
    --theme-red: #d32233;
    --theme-dark-red: #581219;
    --theme-bronze: #463d15;
    --content-bg: #f9f8f7;

    /* social media colors */
    --facebook-bg: #3b5998;
    --yelp-bg: #af0606;
    --knot-bg: #a7d2f3;
    --ww-bg: #19b5bc;


    --theme-primary-color: var(--theme-red);
}


body {
	width: 100%;
	padding: 0;
	margin: 0 auto;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
    background-image: url('/images/2026/07/default-bg.jpg');
	background-position: center top;
	background-attachment: fixed;
	background-repeat: no-repeat;
	background-size: cover;
}

h1 {
	font-family: 'Quicksand', sans-serif;
    color: var(--theme-dark-purple);
    font-size: 36px;
}

a {
    color: var(--theme-bronze);

    &:hover {
        text-decoration: underline;
    }
}

#product .description {
    color: #000;
}

.btn-primary {

    &, &:visited {
        background: #d32233;
        border-color: #581219;
    }

    &:focus,
    &:active,
    &:hover {
    	background: #060606;
    	border-color: #262626;
    }
}


/* ============================================================
    Header
============================================================ */

#header {
    padding-top: 0;
    margin-bottom: 20px;

    @media screen and (max-width: 768px) {
        padding-bottom: 0;
    }
}

/* ----- Top Banner -------------------- */

#top-banner {
    background: var(--theme-gray);
    color: #fff;
    padding: 20px;
    display: grid;
    align-items: center;

    @media screen and (max-width: 768px) {
        margin-bottom: 50px;
        height: 125px;
    }

    @media screen and (max-width: 500px) {
        margin-bottom: 50px;
        height: 170px;
    }

    p {
        font-size: 14px;
        text-align: center;
        width: 100%;
        max-width: 1160px;
        margin: auto;
    }
}


/* ----- Header Content -------------------- */
.header-content {
    width: 100%;
    max-width: 960px;
    padding: 0 15px;
    margin: auto;
    display: grid;
    grid-template-columns: repeat(2, 1fr);

    @media screen and (max-width: 992px) {
        max-width: 750px;
    }

    .logo-wrapper {
        display: block;
        width: 100%;
        max-width: 370px;
        display: flex;
        align-items: center;

        .site-branding {
            width: 100% !important;
            margin: 0 !important;

            :is(.site-header) & img {
                width: 100%;
                height: auto;
                max-width: 100%;
            }
        }
    }
}

.header-desktop-cart-wrapper {
    justify-self: end;

    @media screen and (max-width: 768px) {
        justify-self: stretch;
        display: flex;
        align-items: center;
        justify-content: right;
    }
}

.header-cart-info {
    text-align: right;
}

.custom-cart-icon-wrapper {
    background: #DDD;
    background: linear-gradient(to bottom, #EEE, #D6D6D6);
    border: 1px solid #ddd;
    box-shadow: none;
    padding: 6px 12px;
    color: #000;
    float: none;
    border-radius: 3px;
    display: inline-block;
    font-size: 14px;
    margin: 15px 0;
    text-decoration: none;
    box-sizing: border-box;

    &:hover {
        text-decoration: none;
        border-color: #000;
    }

    @media screen and (max-width: 768px) {
        display: none;
    }
}


#address-mobile address {
    text-align: right;
    margin-bottom: 0;

    @media screen and (max-width: 768px) {
        width: 100%;
        text-align: center;
        color: #656f7f;
        font-weight: bold;
        font-family: 'Quicksand', sans-serif;
    }

    a {
        color: var(--theme-dark-green);
        text-decoration: none;

        &:hover {
            text-decoration: underline;
        }
    }
}


/* ----- Primary Navigation -------------------- */
#primary-nav-wrapper {
    background: var(--theme-dark-purple);
    border-bottom: 5px solid #fff;
}

#site-navigation {
    float: none;
    margin: 0;
    width: 100%;
}

#menu-main-menu {
    display: flex;
    flex-direction: row;
    justify-content: center;
    font-size: 17px;

    @media screen and (max-width: 1200px) {
        font-size: 14px;
    }

    > li {

        &:hover {
            background: #d7d5cf;

            > a {
                color: #000;
            }
        }

        > a {
            color: #fff;
            text-decoration: none;
            font-weight: normal;
            text-transform: uppercase;
            height: 50px;
            padding: 0 15px;
            line-height: 50px;
        }
    }

    .sub-menu {
        background: #fff;
        border-bottom: 3px solid var(--theme-bronze);

        li {
            border-top: 1px solid #fff;
            border-bottom: 1px solid #fff;

            &:hover {
                border-top: 1px solid #d3ded347;
                border-bottom: 1px solid #d3d3d347;

                a {
                    background: #F9F9F9;
                    color: #000;
                }
            }

            a {
                text-transform: uppercase;
                text-decoration: none;
            }
        }
    }
}

@media screen and (max-width: 768px) {

    #primary-nav-wrapper {
        position: absolute;
        top: 175px;
        left: -300vw;
        right: 300vw;
        width: 100%;
        max-width: 100%;
        padding: 0;
        border-bottom: 0;

        &.show {
            left: 0;
            right: 0;
        }
    }

    .primary-nav-inner-wrapper {
        background: var(--theme-blue);
        padding: 0;

        > a {
            display: block;
            border-bottom: 1px solid rgba(0, 0, 0, .8);
            padding: 14px;
        }
    }

    #site-navigation-menu-toggle {
        display: none;
    }

    #menu-main-menu-1 {
        padding-left: 0;

        > li {
            border-bottom: 1px solid rgba(0, 0, 0, .8);

            > a {
                color: #fff;
                text-transform: uppercase;
                padding: 14px;
                text-decoration: none;
                font-size: 12px;
                font-weight: normal;
            }
        }

        .dropdown-toggle {
            color: #fff;
        }

        .sub-menu {
            background: #fff;
            margin-left: 0;
            padding-left: 0;
            font-size: 12px;

            li {
                border-bottom: 1px solid rgba(0, 0, 0, .8);

                a {
                    padding: 14px;
                    text-decoration: none;
                }
            }
        }

    } /* --- //end #menu-main-menu-1 --- */

    .handheld-navigation {
        max-height: max-content;

        ul li a {
            color: #000;
        }

        ul li .dropdown-toggle {
            color: #000;
        }

        ul.menu li button::after {
            content: "";
        }
    }
}




/* ============================================================
    Footer
============================================================ */

#footer {
    border-top: 5px solid var(--theme-light-purple);
    background: url('/images/2026/07/footer-bg.jpg');
    color: #fff;
    font-size: 14px;

    a {
        color: #fff;
        text-decoration: none;
    }

    ul {
        padding-left: 0;
    }

    dl {
        display: grid;
        grid-template-columns: 1fr;
        grid-gap: 0 10px;

        @media screen and (max-width: 768px) { margin-bottom: 45px; }
    }

    dl dt,
    dl dd {
        display: inline;
        font-weight: normal;
    }

    dl dt {
        margin-right: 5px;
    }

    dl dd::after {
        content: " ";
        display: block;
        clear: both;
        width: 100%;
        height: 0;
    }

    .footer-content-wrapper {
        width: 100%;
        max-width: 1200px;
        margin: auto;
        padding: 0 15px;
    }

    .footer-widgets {

        &.row-1.col-4.fix {
            width: 100%;
            border: none;
            display: flex;
            column-gap: 10px;

            @media screen and (max-width: 768px) {
                flex-direction: column;
                gap: 0;
            }
        }

        h3 {
            font-size: 14px;
            font-weight: bold;
            color: #fff;
            margin-bottom: 0;
        }
    }

    #footer-tagline-wrapper,
    #footer-copyright-row {
        width: 100%;
        max-width: 1200px;
        margin: auto;
        padding: 0 15px;
    }

    #footer-copyright-row {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        font-size: 11px;
    }

    /* --- socials --- */
    .footer-widget-4 {

        .footer-title { text-align: center; }

        ul {
            display: flex;
            flex-direction: row;
            gap: 5px;
            justify-content: center;

            li a {
                display: block;
                width: 32px;
                height: 32px;
                line-height: 32px;
                text-align: center;
                border-radius: 16px;
                background: gray;

                &.facebook { background: var(--facebook-bg); }
                &.yelp { background: var(--yelp-bg); }
                &.knot { background: var(--knot-bg); }
                &.ww { background: var(--ww-bg); }

                @media screen and (max-width: 768px) {
                    width: 44px;
                    height: 44px;
                    border-radius: 22px;
                    line-height: 44px;
                }
            }
        }
    }

    :is(
        #nav_menu-2,
        #nav_menu-3
    ) {
        .gamma.widget-title {
            font-size: 14px;
            font-weight: bold;
            color: #fff;
            margin-bottom: 0;
            padding-bottom: 0;
            border-bottom: none;
        }

        .menu li {
            padding-left: 0;
            margin-bottom: 0;

            &::before { display: none; }
        }
    }

} /* --- //end #footer --- */


/* ----- Handheld Footer Bar -------------------- */
.storefront-handheld-footer-bar {

    /* --- Main Properties --- */
    position: absolute;
    top: 0;
    bottom: auto;
    z-index: 9999;
    border-top: 0;
    box-shadow: none;
    height: max-content;
    max-height: 50px;
    overflow: hidden;
    background: #222;
    padding: 0 5px;

    /* --- Elements States --- */
    &::before,
    &::after { display: none; }

    body.logged-in & {
        top: 46px;
        @media screen and (max-width: 768px) { top: 171px !important; }
        @media screen and (max-width: 500px) { top: 216px !important; }
    }

    /* --- Media Queries --- */
    @media screen and (max-width: 768px) { top: 125px !important; }
    @media screen and (max-width: 500px) { top: 170px !important; }

    /* --- Nested Components --- */
    ul {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        padding-left: 0;

        li {
            width: auto !important;

            &:first-child {
                justify-content: left;
            }

            &.cart {

                .count {
                    display: none;
                }

                > a::before {
                    position: relative;
                    top: -5px;
                }
            }
        }
    }

    .site-footer & a:not(.button):not(.components-button) {
        background: transparent;
        color: #fff;
        height: 50px;
        line-height: 50px;
        font-size: 14px;
        width: 50px;
        border-right: 0;
        text-decoration: none;
    }

} /* --- //end .storefront-handheld-footer-bar --- */



.handheld-search-field-container {
    position: relative;

    form button[type="submit"] {
        position: absolute;
        top: 5px;
        right: 0;
        width: 40px;
        height: 40px;
        overflow: hidden;
        color: transparent;
        border-radius: 4px;

        &::after {
            content: "\f002";
            font-family: 'Font Awesome 5 Free';
            display: block;
            width: 40px;
            height: 40px;
            line-height: 40px;
            text-align: center;
            position: absolute;
            top: 0;
            right: 0;
            color: #000;
        }
    }
}

#woocommerce-product-search-field-1 {
    width: 100%;
    padding-right: 60px;
    padding-top: 5px;
    padding-bottom: 5px;
    margin-top: 5px;
    border-radius: 4px;
    font-size: 12px;
    height: 40px;
    line-height: 40px;
}

.my-menu-trigger {
    width: 50px;
    height: 50px;
    line-height: 50px;
    display: grid;
    float: right;

    .fa-bars {
        display: block;
        width: 25px;
        height: 25px;
        text-align: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
}



/* ----- Footer Newsletter Signup Form -------------------- */
/*
    Structural Outline:

    #footer-newsletter-signup
        #gform_wrapper_1 | .gform_wrapper
            .gform_heading
                .gform_description
            #field_1_1 | .gfield
                label.gfield_label | .gform-field-label
                    .gfield_required
                .ginput_container_email
                    input#input_1_1
            .gform-footer | .gform_footer
                #gform_submit_button_1 | :hover
*/

#footer-newsletter-signup {
    text-align: center;
    width: 100%;
    max-width: 660px;

    @media screen and (max-width: 768px) {
        max-width: 400px;
    }

    #gform_wrapper_1 {
        max-width: 660px;
        position: relative;

        #field_1_1 {
            display: grid;
            grid-template-columns: max-content 1fr;
            align-items: center;

            @media screen and (max-width: 768px) {
                grid-template-columns: 1fr;
            }

            .gfield_label .gfield_required {
                display: none;
            }

            label.gfield_label {
                margin-bottom: 0;
                align-content: center;
                width: 200px;
                padding-right: 20px;
                padding-left: 20px;
                border-bottom: none;
                color: #fff;
                font-weight: 500;
                font-family: "system-ui", serif;
                line-height: 1.4em;
                font-size: 18px;

                @media screen and (max-width: 768px) {
                    padding-left: 5px;
                    margin-bottom: 5px;
                }
            }

            .ginput_container.ginput_container_email {
                width: 100%;
                max-width: 100%;
            }

            input#input_1_1 {
                height: 44px;
                border-right: none;
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
                border: 1px solid #000;
                width: 100%;
                text-align: left;
                padding-right: 190px;
                border-radius: 5px;

                @media screen and (max-width: 768px) {
                    padding-right: 10px !important;
                }
            }
        }

        .gform-footer {
            margin-top: 0;
            position: absolute;
            top: 0;
            right: 0;

            @media screen and (max-width: 768px) {
                position: relative;
                margin-top: 10px;
                margin-bottom: 45px;
                padding-left: 0;
            }

            #gform_submit_button_1 {
                background: var(--theme-red);
                height: 44px;
                width: 180px;
                border-left: none;
                border-color: var(--theme-dark-red);
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
                border-top-right-radius: 5px;
                border-bottom-right-radius: 5px;

                &:hover {
                    background: #000;
                }

                @media screen and (max-width: 768px) {
                    width: 100%;
                    border-radius: 5px;
                }
            }
        }
    }
}



/* ----- Top Top Button -------------------- */
#to-top {
    .to-top-caption {
        margin-top: 4px !important;
    }

    .to-top-icon {
        font-size: 20px;
        position: relative;
        top: 5px;
    }
}

.grecaptcha-badge {
    bottom: 85px !important;
}





/* ============================================================
    Page Templates
============================================================ */

/* ----- Page -------------------- */
.storefront-breadcrumb {
    background: var(--content-bg);
    max-width: 1200px;
    margin: auto;
    padding: 10px 15px;

    .col-full {
        padding: 0;
        width: 100%;
        max-width: 100%;
        margin: 0;
        border-bottom: 1px solid rgba(0,0,0,0.1);

        .woocommerce-breadcrumb {
            padding: 0 15px;
            padding-bottom: 10px;
            font-style: italic;
            font-size: 12px;

            a {
                text-decoration: none;

                &:first-of-type::before {
                    display: none;
                }
            }
        }
    }
} /* --- //end .storefront-breadcrumb --- */


/* primary */
#primary {
    max-width: 1200px;
    margin: 0 auto;
    float: none;
    background: var(--content-bg);
    padding: 15px;
}


/* ----- Home -------------------- */
body.home {
    .storefront-breadcrumb {
        display: none;
    }

    #primary {
        border-top: 5px solid #e6e6fa;
    }
}


#home-intro-section {
    padding: 30px;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 30px;
    margin: -15px;
    background: #fff;

    .intro-text {
        @media screen and (max-width: 768px) {
            text-align: center;
        }

        img {
            float: left;
            margin-right: 40px;

            @media screen and (max-width: 992px) {
                display: none;
            }
        }
    }

    .callout-tagline {
        font-family: 'Allura', cursive;
        color: #474a1b;
        font-size: 34px;
        line-height: 1.2;
        margin-bottom: 0;
    }

    .callout-tagline2 {
        text-transform: uppercase;
        font-family: 'Quicksand', sans-serif;
        font-size: 1.5em;
        margin-top: -9px;
        font-weight: 200;
        margin-bottom: 3px;
    }

    #text_main {
        line-height: 1.6em;
        font-size: 14px;

        @media screen and (max-width: 768px) {
            display: none;
        }
    }

    @media screen and (max-width: 768px) {
        grid-template-columns: 1fr;
        grid-gap: 15px;
        margin-bottom: 40px;
        padding: 15px;
    }
}

/* welcome text */
.welcome-text {
    text-align: center;
    color: var(--theme-bronze);
    margin-left: -15px;
    margin-right: -15px;
    background: #fff;
    line-height: 120px;
    padding: 0 15px;

    @media screen and (max-width: 1100px) {
        line-height: 70px;
    }

    @media screen and (max-width: 768px) {
        display: none;
    }

    .welcome {
        font-family: 'Allura', cursive;
        font-size: 84px;
    }

    .shop-name {
        font-family: 'Quicksand', sans-serif;
        font-weight: 200;
        text-transform: uppercase;
        font-size: 49px;
    }

    @media screen and (max-width: 992px) {
        .welcome { font-size: 80px; }
        .shop-name { font-size: 42px; }
    }

    @media screen and (max-width: 885px) {
        .welcome { font-size: 56px; }
        .shop-name { font-size: 28px; }
    }
}



/* ----- Banner -------------------- */
#home-banner-wrapper {
    width: 100%;
    max-width: 554px;
    min-width: 0;

    @media screen and (max-width: 768px) {
        max-width: 100%;
    }

    .banner-slide img {
        width: 100%;
        height: 20%;
    }

    .banner-overlay {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        transform: translateY(0);
        opacity: 0;

        .banner-btn {
            display: block;
            position: absolute;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
        }
    }
}


/* ----- Featured Products -------------------- */
#home-featured-products {

    .fs_category_title {
        display: none !important;
    }

    .fs_product_wrap {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr);
        grid-gap: 30px;

        @media screen and (max-width: 768px) {
            grid-template-columns: repeat(2, 1fr);
        }

        @media screen and (max-width: 500px) {
            grid-template-columns: 1fr;
        }

        > div {
            width: 100%;
        }

        a {
            text-decoration: none;

            .justify-content-center {
                background: #fff;
            }

            .h4 {
                color: var(--theme-bronze);
                font-size: 14px;
                line-height: 20px;
                padding-bottom: 0 !important;
                margin-bottom: 0;
                font-weight: normal;
            }

            .h6 {
                color: rgb(68, 68, 68);
                font-size: 18px;
                line-height: 26px;
                font-weight: normal;
                padding-top: 0 !important;

                .price-cents {
                    font-size: 11px;
                    position: relative;
                    top: -5px;
                }
            }
        }
    }
}


/* ----- Product Category Single -------------------- */
body.archive {

    .products {
        padding-left: 0;
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-gap: 30px;

        &::before {
            display: none;
        }

        @media screen and (max-width: 768px) {
            grid-template-columns: repeat(2, 1fr);
        }

        @media screen and (max-width: 500px) {
            grid-template-columns: 1fr;
        }

        .product {
            width: 100% !important;
            margin: 0 !important;

            img {
                max-height: 220px;
                width: auto;
                background: #fff;
            }
        }
    }
}


/* ----- 404 -------------------- */

body.error404 {

    p {
        margin-bottom: 5px;
    }

    a {
        text-decoration: none;

        &:hover {
            text-decoration: underline;
            color: #23527c;
        }
    }

} /* --- //end 404 Page --- */


/* ----- Local Page -------------------- */
body.page-template-template-local-page {

    hr {
        height: 0;
        margin: 20px 0;
        border-top: .5px solid #eee;
        opacity: 1;
    }

    .py-4 {
        margin-bottom: 0;
        padding-bottom: 0 !important;
    }

    /* --- Delivery Countdown --- */
    .delivery-countdown-clock {
        display: block;
        clear: both;
        padding: 15px 10px;
        text-align: center;
        background: #EEE;
        border: 2px solid #CCC;

        .fs-delivery-countdown {
            display: grid;
            grid-template-columns: repeat(3, max-content);
            justify-content: center;
            align-items: center;
            grid-gap: 10px;
            color: #000;



            @media screen and (max-width: 1200px) {
                grid-template-columns: 1fr;
            }

            span[data-role="remaining-time"] {
                display: grid;
                grid-template-columns: repeat(3, 1fr);
                grid-gap: 5px;

                @media screen and (max-width: 1200px) {
                    width: max-content;
                    justify-self: center;
                }
            }

            span[data-role="remaining-time-hours"],
            span[data-role="remaining-time-minutes"],
            span[data-role="remaining-time-seconds"] {
                display: grid;
                grid-template-columns: 1fr;
                text-align: center;
            }

            span[data-role="remaining-time-hours"] span:first-child,
            span[data-role="remaining-time-minutes"] span:first-child,
            span[data-role="remaining-time-seconds"] span:first-child {
                font-size: 52px;
                line-height: 1;
            }

            span[data-role="remaining-time-hours"] span:first-child::after,
            span[data-role="remaining-time-minutes"] span:first-child::after {
                content: ":";
                margin-left: 10px;
            }

            span[data-role="remaining-time-hours"] span:last-child,
            span[data-role="remaining-time-minutes"] span:last-child,
            span[data-role="remaining-time-seconds"] span:last-child {
                text-transform: uppercase;
                font-size: 12px;
                text-align: left;
                padding-left: 5px;
            }
        }
    }

    /* --- Featured Products Top --- */
    .fs_category_wrap {
        margin-top: 30px;

        /* category title output by module */
        .fs_category_title { display: none !important; }

        .fs_product_wrap a {
            text-decoration: none;

            .h4 {
                color: var(--theme-bronze);
                font-size: 14px;
                line-height: 20px;
                padding-bottom: 0 !important;
                margin-bottom: 0;
                font-weight: normal;
            }

            .h6 {
                color: rgb(68, 68, 68);
                font-size: 18px;
                line-height: 26px;
                font-weight: normal;
                padding-top: 0 !important;
            }
        }

        .price-cents {
            font-size: 11px;
            position: relative;
            top: -5px;
        }

    }

    /* --- Local Page Featured Products --- */
    .local-featured-product-wrapper {
        display: grid;
        grid-template-columns: repeat(2, 1fr);

        .image-wrapper img {
            width: 100%;
            max-width: 375px;
        }

        .details-wrapper {
            display: grid;

            h2 {
                border: none;
                text-transform: uppercase;
                font-size: 29px;
            }

            .details-inner {
                display: block;
                max-width: 380px;
                justify-self: end;
                margin-top: 60px;
            }

            .from-price {
                display: none;
            }

            .woocommerce-Price-amount {
                font-size: 30px;
                color: #000;
                font-weight: bold;
            }
        }

        .local-featured-product-button {
            display: block;
            width: max-content;
            padding: 10px 20px;
            border-radius: 10px;
            background: var(--theme-purple);
            color: #fff;

            &:hover {
                color: #fff;
                background: #000;
                text-decoration: none;
            }
        }

    } /* --- //end Local Page Featured Products --- */

    .other-items-wrapper {

        .fs_category_title {
            display: none !important;
        }

        .fs_product_wrap a {
            text-decoration: none;

            .h4 {
                color: var(--theme-bronze);
                font-size: 14px;
                line-height: 20px;
                padding-bottom: 0 !important;
                margin-bottom: 0;
                font-weight: normal;
            }

            .h6 {
                color: rgb(68, 68, 68);
                font-size: 18px;
                line-height: 26px;
                font-weight: normal;
                padding-top: 0 !important;
            }
        }

        .price-cents {
            font-size: 11px;
            position: relative;
            top: -5px;
        }

    } /* --- //end .other-items-wrapper --- */

    .blurb-wrapper {
        font-weight: bold;

        p {
            font-size: 14px;
        }
    }

    .map-section-wrapper {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 20px;
    }

    .weather-widget-blurb-wrapper {
        display: grid;
        grid-template-columns: 115px 1fr;
        grid-template-rows: max-content;
        grid-gap: 20px;
        row-gap: 10px;

        .section-title {
            grid-column: 1 / span 2;
            font-size: 30px;
            color: #333;
        }
    }

    /* --- Weather Widget --- */
    .weather-widget-wrapper {
        overflow: hidden;
    }

    #local-page-weather-widget > div > div {
    	height: auto;
    	color: #000;
    	background: transparent;
    	border-radius: 0;
    	float: none;
        width: 110px;
        padding: 15px;
        margin: 0 30px 20px 0;
        text-align: center;
        line-height: 1;
        border: 1px solid #EEE;

        > div {

            &.mm-widget__header-wrap {
            	display: none;
            }

            &.mm-widget__vertical-forecast-wrap {
            	display: none;
            }

            &.mm-widget__temp-vertical-wrap {
            	padding-bottom: 0;
                margin-bottom: 0;
                border: none;
                display: grid;
            }

            &.mm-widget__copyright {
                &, & a { color: #000; }
            }

            &.mm-widget__temp-vertical-wrap > div {

                &.mm-widget__temp-range-wrap > div.mm-widget__temp-range {
                	display: none;
                }

                &.mm-widget__temp-range-wrap > div.mm-widget__temp-range-icon > img {
                	filter: brightness(0) !important;
                	width: 100%;
                }

                &.mm-widget__temp-range-wrap {
                	grid-row: 1;
                }

                &.mm-widget__temp-value {
                	font-size: 40px;
                	color: rgb(96,96,96);
                	margin-bottom: 10px;
                }

                &.mm-widget__temp-range-wrap > div.mm-widget__temp-range-icon {
                	width: 100%;
                	max-width: 50px;
                }
            }
        }
    } /* --- //end #local-page-weather-widget --- */

    @media screen and (max-width: 768px) {

        .local-featured-product-wrapper {
            grid-template-columns: 1fr;
        }

        .map-section-wrapper {
            grid-template-columns: 1fr;
        }

        .weather-widget-blurb-wrapper {
            grid-row: 2;
        }

        .map-section-map-wrapper {
            grid-row: 1;
        }
    }

    @media screen and (max-width: 500px) {
        .other-items-wrapper .fs_product_wrap {
            display: grid;
            grid-template-columns: 1fr;
        }
        .other-items-wrapper div {
            width: 100%;
        }
    }

} /* --- //end body.template-template-local-page --- */


/* ----- Product Single -------------------- */
body.single-product {

    /* --- Generic Page Styles & Layout --- */
    font-size: 14px;

    .storefront-sticky-add-to-cart,
    .onsale,
    .product .edit-link,
    .from-price {
        display: none !important;
    }

    #primary {
        padding: 15px 45px;
    }

    .my-product-wrapper {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 50%));
        grid-gap: 20px;
    }

    /* --- WooCommerce Notice Wrapper --- */
    .woocommerce {
        max-width: 1200px;
        margin: auto;
        background: #fff;
        padding: 0 15px;

        .woocommerce-message {
            margin-bottom: 0;
        }
    }

    /* --- Page Title --- */
    .product-title {
        grid-column: 1 / span 2;
        margin: 0;
        color: #333;
        font-size: 25px;
        border-bottom: 1px solid #EEE;
        font-weight: 500;
        font-family: 'Quicksand', sans-serif;
        text-align: left;
    }

    /* --- Image Column --- */
    .my-image-col {
        min-width: 0;

        .woocommerce-product-gallery {
            width: 100% !important;
            margin: 0 !important;

            img { width: 100%; }
        }

        .woocommerce-product-gallery__wrapper * {
            border-radius: 0;
        }
    }

    /* --- Disclaimer Column --- */
    .my-disclaimer-col {
        grid-column: 1 / span 2;

        .description1 h2 { font-size: 24px; }
    }

    /* --- Details Column --- */
    .my-details-col {
        display: grid;
        grid-template-columns: max-content 1fr;
        grid-auto-rows: max-content;
        grid-gap: 100px;
        grid-row-gap: 20px;

        h2, .product-details { grid-column: 1 / span 2; }
        h2 { margin-top: 0; }

        /* --- Shared Styles --- */
        .summary.entry-summary {
            display: contents !important;

            .price {
                grid-row: 1;
                font-size: 30px;
                margin: 0;
                align-self: center;
            }
        }

        /* --- Variable Product Styling --- */
        .variations_form {
            display: contents !important;

            form.cart {
                display: contents !important;
                grid-row: 1;
                grid-column: 2;
            }

            .single_variation_wrap {
                grid-row: 1;
                grid-column: 2;
                align-self: center;
            }

            .woocommerce-variation-add-to-cart {
                display: grid;
                grid-template-columns: auto max-content 1fr;
                gap: 15px;
                align-items: center;
                grid-row: 1;

                .quantity {
                    grid-column: 2;
                    border-radius: 5px;
                    overflow: hidden;
                }
            }

            .product .variations_button {
                padding-top: 0;
            }

            .woovr-variations-table .woovr-label,
            .woovr-label {
                display: block !important;
                font-size: 24px;
                font-weight: normal;
                text-transform: capitalize;
                margin-bottom: 12px;
                border-bottom: 1px solid #000;
                color: #000;
                width: 100%;
            }

            .woovr-variations {
                grid-row: 3;
                grid-column: 1 / span 2;
                display: grid;
                grid-template-columns: repeat(4, 1fr);
                gap: 10px;
                margin-top: 5px;

                .woovr-variation { margin: 0; padding: 5px; }
            }
        } /* --- //end Variable Product Styling */

        /* --- Simple Product State --- */
        .cart:not(.variations_form) {
            display: grid;
            grid-template-columns: auto max-content 1fr;
            gap: 15px;
            align-items: center;
            margin-bottom: 0;
            padding-bottom: 0;
        }

        /* --- Variation Options Title --- */
        .my-dynamic-variation-title {
            grid-row: 2;
            grid-column: 1 / span 2;
            font-weight: normal;
            text-transform: capitalize;
            margin: 0;
            width: 100%;
            border-top: 1px solid #E6E6E6;
            border-bottom: 1px solid #F3F3F3;
            font-size: 16px;
            padding: 0 15px;
            background: #f6f5f3;
            opacity: 1;
            display: block;
            height: 50px;
            line-height: 50px;
        }

        /* --- Add to Cart Button --- */
        .single_add_to_cart_button {
            grid-column: 3;
            background: var(--theme-red);
            border-radius: 5px;

            &.disabled { background: gray; }
        }

    } /* --- //end .my-details-col --- */

    /* --- Media Queries --- */
    @media screen and (max-width: 1200px) {
        .my-product-wrapper { grid-template-columns: 1fr 2fr; }
    }

    @media screen and (max-width: 850px) {
        #primary { padding: 15px; }
        .my-product-wrapper {
            grid-template-columns: 1fr;

            .product-title { grid-row: 1; }
            .my-image-col { grid-row: 2; }
            .my-details-col {
                grid-row: 3;
                grid-gap: 20px;
                h2 { margin-bottom: 0; }
                .product-details { margin-top: 0; }
            }
        }
    }

    @media screen and (max-width: 600px) {
        .my-details-col .variations_form .woovr-variations {
            grid-template-columns: 1fr;
            grid-gap: 0;
        }
    }
} /* --- //end body.single-product --- */


/* ----- Local Page Alt -------------------- */
body.page-template-template-local-page-alt {

    font-size: 14px;

    h1, h2, h3, h4 {
        text-align: center;
    }

    h1 {
        grid-column: 1 / span 2;
        @media screen and (max-width: 768px) { grid-column: 1; }
    }

    h1 + p {
        grid-column: 1 / span 2;
        text-align: center;

        @media screen and (max-width: 768px) { grid-column: 1; }
    }

    h2 {
        font-size: 30px;

        .local-alt-intro-wrapper & {
            text-align: left;
        }
    }

    h3 { font-size: 24px; }
    h4 { font-size: 18px; }

    a {
        color: #463d15;
        text-decoration: none;

        &:hover {
            color: #23527c;
            text-decoration: underline;
        }
    }

    /* layout */
    #main {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        grid-gap: 20px;

        @media screen and (max-width: 768px) {
            grid-template-columns: 1fr;
        }
    }

    /* page title */
    .page-title {
        grid-column: 1 / span 2;
        text-align: center;
    }

    /* sub title text */
    .sub-title-text {
        grid-column: 1 / span 2;
        text-align: center;
    }

    /* intro text */
    .local-alt-intro-wrapper p {
        float: none !important;
        width: 100% !important;
    }

    /* lower content */
    .lower-content {
        grid-column: 1 / span 2;

        @media screen and (max-width: 768px) {
            grid-column: 1;
        }

        /* flower links */
        .local-page-alt-flower-links {
            display: grid !important;
            grid-template-columns: repeat(4, minmax(0, 234px));
            justify-content: center;
            width: 100%;

            @media screen and (max-width: 600px) {
                grid-template-columns: repeat(2, minmax(0, 234px));
            }

            a {
                display: block;
                width: 100%;
                max-width: 234px;
                text-align: center;
                box-sizing: border-box;
            }

            a img {
                width: 100%;
                max-width: 100%;
                display: block;
                height: auto;

            }
        }

        /* review */
        .local-page-alt-review {
            text-align: center;

            img {
                margin: auto;
            }

            a {
                display: inline-block;
            }
        }

        /* location links */
        .local-page-alt-location-links {
            margin-left: 0;
        }

        /* faqs */
        .local-page-alt-faqs p {
            text-align: center;
        }
    }
} /* --- //end body.page-template-template-local-page-alt --- */


/* ============================================================
    Pages
============================================================ */

/* ----- Leave a Review -------------------- */
body.page-id-30655 {

    /* Page Setup */
    .entry-title { display: none; }
    h2:first-of-type { text-align: center; }

    /* --- Review Links --- */
    .review-links {
        display: flex;
        max-width: 960px;
        margin: 40px auto;
        flex-direction: row;
        justify-content: space-around;
        align-items: center;
        text-align: center;
        font-size: 20px;

        @media screen and (max-width: 835px) {
            flex-direction: column;
        }

        /* --- Each Link Item --- */
        .review-link {
            display: block;
            max-width: 280px;
            margin: 40px 0;
            color: #000;
            text-decoration: none !important;

            /* --- Social Icon Wrapper --- */
            .review-provider {
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
                width: 150px;
                height: 150px;
                margin: auto;
                background: #FFF;
                border-radius: 1000px;
                border: 2px solid rgba(0, 0, 0, .2);
                box-shadow: 0 0 0 5px #FFF;
                transition: border .4s;

                /* --- Icon Styles --- */
                .fa-google,
                .fa-square-facebook,
                .fa-yelp {
                    width: 32px;
                    height: 32px;
                }

                /* --- Color Variations --- */
                .fa-google { color: #4285f4; }
                .fa-square-facebook { color: #3b5998; }
                .fa-yelp { color: #d32323; }
            }

            /* --- Hover State on Main Link --- */
            &:hover .review-provider {
                color: #000;
                border-color: rgba(0, 0, 0, .8);
            }

            /* --- CTA Inside Link --- */
            .review-button {
                margin-top: 10px;
                padding: 15px 30px;
                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
                color: #FFFFFF;
                font-size: 15px;
                font-weight: 500;
                text-shadow: -1px -1px 1px #004499;
                background: #0066CC;
                border-radius: 3px;
                box-shadow: 0 2px 4px rgba(0, 0, 0, .3);
            }
        }

    } /* --- //end Review Links --- */

} /* --- //end leave a Review --- */


/* ----- Contact Us -------------------- */
body.page-id-8609 {

    /* --- General Page Styles --- */
    .entry-content p:first-of-type {
        margin-bottom: 0;
    }

    hr {
        height: 0;
        margin: 20px 0;
        border-top: 1px solid #eee;
        opacity: 1;
    }

    .entry-content .footer-title {
        display: none;
    }

    h2 {
        margin-top: 30px;
    }

    dl dt {
        font-weight: normal;
    }

    .entry-content a {
        text-decoration: none;

        &:hover {
            text-decoration: underline;
            color: #23527c;
        }
    }

    /* --- Contact Form --- */
    #gform_wrapper_2 {

        .gform_heading {
            display: none;
        }

        #gform_fields_2 {
            row-gap: 15px;

            .gfield .gfield_label {
                display: grid;
                grid-template-columns: max-content max-content;
                justify-content: right;
                font-weight: bold;
                padding-right: 15px;

                @media screen and (max-width: 640px) { justify-content: left; }
            }
        }

        .gform-footer {
            margin-top: 0;

            #gform_submit_button_2 {
                width: 100%;
                background: var(--theme-red);
                border-color: var(--theme-dark-red);
            }
        }

    } /* --- //end Contact Form --- */

} /* --- //end Contact Us --- */


/* ----- Feedback -------------------- */

/*
    Structural Outline:

    div [ .smcx-widget | .smcx-embed | .smcx-show | .smcx-widget-dark ]
        .smcx-iframe-container
*/

.smcx-widget {

    &, & * {
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
    }

    &.smcx-show {
        display: block;
    }

    &.smcx-embed {
        width: 100% !important;
        max-width: 700px !important;
        height: 700px !important;
        position: static !important;
        overflow: hidden;
        border: 1px solid #ccc;
        background-color: #FFF;
        -webkit-border-top-left-radius: 0;
        -webkit-border-top-right-radius: 0;
        -webkit-border-bottom-right-radius: 3px;
        -webkit-border-bottom-left-radius: 3px;
        -moz-border-radius-topleft: 0;
        -moz-border-radius-topright: 0;
        -moz-border-radius-bottomright: 3px;
        -moz-border-radius-bottomleft: 3px;
        border-top-left-radius: 0;
        border-top-right-radius: 0;
        border-bottom-right-radius: 3px;
        border-bottom-left-radius: 3px;

        > .smcx-iframe-container {
            width: 100%;
            max-width: 700px;
            height: 100%;
            overflow: hidden;
            margin: 0 !important;
        }
    }
} /* --- //end .smcx-widget --- */


/* ----- Shop -------------------- */
.woocommerce-pagination .page-numbers li .page-numbers.current {
    background: var(--theme-dark-purple);
    color: #fff;
}

.woocommerce-loop-product__link {
    text-decoration: none !important;

    .justify-content-center {
        background: #fff;
    }
}

.woocommerce-loop-product__title {
    color: var(--theme-bronze);
    font-size: 14px;
    line-height: 20px;
    padding-bottom: 0 !important;
    margin-bottom: 0;
    font-weight: normal;

    + .price .amount {
        color: rgb(68, 68, 68);
        font-size: 18px;
        line-height: 26px;
        font-weight: normal;
        padding-top: 0 !important;

        .price-cents {
            font-size: 11px;
            position: relative;
            top: -5px;
        }
    }
}

body.archive .add_to_cart_button {
    display: none;
}


/* ----- Parent Category Pages -------------------- */

/* IDs for categories: Occasions, Flowers & Plants, Sympathy */
body {
    &.term-16,
    &.term-89,
    &.term-18 {
        .woocommerce-products-header {
            padding-bottom: 0;
        }

        .page-title {
            text-align: left;
            padding-bottom: 0;
        }

        .products {
            display: grid;
            grid-template-columns: repeat(3, 1fr);

            @media screen and (max-width: 768px) {
                grid-template-columns: repeat(2, 1fr);
            }

            @media screen and (max-width: 500px) {
                grid-template-columns: 1fr;
            }

            .count {
                display: none;
            }

            .product img {
                max-height: 320px;
                width: auto;

                @media screen and (max-width: 992px) {
                    max-height: 220px;
                }
            }
        }
    }
} /* //end parent category pages */


/* ----- Cart -------------------- */
body.page-id-11 {

    --section-border: 1px solid #DDD;
    --section-border-radius: 3px;
    --section-padding: 15px;

    /* --- Page Setup --- */
    .hentry.type-page .entry-header {
        padding-bottom: 0;

        .entry-title {
            grid-column: 1 / span 2;
            margin: 0;
            color: #333;
            font-size: 25px;
            font-weight: 500;
            font-family: 'Quicksand', sans-serif;
            text-align: left;
        }
    }

    th, td { padding: 5px 10px; }

    .edit-link { display: none; }

    .wc-empty-cart-message .cart-empty {
        margin-bottom: 0;
    }

    .wc-empty-cart-message {
        grid-column: 1 / span 2;
    }

    /* --- Cart with Products --- */
    .entry-content .woocommerce {

        /* setup */
        display: grid;
        grid-template-columns: 2fr 1fr;
        grid-gap: 20px;
        width: 100%;

        /* notices */
        .woocommerce-notices-wrapper {
            grid-column: 1 / span 2;
        }

        /* shared layout styling */
        .woocommerce-cart-form,
        .cart-collaterals .cart_totals {
            border: var(--section-border);
            border-radius: var(--section-border-radius);
            padding: var(--section-padding);
        }

        /* cart form */
        .woocommerce-cart-form {
            margin-bottom: 0;

            h3 {
                margin-top: 50px;
                margin-bottom: 30px;
            }

            /* refactored my addon grid below to flatten */
        }

        .wc-addon-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
        }

        .wc-addon-grid > div {
            width: 100%;
        }

        .wc-addon-grid .addon-product {
            border: none !important;

            .addon-add-variable,
            .addon-add-to-cart {
                width: 100%;
                padding: 7px 10px;
                border-radius: 5px;
                margin-top: 5px;
            }
        }

        /* cart collaterals */
        .cart-collaterals .cart_totals {
            float: none;
            width: 100%;

            .wc-proceed-to-checkout {
                margin-bottom: 0;

                a {
                    background: var(--theme-red) !important;
                    font-size: 16px !important;
                    font-weight: normal;
                    border-radius: 5px;
                    margin-bottom: 0;
                }
            }
        }
    }

    /* --- Media Queries --- */
    @media screen and (max-width: 850px) {

        .entry-content .woocommerce {
            grid-template-columns: 1fr;

            .woocommerce-notices-wrapper,
            .woocommerce-cart-form,
            .wc-empty-cart-message,
            .cart-collaterals {
                grid-column: 1;
            }
        }
    }

    @media screen and (max-width: 768px) {

        .coupon {
            border-bottom: none !important;
        }

        .entry-content .woocommerce .wc-addon-grid {
            grid-template-columns: repeat(3, 1fr);
        }
    }

    @media screen and (max-width: 500px) {
        .entry-content .woocommerce .wc-addon-grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

} /* //end Cart */

/* ----- Checkout -------------------- */
body.page-id-12:is(#fake-id, *) {

    .entry-header {
        padding-bottom: 30px;
    }

    .col2-set .col-1,
    .col2-set .col-2 {
        width: 100%;
    }

    #place_order {
        background: var(--theme-primary-color);
    }

} /* --- //end Checkout --- */
