/*
 * LuxaLife Gutenberg — Featured review cards.
 *
 * This is intentionally scoped to luxalife/reviews only. Reviews Hub owns the
 * real testimonials/shortcode; the theme owns the block design in BOTH the
 * iframe editor and storefront. Other Reviews Hub shortcodes are unchanged.
 * No JS carousel library: native horizontal touch/trackpad scroll + snap.
 */
.luxa-block-reviews .luxa-block-reviews__viewport {
    min-width: 0;
    width: 100%;
}
.luxa-block-reviews .luxa-block-reviews__viewport:focus-visible {
    outline: 2px solid #b78b4c;
    outline-offset: 4px;
    border-radius: 14px;
}
.luxa-block-reviews .luxa-featured {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: clamp(16px, 1.9vw, 24px);
    width: 100%;
    margin: 0;
    padding: 0;
}
.luxa-block-reviews .luxa-featured__card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: clamp(24px, 2.45vw, 34px);
    border: 1px solid rgb(129 103 68 / .17);
    border-radius: 18px;
    background: #fffdfa;
    box-shadow: 0 10px 32px rgb(46 30 14 / .055);
    color: #28231d;
    overflow-wrap: anywhere;
}
.luxa-block-reviews.luxa-block--warm .luxa-featured__card {
    background: #fffcf7;
    border-color: rgb(128 103 77 / .18);
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__card {
    background: #332b24;
    border-color: rgb(230 203 163 / .2);
    box-shadow: 0 12px 32px rgb(0 0 0 / .16);
    color: #f8f2e9;
}
.luxa-block-reviews .luxa-featured__stars {
    margin: 0 0 22px;
    color: #aa762e;
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .13em;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__stars {
    color: #e2c27d;
}
.luxa-block-reviews .luxa-featured__card h3 {
    margin: 0 0 13px;
    color: var(--luxa-type-override-card-color, var(--luxa-type-h3-color, #28231d));
    font-family: var(--luxa-type-override-card-font, var(--luxa-type-h3-font, var(--luxa-font-heading, Georgia, serif)));
    font-size: var(--luxa-type-override-card-size-desktop, var(--luxa-type-h3-size-desktop, 21px));
    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.28));
    letter-spacing: var(--luxa-type-override-card-tracking, var(--luxa-type-h3-tracking, -.025em));
    overflow-wrap: anywhere;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__card h3 {
    color: var(--luxa-type-override-card-color, var(--luxa-type-h3-color, #f8f2e9));
}
.luxa-block-reviews .luxa-featured__card blockquote {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0 0 26px;
    padding: 0;
    border: 0;
    color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, #51473e));
    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, 16px));
    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.72));
    letter-spacing: var(--luxa-type-override-body-tracking, var(--luxa-type-body-tracking, normal));
    overflow-wrap: anywhere;
    text-align: start;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__card blockquote {
    color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, #e0d4c5));
}
.luxa-block-reviews .luxa-featured__meta {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-top: auto;
    padding-top: 18px;
    border-top: 1px solid rgb(104 86 62 / .16);
    font-family: var(--luxa-type-body-font, var(--luxa-font-body, system-ui, sans-serif));
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__meta {
    border-color: rgb(228 200 162 / .22);
}
.luxa-block-reviews .luxa-featured__meta strong {
    flex: 0 0 100%;
    color: #2f2820;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.4;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__meta strong {
    color: #f6efe5;
}
.luxa-block-reviews .luxa-featured__meta span {
    min-width: 0;
    color: #736659;
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__meta span {
    color: #d9c9b5;
}
.luxa-block-reviews .luxa-featured__meta small {
    margin: 0 0 0 auto;
    color: #927d63;
    font-size: 11px;
    line-height: 1.5;
    white-space: nowrap;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__meta small {
    color: #d0b890;
}
.luxa-block-reviews .luxa-featured__card > a {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    gap: 6px;
    margin: 16px 0 0;
    padding: 0;
    color: var(--luxa-type-override-button-color, var(--luxa-type-button-color, #90682f));
    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, 13px));
    font-weight: var(--luxa-type-override-button-weight, var(--luxa-type-button-weight, 750));
    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));
    text-decoration: none;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__card > a {
    color: var(--luxa-type-override-button-color, var(--luxa-type-button-color, #e5c584));
}
.luxa-block-reviews .luxa-featured__card > a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}
.luxa-block-reviews .luxa-featured__card > a:focus-visible {
    outline: 2px solid #b78b4c;
    outline-offset: 5px;
    border-radius: 2px;
}
.luxa-block-reviews .luxa-featured__empty {
    padding: 36px 28px;
    border: 1px dashed #c6b392;
    border-radius: 14px;
    background: rgb(255 253 249 / .65);
    color: #6a5b49;
    text-align: center;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured__empty {
    background: #332b24;
    border-color: #877155;
    color: #e6d6c5;
}
/* Reduce desktop card count without creating narrow content columns. */
@media (min-width: 781px) and (max-width: 1080px) {
    .luxa-block-reviews .luxa-featured {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
/* A native swipe track: one card plus a visible peek of the next card.
 * The containing viewport owns scrolling, so cards never stack vertically.
 */
@media (max-width: 780px) {
    .luxa-block-reviews .luxa-block-reviews__viewport {
        overflow-x: auto;
        overflow-y: hidden;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: 4px;
        touch-action: pan-x pan-y;
        padding: 3px 4px 20px;
        scrollbar-width: thin;
        scrollbar-color: #bb9e70 transparent;
    }
    .luxa-block-reviews .luxa-featured {
        display: grid;
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: calc(100% - 44px);
        align-items: stretch;
        gap: 14px;
    }
    .luxa-block-reviews .luxa-featured__card {
        scroll-snap-align: start;
        scroll-snap-stop: normal;
        padding: clamp(22px, 5.4vw, 28px);
        border-radius: 16px;
    }
    .luxa-block-reviews .luxa-featured__stars {
        margin-bottom: 18px;
    }
    .luxa-block-reviews .luxa-featured__card 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, 19px))));
    }
    .luxa-block-reviews .luxa-featured__card blockquote {
        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, 15px))));
    }
    .luxa-block-reviews .luxa-featured__card > a {
        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, 13px))));
    }
}
@media (max-width: 360px) {
    .luxa-block-reviews .luxa-featured {
        grid-auto-columns: calc(100% - 30px);
        gap: 12px;
    }
}


