/*
Theme Name: Lustre Bliss Storefront
Description: Lustre Bliss storefront presentation built on the free WooCommerce Storefront theme.
Author: Lustre Bliss project
Version: 1.0.0
Template: storefront
Text Domain: lustre-bliss-storefront
*/

:root {
    --lb-ink: #252321;
    --lb-muted: #716d68;
    --lb-paper: #fffefa;
    --lb-soft: #f5f1eb;
    --lb-line: #e9e3db;
    --lb-accent: #a34d40;
    --lb-radius: 1rem;
    --lb-content-width: 82rem;
}

body {
    color: var(--lb-ink);
    background: var(--lb-paper);
}

.lb-announcement {
    padding: 0.55rem 1rem;
    color: var(--lb-ink);
    background: var(--lb-soft);
    font-size: 0.8125rem;
    line-height: 1.4;
    text-align: center;
}

.lb-announcement p {
    margin: 0;
}

.lb-home {
    max-width: var(--lb-content-width);
    margin-inline: auto;
    padding: 0 clamp(1rem, 3vw, 2rem) 4rem;
}

.lb-hero {
    position: relative;
    display: flex;
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    min-height: 100vh;
    min-height: 100svh;
    align-items: center;
    overflow: hidden;
    border-radius: 0;
    background: var(--lb-soft);
}

.lb-hero::before,
.lb-promo-slide::before {
    position: absolute;
    z-index: 1;
    background: linear-gradient(90deg, rgb(21 17 15 / 82%) 0%, rgb(21 17 15 / 64%) 42%, rgb(21 17 15 / 18%) 76%, transparent 100%);
    content: '';
    inset: 0;
    pointer-events: none;
}

.lb-hero__copy {
    position: relative;
    z-index: 2;
    display: flex;
    min-height: inherit;
    max-width: 42rem;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 6vw, 5rem);
    color: #fff;
}

.lb-hero__eyebrow,
.lb-section__eyebrow {
    margin: 0 0 0.75rem;
    color: var(--lb-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.lb-hero h1 {
    max-width: 11ch;
    margin: 0 0 1rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.5vw, 5.25rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.lb-hero__description {
    max-width: 34rem;
    margin: 0 0 1.5rem;
    color: rgb(255 255 255 / 92%);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.65;
}

.lb-hero .button,
.lb-promo-slide .button {
    align-self: flex-start;
}

.lb-hero__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
    background-color: #e6d8cc;
    background-image:
        radial-gradient(ellipse at 58% 37%, rgb(255 255 255 / 38%) 0 18%, transparent 18.5%),
        radial-gradient(ellipse at 47% 84%, rgb(163 77 64 / 13%) 0 30%, transparent 30.5%),
        linear-gradient(145deg, #eee2d7 4%, #dfcbbc 52%, #e9dace 100%);
    background-position: center;
    background-size: cover;
}

.lb-promo-slider {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    overflow: hidden;
    border-radius: 0;
    background: var(--lb-soft);
}

.lb-promo-slide {
    position: relative;
    display: flex;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    align-items: center;
    overflow: hidden;
}

.lb-promo-slide[hidden] {
    display: none;
}

.lb-promo-slide__copy {
    position: relative;
    z-index: 2;
    display: flex;
    height: 100%;
    min-height: 0;
    box-sizing: border-box;
    max-width: 42rem;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 6vw, 5rem);
    color: #fff;
}

.lb-promo-slide h1 {
    max-width: 11ch;
    margin: 0 0 1rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.5vw, 5.25rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.98;
}

.lb-promo-slide p {
    max-width: 34rem;
    margin: 0 0 1.5rem;
    color: rgb(255 255 255 / 92%);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.65;
}

.lb-promo-slide__image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    min-height: 100%;
}

.lb-promo-slide__image img,
.lb-promo-slide__image video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
}

.lb-promo-slide__image .lb-promo-slide__poster {
    visibility: hidden;
    opacity: 0;
}

.lb-promo-slide__image.is-reduced-motion .lb-promo-slide__poster {
    z-index: 1;
    visibility: visible;
    opacity: 1;
}

.lb-promo-slide__image.is-reduced-motion video {
    visibility: hidden;
}

.lb-promo-slide__image video {
    background: #181614;
}

.lb-promo-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.25rem 0;
    background: var(--lb-paper);
}

.lb-promo-slider__dots {
    display: flex;
    align-items: center;
    gap: 0.125rem;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
}

.lb-promo-slider__dots button {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.lb-promo-slider__dots button span {
    width: 0.625rem;
    height: 0.625rem;
    border: 1px solid var(--lb-ink);
    border-radius: 50%;
    background: transparent;
}

.lb-promo-slider__dots button[aria-current="true"] span {
    border-color: var(--lb-accent);
    background: var(--lb-accent);
}

.lb-promo-slider__dots button:focus-visible {
    outline: 2px solid var(--lb-accent);
    outline-offset: -0.25rem;
}

.lb-promo-slider__controls p {
    margin: 0 0.35rem;
    color: var(--lb-muted);
    font-size: 0.8125rem;
}

.lb-promo-slider__controls button {
    min-height: 2.5rem;
    padding: 0.5rem 0.8rem;
    border: 1px solid transparent;
    border-radius: 999px;
    color: var(--lb-ink);
    background: var(--lb-soft);
    cursor: pointer;
}

.lb-promo-slider__controls button:hover {
    border-color: var(--lb-ink);
}

.lb-promo-slider__controls [data-lb-promo-toggle] {
    min-height: 2rem;
    padding: 0.35rem 0.75rem;
    border-color: var(--lb-line);
    background: var(--lb-paper);
    font-size: 0.8125rem;
}

.lb-button,
.lb-hero .button {
    min-height: 2.9rem;
    padding: 0.8rem 1.25rem;
    border: 1px solid var(--lb-ink);
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.2;
}

.lb-button:hover,
.lb-hero .button:hover {
    color: var(--lb-ink);
    background: transparent;
}

.lb-section {
    margin-top: clamp(3.25rem, 7vw, 6rem);
}

.lb-section__heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.5rem;
}

