.store-logo-header {
    display: block;
    max-width: 168px;
    max-height: 58px;
    object-fit: contain
}

.store-logo-footer {
    display: block;
    max-width: 178px;
    max-height: 54px;
    object-fit: contain
}

.store-information-body {
    min-height: 48px;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    line-height: 1.7
}

.footer-store-description {
    margin: 13px 0;
    color: var(--store-muted);
    font-size: 1.15rem;
    line-height: 1.7;
    overflow-wrap: anywhere
}

    .footer-store-description h1, .footer-store-description h2, .footer-store-description h3, .footer-store-description h4 {
        margin: 0 0 7px;
        color: var(--store-forest);
        font-size: 1.25rem;
        line-height: 1.45;
        font-weight: 600
    }

    .footer-store-description p {
        margin: 0 0 9px;
        color: var(--store-muted);
        font-size: 1.15rem;
        line-height: 1.7
    }

        .footer-store-description p:last-child {
            margin-bottom: 0
        }

    .footer-store-description ul, .footer-store-description ol {
        margin: 6px 0;
        padding-left: 20px
    }

/* Responsive, image-first homepage banner carousel */
.intro-slider-container {
    width: 100%;
    max-width: 1540px;
    margin: 0 auto 4.5rem;
    padding: 1.6rem clamp(1.2rem,3vw,3.6rem) 0;
    background: transparent
}

    .intro-slider-container:before {
        display: none
    }

#bannerContainer {
    position: relative;
    overflow: hidden;
    border-radius: 26px;
    background: #edf2ee;
    box-shadow: 0 22px 56px rgba(27,57,49,.12);
    isolation: isolate
}

    #bannerContainer .swiper-wrapper {
        align-items: stretch
    }

    #bannerContainer .swiper-slide {
        height: auto
    }

    #bannerContainer .banner-link {
        display: block;
        color: inherit;
        text-decoration: none
    }

    #bannerContainer .banner-card {
        position: relative;
        display: flex;
        align-items: center;
        min-height: 0;
        height: clamp(260px,34vw,480px);
        overflow: hidden;
        border: 1px solid rgba(35,70,57,.08);
        border-radius: 26px;
        background: #f5f6f3;
        transition: box-shadow .25s ease,border-color .25s ease
    }

    #bannerContainer .banner-image {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: contain;
        object-position: center;
        background: #f5f6f3;
        transition: filter .3s ease,opacity .3s ease
    }

    #bannerContainer .banner-link:hover .banner-card {
        border-color: rgba(35,70,57,.18);
        box-shadow: 0 18px 46px rgba(27,57,49,.16)
    }

    #bannerContainer .banner-link:hover .banner-image {
        filter: saturate(1.035);
        opacity: .96
    }

    #bannerContainer .banner-copy {
        position: absolute;
        z-index: 1;
        left: clamp(2rem,7vw,7rem);
        top: 50%;
        max-width: min(42%,520px);
        transform: translateY(-50%);
        padding: 2.4rem 2.7rem;
        border: 1px solid rgba(255,255,255,.36);
        border-radius: 22px;
        background: rgba(19,49,43,.78);
        color: #fff;
        box-shadow: 0 16px 42px rgba(14,35,31,.2);
        backdrop-filter: blur(12px)
    }

        #bannerContainer .banner-copy h2 {
            margin: 0 0 1rem;
            color: #fff;
            font-size: clamp(2.3rem,4vw,5.2rem);
            font-weight: 700;
            letter-spacing: -.045em;
            line-height: 1.04
        }

        #bannerContainer .banner-copy p {
            margin: 0;
            color: rgba(255,255,255,.88);
            font-size: clamp(1.35rem,1.6vw,1.75rem);
            line-height: 1.55
        }

    #bannerContainer .banner-cta {
        display: inline-flex;
        align-items: center;
        gap: .8rem;
        margin-top: 1.8rem;
        padding: 1rem 1.45rem;
        border: 1px solid rgba(255,255,255,.48);
        border-radius: 999px;
        background: #fff;
        color: #173c35;
        font-size: 1.3rem;
        font-weight: 700;
        transition: transform .2s ease,box-shadow .2s ease
    }

    #bannerContainer .banner-link:hover .banner-cta {
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(0,0,0,.16)
    }

    #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
        width: 46px;
        height: 46px;
        border: 1px solid rgba(255,255,255,.76);
        border-radius: 50%;
        background: rgba(255,255,255,.88);
        color: #173c35;
        box-shadow: 0 6px 20px rgba(0,0,0,.13);
        backdrop-filter: blur(8px)
    }

        #bannerContainer .swiper-button-prev:after, #bannerContainer .swiper-button-next:after {
            font-size: 15px;
            font-weight: 800
        }

    #bannerContainer .swiper-pagination {
        bottom: 19px
    }

    #bannerContainer .swiper-pagination-bullet {
        width: 7px;
        height: 7px;
        background: #fff;
        opacity: .58;
        box-shadow: 0 1px 5px rgba(0,0,0,.35)
    }

    #bannerContainer .swiper-pagination-bullet-active {
        width: 22px;
        border-radius: 99px;
        background: #fff;
        opacity: 1
    }