/*
 * Compact featured reviews — opt-in via Reviews Hub shortcode layout="compact".
 * Scope deliberately includes the Gutenberg block and the explicit compact
 * shortcode class: unrelated testimonial shortcodes retain their original
 * presentation. Short cards have natural height; opening one review does NOT
 * stretch all its neighbors to full height.
 */
.luxa-block-reviews .luxa-featured--compact {
    align-items: start;
    gap: clamp(16px, 1.8vw, 24px);
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__card {
    align-self: start;
    height: auto;
    min-height: 0;
    padding: clamp(22px, 2.1vw, 30px);
    border-radius: 28px;
    box-shadow: 0 10px 28px rgb(46 30 14 / .05);
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    min-width: 0;
    gap: 10px 14px;
    margin: 0 0 14px;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__stars {
    flex: 0 0 auto;
    margin: 0;
    color: #c48c26;
    font-size: 25px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .025em;
    white-space: nowrap;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact .luxa-featured__stars {
    color: #efc56b;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__source,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__source-label {
    margin: 0 0 0 auto;
    color: #786c5e;
    font: 500 12px/1.4 var(--luxa-font-body, system-ui, sans-serif);
    white-space: nowrap;
    text-decoration: none;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__source:hover {
    color: #8b611f;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact :where(.luxa-featured__source, .luxa-featured__source-label) {
    color: #e4cda8;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__card h3 {
    margin: 0 0 10px;
    font-size: var(--luxa-type-override-card-size-desktop, clamp(18px, var(--luxa-type-h3-size-desktop, 20px), 22px));
    line-height: var(--luxa-type-override-card-line-height, var(--luxa-type-h3-line-height, 1.32));
    letter-spacing: var(--luxa-type-override-card-tracking, var(--luxa-type-h3-tracking, -.02em));
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__review {
    margin: 0;
    min-width: 0;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__card blockquote,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__summary {
    display: block;
    flex: 0 1 auto;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, #51473e));
    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, 16px));
    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.6));
    letter-spacing: var(--luxa-type-override-body-tracking, var(--luxa-type-body-tracking, normal));
    overflow-wrap: anywhere;
    text-align: start;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact :where(.luxa-featured__card blockquote, .luxa-featured__summary) {
    color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, #e0d4c5));
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__summary {
    cursor: pointer;
    list-style: none;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__summary::-webkit-details-marker {
    display: none;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__summary::marker {
    content: "";
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__toggle-more,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__toggle-less {
    color: #94641e;
    font: inherit;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact :where(.luxa-featured__toggle-more, .luxa-featured__toggle-less) {
    color: #e9c989;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__toggle-less,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__details[open] .luxa-featured__excerpt,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__details[open] .luxa-featured__toggle-more {
    display: none;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__details[open] .luxa-featured__toggle-less {
    display: inline;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__details[open] .luxa-featured__full {
    margin-top: 10px;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__source:focus-visible,
.luxa-block-reviews .luxa-featured--compact .luxa-featured__summary:focus-visible {
    outline: 2px solid #b78b4c;
    outline-offset: 4px;
    border-radius: 3px;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__compact-meta {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 5px 12px;
    margin: 17px 0 0;
    padding: 0;
    border: 0;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__compact-meta strong {
    color: var(--luxa-type-override-body-color, var(--luxa-type-body-color, #28231d));
    font: 650 14px/1.5 var(--luxa-font-body, system-ui, sans-serif);
    overflow-wrap: anywhere;
}
.luxa-block-reviews .luxa-featured--compact .luxa-featured__compact-meta time {
    margin-left: auto;
    color: #756b60;
    font: 400 13px/1.5 var(--luxa-font-body, system-ui, sans-serif);
    white-space: nowrap;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact .luxa-featured__compact-meta strong {
    color: #f6efe5;
}
.luxa-block-reviews.luxa-block--dark .luxa-featured--compact .luxa-featured__compact-meta time {
    color: #d8c9b5;
}
@media (max-width: 780px) {
    .luxa-block-reviews .luxa-featured--compact .luxa-featured__card {
        padding: 20px;
        border-radius: 24px;
    }
    .luxa-block-reviews .luxa-featured--compact .luxa-featured__top {
        margin-bottom: 12px;
    }
    .luxa-block-reviews .luxa-featured--compact .luxa-featured__card h3 {
        font-size: var(--luxa-type-override-card-size-mobile, clamp(17px, var(--luxa-type-h3-size-mobile, var(--luxa-type-override-card-size-desktop, 19px)), 21px));
    }
    .luxa-block-reviews .luxa-featured--compact :where(.luxa-featured__card blockquote, .luxa-featured__summary) {
        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, 15px))));
    }
}