.lb-section__heading h2 {
    margin: 0;
    color: var(--lb-ink);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 500;
    letter-spacing: -0.04em;
    line-height: 1.1;
}

.lb-section__link {
    flex: 0 0 auto;
    color: var(--lb-ink);
    font-size: 0.875rem;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.lb-categories {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.lb-catalog-navigation {
    display: grid;
    gap: 1rem;
    margin: 0 0 1.5rem;
    padding: 1rem;
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
}

.lb-catalog-navigation__group h2 {
    margin: 0 0 0.65rem;
    color: var(--lb-muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.lb-catalog-navigation__list,
.lb-catalog-navigation__children {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lb-catalog-navigation__item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem;
    max-width: 100%;
}

.lb-catalog-navigation__item > a,
.lb-catalog-navigation__children a {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    padding: 0.5rem 0.8rem;
    border: 1px solid var(--lb-line);
    border-radius: 999px;
    color: var(--lb-ink);
    background: var(--lb-paper);
    font-size: 0.875rem;
    text-decoration: none;
}

.lb-catalog-navigation__item > a:hover,
.lb-catalog-navigation__item > a[aria-current="page"],
.lb-catalog-navigation__children a:hover,
.lb-catalog-navigation__children a[aria-current="page"] {
    border-color: var(--lb-ink);
    background: var(--lb-soft);
}

.lb-catalog-navigation__item details {
    max-width: 100%;
}

.lb-catalog-navigation__item summary {
    min-height: 2.5rem;
    padding: 0.55rem 0.35rem;
    color: var(--lb-muted);
    font-size: 0.8125rem;
    cursor: pointer;
}

.lb-catalog-navigation__children {
    margin-top: 0.35rem;
    padding-left: 0.5rem;
}

.lb-catalog-navigation a:focus-visible,
.lb-catalog-navigation summary:focus-visible {
    outline: 2px solid var(--lb-ink);
    outline-offset: 3px;
}

body.lb-custom-catalog-filter-panel .category-filter-row .filter-button {
    display: none;
}

.lb-catalog-filter-control {
    margin-block: 1rem;
}

.lb-catalog-filter-control__open {
    display: inline-flex;
    min-height: 2.75rem;
    align-items: center;
    gap: 0.65rem;
    padding: 0.65rem 1rem;
    border: 1px solid var(--lb-ink);
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
    font: inherit;
    font-size: 0.9rem;
    cursor: pointer;
}

.lb-catalog-filter-control__open span {
    color: inherit;
    font-size: 0.75rem;
}

.lb-catalog-filter-control__open:focus-visible,
.lb-catalog-filter-dialog button:focus-visible,
.lb-catalog-filter-dialog a:focus-visible {
    outline: 2px solid var(--lb-accent);
    outline-offset: 3px;
}

.lb-catalog-filter-dialog {
    width: min(92vw, 36rem);
    max-width: none;
    max-height: min(88vh, 52rem);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--lb-line);
    border-radius: calc(var(--lb-radius) * 1.25);
    color: var(--lb-ink);
    background: var(--lb-paper);
    box-shadow: 0 1.25rem 4rem rgb(0 0 0 / 20%);
}

.lb-catalog-filter-dialog::backdrop {
    background: rgb(27 24 22 / 52%);
}

.lb-catalog-filter-dialog__header,
.lb-catalog-filter-dialog__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid var(--lb-line);
}

.lb-catalog-filter-dialog__header h2 {
    margin: 0;
    font-size: 1.25rem;
}

.lb-catalog-filter-dialog__close {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    border: 1px solid var(--lb-line);
    border-radius: 50%;
    color: var(--lb-ink);
    background: var(--lb-paper);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
}

.lb-catalog-filter-dialog__content {
    max-height: calc(min(88vh, 52rem) - 9rem);
    padding: 1rem 1.25rem;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.lb-catalog-filter-widget + .lb-catalog-filter-widget {
    margin-top: 1.5rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--lb-line);
}

.lb-catalog-filter-widget__title {
    display: block;
    margin: 0 0 0.75rem;
    color: var(--lb-ink);
    font-size: 1rem;
    font-weight: 600;
}

/* Flatsome removes WooCommerce's general stylesheet, so keep the native price
 * widget's jQuery UI range control visible and keyboard-operable here. */
.lb-catalog-filter-widget .price_slider {
    position: relative;
    height: 0.35rem;
    margin: 1.25rem 0.65rem 1.5rem;
    border-radius: 999px;
    background: #e8e5e2;
}

.lb-catalog-filter-widget .price_slider .ui-slider-range {
    position: absolute;
    height: 100%;
    border-radius: inherit;
    background: var(--lb-accent);
}

.lb-catalog-filter-widget .price_slider .ui-slider-handle {
    position: absolute;
    top: 50%;
    width: 1.25rem;
    height: 1.25rem;
    transform: translate(-50%, -50%);
    border: 2px solid var(--lb-ink);
    border-radius: 50%;
    background: var(--lb-paper);
    cursor: grab;
}

.lb-catalog-filter-widget .price_slider .ui-slider-handle:active {
    cursor: grabbing;
}

.lb-catalog-filter-widget .price_slider .ui-slider-handle:focus-visible {
    outline: 2px solid var(--lb-accent);
    outline-offset: 3px;
}

.lb-catalog-filter__terms {
    display: grid;
    gap: 0.25rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lb-catalog-filter__term--child {
    padding-left: 1rem;
}

.lb-catalog-filter__terms a {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    color: var(--lb-ink);
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.lb-catalog-filter__terms a[aria-current="page"] {
    font-weight: 700;
    text-decoration-thickness: 2px;
}

.lb-catalog-filter-dialog__footer {
    border-top: 1px solid var(--lb-line);
    border-bottom: 0;
}

.lb-catalog-filter-dialog__footer a {
    color: var(--lb-ink);
    text-underline-offset: 0.2em;
}

/* Product detail presentation uses WooCommerce's native gallery, product
 * descriptions, variation form, price, stock, quantity, and cart controls. */
body.single-product .product-gallery {
    overflow: hidden;
    border-radius: var(--lb-radius);
    background: var(--lb-soft);
}

body.single-product .product-gallery .woocommerce-product-gallery__image img {
    object-fit: contain;
}

body.single-product .product-info {
    padding: clamp(1rem, 2.5vw, 2rem);
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    box-shadow: 0 0.25rem 1rem rgb(37 35 33 / 6%);
}

body.single-product .product-info .product_title {
    margin-bottom: 0.75rem;
    font-size: clamp(1.65rem, 3vw, 2.5rem);
    line-height: 1.15;
}

body.single-product .product-info .price {
    color: var(--lb-ink);
    font-size: 1.5rem;
    font-weight: 700;
}

body.single-product .product-info .woocommerce-product-details__short-description {
    color: var(--lb-muted);
    line-height: 1.65;
}

body.single-product .lb-purchase-notice {
    margin: 0.75rem 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.75rem;
    color: var(--lb-muted);
    background: var(--lb-soft);
    font-size: 0.9rem;
    line-height: 1.45;
}

body.single-product .product-info .single_add_to_cart_button {
    min-height: 3rem;
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
}

body.single-product .product-info :is(a, button, input, select):focus-visible {
    outline: 2px solid var(--lb-accent);
    outline-offset: 3px;
}

body.single-product .variations_form .variations {
    border-collapse: separate;
    border-spacing: 0 0.75rem;
}

body.single-product .variations_form .variations th.label {
    padding: 0.4rem 0.75rem 0.4rem 0;
    color: var(--lb-ink);
    text-align: left;
    vertical-align: middle;
}

body.single-product .variations_form .variations td.value {
    padding: 0.4rem 0;
}

body.single-product .variations_form .variations select {
    width: 100%;
    min-height: 3rem;
    padding: 0.65rem 2.5rem 0.65rem 0.875rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.625rem;
    color: var(--lb-ink);
    background: var(--lb-paper);
    font: inherit;
}

body.single-product .variations_form .reset_variations {
    display: inline-flex;
    min-height: 2.5rem;
    align-items: center;
    color: var(--lb-ink);
    text-underline-offset: 0.2em;
}

body.single-product .single_variation_wrap {
    margin-top: 1rem;
}

body.single-product .woocommerce-variation-availability .stock {
    margin: 0.5rem 0 1rem;
    font-weight: 600;
}

body.single-product .product_meta .sku_wrapper {
    display: block;
    margin-block: 0.75rem;
    color: var(--lb-muted);
}

body.single-product .product_meta .sku {
    color: var(--lb-ink);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

body.single-product .woocommerce-tabs {
    margin-top: clamp(2rem, 5vw, 4rem);
}

body.single-product .woocommerce-tabs .panel {
    color: var(--lb-ink);
    line-height: 1.7;
}

/* Keep WooCommerce reviews native while giving the empty state, customer
 * entries and moderation-aware submission form a clear shared layout. */
body.single-product #reviews.woocommerce-Reviews {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(18rem, 0.9fr);
    gap: clamp(1.25rem, 3vw, 2rem);
    align-items: start;
}

body.single-product #reviews > #comments {
    min-width: 0;
}

body.single-product #reviews .woocommerce-Reviews-title {
    margin: 0 0 1rem;
    color: var(--lb-ink);
    font-size: clamp(1.25rem, 2.4vw, 1.65rem);
    line-height: 1.25;
}

body.single-product #reviews .woocommerce-noreviews,
body.single-product #reviews .woocommerce-verification-required {
    margin: 0;
    padding: 1rem 1.125rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.75rem;
    color: var(--lb-muted);
    background: var(--lb-soft);
}

body.single-product #reviews .commentlist {
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.single-product #reviews .commentlist > li {
    margin: 0;
    padding: 1rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.75rem;
    background: var(--lb-paper);
}

