/* LuxaLife native Gutenberg content sections.
 * Scoped styles, independent of the legacy homepage and product salespage.
 */
.luxa-block {
    --luxa-block-ink: var(--luxa-block-inherit-ink, #24201c);
    --luxa-block-muted: var(--luxa-block-inherit-muted, #6a6157);
    --luxa-block-gold: var(--luxa-block-inherit-accent, #d6b66f);
    --luxa-block-surface: var(--luxa-block-inherit-light-bg, #faf8f4);
    position: relative;
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    padding: clamp(46px, 5.8vw, 90px) 0;
    overflow: hidden;
    background: var(--luxa-block-inherit-light-bg, #fffdfa);
    color: var(--luxa-block-ink);
}
.luxa-block *, .luxa-block *::before, .luxa-block *::after { box-sizing: border-box; }
.luxa-block__container {
    width: min(calc(100% - 48px), 1280px);
    margin-inline: auto;
}
.luxa-block__eyebrow {
    margin: 0 0 12px;
    font: 750 .72rem/1.5 var(--luxa-font-body, system-ui, sans-serif);
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--luxa-block-inherit-accent, #a77729);
}
.luxa-block__heading {
    max-width: 850px;
    margin: 0;
    font: 650 clamp(2rem, 3.9vw, 3.8rem)/1.07 Georgia, "Times New Roman", serif;
    letter-spacing: -.045em;
    color: inherit;
    text-wrap: balance;
}
.luxa-block__body {
    max-width: 640px;
    margin: 22px 0 0;
    font: 400 clamp(.96rem, 1.15vw, 1.1rem)/1.7 var(--luxa-font-body, system-ui, sans-serif);
    color: var(--luxa-block-muted);
}
.luxa-block__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.luxa-block__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    padding: 13px 20px;
    min-height: 46px;
    border: 1px solid var(--luxa-block-inherit-accent, #d6b66f);
    border-radius: 5px;
    background: var(--luxa-block-inherit-accent, #d6b66f);
    color: var(--luxa-block-inherit-accent-text, #201a14);
    font: 650 .87rem/1.4 var(--luxa-font-body, system-ui, sans-serif);
    text-decoration: none;
    transition: background-color .16s ease, transform .16s ease;
}
.luxa-block__button:hover { background: var(--luxa-block-inherit-accent-hover, #e8c983); border-color: var(--luxa-block-inherit-accent-hover, #e8c983); color: var(--luxa-block-inherit-accent-text, #201a14); transform: translateY(-1px); }
.luxa-block__button--secondary { background: transparent; color: inherit; border-color: currentColor; }
.luxa-block__button--secondary:hover { color: #201a14; }
.luxa-block--dark {
    --luxa-block-ink: var(--luxa-block-inherit-dark-text, #f9f4ea);
    --luxa-block-muted: var(--luxa-block-inherit-dark-muted, #ddd0bf);
    background: var(--luxa-dark-surface, #211c18);
    color: var(--luxa-block-ink);
}
.luxa-block--dark .luxa-block__eyebrow { color: var(--luxa-block-inherit-dark-accent, #e2c27d); }

/* Hybrid campaign hero: photographic context + editorial headline.
   Crucial text is semantic HTML, never embedded in an image. */
.luxa-block-hero {
    display: flex;
    align-items: center;
    min-height: clamp(540px, 49vw, 740px);
    isolation: isolate;
    padding: 70px 0;
    background: #211c18;
}
.luxa-block-hero.luxa-block--light { background: #e9e1d6; }
.luxa-block-hero__picture,
.luxa-block-hero__editor-image {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
}
.luxa-block-hero__picture img,
.luxa-block-hero__editor-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background-position: center;
    background-size: cover;
}
.luxa-block-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(90deg, rgb(22 18 15 / .85) 0%, rgb(25 20 17 / .67) 35%, rgb(25 20 17 / .1) 74%, transparent 100%);
}
.luxa-block-hero.luxa-block--light .luxa-block-hero__overlay {
    background: linear-gradient(90deg, rgb(249 245 235 / .93), rgb(249 245 235 / .65) 42%, transparent 82%);
}
.luxa-block-hero__inner { display: flex; align-items: center; }
.luxa-block-hero__copy { width: min(55%, 700px); }
.luxa-block-hero .luxa-block__heading { font-size: clamp(3.15rem, 5.8vw, 6.2rem); line-height: .99; }
.luxa-block-hero .luxa-block__body { max-width: 510px; }

/* Real WooCommerce products. Horizontal scrolling is available without JS. */
.luxa-block-products__heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.luxa-block-products__controls { display: flex; gap: 8px; flex-shrink: 0; }
.luxa-block-products__controls button {
    display: grid; place-items: center;
    width: 42px; height: 42px; border: 1px solid #cbbfae;
    border-radius: 50%; background: #fff; color: #231d16; cursor: pointer;
}
.luxa-block-products__controls button:hover { background: #eee4d3; }
.luxa-block-products__controls button:disabled { cursor: default; opacity: .4; }
.luxa-block-products__track {
    display: flex;
    gap: clamp(14px, 1.7vw, 24px);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: #c6b38f transparent;
    padding: 2px 0 22px;
}
.luxa-block-product {
    flex: 0 0 clamp(222px, 22vw, 284px);
    min-width: 0;
    scroll-snap-align: start;
}
.luxa-block-product__image {
    display: grid; place-items: center;
    aspect-ratio: 1;
    background: #f5f2ed;
    border-radius: 12px;
    overflow: hidden;
}
.luxa-block-product__image img { width: 100%; height: 100%; object-fit: contain; padding: 8px; transition: transform .25s ease; }
.luxa-block-product__image:hover img { transform: scale(1.03); }
.luxa-block-product h3 { margin: 13px 0 6px; font: 650 1rem/1.35 var(--luxa-font-body, system-ui, sans-serif); }
.luxa-block-product h3 a, .luxa-block-product__link { color: inherit; text-decoration: none; }
.luxa-block-product__price { font: 700 1.05rem/1.5 var(--luxa-font-body, system-ui, sans-serif); }
.luxa-block-product__price del { margin-right: 5px; color: #81776c; font-weight: 400; }
.luxa-block-product__price ins { text-decoration: none; }
.luxa-block-product__link { display: inline-block; margin-top: 12px; color: #8c642a; font-size: .87rem; font-weight: 650; }
.luxa-block-product__link:hover { text-decoration: underline; text-underline-offset: 4px; }

/* Branded partner strip, quiet on desktop, moving only on smaller screens. */
.luxa-block-partners { padding: 24px 0; border-block: 1px solid #eae3d7; background: #f8f6f1; }
.luxa-block-partners__label { margin: 0 0 16px; text-align: center; font: 650 .75rem/1.3 var(--luxa-font-body, system-ui, sans-serif); letter-spacing: .12em; text-transform: uppercase; color: #75695b; }
.luxa-block-partners__viewport { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.luxa-block-partners__viewport::-webkit-scrollbar { display: none; }
.luxa-block-partners__track { display: flex; width: min(calc(100% - 48px), 1200px); margin-inline: auto; }
.luxa-block-partners__list {
    display: flex; flex: 1 0 100%; align-items: center; justify-content: space-around;
    gap: 35px; padding: 0; margin: 0; list-style: none;
}
.luxa-block-partners__list li { display: grid; place-items: center; min-width: 0; flex: 0 1 145px; }
.luxa-block-partners__logo { display: block; max-width: 100%; width: auto; height: auto; max-height: 39px; object-fit: contain; }
.luxa-block-partners__clone { display: none; }

/* Large category cards with easily replaceable Media Library images. */
.luxa-block-categories__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: clamp(16px, 2vw, 28px);
    list-style: none;
    padding: 0;
    margin: 32px 0 0;
}
.luxa-block-category { min-width: 0; }
.luxa-block-category > a, .luxa-block-category > div {
    position: relative; isolation: isolate; display: flex; align-items: flex-end;
    min-height: clamp(240px, 29vw, 385px);
    padding: clamp(20px, 2.7vw, 36px);
    background: linear-gradient(135deg, #332b25, #171512);
    color: #fffaf2; text-decoration: none; overflow: hidden; border-radius: 10px;
}
.luxa-block-category__visual { position: absolute; inset: 0; z-index: -2; }
.luxa-block-category__image { display: block; width: 100%; height: 100%; object-fit: cover; }
.luxa-block-category > :first-child::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(0deg, rgb(0 0 0 / .74), transparent 72%);
}
.luxa-block-category__title { font: 700 clamp(1.5rem, 2.7vw, 2.4rem)/1.12 var(--luxa-font-body, system-ui, sans-serif); }
.luxa-block-category a:hover .luxa-block-category__image { transform: scale(1.035); }
.luxa-block-category__image { transition: transform .3s ease; }

/* One reusable spotlight for product, service, or brand editorial. */
.luxa-block-feature { background: #f8f5ef; }
.luxa-block-feature__grid {
    display: grid;
    grid-template-columns: minmax(0, .93fr) minmax(0, 1.07fr);
    align-items: center;
    gap: clamp(32px, 5vw, 100px);
}
.luxa-block-feature--image-left .luxa-block-feature__copy { order: 2; }
.luxa-block-feature--image-left .luxa-block-feature__media { order: 1; }
.luxa-block-feature__copy { min-width: 0; }
.luxa-block-feature__media {
    display: grid; place-items: center; width: 100%; min-height: 360px; max-height: 580px;
    overflow: hidden; border-radius: 13px; background: #e9e0d3;
}
.luxa-block-feature__media img { display: block; width: 100%; height: 100%; max-height: 580px; object-fit: cover; }
.luxa-block-feature__price { margin-top: 18px; font-size: 1.35rem; font-weight: 750; }
.luxa-block-feature__price del { margin-right: 10px; font-weight: 400; opacity: .7; }
.luxa-block-feature__price ins { text-decoration: none; }
.luxa-block--dark .luxa-block-feature__media { background: #352d27; }
.luxa-block-reviews { background: #f8f5f0; }
.luxa-block-reviews .luxa-block__heading { margin-bottom: 28px; }

/* Editor previews share the frontend's section styling but remain editable. */
.block-editor-block-list__block.luxa-block { margin-inline: auto; }
.luxa-block-editor { min-height: 230px; overflow: visible; }
.luxa-block-editor .luxa-block__heading,
.luxa-block-editor .luxa-block__body { max-width: 100%; }
.luxa-block-editor__hint { display: inline-block; padding: 9px 14px; border: 1px dashed currentColor; border-radius: 5px; opacity: .75; }
.luxa-block-editor__empty { padding: 30px; background: rgb(180 155 106 / .1); border: 1px dashed #c7ad81; border-radius: 8px; }
.luxa-block-editor__media-placeholder { display: grid; place-items: center; min-height: 150px; padding: 15px; background: #e9e0d3; color: #54483a; border-radius: 9px; font-size: .8rem; text-align: center; }
.luxa-block-editor__mini-cards { display: flex; gap: 16px; overflow: hidden; margin-top: 24px; }
.luxa-block-editor__mini-cards > div { flex: 0 0 30%; min-width: 0; }
.luxa-block-editor__mini-cards strong { display: block; margin-top: 8px; }
.luxa-block-editor__logos { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 22px; }
.luxa-block-editor__logos img { max-width: 150px; max-height: 60px; object-fit: contain; }
.luxa-block-editor__image-control { margin-block: 18px; }
.luxa-block-editor__image-control p { margin: 0 0 8px; font-weight: 600; }
.luxa-block-editor__selected > div, .luxa-block-editor__logo-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; border-bottom: 1px solid #ddd; padding: 4px 0; }
.luxa-block-editor__results { display: grid; justify-items: start; max-height: 240px; overflow: auto; margin-bottom: 10px; border: 1px solid #ddd; border-radius: 5px; }
.luxa-block-editor__results button { width: 100%; justify-content: flex-start; text-align: left; }
.luxa-block-editor .luxa-block-feature__grid { width: min(calc(100% - 40px), 1100px); }
.luxa-block-editor .luxa-block-category { min-height: 180px; background: #332b25; color: #fff; border-radius: 8px; overflow: hidden; }
.luxa-block-editor .luxa-block-category img { width: 100%; height: 150px; object-fit: cover; }
.luxa-block-editor .luxa-block-category strong { display: block; padding: 15px; }

@media (max-width: 780px) {
    .luxa-block__container { width: min(calc(100% - 32px), 1280px); }
    .luxa-block { padding-block: 52px; }
    .luxa-block-hero { min-height: 660px; align-items: flex-start; padding-top: 60px; }
    .luxa-block-hero__overlay { background: linear-gradient(180deg, rgb(23 19 16 / .88) 0%, rgb(23 19 16 / .5) 45%, transparent 87%); }
    .luxa-block-hero.luxa-block--light .luxa-block-hero__overlay { background: linear-gradient(180deg, rgb(250 246 238 / .91), rgb(250 246 238 / .58) 52%, transparent 92%); }
    .luxa-block-hero__copy { width: 100%; }
    .luxa-block-hero .luxa-block__heading { font-size: clamp(2.9rem, 10.5vw, 4.7rem); }
    .luxa-block-products__controls { display: none; }
    .luxa-block-product { flex-basis: min(74vw, 284px); }
    .luxa-block-partners__track { width: max-content; margin: 0; }
    .luxa-block-partners__list { flex: 0 0 auto; width: max-content; gap: 32px; padding-inline: 16px; }
    .luxa-block-partners__list li { flex: 0 0 125px; }
    .luxa-block-partners__viewport.is-animated { overflow-x: hidden; }
    .luxa-block-partners__viewport.is-animated .luxa-block-partners__clone { display: flex; }
    .luxa-block-partners__viewport.is-animated .luxa-block-partners__track {
        animation: luxa-partner-roll 28s linear infinite;
    }
    .luxa-block-partners__viewport.is-animated:hover .luxa-block-partners__track,
    .luxa-block-partners__viewport.is-animated:focus-within .luxa-block-partners__track { animation-play-state: paused; }
    .luxa-block-feature__grid { grid-template-columns: 1fr; }
    .luxa-block-feature--image-left .luxa-block-feature__copy { order: 1; }
    .luxa-block-feature--image-left .luxa-block-feature__media { order: 2; }
    .luxa-block-feature__media { min-height: 270px; }
    .luxa-block-categories__grid { grid-template-columns: 1fr; }
    .luxa-block-category > a, .luxa-block-category > div { min-height: 280px; }
}
@keyframes luxa-partner-roll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
    .luxa-block *, .luxa-block *::before, .luxa-block *::after { transition: none !important; }
    .luxa-block-partners__viewport.is-animated { overflow-x: auto; }
    .luxa-block-partners__viewport.is-animated .luxa-block-partners__track { animation: none; }
    .luxa-block-partners__viewport.is-animated .luxa-block-partners__clone { display: none; }
}


/* ──────────────────────────────────────────────────────────────────────────
   Productcarrousel V2 — opt-in design tokens driven by Gutenberg controls.
   Settings are per block, never globals that affect other page sections.
   ────────────────────────────────────────────────────────────────────────── */
.luxa-block-products {
    --luxa-products-content-width: 1280px;
    --luxa-products-space-desktop: 64px;
    --luxa-products-space-mobile: 40px;
    --luxa-products-gap: 22px;
    --luxa-products-columns: 3;
    --luxa-products-heading-size: 48px;
    --luxa-products-card-bg: var(--luxa-block-inherit-light-bg, #fff);
    --luxa-products-card-border: var(--luxa-block-inherit-border, #e8e0d3);
    background: var(--luxa-block-inherit-light-bg, #fffdfa);
    padding-block: var(--luxa-products-space-desktop);
}
.luxa-block-products.luxa-block--warm {
    background: var(--luxa-block-inherit-warm-bg, #f5f0e8);
}
.luxa-block-products.luxa-block--dark {
    --luxa-products-card-bg: #312923;
    --luxa-products-card-border: #4a3b30;
    background: var(--luxa-dark-surface, #211c18);
}
.luxa-block-products > .luxa-block__container {
    width: min(calc(100% - clamp(28px, 5vw, 72px)), var(--luxa-products-content-width));
}
.luxa-block-products__heading {
    align-items: end;
    margin-bottom: clamp(22px, 2.8vw, 34px);
    gap: 24px;
}
.luxa-block-products:not(.luxa-block-products--with-heading) .luxa-block-products__heading {
    justify-content: flex-end;
    margin-bottom: 14px;
}
.luxa-block-products--heading-center .luxa-block-products__heading {
    position: relative;
    justify-content: center;
}
.luxa-block-products--heading-center .luxa-block-products__copy {
    text-align: center;
}
.luxa-block-products--heading-center .luxa-block-products__copy .luxa-block__heading {
    margin-inline: auto;
}
.luxa-block-products--heading-center .luxa-block-products__controls {
    position: absolute;
    right: 0;
    bottom: 0;
}
.luxa-block-products__copy .luxa-block__heading {
    max-width: 900px;
    font-size: clamp(28px, 4.5vw, var(--luxa-products-heading-size));
    line-height: 1.13;
}
.luxa-block-products__controls button {
    background: transparent;
    border-color: var(--luxa-products-card-border);
    color: inherit;
}
.luxa-block-products__controls button:hover {
    background: var(--luxa-products-card-bg);
}
.luxa-block-products__track {
    gap: var(--luxa-products-gap);
    padding: 3px 0 16px;
    align-items: stretch;
    scroll-padding-inline: 2px;
}
.luxa-block-products .luxa-block-product {
    flex: 0 0 calc((100% + var(--luxa-products-gap)) / var(--luxa-products-columns) - var(--luxa-products-gap));
    min-width: 0;
    max-width: none;
    border-radius: 13px;
    overflow: hidden;
    box-shadow: none;
}
.luxa-block-products--framed .luxa-block-product {
    background: var(--luxa-products-card-bg);
    border: 1px solid var(--luxa-products-card-border);
    box-shadow: 0 8px 30px rgb(46 28 13 / .035);
}
.luxa-block-products .luxa-block-product__image {
    display: grid;
    place-items: center;
    width: 100%;
    aspect-ratio: 1;
    background: #f8f6f2;
    border-radius: 0;
    overflow: hidden;
}
.luxa-block-products--image-portrait .luxa-block-product__image {
    aspect-ratio: 4 / 5;
}
.luxa-block-products.luxa-block--dark .luxa-block-product__image {
    background: #40362e;
}
.luxa-block-products .luxa-block-product__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    padding: clamp(8px, 1.2vw, 16px);
    transition: transform .25s ease;
}
.luxa-block-products .luxa-block-product__details {
    padding: 20px 18px 22px;
}
.luxa-block-products--minimal .luxa-block-product__details {
    padding: 15px 2px 10px;
}
.luxa-block-products .luxa-block-product h3 {
    margin: 0 0 11px;
    font-family: var(--luxa-font-body, system-ui, sans-serif);
    font-size: clamp(.93rem, 1.12vw, 1.06rem);
    font-weight: 650;
    line-height: 1.48;
    letter-spacing: -.01em;
    overflow-wrap: anywhere;
}
.luxa-block-products .luxa-block-product__price {
    font-size: 1.1rem;
    font-weight: 750;
    line-height: 1.4;
}
.luxa-block-products .luxa-block-product__link {
    display: inline-flex;
    margin-top: 18px;
    gap: 10px;
    align-items: center;
    font-size: .83rem;
    font-weight: 750;
    color: #956826;
    text-decoration: none;
}
.luxa-block-products.luxa-block--dark .luxa-block-product__link {
    color: #e6c27c;
}
.luxa-block-products .luxa-block-product__link:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
@media (max-width: 1100px) and (min-width: 781px) {
    .luxa-block-products .luxa-block-product {
        flex-basis: calc((100% - var(--luxa-products-gap)) / 2);
    }
}
@media (max-width: 780px) {
    .luxa-block-products {
        padding-block: var(--luxa-products-space-mobile);
    }
    .luxa-block-products > .luxa-block__container {
        width: min(calc(100% - 32px), var(--luxa-products-content-width));
    }
    .luxa-block-products .luxa-block-product {
        flex-basis: min(78vw, 322px);
    }
    .luxa-block-products--heading-center .luxa-block-products__controls {
        position: static;
    }
    .luxa-block-products__heading {
        margin-bottom: 24px;
    }
    .luxa-block-products .luxa-block-product__details {
        padding: 18px 15px 20px;
    }
}
@media (prefers-reduced-motion: reduce) {
    .luxa-block-products .luxa-block-product__image img { transition: none; }
}


/* ──────────────────────────────────────────────────────────────────────────
   Productcarrousel V3: premium cards with consistent typography and actions.
   All selectors are limited to this reusable Gutenberg block.
   ────────────────────────────────────────────────────────────────────────── */
.luxa-block-products--font-serif .luxa-block-products__copy .luxa-block__heading {
    font-family: Georgia, "Times New Roman", serif;
}
.luxa-block-products--font-sans .luxa-block-products__copy .luxa-block__heading {
    font-family: var(--luxa-font-body, system-ui, -apple-system, "Segoe UI", sans-serif);
    font-weight: 750;
    letter-spacing: -.045em;
}
.luxa-block-products__toolbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 14px;
    flex: 0 0 auto;
}
.luxa-block-products__header-link > .luxa-block__button {
    padding: 7px 0;
    min-height: 40px;
    border: 0;
    background: none;
    color: inherit;
    font-size: .88rem;
    font-weight: 650;
    white-space: nowrap;
}
.luxa-block-products__header-link > .luxa-block__button:hover,
.luxa-block-products__header-link > .luxa-block__button:focus-visible {
    background: none;
    color: #a87a30;
    text-decoration: underline;
    text-underline-offset: 4px;
    transform: none;
}
.luxa-block-products--heading-center .luxa-block-products__toolbar {
    position: absolute;
    right: 0;
    bottom: 0;
}
.luxa-block-products--heading-center .luxa-block-products__controls {
    position: static;
}
.luxa-block-products .luxa-block-product {
    display: flex;
    flex-direction: column;
    align-self: stretch;
    height: auto;
    color: inherit;
    transition: box-shadow .2s ease, transform .2s ease;
}
.luxa-block-products--framed .luxa-block-product:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgb(40 24 12 / .11);
}
.luxa-block-products .luxa-block-product__image {
    position: relative;
    flex: 0 0 auto;
    background: #fff;
    border-bottom: 1px solid rgb(45 30 16 / .075);
}
.luxa-block-products--surface-warm .luxa-block-product__image {
    background: #f1ece5;
}
.luxa-block-products.luxa-block--dark .luxa-block-product__image {
    background: #fff;
}
.luxa-block-products.luxa-block--dark.luxa-block-products--surface-warm .luxa-block-product__image {
    background: #f1ece5;
}
.luxa-block-products .luxa-block-product__media-link {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    text-decoration: none;
    overflow: hidden;
    background: transparent;
}
.luxa-block-products .luxa-block-product__media-link img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: clamp(8px, 1vw, 14px);
    transition: transform .24s ease;
}
.luxa-block-products .luxa-block-product__media-link:hover img {
    transform: scale(1.035);
}
.luxa-block-products .luxa-block-product__badges {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
    position: absolute;
    top: 13px;
    right: 13px;
    left: 13px;
    pointer-events: none;
}
.luxa-block-products .luxa-block-product__badge {
    display: inline-block;
    max-width: 67%;
    padding: 7px 11px;
    border-radius: 999px;
    background: #dec078;
    color: #211b12;
    font: 700 .7rem/1.2 var(--luxa-font-body, system-ui, sans-serif);
    text-align: center;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
.luxa-block-products .luxa-block-product__badge--sale {
    margin-left: auto;
    max-width: 34%;
    background: #211b18;
    color: #ebc97b;
    font-weight: 750;
}
.luxa-block-products .luxa-block-product__details {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    padding: 19px 19px 21px;
    gap: 0;
}
.luxa-block-products--minimal .luxa-block-product__details {
    min-height: 0;
    padding: 16px 3px 12px;
}
.luxa-block-products .luxa-block-product h3 {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    max-height: 2.9em;
    margin: 0 0 8px;
    font: 750 clamp(.95rem, 1.16vw, 1.11rem)/1.42 var(--luxa-font-body, system-ui, sans-serif);
    letter-spacing: -.015em;
    overflow-wrap: anywhere;
}
.luxa-block-products .luxa-block-product__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    margin: 0 0 18px;
    max-height: 3em;
    color: #756e66;
    font: 400 .84rem/1.5 var(--luxa-font-body, system-ui, sans-serif);
}
.luxa-block-products.luxa-block--dark .luxa-block-product__description {
    color: #c4b9ac;
}
.luxa-block-products .luxa-block-product__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 0;
    margin-top: auto;
}
.luxa-block-products .luxa-block-product__price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 9px;
    margin: 0;
    font: 800 clamp(1.08rem, 1.6vw, 1.33rem)/1.25 var(--luxa-font-body, system-ui, sans-serif);
    letter-spacing: -.015em;
    overflow-wrap: anywhere;
}
.luxa-block-products .luxa-block-product__price del {
    order: 2;
    margin: 0;
    font-size: .75em;
    font-weight: 450;
    line-height: 1.5;
    color: #857d73;
}
.luxa-block-products.luxa-block--dark .luxa-block-product__price del {
    color: #c3b4a4;
}
.luxa-block-products .luxa-block-product__price ins {
    order: 1;
    text-decoration: none;
}
.luxa-block-products .luxa-block-product__link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    color: inherit;
    font-size: .8rem;
    text-decoration: none;
}
.luxa-block-products .luxa-block-product__link-icon {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #211c18;
    color: #e7c67b;
    font: 650 1.2rem/1 system-ui, sans-serif;
    transition: background-color .2s ease, transform .2s ease;
}
.luxa-block-products .luxa-block-product__link:hover,
.luxa-block-products .luxa-block-product__link:focus-visible {
    text-decoration: none;
}
.luxa-block-products .luxa-block-product__link:hover .luxa-block-product__link-icon,
.luxa-block-products .luxa-block-product__link:focus-visible .luxa-block-product__link-icon {
    transform: translateX(2px);
    background: #3f3328;
}
.luxa-block-products--button-circle .luxa-block-product__link-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.luxa-block-products--button-text .luxa-block-product__link-icon {
    width: auto;
    height: auto;
    border-radius: 0;
    background: transparent;
    color: #a67a36;
}
.luxa-block-products--button-text .luxa-block-product__link:hover .luxa-block-product__link-text,
.luxa-block-products--button-text .luxa-block-product__link:focus-visible .luxa-block-product__link-text {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.luxa-block-products--button-text .luxa-block-product__link:hover .luxa-block-product__link-icon {
    background: none;
}
.luxa-block-products.luxa-block--dark .luxa-block-product__link-icon {
    background: #d9b86f;
    color: #211c18;
}
.luxa-block-products.luxa-block--dark.luxa-block-products--button-text .luxa-block-product__link-icon {
    background: transparent;
    color: #d9b86f;
}
@media (max-width: 1100px) {
    .luxa-block-products--heading-center .luxa-block-products__toolbar {
        position: static;
    }
}
@media (max-width: 780px) {
    .luxa-block-products__heading {
        flex-wrap: wrap;
    }
    .luxa-block-products__toolbar {
        width: 100%;
        justify-content: space-between;
    }
    .luxa-block-products:not(.luxa-block-products--with-heading) .luxa-block-products__toolbar {
        justify-content: flex-end;
    }
    .luxa-block-products .luxa-block-product__details {
        min-height: 0;
        padding: 16px 15px 19px;
    }
    .luxa-block-products .luxa-block-product__badges {
        inset: 10px 10px auto;
    }
    .luxa-block-products .luxa-block-product__badge {
        padding: 6px 9px;
        font-size: .68rem;
    }
    .luxa-block-products .luxa-block-product__price {
        font-size: 1.1rem;
    }
}
@media (prefers-reduced-motion: reduce) {
    .luxa-block-products .luxa-block-product,
    .luxa-block-products .luxa-block-product__link-icon,
    .luxa-block-products .luxa-block-product__media-link img {
        transition: none;
    }
}


/* ==========================================================================
   Shared LuxaLife Gutenberg design system V2.
   The approved commerce/product carousel intentionally uses its own tokens.
   Both editor and frontend consume these exact bounded CSS variables.
   ========================================================================== */
.luxa-block:not(.luxa-block-products) {
    padding-block: var(--luxa-design-space-desktop, 70px);
}
.luxa-block:not(.luxa-block-products) > .luxa-block__container,
.luxa-block:not(.luxa-block-products) > .luxa-block-feature__grid,
.luxa-block:not(.luxa-block-products) .luxa-block__container {
    width: min(calc(100% - 48px), var(--luxa-design-content-width, 1280px));
}
.luxa-block:not(.luxa-block-products) .luxa-block__heading {
    font-size: var(--luxa-design-heading-size, 52px);
    font-weight: var(--luxa-design-heading-weight, 650);
    color: var(--luxa-design-heading-color, var(--luxa-block-ink));
}
.luxa-block:not(.luxa-block-products).luxa-design-font-serif .luxa-block__heading {
    font-family: Georgia, "Times New Roman", serif;
}
.luxa-block:not(.luxa-block-products).luxa-design-font-sans .luxa-block__heading {
    font-family: var(--luxa-font-body, system-ui, -apple-system, "Segoe UI", sans-serif);
}
.luxa-block:not(.luxa-block-products).luxa-design-font-arial .luxa-block__heading {
    font-family: Arial, Helvetica, sans-serif;
}
.luxa-block:not(.luxa-block-products).luxa-design-font-trebuchet .luxa-block__heading {
    font-family: "Trebuchet MS", Arial, sans-serif;
}
.luxa-block:not(.luxa-block-products) .luxa-block__eyebrow {
    font-size: var(--luxa-design-eyebrow-size, 12px);
}
.luxa-block:not(.luxa-block-products) .luxa-block__body {
    font-size: var(--luxa-design-body-size, 17px);
    color: var(--luxa-design-body-color, var(--luxa-block-muted));
}
.luxa-block:not(.luxa-block-products).luxa-design-align-center .luxa-block__heading,
.luxa-block:not(.luxa-block-products).luxa-design-align-center .luxa-block__eyebrow,
.luxa-block:not(.luxa-block-products).luxa-design-align-center .luxa-block__body {
    text-align: center;
    margin-inline: auto;
}
.luxa-block:not(.luxa-block-products).luxa-design-align-center .luxa-block__actions {
    justify-content: center;
}
.luxa-block.luxa-block--warm {
    --luxa-block-ink: var(--luxa-block-inherit-ink, #29221d);
    --luxa-block-muted: var(--luxa-block-inherit-muted, #6b6054);
    color: var(--luxa-block-ink);
    background: var(--luxa-block-inherit-warm-bg, #f5f0e8);
}

/* Hero: controlled section geometry, responsive picture crop and adjustable mask. */
.luxa-block-hero {
    min-height: var(--luxa-hero-height, 640px);
    padding-block: var(--luxa-design-space-desktop, 70px);
}
.luxa-block-hero .luxa-block-hero__picture img {
    object-position: var(--luxa-hero-image-x, 50%) var(--luxa-hero-image-y, 50%);
}
.luxa-block-hero .luxa-block-hero__overlay {
    background: linear-gradient(90deg,
        rgb(22 18 15 / var(--luxa-hero-overlay, .8)),
        rgb(22 18 15 / .32) 58%, transparent 93%);
}
.luxa-block-hero.luxa-block--light .luxa-block-hero__overlay {
    background: linear-gradient(90deg,
        rgb(249 245 235 / var(--luxa-hero-overlay, .8)),
        rgb(249 245 235 / .37) 58%, transparent 93%);
}
.luxa-block-hero .luxa-block-hero__copy {
    width: min(100%, var(--luxa-hero-text-width, 55%));
}
.luxa-block-hero--center .luxa-block-hero__inner { justify-content: center; }
.luxa-block-hero--right .luxa-block-hero__inner { justify-content: flex-end; }
.luxa-block-hero--left .luxa-block-hero__inner { justify-content: flex-start; }
.luxa-block-hero--right .luxa-block-hero__overlay {
    background: linear-gradient(270deg,
        rgb(22 18 15 / var(--luxa-hero-overlay, .8)),
        rgb(22 18 15 / .32) 58%, transparent 93%);
}
.luxa-block-hero--right.luxa-block--light .luxa-block-hero__overlay {
    background: linear-gradient(270deg,
        rgb(249 245 235 / var(--luxa-hero-overlay, .8)),
        rgb(249 245 235 / .37) 58%, transparent 93%);
}
.luxa-block-hero--center .luxa-block-hero__overlay {
    background: radial-gradient(ellipse at center,
        rgb(22 18 15 / var(--luxa-hero-overlay, .8)),
        rgb(22 18 15 / .32) 48%, transparent 100%);
}
.luxa-block-hero--center.luxa-block--light .luxa-block-hero__overlay {
    background: radial-gradient(ellipse at center,
        rgb(249 245 235 / var(--luxa-hero-overlay, .8)),
        rgb(249 245 235 / .37) 48%, transparent 100%);
}

/* Partners: logo sizes, spacing and mobile marquee speed are editor-defined. */
.luxa-block-partners {
    background: #f8f6f1;
}
.luxa-block-partners.luxa-block--warm { background: var(--luxa-block-inherit-warm-bg, #f5f0e8); }
.luxa-block-partners.luxa-block--dark { background: var(--luxa-dark-surface, #211c18); }
.luxa-block-partners .luxa-block-partners__label {
    font-size: var(--luxa-design-eyebrow-size, 12px);
    color: var(--luxa-design-body-color, var(--luxa-block-muted));
}
.luxa-block-partners .luxa-block-partners__track {
    width: min(calc(100% - 48px), var(--luxa-design-content-width, 1280px));
}
.luxa-block-partners .luxa-block-partners__list {
    justify-content: center;
    gap: var(--luxa-logo-gap, 35px);
}
.luxa-block-partners .luxa-block-partners__logo {
    max-height: var(--luxa-logo-height, 39px);
}
.luxa-block-categories .luxa-block-categories__grid {
    gap: var(--luxa-card-gap, 24px);
}
.luxa-block-categories .luxa-block-category > a,
.luxa-block-categories .luxa-block-category > div {
    min-height: var(--luxa-card-height, 385px);
}
.luxa-block-categories .luxa-block-category > :first-child::before {
    background: linear-gradient(0deg, rgb(0 0 0 / var(--luxa-card-overlay, .74)), transparent 76%);
}
.luxa-block-categories .luxa-block-category__title {
    font-size: var(--luxa-card-title, 38px);
}

/* Spotlight: shared typographic controls plus media sizing and composition. */
.luxa-block-feature .luxa-block-feature__grid {
    gap: var(--luxa-feature-gap, 70px);
}
.luxa-block-feature .luxa-block-feature__media {
    height: var(--luxa-feature-image-height, 420px);
    min-height: 0;
    max-height: none;
}
.luxa-block-feature .luxa-block-feature__media img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
}
.luxa-block-feature--fit-contain .luxa-block-feature__media img {
    object-fit: contain;
}
.luxa-block-feature--no-image .luxa-block-feature__grid {
    grid-template-columns: 1fr;
}
.luxa-block-feature--no-image .luxa-block-feature__copy {
    max-width: 900px;
}
.luxa-block-feature.luxa-block--warm { background: var(--luxa-block-inherit-warm-bg, #f5f0e8); }
.luxa-block-feature.luxa-block--dark { background: var(--luxa-dark-surface, #211c18); }

.luxa-block-reviews.luxa-block--warm { background: var(--luxa-block-inherit-warm-bg, #f5f0e8); }
.luxa-block-reviews.luxa-block--dark { background: var(--luxa-dark-surface, #211c18); }

@media (max-width: 780px) {
    .luxa-block:not(.luxa-block-products) {
        padding-block: var(--luxa-design-space-mobile, 48px);
    }
    .luxa-block:not(.luxa-block-products) .luxa-block__container {
        width: min(calc(100% - 32px), var(--luxa-design-content-width, 1280px));
    }
    .luxa-block:not(.luxa-block-products) .luxa-block__heading {
        font-size: var(--luxa-design-heading-mobile, 36px);
    }
    .luxa-block-hero {
        min-height: var(--luxa-hero-mobile-height, 660px);
        padding-block: var(--luxa-design-space-mobile, 48px);
    }
    .luxa-block-hero .luxa-block-hero__copy {
        width: 100%;
    }
    .luxa-block-hero .luxa-block-hero__overlay {
        background: linear-gradient(180deg,
            rgb(22 18 15 / var(--luxa-hero-overlay, .8)),
            rgb(22 18 15 / .25) 62%, transparent 95%);
    }
    .luxa-block-hero.luxa-block--light .luxa-block-hero__overlay {
        background: linear-gradient(180deg,
            rgb(249 245 235 / var(--luxa-hero-overlay, .8)),
            rgb(249 245 235 / .35) 62%, transparent 95%);
    }
    .luxa-block-hero--right .luxa-block-hero__overlay,
    .luxa-block-hero--center .luxa-block-hero__overlay {
        background: linear-gradient(180deg,
            rgb(22 18 15 / var(--luxa-hero-overlay, .8)),
            rgb(22 18 15 / .25) 62%, transparent 95%);
    }
    .luxa-block-hero--right.luxa-block--light .luxa-block-hero__overlay,
    .luxa-block-hero--center.luxa-block--light .luxa-block-hero__overlay {
        background: linear-gradient(180deg,
            rgb(249 245 235 / var(--luxa-hero-overlay, .8)),
            rgb(249 245 235 / .35) 62%, transparent 95%);
    }
    .luxa-block-partners .luxa-block-partners__track {
        width: max-content;
    }
    .luxa-block-partners .luxa-block-partners__viewport.is-animated .luxa-block-partners__track {
        animation-duration: var(--luxa-logo-speed, 28s);
    }
    .luxa-block-categories .luxa-block-category > a,
    .luxa-block-categories .luxa-block-category > div {
        min-height: min(var(--luxa-card-height, 385px), 340px);
    }
    .luxa-block-feature .luxa-block-feature__grid {
        gap: min(var(--luxa-feature-gap, 70px), 48px);
    }
}

/* === Central typography inheritance: six LuxaLife native Gutenberg blocks ===
 * All role defaults resolve from the single Customizer's --luxa-type-* tokens.
 * Only intentionally edited block fields declare --luxa-type-override-* values.
 * Legacy designFont/headingFont attrs remain registered for saved content,
 * but no longer determine rendered typography once this class is present.
 */
.luxa-block.luxa-type-v3 .luxa-block__heading {
  font-family: var(--luxa-type-override-heading-font, var(--luxa-type-h2-font, var(--luxa-font-heading, var(--luxa-font-body, system-ui, sans-serif))));
  font-size: var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h2-size-desktop, 52px));
  font-weight: var(--luxa-type-override-heading-weight, var(--luxa-type-h2-weight, 650));
  line-height: var(--luxa-type-override-heading-line-height, var(--luxa-type-h2-line-height, 1.1));
  letter-spacing: var(--luxa-type-override-heading-tracking, var(--luxa-type-h2-tracking, -.035em));
  color: var(--luxa-type-override-heading-color, var(--luxa-type-h2-color, var(--luxa-block-ink)));
}
.luxa-block.luxa-type-v3.luxa-block-hero .luxa-block__heading {
  font-family: var(--luxa-type-override-heading-font, var(--luxa-type-h1-font, var(--luxa-font-heading, var(--luxa-font-body, system-ui, sans-serif))));
  font-size: var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h1-size-desktop, 86px));
  font-weight: var(--luxa-type-override-heading-weight, var(--luxa-type-h1-weight, 650));
  line-height: var(--luxa-type-override-heading-line-height, var(--luxa-type-h1-line-height, 1.02));
  letter-spacing: var(--luxa-type-override-heading-tracking, var(--luxa-type-h1-tracking, -.035em));
  color: var(--luxa-type-override-heading-color, var(--luxa-type-h1-color, var(--luxa-block-ink)));
}
.luxa-block.luxa-type-v3.luxa-block-products .luxa-block-products__copy .luxa-block__heading {
  font-family: var(--luxa-type-override-heading-font, var(--luxa-type-h2-font, var(--luxa-font-heading, var(--luxa-font-body, system-ui, sans-serif))));
  font-size: var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h2-size-desktop, var(--luxa-products-heading-size, 48px)));
  font-weight: var(--luxa-type-override-heading-weight, var(--luxa-type-h2-weight, 650));
  line-height: var(--luxa-type-override-heading-line-height, var(--luxa-type-h2-line-height, 1.13));
  letter-spacing: var(--luxa-type-override-heading-tracking, var(--luxa-type-h2-tracking, -.035em));
  color: var(--luxa-type-override-heading-color, var(--luxa-type-h2-color, var(--luxa-block-ink)));
}
.luxa-block.luxa-type-v3 .luxa-block__body,
.luxa-block.luxa-type-v3 .luxa-block-product__description {
  font-family: var(--luxa-type-override-body-font, var(--luxa-type-body-font, var(--luxa-font-body, system-ui, sans-serif)));
  font-size: var(--luxa-type-override-body-size-desktop, var(--luxa-type-body-size-desktop, 17px));
  font-weight: var(--luxa-type-override-body-weight, var(--luxa-type-body-weight, 400));
  line-height: var(--luxa-type-override-body-line-height, var(--luxa-type-body-line-height, 1.65));
  letter-spacing: var(--luxa-type-override-body-tracking, var(--luxa-type-body-tracking, normal));
  color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, var(--luxa-block-muted)));
}
.luxa-block.luxa-type-v3 .luxa-block__eyebrow,
.luxa-block.luxa-type-v3 .luxa-block-partners__label {
  font-family: var(--luxa-type-override-label-font, var(--luxa-type-label-font, var(--luxa-font-body, system-ui, sans-serif)));
  font-size: var(--luxa-type-override-label-size-desktop, var(--luxa-type-label-size-desktop, 12px));
  font-weight: var(--luxa-type-override-label-weight, var(--luxa-type-label-weight, 750));
  line-height: var(--luxa-type-override-label-line-height, var(--luxa-type-label-line-height, 1.4));
  letter-spacing: var(--luxa-type-override-label-tracking, var(--luxa-type-label-tracking, .12em));
  color: var(--luxa-type-override-label-color, var(--luxa-type-label-color, var(--luxa-block-muted)));
}
.luxa-block.luxa-type-v3 .luxa-block__button,
.luxa-block.luxa-type-v3 .luxa-block-product__link-text {
  font-family: var(--luxa-type-override-button-font, var(--luxa-type-button-font, var(--luxa-font-body, system-ui, sans-serif)));
  font-size: var(--luxa-type-override-button-size-desktop, var(--luxa-type-button-size-desktop, 14px));
  font-weight: var(--luxa-type-override-button-weight, var(--luxa-type-button-weight, 650));
  line-height: var(--luxa-type-override-button-line-height, var(--luxa-type-button-line-height, 1.4));
  letter-spacing: var(--luxa-type-override-button-tracking, var(--luxa-type-button-tracking, normal));
  color: var(--luxa-type-override-button-color, var(--luxa-type-button-color, inherit));
}
.luxa-block.luxa-type-v3 .luxa-block-category__title {
  font-family: var(--luxa-type-override-card-font, var(--luxa-type-h3-font, var(--luxa-font-body, system-ui, sans-serif)));
  font-size: var(--luxa-type-override-card-size-desktop, var(--luxa-type-h3-size-desktop, 38px));
  font-weight: var(--luxa-type-override-card-weight, var(--luxa-type-h3-weight, 700));
  line-height: var(--luxa-type-override-card-line-height, var(--luxa-type-h3-line-height, 1.12));
  letter-spacing: var(--luxa-type-override-card-tracking, var(--luxa-type-h3-tracking, normal));
  color: var(--luxa-type-override-card-color, var(--luxa-type-h3-color, inherit));
}
.luxa-block.luxa-type-v3 .luxa-block-product h3 {
  font-family: var(--luxa-type-override-card-font, var(--luxa-type-h3-font, var(--luxa-font-body, system-ui, sans-serif)));
  font-size: var(--luxa-type-override-card-size-desktop, var(--luxa-type-h3-size-desktop, 16px));
  font-weight: var(--luxa-type-override-card-weight, var(--luxa-type-h3-weight, 650));
  line-height: var(--luxa-type-override-card-line-height, var(--luxa-type-h3-line-height, 1.35));
  letter-spacing: var(--luxa-type-override-card-tracking, var(--luxa-type-h3-tracking, normal));
  color: var(--luxa-type-override-card-color, var(--luxa-type-h3-color, inherit));
}

@media (max-width: 780px) {
.luxa-block.luxa-type-v3 .luxa-block__heading {
  font-size: var(--luxa-type-override-heading-size-mobile, var(--luxa-type-h2-size-mobile, var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h2-size-desktop, 36px))));
}
.luxa-block.luxa-type-v3.luxa-block-hero .luxa-block__heading {
  font-size: var(--luxa-type-override-heading-size-mobile, var(--luxa-type-h1-size-mobile, var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h1-size-desktop, 48px))));
}
.luxa-block.luxa-type-v3.luxa-block-products .luxa-block-products__copy .luxa-block__heading {
  font-size: var(--luxa-type-override-heading-size-mobile, var(--luxa-type-h2-size-mobile, var(--luxa-type-override-heading-size-desktop, var(--luxa-type-h2-size-desktop, 34px))));
}
.luxa-block.luxa-type-v3 .luxa-block__body,
.luxa-block.luxa-type-v3 .luxa-block-product__description {
  font-size: var(--luxa-type-override-body-size-mobile, var(--luxa-type-body-size-mobile, var(--luxa-type-override-body-size-desktop, var(--luxa-type-body-size-desktop, 16px))));
}
.luxa-block.luxa-type-v3 .luxa-block__eyebrow,
.luxa-block.luxa-type-v3 .luxa-block-partners__label {
  font-size: var(--luxa-type-override-label-size-mobile, var(--luxa-type-label-size-mobile, var(--luxa-type-override-label-size-desktop, var(--luxa-type-label-size-desktop, 12px))));
}
.luxa-block.luxa-type-v3 .luxa-block__button,
.luxa-block.luxa-type-v3 .luxa-block-product__link-text {
  font-size: var(--luxa-type-override-button-size-mobile, var(--luxa-type-button-size-mobile, var(--luxa-type-override-button-size-desktop, var(--luxa-type-button-size-desktop, 14px))));
}
.luxa-block.luxa-type-v3 .luxa-block-category__title {
  font-size: var(--luxa-type-override-card-size-mobile, var(--luxa-type-h3-size-mobile, var(--luxa-type-override-card-size-desktop, var(--luxa-type-h3-size-desktop, 30px))));
}
.luxa-block.luxa-type-v3 .luxa-block-product h3 {
  font-size: var(--luxa-type-override-card-size-mobile, var(--luxa-type-h3-size-mobile, var(--luxa-type-override-card-size-desktop, var(--luxa-type-h3-size-desktop, 16px))));
}
}


/* Preserve existing gold-CTA contrast. Global button color is optional. */
.luxa-block.luxa-type-v3 .luxa-block__button:not(.luxa-block__button--secondary) {
  color: var(--luxa-type-override-button-color, var(--luxa-type-button-color, #211a14));
}
.luxa-block.luxa-type-v3 .luxa-block__button--secondary {
  color: var(--luxa-type-override-button-color, var(--luxa-type-button-color, inherit));
}


/* Old editorial serif selectors used four class components and could outrank
   the new generic selector. Give H2 blocks the same direct specificity while
   explicitly excluding the Hero (H1) and product carousel (dedicated H2). */
.luxa-block.luxa-type-v3:not(.luxa-block-hero):not(.luxa-block-products) .luxa-block__heading {
  font-family: var(--luxa-type-override-heading-font, var(--luxa-type-h2-font, var(--luxa-font-heading, var(--luxa-font-body, system-ui, sans-serif))));
}


/* ──────────────────────────────────────────────────────────────────────────
   Productcarrousel V4 — opt-in PREMIUM EDITORIAL collection presentation.
   Scoped to this preset; existing framed/minimal layouts remain unchanged.
   Photos may be WooCommerce packshots or optional per-product Media Library
   lifestyle photos, without changing the underlying products/catalog images.
   ────────────────────────────────────────────────────────────────────────── */
.luxa-block-products--image-wide .luxa-block-product__image { aspect-ratio: 16 / 9; }
.luxa-block-products--editorial {
    --luxa-products-card-border: rgb(219 187 145 / .23);
    --luxa-products-editorial-ink: #241e19;
    background:
        radial-gradient(ellipse 65% 65% at 50% -25%, rgb(134 90 52 / .18), transparent 70%),
        linear-gradient(150deg, #211915 0%, #281b16 52%, #1d1714 100%);
    color: #f8f0e5;
}
.luxa-block-products--editorial .luxa-block-products__copy .luxa-block__eyebrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    color: #e4be7e;
    letter-spacing: .18em;
}
.luxa-block-products--editorial.luxa-block-products--heading-center .luxa-block-products__copy .luxa-block__eyebrow::before,
.luxa-block-products--editorial.luxa-block-products--heading-center .luxa-block-products__copy .luxa-block__eyebrow::after {
    content: "";
    display: inline-block;
    vertical-align: middle;
    width: clamp(24px, 3.2vw, 56px);
    height: 1px;
    background: linear-gradient(90deg, transparent, #d3a45c);
}
.luxa-block-products--editorial.luxa-block-products--heading-center .luxa-block-products__copy .luxa-block__eyebrow::after {
    transform: rotate(180deg);
}
.luxa-block-products--editorial .luxa-block-products__copy .luxa-block__heading {
    font-family: var(--luxa-type-override-heading-font, Georgia, "Times New Roman", serif);
    font-weight: var(--luxa-type-override-heading-weight, 600);
    letter-spacing: -.035em;
    line-height: 1.08;
    max-width: 1120px;
    margin-top: 14px;
}
.luxa-block-products--editorial .luxa-block-products__intro {
    margin: 16px auto 0;
    max-width: 730px;
    font: 400 clamp(.91rem, 1.16vw, 1.06rem)/1.6 var(--luxa-font-body, system-ui, sans-serif);
    color: #e0d2c0;
}
.luxa-block-products--editorial.luxa-block-products--heading-left .luxa-block-products__intro {
    margin-left: 0;
}
.luxa-block-products--editorial .luxa-block-products__heading { margin-bottom: clamp(26px, 3vw, 42px); }
.luxa-block-products--editorial .luxa-block-products__controls button {
    border-color: rgb(219 174 108 / .42);
    color: #f5e8d5;
}
.luxa-block-products--editorial .luxa-block-products__controls button:hover {
    background: rgb(196 148 85 / .15);
    color: #fff;
}
.luxa-block-products--editorial .luxa-block-product {
    background: linear-gradient(165deg, #fff9f0 0%, #f2e5d5 100%);
    color: var(--luxa-products-editorial-ink);
    border: 1px solid rgb(205 167 121 / .40);
    border-radius: 18px;
    box-shadow: 0 17px 33px rgb(4 3 2 / .20);
    transition: transform .23s ease, box-shadow .23s ease;
}
.luxa-block-products--editorial .luxa-block-product:hover {
    transform: translateY(-4px);
    box-shadow: 0 24px 44px rgb(4 3 2 / .28);
}
.luxa-block-products--editorial .luxa-block-product__image,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__image,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--surface-warm .luxa-block-product__image {
    background: #e9d9c3;
    border: 0;
    border-bottom: 1px solid rgb(130 94 55 / .15);
}
.luxa-block-products--editorial .luxa-block-product__media-link {
    background: transparent;
}
.luxa-block-products--editorial .luxa-block-product__image img {
    object-fit: contain;
    padding: clamp(7px, 1vw, 14px);
    mix-blend-mode: multiply;
}
.luxa-block-products--editorial .luxa-block-product__image--editorial-photo img {
    object-fit: cover;
    padding: 0;
    mix-blend-mode: normal;
}
.luxa-block-products--editorial .luxa-block-product__details,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__details {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: clamp(18px, 1.65vw, 27px) clamp(18px, 1.65vw, 27px) 24px;
    background: linear-gradient(135deg, #fef8ee 0%, #f4e8d8 100%);
    min-height: 196px;
}
.luxa-block-products--editorial .luxa-block-product__editorial-label {
    display: inline-block;
    align-self: flex-start;
    margin-bottom: 10px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #ead0a3;
    color: #4b3219;
    font: 750 .65rem/1.2 var(--luxa-font-body, system-ui, sans-serif);
    letter-spacing: .09em;
    text-transform: uppercase;
}
.luxa-block-products--editorial .luxa-block-product h3 {
    display: block;
    max-height: none;
    overflow: visible;
    margin: 0 0 8px;
    font: var(--luxa-type-override-card-weight, 600) clamp(1.24rem, 1.65vw, 1.75rem)/1.16 var(--luxa-type-override-card-font, Georgia, "Times New Roman", serif);
    letter-spacing: -.03em;
    color: #281b15;
}
.luxa-block-products--editorial .luxa-block-product h3 a {
    color: inherit;
    text-decoration: none;
}
.luxa-block-products--editorial .luxa-block-product__description,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__description {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    max-height: 4.8em;
    margin: 0 0 18px;
    color: #65584c;
    font: 400 clamp(.82rem, .99vw, .94rem)/1.55 var(--luxa-font-body, system-ui, sans-serif);
}
.luxa-block-products--editorial .luxa-block-product__footer { margin-top: auto; align-items: flex-end; }
.luxa-block-products--editorial .luxa-block-product__link,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__link {
    color: #211914;
    padding-bottom: 8px;
    border-bottom: 2px solid #bb8e51;
    font-size: .86rem;
    font-weight: 700;
    line-height: 1.25;
}
.luxa-block-products--editorial .luxa-block-product__link-icon,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__link-icon,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--button-text .luxa-block-product__link-icon {
    width: auto;
    height: auto;
    background: transparent;
    border-radius: 0;
    color: #6c4a26;
}
.luxa-block-products--editorial .luxa-block-product__link:hover,
.luxa-block-products--editorial .luxa-block-product__link:focus-visible {
    color: #704c26;
    border-bottom-color: #80541c;
}
.luxa-block-products--editorial .luxa-block-product__link:focus-visible,
.luxa-block-products--editorial .luxa-block-product__media-link:focus-visible,
.luxa-block-products--editorial .luxa-block-product h3 a:focus-visible {
    outline: 2px solid #ae7931;
    outline-offset: 4px;
}
@media (max-width: 780px) {
    .luxa-block-products--editorial .luxa-block-product__details { min-height: 210px; }
    .luxa-block-products--editorial .luxa-block-products__heading { gap: 12px; }
    .luxa-block-products--editorial .luxa-block-products__copy .luxa-block__heading {
        font-size: clamp(2rem, 7vw, 3.2rem);
    }
}
@media (prefers-reduced-motion: reduce) {
    .luxa-block-products--editorial .luxa-block-product { transition: none; }
}


/* ── Productcarrousel V5: final editorial typography, proportions and CTAs.
   Higher specificity than shared `.luxa-type-v3` typography is intentional:
   Editorial has its own layout, with explicit user font overrides still honored.
   Keep classic and minimal cards untouched. ── */
.luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-products__copy .luxa-block__heading {
    font-family: var(--luxa-type-override-heading-font, Georgia, "Times New Roman", serif);
    font-size: var(--luxa-type-override-heading-size-desktop, clamp(2.3rem, 4vw, 3.75rem));
    font-weight: var(--luxa-type-override-heading-weight, 500);
    line-height: 1.1;
    letter-spacing: -.035em;
}
.luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-product h3 {
    font-family: var(--luxa-type-override-card-font, Georgia, "Times New Roman", serif);
    font-size: var(--luxa-type-override-card-size-desktop, clamp(1.24rem, 1.58vw, 1.75rem));
    font-weight: var(--luxa-type-override-card-weight, 600);
    line-height: 1.18;
    letter-spacing: -.028em;
    color: var(--luxa-type-override-card-color, #291e19);
    margin: 0 0 10px;
    -webkit-line-clamp: unset;
    line-clamp: unset;
    display: block;
    max-height: none;
    overflow: visible;
}
.luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-product__description,
.luxa-block.luxa-type-v3.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__description {
    font-family: var(--luxa-type-override-body-font, var(--luxa-font-body, system-ui, sans-serif));
    font-size: var(--luxa-type-override-body-size-desktop, clamp(.87rem, 1vw, 1rem));
    font-weight: var(--luxa-type-override-body-weight, 400);
    line-height: 1.48;
    color: var(--luxa-type-override-body-color, #64564b);
    margin: 0 0 2px;
    max-height: none;
    -webkit-line-clamp: 3;
    line-clamp: 3;
}
.luxa-block-products--editorial .luxa-block-product__details,
.luxa-block-products--editorial.luxa-block--dark .luxa-block-product__details {
    padding: clamp(18px, 1.5vw, 25px);
    min-height: 0;
}
.luxa-block-products--editorial .luxa-block-product__editorial-label {
    background: rgb(196 151 83 / .13);
    border: 1px solid rgb(169 120 56 / .19);
    color: #85612e;
    border-radius: 3px;
    padding: 4px 8px;
    letter-spacing: .14em;
    font-size: .62rem;
    margin-bottom: 12px;
}
.luxa-block-products--editorial .luxa-block-product__footer {
    margin-top: 18px;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.luxa-block-products--editorial .luxa-block-product__link {
    gap: 10px;
    flex: 0 0 auto;
    max-width: 100%;
}
.luxa-block-products--editorial .luxa-block-product__link-text {
    display: inline;
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
    border: 0;
}
.luxa-block-products--editorial.luxa-block-products--button-text .luxa-block-product__link,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--button-text .luxa-block-product__link {
    display: inline-flex;
    width: max-content;
    min-height: 35px;
    padding: 0 0 5px;
    background: none;
    border: 0;
    border-bottom: 1px solid #bc8c45;
    border-radius: 0;
    color: #30251b;
    font-size: .88rem;
    font-weight: 650;
    box-shadow: none;
}
.luxa-block-products--editorial.luxa-block-products--button-text .luxa-block-product__link-icon,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--button-text .luxa-block-product__link-icon {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 22px;
    border-radius: 0;
    background: transparent;
    color: #946b35;
}
.luxa-block-products--editorial.luxa-block-products--button-premium .luxa-block-product__link,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--button-premium .luxa-block-product__link {
    display: inline-flex;
    width: max-content;
    min-height: 43px;
    padding: 11px 15px 11px 18px;
    border: 1px solid #b48a4c;
    border-radius: 7px;
    background: linear-gradient(130deg, #d9bb79, #c69c56);
    color: #241c15;
    font-size: .84rem;
    font-weight: 720;
    text-decoration: none;
    box-shadow: 0 3px 10px rgb(90 61 21 / .12), inset 0 1px rgb(255 255 255 / .30);
    transition: background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.luxa-block-products--editorial.luxa-block-products--button-premium .luxa-block-product__link-icon,
.luxa-block-products--editorial.luxa-block--dark.luxa-block-products--button-premium .luxa-block-product__link-icon {
    display: inline-grid;
    place-items: center;
    width: 18px;
    height: 18px;
    background: transparent;
    color: #30231a;
}
.luxa-block-products--editorial.luxa-block-products--button-premium .luxa-block-product__link:hover,
.luxa-block-products--editorial.luxa-block-products--button-premium .luxa-block-product__link:focus-visible {
    background: linear-gradient(130deg, #ecd098, #d9b06d);
    color: #241c15;
    box-shadow: 0 6px 16px rgb(90 61 21 / .18);
    transform: translateY(-1px);
}
.luxa-block-products--editorial.luxa-block-products--button-circle .luxa-block-product__link {
    margin: 0;
    border: 0;
    padding: 0;
}
.luxa-block-products--editorial.luxa-block-products--button-circle .luxa-block-product__link-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}
.luxa-block-products--editorial.luxa-block-products--button-circle .luxa-block-product__link-icon {
    width: 42px;
    height: 42px;
    border: 1px solid #bb9254;
    background: linear-gradient(145deg, #e4c687, #cba464);
    color: #231b13;
}
@media (max-width: 780px) {
    .luxa-block-products--editorial .luxa-block-product__details,
    .luxa-block-products--editorial.luxa-block--dark .luxa-block-product__details { min-height: 0; }
    .luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-products__copy .luxa-block__heading {
        font-size: var(--luxa-type-override-heading-size-mobile, clamp(2rem, 7vw, 3.2rem));
    }
    .luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-product h3 {
        font-size: var(--luxa-type-override-card-size-mobile, clamp(1.25rem, 5vw, 1.55rem));
    }
    .luxa-block.luxa-type-v3.luxa-block-products--editorial .luxa-block-product__description {
        font-size: var(--luxa-type-override-body-size-mobile, .91rem);
    }
}
@media (prefers-reduced-motion: reduce) {
    .luxa-block-products--editorial .luxa-block-product__link { transition: none; }
}


/* Carousel navigation is progressive: arrows are visible only when the track
   actually overflows in the current viewport. Never override the hidden state
   with the generic controls display:flex or button display:grid rules. */
.luxa-block-products .luxa-block-products__controls[hidden],
.luxa-block-products .luxa-block-products__controls button[hidden] {
    display: none !important;
}
@media (max-width: 780px) {
    /* Existing touch swipe remains available; show arrows only if needed. */
    .luxa-block-products.luxa-block-products--can-scroll .luxa-block-products__controls:not([hidden]) {
        display: flex;
    }
}