.homepage-loader {
    max-width: 1540px;
    margin: 1.6rem auto 4.5rem;
    padding: 0 clamp(1.2rem,3vw,3.6rem)
}

    .homepage-loader .skeleton-image {
        height: clamp(260px,34vw,480px);
        border-radius: 26px
    }

#bannerContainer .banner-fallback {
    justify-content: space-between;
    padding: clamp(2.4rem,7vw,8rem);
    background: radial-gradient(ellipse at 78% 50%,rgba(155,181,137,.36),transparent 33%),linear-gradient(120deg,#f4f6f0,#e7efe8 58%,#e4eee6)
}

#bannerContainer .banner-fallback-copy {
    position: relative;
    z-index: 1;
    max-width: 600px
}

#bannerContainer .hero-eyebrow {
    color: #6a815b;
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: .18em
}

#bannerContainer .banner-fallback-copy h2 {
    margin: 1.6rem 0 1rem;
    color: #173c35;
    font-size: clamp(3.5rem,6vw,7.2rem);
    font-weight: 700;
    letter-spacing: -.06em;
    line-height: .98
}

    #bannerContainer .banner-fallback-copy h2 em {
        color: #789267;
        font-style: normal
    }

#bannerContainer .banner-fallback-copy p {
    max-width: 450px;
    color: #56685f;
    font-size: clamp(1.4rem,1.8vw,1.8rem);
    line-height: 1.6
}

#bannerContainer .hero-cta {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    margin-top: 1rem;
    padding: 1.25rem 1.8rem;
    border-radius: 999px;
    background: #173c35;
    color: white;
    font-weight: 700
}

#bannerContainer .hero-note {
    margin-top: 1.8rem;
    color: #607268;
    font-size: 1.2rem
}

#bannerContainer .hero-art {
    position: absolute;
    right: 9%;
    top: 50%;
    width: min(35vw,390px);
    height: min(35vw,390px);
    transform: translateY(-50%)
}

#bannerContainer .hero-art-orbit {
    position: absolute;
    inset: 3%;
    border: 1px solid rgba(76,111,86,.2);
    border-radius: 50%;
    box-shadow: 0 0 0 28px rgba(255,255,255,.22),0 0 0 56px rgba(255,255,255,.16)
}

#bannerContainer .hero-art-tile {
    position: absolute;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 25px;
    background: rgba(255,255,255,.8);
    color: #315a49;
    box-shadow: 0 18px 48px rgba(43,75,56,.14);
    backdrop-filter: blur(10px)
}

#bannerContainer .hero-art-main {
    inset: 19% 16%;
    gap: 1rem;
    align-content: center;
    transform: rotate(-5deg);
    font-size: 4rem
}

    #bannerContainer .hero-art-main span {
        font-size: 1rem;
        font-weight: 700;
        letter-spacing: .15em;
        text-align: center;
        line-height: 1.6
    }

#bannerContainer .hero-art-top {
    right: 5%;
    top: 5%;
    width: 24%;
    height: 24%;
    font-size: 3rem;
    transform: rotate(9deg)
}

#bannerContainer .hero-art-bottom {
    left: 1%;
    bottom: 7%;
    width: 27%;
    height: 27%;
    font-size: 3.2rem;
    transform: rotate(-10deg)
}

#bannerContainer .hero-art-sparkle {
    position: absolute;
    color: #b69958;
    font-size: 2.7rem
}

#bannerContainer .sparkle-one {
    top: 16%;
    left: 5%
}

#bannerContainer .sparkle-two {
    right: 7%;
    bottom: 15%;
    font-size: 1.8rem
}