body.single-product #reviews .comment_container {
    display: grid;
    grid-template-columns: 2.75rem minmax(0, 1fr);
    gap: 0.875rem;
    align-items: start;
}

body.single-product #reviews .comment_container > img.avatar {
    float: none;
    width: 2.75rem;
    height: 2.75rem;
    margin: 0;
    border: 0;
    border-radius: 50%;
}

body.single-product #reviews .comment-text {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

body.single-product #reviews .woocommerce-review__author {
    color: var(--lb-ink);
    font-weight: 700;
}

body.single-product #reviews .woocommerce-review__published-date,
body.single-product #reviews .woocommerce-review__dash {
    color: var(--lb-muted);
    font-size: 0.875rem;
}

body.single-product #reviews .star-rating {
    color: var(--lb-accent);
}

body.single-product #review_form_wrapper {
    min-width: 0;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    box-shadow: 0 0.25rem 1rem rgb(37 35 33 / 5%);
}

body.single-product #review_form_wrapper .review-form-inner.has-border {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.single-product #review_form #reply-title {
    display: block;
    margin: 0 0 1rem;
    color: var(--lb-ink);
    font-size: 1.125rem;
    font-weight: 700;
    line-height: 1.35;
}

body.single-product #review_form .comment-form-rating,
body.single-product #review_form .comment-form-comment,
body.single-product #review_form .comment-form-author,
body.single-product #review_form .comment-form-email {
    margin: 0 0 1rem;
}

body.single-product #review_form :is(label, .required) {
    color: var(--lb-ink);
    font-weight: 600;
}

body.single-product #review_form :is(input[type="text"], input[type="email"], select, textarea) {
    width: 100%;
    min-height: 3rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.625rem;
    color: var(--lb-ink);
    background: var(--lb-paper);
    font: inherit;
}

body.single-product #review_form textarea {
    min-height: 8rem;
    resize: vertical;
}

body.single-product #review_form .stars a {
    color: var(--lb-accent);
    text-decoration: none;
}

body.single-product #review_form .comment-form-rating p.stars {
    display: flex;
    flex-wrap: nowrap;
    gap: 0.15rem;
    white-space: nowrap;
}

body.single-product #review_form .comment-form-rating p.stars a {
    font-size: 0.75rem;
}

body.single-product #review_form :is(a, button, input, select, textarea):focus-visible {
    outline: 2px solid var(--lb-accent);
    outline-offset: 3px;
}

body.single-product #review_form .form-submit input[type="submit"] {
    min-height: 3rem;
    padding: 0.7rem 1.25rem;
    border: 0;
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

@media (max-width: 767px) {
    body.single-product #reviews.woocommerce-Reviews {
        grid-template-columns: minmax(0, 1fr);
    }
}

.lb-category {
    position: relative;
    display: flex;
    min-height: clamp(12rem, 21vw, 19rem);
    align-items: end;
    overflow: hidden;
    border-radius: var(--lb-radius);
    color: #fff;
    background: #ded3c8;
    isolation: isolate;
    text-decoration: none;
}

.lb-category::before {
    position: absolute;
    z-index: -1;
    background: linear-gradient(180deg, transparent 35%, rgb(23 20 18 / 70%) 100%);
    content: "";
    inset: 0;
}

.lb-category__image {
    position: absolute;
    z-index: -2;
    width: 100%;
    height: 100%;
    inset: 0;
    object-fit: cover;
    transition: transform 250ms ease;
}

.lb-category:hover .lb-category__image {
    transform: scale(1.035);
}

.lb-category__label {
    padding: 1.25rem;
    color: #fff;
    font-size: 1.25rem;
    font-weight: 600;
}

.lb-product-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1.25rem;
}

.lb-products .products {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.75rem, 1.5vw, 1.25rem);
    margin-bottom: 0;
}

.lb-home .lb-products .products::before,
.lb-home .lb-products .products::after {
    display: none;
}

.lb-home .lb-products .product-small {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
}

.lb-home .lb-products .product-small > .col-inner {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--lb-line);
    border-radius: 0.875rem;
    background: var(--lb-paper);
    box-shadow: 0 0.2rem 0.8rem rgb(37 35 33 / 5%);
}

.lb-home .lb-products .product-small .box-image {
    overflow: hidden;
    background: var(--lb-soft);
}

.lb-home .lb-products .product-small .box-image img {
    object-fit: contain;
}

.lb-home .lb-products .product-small .box-text {
    display: flex;
    min-height: 9rem;
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem;
}

.lb-home .lb-products .product-small .category {
    margin-bottom: 0.35rem;
    color: var(--lb-muted);
    font-size: 0.75rem;
}

.lb-home .lb-products .product-small .name a {
    color: var(--lb-ink);
    font-size: 0.95rem;
    line-height: 1.4;
}

.lb-home .lb-products .product-small .price {
    margin-top: auto;
    padding-top: 0.5rem;
    color: var(--lb-ink);
    font-size: 1rem;
    font-weight: 700;
}

.lb-home .lb-products .product-small .add-to-cart-button .button {
    min-height: 2.65rem;
    border: 1px solid var(--lb-ink);
    border-radius: 999px;
    color: var(--lb-ink);
    background: transparent;
    font-size: 0.8125rem;
}

.lb-home .lb-products .product-small .add-to-cart-button .button:hover {
    color: #fff;
    background: var(--lb-ink);
}

.lb-editorial {
    width: min(100% - 2rem, var(--lb-content-width));
    margin: 0 auto;
    padding-block: clamp(2.5rem, 7vw, 5.5rem) clamp(3.5rem, 8vw, 6rem);
}

.lb-editorial__article {
    max-width: 58rem;
    margin-inline: auto;
}

.lb-editorial__header {
    max-width: 48rem;
    margin: 0 auto clamp(1.75rem, 4vw, 3rem);
    padding-bottom: clamp(1.25rem, 3vw, 2rem);
    border-bottom: 1px solid var(--lb-line);
}

.lb-editorial h1 {
    max-width: 16ch;
    margin: 0;
    color: var(--lb-ink);
    font-size: clamp(2.4rem, 6vw, 4.5rem);
    font-weight: 500;
    letter-spacing: -0.05em;
    line-height: 1.02;
}

.lb-editorial__featured-image {
    max-width: 58rem;
    margin: 0 auto clamp(2rem, 5vw, 3.5rem);
}

.lb-editorial__image {
    display: block;
    width: 100%;
    max-height: 32rem;
    border-radius: var(--lb-radius);
    object-fit: cover;
}

.lb-editorial__content {
    max-width: 48rem;
    margin-inline: auto;
    color: var(--lb-muted);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.75;
    overflow-wrap: anywhere;
}

.lb-editorial__content > :first-child {
    margin-top: 0;
}

.lb-editorial__content > :last-child {
    margin-bottom: 0;
}

.lb-editorial__content h2,
.lb-editorial__content h3,
.lb-editorial__content h4 {
    margin: 2.25em 0 0.65em;
    color: var(--lb-ink);
    font-weight: 500;
    letter-spacing: -0.035em;
    line-height: 1.15;
}

.lb-editorial__content h2 {
    font-size: clamp(1.65rem, 3.5vw, 2.25rem);
}

.lb-editorial__content h3 {
    font-size: clamp(1.3rem, 2.5vw, 1.65rem);
}

.lb-editorial__content p,
.lb-editorial__content ul,
.lb-editorial__content ol,
.lb-editorial__content blockquote {
    margin-block: 0 1.35em;
}

.lb-editorial__content ul,
.lb-editorial__content ol {
    padding-inline-start: 1.4em;
}

.lb-editorial__content li + li {
    margin-top: 0.45em;
}

.lb-editorial__content a {
    color: var(--lb-accent);
    text-decoration: underline;
    text-decoration-thickness: 0.07em;
    text-underline-offset: 0.18em;
}

.lb-editorial__content a:hover {
    color: var(--lb-ink);
}

.lb-editorial__content img,
.lb-editorial__content video,
.lb-editorial__content iframe {
    max-width: 100%;
}

.lb-editorial__content figure {
    margin-inline: 0;
}

.lb-editorial__content figcaption {
    margin-top: 0.5rem;
    color: var(--lb-muted);
    font-size: 0.875rem;
}

.lb-editorial__content blockquote {
    padding: 1rem 1.25rem;
    border-inline-start: 3px solid var(--lb-accent);
    color: var(--lb-ink);
    background: var(--lb-soft);
}

.lb-editorial__content .wp-block-button__link {
    min-height: 2.9rem;
    padding: 0.8rem 1.25rem;
    border: 1px solid var(--lb-ink);
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
}