@media(max-width:767px) {
    .intro-slider-container {
        margin-bottom: 3.2rem;
        padding: 1rem 1rem 0
    }

    #bannerContainer, #bannerContainer .banner-card {
        border-radius: 18px
    }

        #bannerContainer .banner-card {
            height: clamp(190px,50vw,300px);
            min-height: 0;
            align-items: flex-end
        }

        #bannerContainer .banner-image {
            object-position: center
        }

        #bannerContainer .banner-copy {
            left: 1.2rem;
            right: 1.2rem;
            top: auto;
            bottom: 1.2rem;
            max-width: none;
            transform: none;
            padding: 1.5rem;
            border-radius: 16px
        }

            #bannerContainer .banner-copy h2 {
                font-size: 2.6rem
            }

            #bannerContainer .banner-copy p {
                font-size: 1.35rem
            }

        #bannerContainer .banner-cta {
            margin-top: 1.1rem;
            padding: .85rem 1.15rem
        }

        #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
            width: 34px;
            height: 34px
        }

        #bannerContainer .swiper-button-prev {
            left: 10px
        }

        #bannerContainer .swiper-button-next {
            right: 10px
        }

        #bannerContainer .banner-fallback {
            height: clamp(300px,85vw,420px);
            align-items: flex-start;
            padding: 2.8rem 2rem
        }

        #bannerContainer .banner-fallback-copy {
            max-width: 100%
        }

            #bannerContainer .banner-fallback-copy h2 {
                font-size: 4rem
            }

        #bannerContainer .hero-art {
            right: 5%;
            top: auto;
            bottom: -12%;
            width: 58vw;
            height: 58vw;
            transform: none;
            opacity: .72
        }

    .homepage-loader {
        margin: 1rem auto 3.2rem;
        padding: 0 1rem
    }

        .homepage-loader .skeleton-image {
            height: clamp(190px,50vw,300px);
            border-radius: 18px
        }
}

@media(max-width:767px) {
    #bannerContainer .owl-nav {
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        display: flex;
        justify-content: space-between;
        transform: translateY(-50%);
        pointer-events: none
    }

        #bannerContainer .owl-nav button {
            display: grid;
            width: 34px;
            height: 34px;
            margin: 0 10px;
            place-items: center;
            border: 1px solid rgba(23,60,53,.12);
            border-radius: 50%;
            background: #fff;
            color: #173c35;
            box-shadow: 0 5px 16px rgba(20,42,36,.14);
            pointer-events: auto
        }

    #bannerContainer .owl-dots {
        position: absolute;
        bottom: 8px;
        left: 0;
        right: 0
    }
}

@media(prefers-reduced-motion:reduce) {
    #bannerContainer .banner-image, #bannerContainer .banner-card, #bannerContainer .banner-cta, #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
        transition: none
    }
}

#bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
    display: grid;
    top: 50%;
    width: 42px;
    height: 42px;
    margin-top: 0;
    place-items: center;
    border: 1px solid rgba(23,60,53,.12);
    border-radius: 50%;
    background: #fff;
    color: #173c35;
    box-shadow: 0 5px 16px rgba(20,42,36,.14);
    transition: transform .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease
}

#bannerContainer .swiper-button-prev {
    left: 18px;
    transform: translateY(-50%)
}

#bannerContainer .swiper-button-next {
    right: 18px;
    transform: translateY(-50%)
}

    #bannerContainer .swiper-button-prev:after, #bannerContainer .swiper-button-next:after {
        display: none
    }

    #bannerContainer .swiper-button-prev i, #bannerContainer .swiper-button-next i {
        font-size: 2.2rem;
        line-height: 1
    }

    #bannerContainer .swiper-button-prev:hover, #bannerContainer .swiper-button-next:hover {
        transform: translateY(-50%) scale(1.06);
        background: #173c35;
        color: #fff;
        box-shadow: 0 8px 22px rgba(20,42,36,.22)
    }

    #bannerContainer .swiper-button-prev:focus-visible, #bannerContainer .swiper-button-next:focus-visible {
        outline: 3px solid #89a879;
        outline-offset: 3px
    }

#bannerContainer {
    background: #f5f6f3 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: 0 18px 42px rgba(27,57,49,.1) !important
}

    #bannerContainer:focus, #bannerContainer:focus-within {
        outline: 0 !important
    }

    #bannerContainer .banner-card {
        background: #f5f6f3 !important;
        border: 1px solid rgba(35,70,57,.08) !important;
        box-shadow: none !important
    }

    #bannerContainer .banner-link:hover, #bannerContainer .banner-link:focus, #bannerContainer .banner-link:active {
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
        outline: 0 !important;
        color: inherit !important
    }

        #bannerContainer .banner-link:hover .banner-card, #bannerContainer .banner-link:focus .banner-card, #bannerContainer .banner-link:active .banner-card {
            background: #f5f6f3 !important;
            border-color: rgba(35,70,57,.08) !important;
            box-shadow: none !important;
            transform: none !important
        }

        #bannerContainer .banner-link:hover .banner-image, #bannerContainer .banner-link:focus .banner-image, #bannerContainer .banner-link:active .banner-image {
            filter: none !important;
            opacity: 1 !important;
            transform: none !important
        }

    #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
        appearance: none;
        -webkit-appearance: none;
        padding: 0;
        font-size: 0;
        line-height: 1
    }

        #bannerContainer .swiper-button-prev:before, #bannerContainer .swiper-button-prev:after, #bannerContainer .swiper-button-next:before, #bannerContainer .swiper-button-next:after {
            content: none !important;
            display: none !important
        }

    #bannerContainer .swiper-navigation-icon {
        display: block !important;
        width: 11px;
        height: 20px;
        color: currentColor
    }

    #bannerContainer .swiper-button-prev:hover, #bannerContainer .swiper-button-next:hover {
        background: #fff !important;
        color: #173c35 !important;
        box-shadow: 0 5px 16px rgba(20,42,36,.14) !important
    }

    #bannerContainer .banner-card {
        width: 100%;
        height: auto !important;
        min-height: 0 !important;
        aspect-ratio: 1920 / 650
    }

    #bannerContainer .banner-image {
        object-fit: cover !important
    }