.lb-editorial__content .wp-block-button__link:hover {
    color: var(--lb-ink);
    background: transparent;
}

.lb-editorial__content .wp-block-details {
    padding: 1rem 0;
    border-bottom: 1px solid var(--lb-line);
}

.lb-editorial__content .wp-block-details summary {
    color: var(--lb-ink);
    font-weight: 600;
    cursor: pointer;
}

.lb-editorial__content .wp-block-table {
    max-width: 100%;
    overflow-x: auto;
}

.lb-contact-links {
    margin-block: 2rem;
    padding: clamp(1rem, 3vw, 1.5rem);
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    box-shadow: 0 0.25rem 1rem rgb(37 35 33 / 5%);
}

.lb-contact-links h2 {
    margin: 0 0 1rem;
    color: var(--lb-ink);
    font-size: clamp(1.25rem, 2.5vw, 1.6rem);
    line-height: 1.25;
}

.lb-contact-links__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: 0.75rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.lb-editorial__content .lb-contact-links__list li {
    min-width: 0;
    margin: 0;
}

.lb-editorial__content .lb-contact-links__list a {
    display: flex;
    min-height: 3.75rem;
    flex-direction: column;
    justify-content: center;
    gap: 0.2rem;
    padding: 0.75rem 0.875rem;
    border: 1px solid var(--lb-line);
    border-radius: 0.75rem;
    color: var(--lb-ink);
    background: var(--lb-paper);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.lb-editorial__content .lb-contact-links__list a:hover {
    border-color: var(--lb-accent);
    color: var(--lb-ink);
    background: var(--lb-soft);
}

.lb-faq {
    margin-block: clamp(2rem, 5vw, 4rem);
}

.lb-faq h2 {
    margin-block: 0 1.25rem;
}

.lb-faq__item {
    border-block-start: 1px solid var(--lb-color-border, #e6e0dc);
    padding-block: 1rem;
}

.lb-faq__item:last-child {
    border-block-end: 1px solid var(--lb-color-border, #e6e0dc);
}

.lb-faq__item summary {
    cursor: pointer;
    font-weight: 600;
}

.lb-faq__item p {
    margin-block: .75rem 0;
}

.lb-contact-links__label {
    color: var(--lb-muted);
    font-size: 0.8125rem;
    line-height: 1.3;
}

.lb-contact-links__value {
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.4;
}

/* Keep customer account content native to WooCommerce while giving its
 * login, recovery and order-history screens the same storefront rhythm. */
body.woocommerce-account #main > .page-title {
    color: var(--lb-ink);
    background: var(--lb-paper);
    text-transform: none;
}

body.woocommerce-account #main > .page-title .page-title-inner {
    width: min(100% - 2rem, 76rem);
    margin-inline: auto;
}

body.woocommerce-account #main > .page-wrapper > .container {
    max-width: 76rem;
    padding-block: clamp(2rem, 5vw, 4rem) clamp(3rem, 7vw, 5rem);
}

body.woocommerce-account .woocommerce {
    color: var(--lb-ink);
}

body.woocommerce-account .woocommerce h2,
body.woocommerce-account .woocommerce h3 {
    color: var(--lb-ink);
    font-weight: 600;
    letter-spacing: -0.025em;
}

body.woocommerce-account .woocommerce form.woocommerce-form-login,
body.woocommerce-account .woocommerce form.woocommerce-ResetPassword {
    max-width: 44rem;
    margin: 0 auto;
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    box-shadow: 0 0.25rem 1rem rgb(37 35 33 / 6%);
}

body.woocommerce-account .woocommerce form p:last-child {
    margin-bottom: 0;
}

body.woocommerce-account .woocommerce form label {
    color: var(--lb-ink);
    font-weight: 600;
}

body.woocommerce-account .woocommerce form input.input-text {
    min-height: 3rem;
    padding: 0.7rem 0.8rem;
    border: 1px solid #bdb6ad;
    border-radius: 0.5rem;
    color: var(--lb-ink);
    background: #fff;
    box-shadow: none;
}

body.woocommerce-account .woocommerce form input.input-text:focus-visible {
    border-color: var(--lb-ink);
    outline: 3px solid rgb(163 77 64 / 28%);
    outline-offset: 2px;
}

body.woocommerce-account .woocommerce form .button,
body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .button {
    min-height: 2.85rem;
    padding: 0.75rem 1.2rem;
    border: 1px solid var(--lb-ink);
    border-radius: 999px;
    color: #fff;
    background: var(--lb-ink);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.2;
}

body.woocommerce-account .woocommerce form .button:hover,
body.woocommerce-account .woocommerce .woocommerce-MyAccount-content .button:hover {
    color: var(--lb-ink);
    background: transparent;
}

body.woocommerce-account .woocommerce form :is(button, a, input[type="checkbox"]):focus-visible,
body.woocommerce-account .woocommerce-MyAccount-navigation a:focus-visible,
body.woocommerce-account .woocommerce-MyAccount-content a:focus-visible {
    outline: 3px solid var(--lb-accent);
    outline-offset: 3px;
}

body.woocommerce-account.logged-in .woocommerce {
    display: block;
}

body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
    min-width: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: 0.35rem;
    margin: 0;
    padding: 0.5rem;
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: flex;
    min-height: 2.75rem;
    align-items: center;
    padding: 0.65rem 0.8rem;
    border-radius: 0.6rem;
    color: var(--lb-ink);
    text-decoration: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: var(--lb-soft);
    font-weight: 600;
}

body.woocommerce-account .woocommerce-MyAccount-content {
    padding: clamp(1.25rem, 3vw, 2rem);
    border: 1px solid var(--lb-line);
    border-radius: var(--lb-radius);
    background: var(--lb-paper);
    box-shadow: 0 0.25rem 1rem rgb(37 35 33 / 6%);
    overflow-wrap: anywhere;
}

body.woocommerce-account .woocommerce-MyAccount-content p:first-child {
    margin-top: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    width: 100%;
    border-color: var(--lb-line);
    border-radius: 0.65rem;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table th,
body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
    padding: 0.75rem 0.6rem;
    border-color: var(--lb-line);
    vertical-align: middle;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
    border-top-color: var(--lb-accent);
    border-radius: 0.65rem;
    background: var(--lb-soft);
}

.lb-home a:focus-visible,
.lb-home button:focus-visible,
.lb-editorial a:focus-visible,
.lb-editorial summary:focus-visible {
    outline: 3px solid var(--lb-accent);
    outline-offset: 3px;
}

@media (max-width: 849px) {
    body.woocommerce-account.logged-in .woocommerce {
        display: block;
    }

    body.woocommerce-account.logged-in .woocommerce-MyAccount-navigation ul {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr));
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        overflow-x: auto;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
        min-width: 34rem;
    }

    .lb-hero {
        min-height: 100svh;
    }

    .lb-hero__copy {
        padding: clamp(2rem, 8vw, 3.5rem);
    }

    .lb-promo-slide {
        min-height: 100svh;
    }

    .lb-promo-slide__copy {
        padding: clamp(2rem, 8vw, 3.5rem);
    }

    .lb-hero__image {
        min-height: 100%;
    }

    .lb-categories {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lb-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lb-products .products {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 549px) {
    .lb-home {
        padding-inline: 1rem;
    }

    .lb-editorial {
        width: min(100% - 2rem, var(--lb-content-width));
        padding-block: 2.5rem 3.5rem;
    }

    .lb-hero {
        min-height: 100svh;
    }

    .lb-hero__copy {
        padding: 2rem 1.5rem;
    }

    .lb-promo-slide {
        min-height: 100svh;
    }

    .lb-promo-slide__copy {
        padding: 2rem 1.5rem;
    }

    .lb-promo-slide__image video {
        object-position: 45% center;
    }

    .lb-hero__image {
        min-height: 100%;
    }

    .lb-section__heading {
        align-items: start;
    }

    .lb-section__link {
        margin-top: 0.25rem;
    }

    .lb-categories {
        gap: 0.65rem;
    }

    .lb-category {
        min-height: 10.5rem;
        border-radius: 0.75rem;
    }

    .lb-category__label {
        padding: 0.9rem;
        font-size: 1rem;
    }

    .lb-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.75rem;
    }

    .lb-products .products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.65rem;
    }

    .lb-home .lb-products .product-small .box-text {
        min-height: 8.5rem;
        padding: 0.75rem;
    }

    .lb-catalog-filter-dialog {
        width: 100%;
        max-width: none;
        max-height: 88vh;
        max-height: 88dvh;
        margin: auto 0 0;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 1rem 1rem 0 0;
    }

    .lb-catalog-filter-dialog__content {
        max-height: calc(88vh - 9rem);
        max-height: calc(88dvh - 9rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

.header-nav .lb-wishlist-nav-icon {
    display: inline-block;
    width: 1.2em;
    height: 1.2em;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    vertical-align: -0.2em;
}

.header-search-form-wrapper .search-field:focus-visible {
    outline: 3px solid var(--lb-ink);
    outline-offset: 2px;
    border-color: var(--lb-ink);
    box-shadow: 0 0 0 1px var(--lb-paper);
}


/* Storefront parent theme layout adaptations. */
:root {
    --lb-ink: #252321;
    --lb-muted: #716d68;
    --lb-paper: #fffefa;
    --lb-soft: #f5f1eb;
    --lb-line: #e9e3db;
    --lb-accent: #a34d40;
    --lb-radius: 1rem;
    --lb-content-width: 82rem;
}

body,
button,
input,
textarea,
select {
    color: var(--lb-ink);
    font-family: Inter, "Helvetica Neue", Arial, sans-serif;
}

body { background: var(--lb-paper); }
a { color: #4f657d; }
a:hover { color: var(--lb-accent); }

#masthead.site-header {
    margin: 0;
    padding: 1.1rem clamp(1rem, 4vw, 3rem) 0;
    border: 0;
    background: #fff;
}
#masthead .col-full,
#site-navigation .col-full,
#content .col-full,
#colophon .col-full {
    max-width: var(--lb-content-width);
}
#masthead .site-branding { margin-bottom: 1rem; }
#masthead .site-title a {
    color: #43658e;
    font-size: clamp(1.6rem, 2.3vw, 2rem);
    font-weight: 650;
    letter-spacing: -0.04em;
    line-height: 1;
    text-transform: uppercase;
}
#masthead .site-description { color: var(--lb-muted); }
#masthead .site-search { margin-top: 0.6rem; }
#masthead .site-header-cart .cart-contents,
#site-navigation .main-navigation ul li a { color: var(--lb-ink); }
#site-navigation.main-navigation {
    clear: both;
    margin-inline: calc(-1 * clamp(1rem, 4vw, 3rem));
    padding-inline: clamp(1rem, 4vw, 3rem);
    border-top: 1px solid var(--lb-line);
    border-bottom: 0;
    background: #f4f4f4;
}
#site-navigation .main-navigation ul li a {
    padding-block: 0.85rem;
    font-size: 0.83rem;
    font-weight: 550;
    text-transform: uppercase;
}
#site-navigation .lb-wishlist-nav-icon {
    width: 1.2em;
    height: 1.2em;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    vertical-align: -0.2em;
}
#content { margin-top: 0; }
.lb-preview-banner {
    padding: 0.55rem 1rem;
    color: var(--lb-ink);
    background: var(--lb-soft);
    font-size: 0.8125rem;
    line-height: 1.4;
    text-align: center;
}
.site-footer { background: var(--lb-soft); }
.site-footer a { color: var(--lb-ink); }