@media(max-width:767px) {
    #bannerContainer .banner-card {
        height: auto !important;
        aspect-ratio: 1920 / 650
    }
}

#bannerContainer .swiper-button-disabled {
    opacity: 0;
    pointer-events: none
}

#bannerContainer {
    --swiper-theme-color: #173c35;
    --swiper-navigation-color: #173c35;
    border: 1px solid rgba(35,70,57,.08);
    outline: 0;
    background: #f5f6f3;
    box-shadow: 0 18px 42px rgba(27,57,49,.1)
}

    #bannerContainer .banner-link, #bannerContainer .banner-link:hover, #bannerContainer .banner-link:active {
        outline: 0 !important;
        color: inherit;
        text-decoration: none
    }

        #bannerContainer .banner-link:focus-visible .banner-card {
            outline: 3px solid rgba(23,60,53,.72);
            outline-offset: 3px
        }

        #bannerContainer .banner-link:hover .banner-card {
            border-color: rgba(35,70,57,.08) !important;
            box-shadow: none !important;
            transition: none !important
        }

        #bannerContainer .banner-link:hover .banner-image {
            filter: none !important;
            opacity: 1 !important;
            transform: none !important
        }

        #bannerContainer .banner-link:hover .banner-cta {
            transform: none !important;
            box-shadow: none !important
        }

    #bannerContainer .banner-card, #bannerContainer .banner-image, #bannerContainer .banner-cta {
        transition: none !important
    }

    #bannerContainer .swiper-button-prev:after, #bannerContainer .swiper-button-next:after {
        content: none !important;
        display: none !important
    }

    #bannerContainer .swiper-button-prev:before, #bannerContainer .swiper-button-next:before {
        content: "";
        display: block;
        width: 9px;
        height: 9px;
        border: solid currentColor;
        border-width: 0 0 2px 2px
    }

    #bannerContainer .swiper-button-prev:before {
        margin-left: 4px;
        transform: rotate(45deg)
    }

    #bannerContainer .swiper-button-next:before {
        margin-right: 4px;
        border-width: 2px 2px 0 0;
        transform: rotate(45deg)
    }

    #bannerContainer .swiper-button-prev:hover, #bannerContainer .swiper-button-next:hover {
        background: #fff;
        color: #173c35;
        box-shadow: 0 5px 16px rgba(20,42,36,.14);
        transform: translateY(-50%)
    }

    #bannerContainer .swiper-button-prev:focus-visible, #bannerContainer .swiper-button-next:focus-visible {
        outline: 3px solid #89a879;
        outline-offset: 3px
    }

@media(max-width:767px) {
    #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
        width: 34px;
        height: 34px
    }

    #bannerContainer .swiper-button-prev {
        left: 10px
    }

    #bannerContainer .swiper-button-next {
        right: 10px
    }
}

@media(max-width:767px) {
    #bannerContainer .owl-nav {
        position: absolute;
        top: 50%;
        left: 0;
        right: 0;
        display: flex;
        justify-content: space-between;
        transform: translateY(-50%);
        pointer-events: none
    }

        #bannerContainer .owl-nav button {
            display: grid;
            width: 34px;
            height: 34px;
            margin: 0 10px;
            place-items: center;
            border: 1px solid rgba(23,60,53,.12);
            border-radius: 50%;
            background: #fff;
            color: #173c35;
            box-shadow: 0 5px 16px rgba(20,42,36,.14);
            pointer-events: auto
        }

    #bannerContainer .owl-dots {
        position: absolute;
        bottom: 8px;
        left: 0;
        right: 0
    }
}

@media(prefers-reduced-motion:reduce) {
    #bannerContainer .banner-image, #bannerContainer .banner-card, #bannerContainer .banner-cta, #bannerContainer .swiper-button-prev, #bannerContainer .swiper-button-next {
        transition: none
    }
}

#bannerContainer .banner-image {
    object-fit: contain !important;
}