.lb-home {
    max-width: var(--lb-content-width);
    margin-inline: auto;
    padding: 0 clamp(1rem, 3vw, 2rem) 4rem;
}
.lb-promo-slider {
    position: relative;
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    overflow: hidden;
    background: var(--lb-soft);
}
.lb-promo-slide {
    position: relative;
    display: flex;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    align-items: center;
    overflow: hidden;
}
.lb-promo-slide[hidden] { display: none; }
.lb-promo-slide::before {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg, rgb(21 17 15 / 76%) 0%, rgb(21 17 15 / 50%) 43%, rgb(21 17 15 / 12%) 78%, transparent 100%);
    content: "";
    pointer-events: none;
}
.lb-promo-slide__copy {
    position: relative;
    z-index: 2;
    display: flex;
    width: min(100%, 42rem);
    height: 100%;
    box-sizing: border-box;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 6vw, 5rem);
    color: #fff;
}
.lb-promo-slide h1 {
    max-width: 11ch;
    margin: 0 0 1rem;
    color: #fff;
    font-size: clamp(2.6rem, 5.5vw, 5.25rem);
    font-weight: 500;
    letter-spacing: -0.055em;
    line-height: 0.98;
}
.lb-promo-slide p {
    max-width: 34rem;
    margin: 0 0 1.5rem;
    color: rgb(255 255 255 / 92%);
    font-size: clamp(1rem, 1.5vw, 1.125rem);
    line-height: 1.65;
}
.lb-promo-slide__image { position: absolute; inset: 0; width: 100%; height: 100%; }
.lb-promo-slide__image img,
.lb-promo-slide__image video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.lb-promo-slide__image .lb-promo-slide__poster { visibility: hidden; opacity: 0; }
.lb-promo-slide__image.is-reduced-motion .lb-promo-slide__poster { z-index: 1; visibility: visible; opacity: 1; }
.lb-promo-slide__image.is-reduced-motion video { visibility: hidden; }
.lb-promo-slide__image video { background: #181614; }
.lb-promo-slider__controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.25rem 0;
    background: var(--lb-paper);
}
.lb-promo-slider__dots { display: flex; align-items: center; gap: 0.125rem; }
.lb-promo-slider__dots button {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}
.lb-promo-slider__dots button span { width: 0.625rem; height: 0.625rem; border: 1px solid var(--lb-ink); border-radius: 50%; }
.lb-promo-slider__dots button[aria-current="true"] span { border-color: var(--lb-accent); background: var(--lb-accent); }
.lb-promo-slider__controls [data-lb-promo-toggle] { min-height: 2rem; border: 1px solid var(--lb-line); border-radius: 999px; color: var(--lb-ink); background: var(--lb-paper); }
.lb-button { min-height: 2.9rem; padding: 0.8rem 1.25rem; border: 1px solid var(--lb-ink); border-radius: 999px; color: #fff; background: var(--lb-ink); font-weight: 600; }
.lb-button:hover { color: #fff; background: #111; }

.lb-section { margin-block: clamp(2.5rem, 5vw, 4rem); }
.lb-section__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; }
.lb-section__heading h2 { margin: 0; font-size: clamp(1.35rem, 2.2vw, 1.75rem); letter-spacing: -0.03em; }
.lb-section__link { color: var(--lb-ink); text-decoration: underline; text-underline-offset: 0.2em; }
.lb-categories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.lb-category { position: relative; display: flex; min-height: clamp(12rem, 21vw, 19rem); align-items: end; overflow: hidden; border-radius: var(--lb-radius); color: #fff; background: #ded3c8; isolation: isolate; text-decoration: none; }
.lb-category::before { position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, transparent 35%, rgb(23 20 18 / 70%) 100%); content: ""; }
.lb-category__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 250ms ease; }
.lb-category:hover .lb-category__image { transform: scale(1.035); }
.lb-category__label { padding: 1.25rem; color: #fff; font-size: 1.25rem; font-weight: 600; }
.lb-home .lb-products .products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(0.75rem, 1.5vw, 1.25rem); margin: 0; }
.lb-home .lb-products .products::before,
.lb-home .lb-products .products::after { display: none; }
.lb-home .lb-products .products li.product {
    float: none;
    width: auto;
    margin: 0;
    padding: 0.65rem;
    overflow: hidden;
    border: 1px solid var(--lb-line);
    border-radius: 0.875rem;
    background: var(--lb-paper);
    box-shadow: 0 0.2rem 0.8rem rgb(37 35 33 / 5%);
}
.lb-home .lb-products .products li.product img { aspect-ratio: 1 / 1; margin: 0 0 0.6rem; object-fit: cover; }
.lb-home .lb-products .products li.product .woocommerce-loop-product__title { color: var(--lb-ink); font-size: 0.95rem; line-height: 1.4; }
.lb-home .lb-products .products li.product .price { color: var(--lb-ink); font-size: 1rem; font-weight: 700; }
.lb-home .lb-products .products li.product .button { border-radius: 999px; color: var(--lb-ink); background: transparent; }
.lb-home .lb-products .products li.product .lb-wishlist-toggle { color: var(--lb-accent); }
.lb-editorial { width: min(100% - 2rem, var(--lb-content-width)); margin: 0 auto; padding-block: 3rem; }
.lb-editorial__article { max-width: 58rem; margin-inline: auto; }
.lb-editorial__content { color: var(--lb-ink); }
.lb-home a:focus-visible,
.lb-home button:focus-visible,
.lb-editorial a:focus-visible { outline: 3px solid var(--lb-accent); outline-offset: 3px; }

@media (max-width: 849px) {
    .lb-home .lb-products .products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 549px) {
    #masthead.site-header { padding-inline: 1rem; }
    #site-navigation.main-navigation { margin-inline: -1rem; padding-inline: 1rem; }
    .lb-home { padding-inline: 1rem; }
    .lb-promo-slide { min-height: 100svh; }
    .lb-promo-slide__copy { padding: 2rem 1.5rem; }
    .lb-promo-slide__image video { object-position: 45% center; }
    .lb-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
    .lb-category { min-height: 10.5rem; border-radius: 0.75rem; }
    .lb-category__label { padding: 0.9rem; font-size: 1rem; }
    .lb-home .lb-products .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
}

/* Full-width two-row header matching the local Lustre Bliss storefront. */
#masthead.lb-site-header { margin: 0; padding: 0; border: 0; background: #fff; }
.lb-header-main { border-bottom: 1px solid var(--lb-line); background: #fff; }
.lb-header-main__inner { display: grid; min-height: 5.5rem; grid-template-columns: minmax(7rem, 13rem) minmax(12rem, 1fr) auto; align-items: center; gap: clamp(1rem, 4vw, 3rem); }
.lb-branding a { display: inline-flex; flex-direction: column; color: #43658e; font-size: clamp(1.45rem, 2.1vw, 1.9rem); font-weight: 650; letter-spacing: -0.04em; line-height: 0.9; text-decoration: none; }
.lb-header-search { max-width: 24rem; }
.lb-header-search form { display: flex; margin: 0; }
.lb-header-search .search-field { min-width: 0; min-height: 2.5rem; border: 1px solid #d8d8d8; }
.lb-header-search button { min-width: 2.5rem; min-height: 2.5rem; padding: 0.45rem; border-radius: 0; color: #fff; background: #c96b4b; }
.lb-header-actions { display: flex; align-items: center; gap: 1rem; }
.lb-header-actions > a { color: #52677f; font-size: 0.84rem; font-weight: 550; text-decoration: none; text-transform: uppercase; }
.lb-header-cart { display: inline-flex; align-items: center; gap: 0.55rem; padding-left: 1rem; border-left: 1px solid var(--lb-line); }
.lb-cart-count { display: grid; min-width: 1.75rem; height: 1.75rem; place-items: center; border: 1px solid #43658e; color: #43658e; }
.lb-header-nav { background: #f2f2f2; }
.lb-header-nav .col-full { max-width: var(--lb-content-width); }
#site-navigation.main-navigation { margin: 0; padding: 0; border: 0; background: transparent; }
#site-navigation .lb-primary-menu { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem; margin: 0; padding: 0; list-style: none; }
#site-navigation .lb-primary-menu > li > a { display: inline-flex; min-height: 2.5rem; align-items: center; padding: 0; color: #536578; font-size: 0.84rem; font-weight: 550; text-decoration: none; text-transform: uppercase; }
#site-navigation .lb-primary-menu > li > a:hover { color: var(--lb-accent); }
#site-navigation .lb-wishlist-nav-icon { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; vertical-align: middle; }
#content.site-content { margin-top: 0; }
@media (max-width: 767px) {
    .lb-header-main__inner { min-height: auto; grid-template-columns: 1fr auto; gap: 0.75rem 1rem; padding-block: 0.75rem; }
    .lb-branding { grid-row: 1; }
    .lb-header-actions { grid-row: 1; grid-column: 2; gap: 0.5rem; }
    .lb-header-actions > a { font-size: 0.72rem; }
    .lb-header-cart { gap: 0.3rem; padding-left: 0.5rem; }
    .lb-header-search { grid-row: 2; grid-column: 1 / -1; max-width: none; }
    #site-navigation .lb-primary-menu { gap: 1rem; }
    #site-navigation .lb-primary-menu > li > a { min-height: 2.75rem; font-size: 0.72rem; }
}
@media (max-width: 420px) {
    .lb-header-actions { gap: 0.35rem; }
    .lb-header-actions > a { font-size: 0.66rem; }
    #site-navigation .lb-primary-menu { gap: 0.75rem; }
    #site-navigation .lb-primary-menu > li > a { font-size: 0.67rem; }
}

/* Override Storefront's named grid areas so each item stays in the intended row. */
#masthead .lb-header-main__inner {
    display: grid !important;
    grid-template-columns: minmax(7rem, 13rem) minmax(12rem, 1fr) auto !important;
    gap: 0.75rem clamp(0.75rem, 2vw, 2rem) !important;
}
#masthead .lb-header-main__inner > .lb-branding { grid-area: 1 / 1 / 2 / 2 !important; min-width: 0; }
#masthead .lb-header-main__inner > .lb-header-search { grid-area: 1 / 2 / 2 / 3 !important; min-width: 0; }
#masthead .lb-header-main__inner > .lb-header-actions { grid-area: 1 / 3 / 2 / 4 !important; min-width: max-content; }
@media (max-width: 767px) {
    #masthead .lb-header-main__inner { grid-template-columns: minmax(6rem, 1fr) auto !important; }
    #masthead .lb-header-main__inner > .lb-branding { grid-area: 1 / 1 / 2 / 2 !important; }
    #masthead .lb-header-main__inner > .lb-header-actions { grid-area: 1 / 2 / 2 / 3 !important; }
    #masthead .lb-header-main__inner > .lb-header-search { grid-area: 2 / 1 / 3 / 3 !important; }
}

/* Platform-managed advert, with a readable static alternative for reduced motion. */
.lb-announcement {
    display: flex;
    align-items: center;
    min-height: 38px;
    padding: 0;
    background: #24201e;
    color: #fffaf4;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .065em;
}
.lb-announcement__viewport { flex: 1; min-width: 0; overflow: hidden; }
.lb-announcement__track {
    display: flex;
    width: max-content;
    animation: lb-announcement-scroll var(--lb-announcement-duration, 24s) linear infinite;
}
.lb-announcement__group { display: flex; flex: none; align-items: center; }
.lb-announcement__message { display: inline-flex; align-items: center; white-space: nowrap; }
.lb-announcement__separator { padding: 0 48px; color: #d5b99a; font-size: 11px; }
.lb-announcement__pause {
    display: grid;
    place-items: center;
    align-self: stretch;
    width: 42px;
    min-height: 38px;
    padding: 0;
    border: 0;
    border-left: 1px solid #ffffff25;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-size: 12px;
}
.lb-announcement__pause:hover { background: #ffffff12; color: inherit; }
.lb-announcement__pause:focus-visible { outline: 2px solid #d5b99a; outline-offset: -4px; }
.lb-announcement:hover .lb-announcement__track,
.lb-announcement:focus-within .lb-announcement__track,
.lb-announcement.is-paused .lb-announcement__track { animation-play-state: paused; }
@keyframes lb-announcement-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    .lb-announcement { padding: 8px 16px; text-align: center; }
    .lb-announcement__track { display: block; width: auto; animation: none; }
    .lb-announcement__group { display: block; }
    .lb-announcement__message { display: block; white-space: normal; }
    .lb-announcement__group + .lb-announcement__group,
    .lb-announcement__message + .lb-announcement__message,
    .lb-announcement__separator,
    .lb-announcement__pause { display: none; }
}

.lb-announcement__message { font-weight: 700 !important; }
