body.melorin-product-page-lab-active {
    /*
     * Melorin identity palette:
     * wine / dusty rose / warm ivory, with muted sage reserved for success states.
     * Keep component colors tokenized here so future brand tuning does not require repainting selectors.
     */
    --mpp-text: #2f2529;
    --mpp-muted: #766a70;
    --mpp-border: #eadde1;
    --mpp-surface: #ffffff;
    --mpp-surface-warm: #fffafb;
    --mpp-soft: #faf2f5;
    --mpp-soft-strong: #f4e5ea;
    --mpp-primary: #842746;
    --mpp-primary-strong: #651b35;
    --mpp-primary-soft: #f8e9ee;
    --mpp-selection: #f1d8e2;
    --mpp-selection-ring: rgba(132, 39, 70, .16);
    --mpp-accent: #b65b79;
    --mpp-heading: #7b213f;
    --mpp-price: #347554;
    --mpp-success: #347554;
    --mpp-success-soft: #edf7f1;
    --mpp-danger: #a33d57;
    --mpp-danger-soft: #fceff3;
    --mpp-cta: #8f2f57;
    --mpp-cta-hover: #752441;
    --mpp-neutral-warm: #fffdfb;
    --mpp-blush-panel: #fff3f6;
    --mpp-blush-border: #e6c8d2;
    --mpp-trust-border: #e8dfdc;
    --mpp-page-gap: clamp(10px, 3vw, 32px);
    --mpp-section-gap: clamp(20px, 4vw, 42px);
}

.mpp-lab,
.mpp-lab * {
    box-sizing: border-box;
}

.mpp-lab {
    width: min(1220px, calc(100% - (var(--mpp-page-gap) * 2)));
    margin: clamp(12px, 2.4vw, 28px) auto 72px;
    direction: rtl;
    color: var(--mpp-text);
    font-size: 14px;
    line-height: 1.8;
}

.mpp-lab img {
    max-width: 100%;
    height: auto;
}

.mpp-lab button,
.mpp-lab input,
.mpp-lab select,
.mpp-lab textarea {
    max-width: 100%;
    font: inherit;
}

.mpp-lab__notice {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    margin-bottom: 18px;
    border: 1px dashed #d8c7ad;
    border-radius: 12px;
    background: #fffaf1;
    font-size: 12px;
}

.mpp-lab__notice strong {
    line-height: 1.7;
}

.mpp-lab__notice span {
    color: #765d36;
    line-height: 1.8;
}

.mpp-lab__breadcrumb {
    margin: 0 0 16px;
    overflow: hidden;
    color: var(--mpp-muted);
    font-size: 11.5px;
}

.mpp-lab__breadcrumb .woocommerce-breadcrumb {
    margin: 0;
    white-space: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}

.mpp-lab__breadcrumb .woocommerce-breadcrumb::-webkit-scrollbar {
    display: none;
}

.mpp-lab__breadcrumb a {
    color: inherit;
}

.mpp-lab__breadcrumb span {
    margin: 0 7px;
    opacity: .45;
}

/* Mobile-first: gallery and summary stack vertically. */
.mpp-lab__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    min-width: 0;
}

.mpp-lab__gallery {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "main"
        "thumbs";
    gap: 10px;
    min-width: 0;
    direction: ltr;
}

.mpp-lab__main-image-wrap {
    grid-area: main;
    min-width: 0;
    overflow: hidden;
    border: 1px solid var(--mpp-border);
    border-radius: clamp(14px, 2vw, 20px);
    background: var(--mpp-surface);
    aspect-ratio: 1 / 1;
}

.mpp-lab__main-image-wrap--empty {
    display: grid;
    place-items: center;
}

.mpp-lab__main-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: opacity .18s ease;
}

.mpp-lab__thumbs {
    grid-area: thumbs;
    display: flex;
    flex-direction: row;
    gap: 5px;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 1px 1px 3px;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
}

.mpp-lab__thumbs::-webkit-scrollbar {
    display: none;
}

.mpp-lab__thumb {
    flex: 0 0 clamp(58px, 15vw, 70px);
    width: clamp(58px, 15vw, 70px);
    aspect-ratio: 1 / 1;
    padding: 0;
    border: 0;
    border-radius: 9px;
    overflow: hidden;
    background: transparent;
    cursor: pointer;
    opacity: .78;
    transition: opacity .15s ease, border-color .15s ease, transform .15s ease;
    scroll-snap-align: start;
}

.mpp-lab__thumb:hover,
.mpp-lab__thumb.is-active {
    opacity: 1;
    box-shadow: inset 0 0 0 2px var(--mpp-primary);
}

.mpp-lab__thumb:focus-visible {
    outline: 2px solid var(--mpp-accent);
    outline-offset: 2px;
}

.mpp-lab__thumb img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mpp-lab__thumb img {
    transform: scale(1.12);
    transition: transform .16s ease;
}

.mpp-lab__thumb:hover img,
.mpp-lab__thumb.is-active img {
    transform: scale(1.17);
}

.mpp-lab__summary {
    position: static;
    min-width: 0;
    padding: 0;
}

.mpp-lab__status-row {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.mpp-lab__stock,
.mpp-lab__sku {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 4px 9px;
    border-radius: 999px;
    font-size: 10.5px;
    line-height: 1.6;
}

.mpp-lab__stock--out {
    background: var(--mpp-danger-soft);
    color: var(--mpp-danger);
}

.mpp-lab__stock--in {
    background: var(--mpp-success-soft);
    color: var(--mpp-success);
}

.mpp-lab__sku {
    background: var(--mpp-soft);
    color: var(--mpp-muted);
}

.mpp-lab__title {
    margin: 0 0 12px;
    color: var(--mpp-heading);
    font-size: clamp(20px, 4.6vw, 30px);
    line-height: 1.5;
    letter-spacing: -.25px;
    overflow-wrap: anywhere;
}

.mpp-lab__rating {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 12px;
    color: var(--mpp-muted);
    font-size: 11.5px;
}

.mpp-lab__rating .star-rating {
    margin: 0;
}

.mpp-lab__price {
    margin: 9px 0 12px;
    font-size: clamp(20px, 4.5vw, 26px);
    font-weight: 800;
    line-height: 1.7;
}

.mpp-lab__price del {
    font-size: .62em;
    opacity: .48;
    font-weight: 500;
}

.mpp-lab__price ins {
    text-decoration: none;
}

.mpp-lab__promo-hooks:empty {
    display: none;
}

.mpp-lab__promo-hooks {
    margin: 0 0 14px;
}

.mpp-lab__excerpt {
    padding-top: 14px;
    border-top: 1px solid var(--mpp-border);
    color: var(--mpp-text);
    font-size: 13.5px;
    line-height: 2;
}

.mpp-lab__excerpt p:last-child {
    margin-bottom: 0;
}

.mpp-lab__quick-specs {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin: 16px 0;
}

.mpp-lab__quick-specs > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--mpp-border);
    border-radius: 11px;
    background: var(--mpp-surface);
}

.mpp-lab__quick-specs span {
    display: block;
    margin-bottom: 3px;
    color: var(--mpp-muted);
    font-size: 10px;
}

.mpp-lab__quick-specs strong {
    display: block;
    font-size: 12px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.mpp-lab__purchase {
    min-width: 0;
    margin-top: 15px;
    padding: clamp(14px, 3vw, 18px);
    border: 1px solid var(--mpp-border);
    border-radius: 15px;
    background: var(--mpp-soft);
}

.mpp-lab__purchase form.cart,
.mpp-lab__stock-alert form {
    max-width: 100%;
    margin: 0;
}

.mpp-lab__purchase .variations {
    width: 100%;
    margin: 0 0 12px;
}

.mpp-lab__purchase .variations th,
.mpp-lab__purchase .variations td {
    padding: 6px 0;
    border: 0;
}

.mpp-lab__purchase .variations select,
.mpp-lab__stock-alert input[type="text"],
.mpp-lab__stock-alert input[type="tel"],
.mpp-lab__stock-alert input[type="email"] {
    width: 100%;
    min-height: 44px;
    border-radius: 9px;
}

.mpp-lab__purchase .single_add_to_cart_button,
.mpp-lab__stock-alert button,
.mpp-lab__stock-alert input[type="submit"] {
    max-width: 100%;
    min-height: 44px;
}

.mpp-lab__purchase .single_add_to_cart_button {
    width: 100%;
    min-height: 48px;
    border-radius: 10px;
}

.mpp-lab__purchase p.stock.out-of-stock {
    margin: 0 0 10px;
    color: var(--mpp-danger);
    font-weight: 700;
}

.mpp-lab__stock-alert {
    min-width: 0;
    margin-top: 10px;
    overflow-wrap: anywhere;
}

.mpp-lab__stock-alert table,
.mpp-lab__stock-alert .form-row,
.mpp-lab__stock-alert p {
    max-width: 100%;
}

.mpp-lab__micro-info {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin-top: 10px;
}

.mpp-lab__micro-info > div {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--mpp-border);
    border-radius: 10px;
    background: var(--mpp-surface);
}

.mpp-lab__micro-info strong {
    display: block;
    margin-bottom: 3px;
    font-size: 12px;
}

.mpp-lab__micro-info span {
    display: block;
    color: var(--mpp-muted);
    font-size: 10.5px;
    line-height: 1.75;
}

.mpp-lab__details {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    margin-top: clamp(28px, 5vw, 42px);
    align-items: start;
    min-width: 0;
}

.mpp-lab__description,
.mpp-lab__attributes,
.mpp-lab__compatibility {
    min-width: 0;
    padding: clamp(16px, 3vw, 24px);
    border: 1px solid var(--mpp-border);
    border-radius: clamp(13px, 2vw, 16px);
    background: var(--mpp-surface);
}

.mpp-lab__section-head {
    margin-bottom: 16px;
}

.mpp-lab__section-head > span {
    display: block;
    margin-bottom: 4px;
    color: var(--mpp-accent);
    font-size: 10px;
    font-weight: 800;
}

.mpp-lab__section-head h2 {
    margin: 0;
    color: var(--mpp-heading);
    font-size: clamp(19px, 3.6vw, 23px);
    line-height: 1.6;
}

.mpp-lab__content {
    max-width: 100%;
    color: var(--mpp-text);
    line-height: 2.05;
    overflow-wrap: anywhere;
}

.mpp-lab__content img,
.mpp-lab__content iframe,
.mpp-lab__content video,
.mpp-lab__content table {
    max-width: 100%;
}

.mpp-lab__content img {
    height: auto;
}

.mpp-lab__content iframe,
.mpp-lab__content video {
    width: 100%;
}

.mpp-lab__content table {
    display: block;
    overflow-x: auto;
}

.mpp-lab__content h2,
.mpp-lab__content h3 {
    margin-top: 1.7em;
}

.mpp-lab__attributes table.shop_attributes {
    width: 100%;
    margin: 0;
    border: 0;
}

.mpp-lab__attributes table.shop_attributes th,
.mpp-lab__attributes table.shop_attributes td {
    padding: 11px 8px;
    border-bottom: 1px solid var(--mpp-border);
    text-align: right;
    font-size: 12px;
}

.mpp-lab__attributes table.shop_attributes th {
    width: 34%;
    color: var(--mpp-muted);
    font-weight: 600;
}

.mpp-lab__attributes table.shop_attributes td p {
    margin: 0;
}

.mpp-lab__commerce-details {
    display: grid;
    gap: 18px;
    margin-top: clamp(24px, 4vw, 38px);
    scroll-margin-top: 92px;
}

.mpp-lab__commerce-nav {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    padding: 7px;
    border: 1px solid var(--mpp-border);
    border-radius: 16px;
    background: var(--mpp-soft);
}

.mpp-lab__commerce-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 7px 14px;
    border-radius: 11px;
    background: var(--mpp-surface);
    color: var(--mpp-heading);
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    transition: background-color .16s ease, color .16s ease, box-shadow .16s ease;
}

.mpp-lab__commerce-nav a:hover,
.mpp-lab__commerce-nav a:focus-visible {
    background: var(--mpp-primary);
    color: #fff;
    box-shadow: 0 7px 18px var(--mpp-selection-ring);
}

.mpp-lab__additional-info,
.mpp-lab__reviews {
    min-width: 0;
    padding: clamp(17px, 3vw, 26px);
    border: 1px solid var(--mpp-border);
    border-radius: clamp(16px, 2.4vw, 22px);
    background: linear-gradient(180deg, #fff 0%, var(--mpp-surface-warm) 100%);
    scroll-margin-top: 96px;
}

.mpp-lab__section-head--commerce {
    max-width: 720px;
}

.mpp-lab__section-head--commerce p {
    margin: 6px 0 0;
    color: var(--mpp-muted);
    font-size: 12px;
    line-height: 1.9;
}

.mpp-lab__attribute-table table.shop_attributes {
    display: grid;
    gap: 8px;
    width: 100%;
    margin: 0;
    border: 0;
}

.mpp-lab__attribute-table table.shop_attributes tbody {
    display: grid;
    gap: 8px;
}

.mpp-lab__attribute-table table.shop_attributes tr {
    display: grid;
    grid-template-columns: minmax(110px, .34fr) minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    padding: 12px 14px;
    border: 1px solid var(--mpp-border);
    border-radius: 12px;
    background: #fff;
}

.mpp-lab__attribute-table table.shop_attributes th,
.mpp-lab__attribute-table table.shop_attributes td {
    display: block;
    width: auto;
    padding: 0;
    border: 0;
    background: transparent;
    text-align: right;
    vertical-align: middle;
}

.mpp-lab__attribute-table table.shop_attributes th {
    color: var(--mpp-heading);
    font-size: 12px;
    font-weight: 800;
}

.mpp-lab__attribute-table table.shop_attributes td {
    color: var(--mpp-text);
    font-size: 12.5px;
    line-height: 1.9;
}

.mpp-lab__attribute-table table.shop_attributes td p {
    margin: 0;
}

.mpp-lab__reviews-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    margin-bottom: 18px;
}

.mpp-lab__reviews-score {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 3px 10px;
    align-items: center;
    width: max-content;
    max-width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--mpp-border);
    border-radius: 14px;
    background: var(--mpp-soft);
}

.mpp-lab__reviews-score > strong {
    grid-row: 1 / span 2;
    color: var(--mpp-heading);
    font-size: 24px;
    line-height: 1;
}

.mpp-lab__reviews-score .star-rating {
    margin: 0;
}

.mpp-lab__reviews-score small {
    color: var(--mpp-muted);
    font-size: 10.5px;
}

.mpp-lab__reviews-native .woocommerce-Reviews-title {
    display: none;
}

.mpp-lab__reviews-native #reviews {
    margin: 0;
}

.mpp-lab__reviews-native #comments,
.mpp-lab__reviews-native #review_form_wrapper {
    float: none;
    width: 100%;
}

.mpp-lab__reviews-native #comments ol.commentlist,
.mpp-lab__reviews-native #comments ol.commentlist.wd-grid-g {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0;
    padding: 0;
    list-style: none;
    grid-template-columns: none !important;
}

/* Console-confirmed hotfix: WoodMart review grid classes still reach the native
 * WooCommerce review markup. Product Lab owns review presentation, so force the
 * review stack back into normal block flow only inside this scoped section. */
.mpp-lab__reviews-native #comments ol.commentlist > li,
.mpp-lab__reviews-native #comments ol.commentlist > li.wd-col {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
    border: 0;
    float: none !important;
    flex: 0 0 100% !important;
    grid-column: auto !important;
}

.mpp-lab__reviews-native #comments ol.commentlist li .comment_container {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding: 14px;
    border: 1px solid var(--mpp-border);
    border-radius: 14px;
    background: #fff;
}

.mpp-lab__reviews-native #comments ol.commentlist li .comment-text,
.mpp-lab__reviews-native #comments ol.commentlist li .description {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
}

.mpp-lab__reviews-native #comments ol.commentlist li .meta {
    white-space: normal !important;
}

.mpp-lab__reviews-native #comments ol.commentlist li img.avatar {
    position: static;
    float: none;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    object-fit: cover;
}

.mpp-lab__reviews-native #comments ol.commentlist li .comment-text {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.mpp-lab__reviews-native #comments ol.commentlist li .meta {
    margin: 0 0 8px;
    color: var(--mpp-muted);
    font-size: 11px;
}

.mpp-lab__reviews-native #comments ol.commentlist li .woocommerce-review__author {
    color: var(--mpp-text);
    font-weight: 800;
}

.mpp-lab__reviews-native #comments ol.commentlist li .wd-review-icon {
    display: none !important;
}

.mpp-lab__reviews-native #comments ol.commentlist li .woocommerce-review__verified {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--mpp-success);
    font-size: 0;
    font-style: normal;
    font-weight: 800;
    vertical-align: middle;
}

.mpp-lab__reviews-native #comments ol.commentlist li .woocommerce-review__verified::before {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--mpp-success);
    color: #fff;
    content: "✓";
    font-size: 10px;
    line-height: 1;
}

.mpp-lab__reviews-native #comments ol.commentlist li .woocommerce-review__verified::after {
    color: var(--mpp-success);
    content: "خریدار محصول";
    font-size: 11px;
    line-height: 1.5;
}

.mpp-lab__reviews-native #comments ol.commentlist li .description p:last-child {
    margin-bottom: 0;
}

.mpp-lab__reviews-native .star-rating {
    margin: 1px 0 7px;
}

.mpp-lab__reviews-native #review_form_wrapper {
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid var(--mpp-border);
}

.mpp-lab__reviews-native #reply-title {
    display: block;
    margin-bottom: 12px;
    color: var(--mpp-heading);
    font-size: 17px;
    font-weight: 800;
}

.mpp-lab__reviews-native .comment-form {
    display: grid;
    gap: 12px;
    margin: 0;
}

.mpp-lab__reviews-native .comment-form p {
    margin: 0;
}

.mpp-lab__reviews-native .comment-form label {
    display: block;
    margin-bottom: 5px;
    color: var(--mpp-text);
    font-size: 11px;
    font-weight: 700;
}

.mpp-lab__reviews-native .comment-form input[type="text"],
.mpp-lab__reviews-native .comment-form input[type="email"],
.mpp-lab__reviews-native .comment-form textarea {
    width: 100%;
    min-height: 42px;
    padding: 10px 12px;
    border: 1px solid var(--mpp-border);
    border-radius: 11px;
    background: #fff;
    color: var(--mpp-text);
    outline: none;
    transition: border-color .16s ease, box-shadow .16s ease;
}

.mpp-lab__reviews-native .comment-form textarea {
    min-height: 120px;
    resize: vertical;
}

.mpp-lab__reviews-native .comment-form input:focus,
.mpp-lab__reviews-native .comment-form textarea:focus {
    border-color: var(--mpp-primary);
    box-shadow: 0 0 0 3px var(--mpp-selection-ring);
}

.mpp-lab__reviews-native .comment-form .submit {
    min-height: 42px;
    padding: 9px 18px;
    border: 0;
    border-radius: 11px;
    background: var(--mpp-cta);
    color: #fff;
    font-weight: 800;
    cursor: pointer;
    transition: background-color .16s ease, transform .16s ease;
}

.mpp-lab__reviews-native .comment-form .submit:hover,
.mpp-lab__reviews-native .comment-form .submit:focus-visible {
    background: var(--mpp-cta-hover);
    transform: translateY(-1px);
}

.mpp-lab__reviews-native .comment-form-rating {
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--mpp-soft);
}

.mpp-lab__reviews-native .comment-form-rating .stars {
    margin: 0;
}

.mpp-lab__reviews-native .comment-form-rating .stars span {
    display: inline-flex;
    gap: 4px;
    direction: ltr;
    vertical-align: middle;
}

.mpp-lab__reviews-native .comment-form-rating .stars a {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    overflow: hidden;
    color: #d8d0d3;
    font-size: 0;
    line-height: 1;
    text-decoration: none;
    border-radius: 8px;
    transition: color .14s ease, background-color .14s ease, transform .14s ease, box-shadow .14s ease;
}

.mpp-lab__reviews-native .comment-form-rating .stars a::before {
    content: "★";
    font-size: 26px;
    line-height: 1;
}

.mpp-lab__reviews-native .comment-form-rating .stars a:hover,
.mpp-lab__reviews-native .comment-form-rating .stars a:focus-visible,
.mpp-lab__reviews-native .comment-form-rating .stars a:has(~ a:hover),
.mpp-lab__reviews-native .comment-form-rating .stars a:has(~ a:focus-visible),
.mpp-lab__reviews-native .comment-form-rating .stars a.active,
.mpp-lab__reviews-native .comment-form-rating .stars a:has(~ a.active) {
    color: #f2b600;
}

.mpp-lab__reviews-native .comment-form-rating .stars a:hover {
    transform: translateY(-1px) scale(1.04);
}

.mpp-lab__reviews-native .comment-form-rating .stars a:focus-visible {
    outline: 0;
    background: #fff;
    box-shadow: 0 0 0 3px var(--mpp-selection-ring);
}

@media (max-width: 640px) {
    .mpp-lab__commerce-nav a {
        flex: 1 1 calc(50% - 4px);
    }

    .mpp-lab__attribute-table table.shop_attributes tr {
        grid-template-columns: minmax(0, 1fr);
        gap: 3px;
    }

    .mpp-lab__reviews-native #comments ol.commentlist li .comment_container {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 9px;
        padding: 12px;
    }

    .mpp-lab__reviews-native #comments ol.commentlist li img.avatar {
        width: 36px;
        height: 36px;
    }
}

.mpp-lab__compatibility {
    margin-top: 20px;
    background: var(--mpp-soft);
}

.mpp-lab__compat-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.mpp-lab__compat-grid > div {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--mpp-border);
    border-radius: 11px;
    background: var(--mpp-surface);
}

.mpp-lab__compat-grid strong {
    display: block;
    margin-bottom: 5px;
    font-size: 12px;
}

.mpp-lab__compat-grid span {
    display: block;
    color: var(--mpp-muted);
    font-size: 10.5px;
    line-height: 1.8;
}

.mpp-lab__oos-head {
    margin-bottom: 13px;
}

.mpp-lab__oos-head strong {
    display: block;
    margin-bottom: 4px;
    color: var(--mpp-danger);
    font-size: 14px;
}

.mpp-lab__oos-head span {
    display: block;
    color: var(--mpp-muted);
    font-size: 11px;
    line-height: 1.8;
}

.mpp-lab__variation-preview {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.mpp-lab__variation-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--mpp-border);
    border-radius: 10px;
    background: var(--mpp-surface);
}

.mpp-lab__variation-chip strong {
    font-size: 11px;
}

.mpp-lab__variation-chip small {
    font-size: 9px;
    color: var(--mpp-muted);
}

.mpp-lab__variation-chip.is-out {
    opacity: .62;
}

.mpp-lab__variation-chip.is-out small {
    color: var(--mpp-danger);
}

.mpp-lab__variation-chip.is-in small {
    color: var(--mpp-success);
}

.mpp-lab__attribute-list {
    border-top: 1px solid var(--mpp-border);
}

.mpp-lab__attribute-row {
    display: grid;
    grid-template-columns: minmax(72px, 28%) minmax(0, 1fr);
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--mpp-border);
    align-items: start;
}

.mpp-lab__attribute-row span {
    color: var(--mpp-muted);
    font-size: 11px;
}

.mpp-lab__attribute-row strong {
    min-width: 0;
    font-size: 12px;
    line-height: 1.8;
    font-weight: 600;
    overflow-wrap: anywhere;
}

/* Small phones: keep third-party stock-alert controls from squeezing side-by-side. */
@media (max-width: 520px) {
    .mpp-lab__stock-alert form,
    .mpp-lab__stock-alert .form-row {
        min-width: 0;
    }

    .mpp-lab__stock-alert input,
    .mpp-lab__stock-alert button,
    .mpp-lab__stock-alert .button {
        max-width: 100%;
    }
}

/* Large phones / portrait tablets. */
@media (min-width: 600px) {
    .mpp-lab__notice {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 12px;
    }

    .mpp-lab__notice strong {
        white-space: nowrap;
    }

    .mpp-lab__quick-specs {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mpp-lab__micro-info {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mpp-lab__compat-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Landscape tablet / small desktop: real two-column product hero. */
@media (min-width: 900px) {
    .mpp-lab__hero {
        grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
        gap: clamp(24px, 3.2vw, 44px);
    }

    .mpp-lab__gallery {
        grid-template-columns: minmax(0, 1fr) clamp(70px, 6vw, 84px);
        grid-template-areas: "main thumbs";
        gap: 12px;
        align-items: start;
    }

    .mpp-lab__thumbs {
        flex-direction: column;
        gap: 9px;
        max-height: min(720px, calc(100vh - 150px));
        overflow-x: hidden;
        overflow-y: auto;
        padding: 1px 3px 1px 1px;
        scroll-snap-type: y proximity;
        touch-action: pan-y;
    }

    .mpp-lab__thumb {
        flex: 0 0 auto;
        width: 100%;
        aspect-ratio: 1 / 1;
        scroll-snap-align: start;
    }

    .mpp-lab__summary {
        position: sticky;
        top: clamp(16px, 2vw, 28px);
        padding: 6px 0;
    }

    .mpp-lab__details {
        grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
        gap: 22px;
    }
}

/* Wide desktop: four-column lab cards and slightly calmer type scaling. */
@media (min-width: 1180px) {
    .mpp-lab__compat-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Fixed mobile navigation can overlap the last part of the lab page. */
@media (max-width: 767px) {
    .mpp-lab {
        margin-bottom: 0;
        padding-bottom: calc(92px + env(safe-area-inset-bottom));
    }
}


/* 0.1.2 responsive polish */
.mpp-lab__stock-alert .melorin-stock-alert {
    width: 100%;
    max-width: none;
    margin: 14px 0 0;
}

.mpp-lab__stock-alert .melorin-stock-alert__content {
    min-width: 0;
}

.mpp-lab__stock-alert .melorin-stock-alert__controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    align-items: stretch;
}

.mpp-lab__stock-alert .melorin-stock-alert__controls input[type="tel"] {
    width: 100%;
    min-width: 0;
}

.mpp-lab__stock-alert .melorin-stock-alert__submit {
    min-width: 112px;
}

@media (max-width: 599px) {
    .mpp-lab {
        width: min(100% - 14px, 1220px);
    }

    .mpp-lab__notice {
        margin-bottom: 14px;
        padding: 11px 12px;
    }

    .mpp-lab__breadcrumb {
        margin-bottom: 12px;
    }

    .mpp-lab__hero {
        gap: 16px;
    }

    .mpp-lab__title {
        margin-bottom: 8px;
        font-size: clamp(23px, 6vw, 30px);
    }

    .mpp-lab__rating {
        margin-bottom: 9px;
    }

    .mpp-lab__quick-specs {
        margin: 12px 0;
        gap: 7px;
    }

    .mpp-lab__quick-specs > div {
        padding: 10px 11px;
    }

    .mpp-lab__purchase {
        margin-top: 12px;
        padding: 13px;
    }

    .mpp-lab__variation-preview {
        margin-bottom: 11px;
    }

    .mpp-lab__micro-info {
        margin-top: 8px;
    }

    .mpp-lab__details {
        margin-top: 22px;
        gap: 14px;
    }

    .mpp-lab__description,
    .mpp-lab__attributes,
    .mpp-lab__compatibility {
        padding: 15px 14px;
    }

    .mpp-lab__section-head {
        margin-bottom: 12px;
    }

    .mpp-lab__compatibility {
        margin-top: 16px;
    }

    .mpp-lab__compat-grid {
        gap: 8px;
    }

    .mpp-lab__stock-alert .melorin-stock-alert {
        gap: 10px;
        padding: 14px;
    }

    .mpp-lab__stock-alert .melorin-stock-alert__controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .mpp-lab__stock-alert .melorin-stock-alert__submit {
        width: 100%;
        min-width: 0;
    }
}

@media (max-width: 767px) {
    .mpp-lab {
        padding-bottom: calc(126px + env(safe-area-inset-bottom));
    }
}

@media (min-width: 600px) and (max-width: 899px) {
    .mpp-lab__hero {
        gap: 26px;
    }

    .mpp-lab__gallery {
        width: min(100%, 680px);
        margin-inline: auto;
    }

    .mpp-lab__summary {
        width: min(100%, 680px);
        margin-inline: auto;
    }

    .mpp-lab__details {
        gap: 16px;
    }
}

@media (min-width: 900px) {
    .mpp-lab__hero {
        align-items: start;
    }

    .mpp-lab__main-image-wrap {
        max-height: min(680px, calc(100vh - 130px));
    }

    .mpp-lab__main-image {
        object-fit: contain;
    }
}


/* 0.2.0 purchase-core parity */
.mpp-lab__buy-head {
    margin-bottom: 14px;
}

.mpp-lab__buy-head strong {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.mpp-lab__buy-head span {
    display: block;
    color: var(--mpp-muted);
    font-size: 11px;
    line-height: 1.8;
}

.mpp-lab__variation-form {
    width: 100%;
}

.mpp-lab__variation-fields {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
}

.mpp-lab__variation-field {
    min-width: 0;
}

.mpp-lab__variation-field label {
    display: block;
    margin-bottom: 6px;
    color: var(--mpp-muted);
    font-size: 11px;
    font-weight: 700;
}

.mpp-lab__variation-field select {
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding-inline: 12px 36px;
    border: 1px solid var(--mpp-border);
    border-radius: 10px;
    background-color: #fff;
}

.mpp-lab__reset-variations {
    display: inline-flex;
    margin: 8px 0 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--mpp-accent);
    font-size: 10.5px;
    cursor: pointer;
}

.mpp-lab__variation-form .single_variation_wrap {
    margin-top: 12px;
}

.mpp-lab__variation-form .woocommerce-variation {
    margin-bottom: 10px;
}

.mpp-lab__variation-form .woocommerce-variation-description p:last-child {
    margin-bottom: 0;
}

.mpp-lab__variation-form .woocommerce-variation-price {
    font-size: 18px;
    font-weight: 800;
}

.mpp-lab__variation-form .woocommerce-variation-availability {
    margin-top: 5px;
}

.mpp-lab__variation-form .woocommerce-variation-availability .stock {
    margin: 0;
    font-size: 11px;
    font-weight: 700;
}

.mpp-lab__cart-row {
    display: grid;
    grid-template-columns: minmax(92px, 118px) minmax(0, 1fr);
    gap: 9px;
    align-items: stretch;
}

.mpp-lab__cart-row .quantity {
    width: 100%;
    margin: 0;
}

.mpp-lab__cart-row .quantity .qty {
    width: 100%;
    min-height: 48px;
    margin: 0;
    border-radius: 10px;
}

.mpp-lab__cart-row .single_add_to_cart_button {
    margin: 0;
}

.mpp-lab__variation-form .single_add_to_cart_button.disabled {
    opacity: .52;
    cursor: not-allowed;
}

.mpp-lab__variation-stock-alert .melorin-stock-alert[hidden] {
    display: none !important;
}

@media (min-width: 600px) {
    .mpp-lab__variation-fields {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 599px) {
    .mpp-lab__cart-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .mpp-lab__cart-row .quantity {
        max-width: 120px;
    }
}


@media (min-width: 600px) {
    .mpp-lab__quick-specs {
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    }
}


/* 0.2.1: Woo variation JS requires selects inside an element with .variations. */
.mpp-lab__purchase .variations.mpp-lab__variation-fields {
    display: grid;
    width: 100%;
    margin: 0;
    border: 0;
}


/* 0.2.2: avoid colliding with Melorin Stock Alert's own .melorin-stock-alert--variation selector. */
.mpp-lab__variation-stock-alert {
    margin-top: 12px;
}


/* 0.3.0 related products */
.mpp-lab__related {
    margin-top: clamp(24px, 5vw, 42px);
    padding: clamp(16px, 3vw, 24px);
    border: 1px solid var(--mpp-border);
    border-radius: clamp(13px, 2vw, 16px);
    background: var(--mpp-surface);
}

.mpp-lab__section-head--related p {
    margin: 7px 0 0;
    color: var(--mpp-muted);
    font-size: 11px;
    line-height: 1.85;
}

.mpp-lab__related-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.mpp-lab__related-card {
    display: flex;
    min-width: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid var(--mpp-border);
    border-radius: 12px;
    background: var(--mpp-surface);
}

.mpp-lab__related-image {
    display: block;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: var(--mpp-soft);
}

.mpp-lab__related-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.mpp-lab__related-card:hover .mpp-lab__related-image img {
    transform: scale(1.025);
}

.mpp-lab__related-body {
    display: flex;
    flex: 1;
    min-width: 0;
    flex-direction: column;
    padding: 10px;
}

.mpp-lab__related-body h3 {
    display: -webkit-box;
    min-height: 4.65em;
    max-height: 4.65em;
    margin: 0 0 7px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    font-size: 11.5px;
    line-height: 1.55;
    font-weight: 700;
}

.mpp-lab__related-body h3 a {
    color: var(--mpp-heading);
    text-decoration: none;
}

.mpp-lab__related-rating {
    display: flex;
    min-height: 18px;
    align-items: center;
    margin-bottom: 5px;
    transform-origin: right center;
}

.mpp-lab__related-rating-placeholder {
    display: block;
    width: 1px;
    height: 18px;
}

.mpp-lab__related-price {
    min-height: 2.1em;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.7;
}

.mpp-lab__related-link {
    display: inline-flex;
    margin-top: auto;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 38px;
    padding: 7px 10px;
    border: 1px solid var(--mpp-border);
    border-radius: 9px;
    color: var(--mpp-heading);
    background: var(--mpp-soft);
    text-decoration: none;
    font-size: 10.5px;
    font-weight: 700;
}

@media (min-width: 600px) {
    .mpp-lab__related-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (min-width: 900px) {
    .mpp-lab__related-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 13px;
    }

    .mpp-lab__related-body {
        padding: 11px;
    }
}

@media (min-width: 1180px) {
    .mpp-lab__related-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}


/* 0.3.1 related card polish */
@media (max-width: 599px) {
    .mpp-lab__related-body h3 {
        min-height: 4.95em;
        max-height: 4.95em;
        line-height: 1.65;
    }
}


/* 0.3.2 Melorin visual identity */
.mpp-lab__price,
.mpp-lab__related-price {
    color: var(--mpp-price);
}

.mpp-lab__purchase {
    background: var(--mpp-surface-warm);
}

.mpp-lab__quick-specs > div,
.mpp-lab__micro-info > div,
.mpp-lab__description,
.mpp-lab__attributes,
.mpp-lab__related,
.mpp-lab__related-card {
    background: var(--mpp-surface);
}

.mpp-lab__purchase .variations select,
.mpp-lab__stock-alert input[type="text"],
.mpp-lab__stock-alert input[type="tel"],
.mpp-lab__stock-alert input[type="email"] {
    border-color: var(--mpp-border);
    background-color: var(--mpp-surface);
}

.mpp-lab__purchase .variations select:focus,
.mpp-lab__stock-alert input:focus {
    border-color: var(--mpp-accent);
    outline: 2px solid var(--mpp-primary-soft);
    outline-offset: 1px;
}

.mpp-lab__purchase .single_add_to_cart_button:not(.disabled),
.mpp-lab__stock-alert .melorin-stock-alert__submit {
    border-color: var(--mpp-primary) !important;
    background: var(--mpp-primary) !important;
    color: #fff !important;
    box-shadow: none;
}

.mpp-lab__purchase .single_add_to_cart_button:not(.disabled):hover,
.mpp-lab__purchase .single_add_to_cart_button:not(.disabled):focus-visible,
.mpp-lab__stock-alert .melorin-stock-alert__submit:hover,
.mpp-lab__stock-alert .melorin-stock-alert__submit:focus-visible {
    border-color: var(--mpp-primary-strong) !important;
    background: var(--mpp-primary-strong) !important;
}

.mpp-lab__variation-form .single_add_to_cart_button.disabled {
    border-color: var(--mpp-border) !important;
    background: var(--mpp-soft-strong) !important;
    color: var(--mpp-muted) !important;
}

.mpp-lab__related-link {
    border-color: var(--mpp-border);
    background: var(--mpp-primary-soft);
    color: var(--mpp-primary);
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}

.mpp-lab__related-link:hover,
.mpp-lab__related-link:focus-visible {
    border-color: var(--mpp-primary);
    background: var(--mpp-primary);
    color: #fff;
}

.mpp-lab__related-body h3 a:hover,
.mpp-lab__related-body h3 a:focus-visible,
.mpp-lab__breadcrumb a:hover,
.mpp-lab__breadcrumb a:focus-visible {
    color: var(--mpp-primary);
}

.mpp-lab__related-card:hover {
    border-color: #d8bdc6;
}

.mpp-lab__section-head > span {
    color: var(--mpp-accent);
}

.mpp-lab__stock-alert .melorin-stock-alert {
    border-color: #e7ccd5;
    background: var(--mpp-surface-warm);
}


/* 0.4.0 variation swatches and mobile purchase polish */
.mpp-lab__variation-form.is-swatch-ready .mpp-lab__native-variation-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.mpp-lab__swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    min-width: 0;
}

.mpp-lab__swatch {
    display: inline-flex;
    min-width: 52px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 7px 12px;
    border: 1px solid var(--mpp-border);
    border-radius: 11px;
    background: var(--mpp-surface);
    color: var(--mpp-text);
    font-weight: 650;
    cursor: pointer;
    transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.mpp-lab__swatch:hover:not(:disabled) {
    border-color: var(--mpp-accent);
    background: var(--mpp-surface-warm);
}

.mpp-lab__swatch.is-selected {
    border-color: var(--mpp-primary);
    background: var(--mpp-primary-soft);
    box-shadow: inset 0 0 0 1px var(--mpp-primary);
    color: var(--mpp-primary-strong);
}

.mpp-lab__swatch.is-disabled,
.mpp-lab__swatch:disabled {
    opacity: .34;
    cursor: not-allowed;
}

.mpp-lab__swatch-dot {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    border: 1px solid rgba(47, 37, 41, .16);
    border-radius: 999px;
    background: var(--mpp-swatch-color, var(--mpp-soft-strong));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}

.mpp-lab__swatch-label {
    line-height: 1.4;
}

.mpp-lab__swatches--color {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
}

.mpp-lab__swatches--color .mpp-lab__swatch {
    width: 100%;
    min-width: 0;
}

.mpp-lab__variation-form .woocommerce-variation-add-to-cart.variations_button {
    width: 100%;
    clear: both;
}

@media (max-width: 599px) {
    .mpp-lab__variation-fields {
        gap: 15px;
    }

    .mpp-lab__variation-field label {
        margin-bottom: 8px;
    }

    .mpp-lab__swatches {
        gap: 6px;
    }

    .mpp-lab__swatch {
        min-height: 44px;
        padding: 8px 11px;
    }

    .mpp-lab__swatches--color .mpp-lab__swatch {
        min-width: calc(50% - 3px);
    }

    .mpp-lab__variation-form .woocommerce-variation-add-to-cart.variations_button {
        display: block !important;
        float: none !important;
    }

    .mpp-lab__variation-form .mpp-lab__cart-row {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 9px !important;
        width: 100%;
    }

    .mpp-lab__variation-form .mpp-lab__cart-row .quantity {
        float: none !important;
        width: min(150px, 100%) !important;
        max-width: 100% !important;
        margin: 0 !important;
    }

    .mpp-lab__variation-form .mpp-lab__cart-row .single_add_to_cart_button {
        float: none !important;
        width: 100% !important;
        min-height: 52px;
        margin: 0 !important;
        padding-inline: 14px;
        font-size: 13px;
    }

    .mpp-lab__thumbs {
        gap: 5px;
        padding-inline: 0;
    }
}


/* 0.4.1 swatch stability */
.mpp-lab__variation-form .single_variation {
    min-height: 34px;
    display: flex;
    align-items: center;
}

.mpp-lab__variation-form .woocommerce-variation-availability,
.mpp-lab__variation-form .woocommerce-variation-price {
    transition: opacity .12s ease;
}

.mpp-lab__swatch,
.mpp-lab__swatch-label {
    white-space: nowrap;
}

@media (max-width: 599px) {
    .mpp-lab__swatches--color {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mpp-lab__swatches--color .mpp-lab__swatch {
        min-width: 0;
    }

    .mpp-lab__swatch--text {
        min-width: 54px;
    }
}

/*
 * 0.4.9 mobile purchase layout — preserve swatch hit area
 *
 * REGRESSION GUARD: do not convert .single_variation_wrap to flex on mobile.
 * In 0.4.2 that change caused the purchase/variation area to overlap the visible
 * swatches on narrow viewports. The swatches looked disabled/not-clickable even
 * though WooCommerce click/variation events were firing underneath.
 *
 * Keep this mobile section in normal static/block flow. If Add to Cart layout
 * needs changing later, modify .mpp-lab__cart-row / button sizing only, and
 * re-test swatch hit-testing + variation selection before release.
 */
@media (max-width: 599px) {
    body.melorin-product-page-lab-active .mpp-lab__variation-fields,
    body.melorin-product-page-lab-active .mpp-lab__swatches,
    body.melorin-product-page-lab-active .mpp-lab__swatch {
        position: relative;
        z-index: 3;
        pointer-events: auto;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .single_variation_wrap {
        display: block !important;
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 12px 0 0 !important;
        padding: 0 !important;
        float: none !important;
        clear: both !important;
        overflow: visible !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .woocommerce-variation.single_variation {
        display: block !important;
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 34px !important;
        margin: 0 0 10px !important;
        padding: 0 !important;
        float: none !important;
        clear: both !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .woocommerce-variation-add-to-cart.variations_button {
        display: block !important;
        position: static !important;
        inset: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        clear: both !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row {
        display: grid !important;
        position: static !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity {
        position: static !important;
        width: min(150px, 100%) !important;
        max-width: 100% !important;
        margin: 0 !important;
        float: none !important;
        clear: both !important;
        justify-self: start !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .single_add_to_cart_button {
        position: static !important;
        display: flex !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        min-height: 54px !important;
        margin: 0 !important;
        padding: 11px 16px !important;
        float: none !important;
        clear: both !important;
        align-items: center !important;
        justify-content: center !important;
        white-space: normal !important;
        line-height: 1.55 !important;
        text-align: center !important;
        transform: none !important;
    }
}



/* 0.4.10 mobile quantity isolation
 * Keep .single_variation_wrap untouched. Fix only the cart row + quantity internals.
 */
@media (max-width: 599px) {
    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row {
        display: grid !important;
        position: relative !important;
        isolation: isolate !important;
        grid-template-columns: minmax(0, 1fr) !important;
        grid-auto-flow: row !important;
        align-items: stretch !important;
        justify-items: stretch !important;
        gap: 12px !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity {
        position: relative !important;
        z-index: 5 !important;
        isolation: isolate !important;
        display: grid !important;
        grid-template-columns: 40px 52px 40px !important;
        align-items: stretch !important;
        justify-content: center !important;
        justify-self: center !important;
        width: 132px !important;
        min-width: 132px !important;
        max-width: 132px !important;
        height: 46px !important;
        min-height: 46px !important;
        margin: 0 auto !important;
        padding: 0 !important;
        float: none !important;
        clear: both !important;
        overflow: hidden !important;
        border: 1px solid var(--mpp-border) !important;
        border-radius: 12px !important;
        background: var(--mpp-surface) !important;
        transform: none !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .minus,
    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .plus,
    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .qty {
        position: static !important;
        inset: auto !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 44px !important;
        min-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        transform: none !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .minus,
    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .plus {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: 0 !important;
        background: var(--mpp-soft) !important;
        color: var(--mpp-text) !important;
        cursor: pointer !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .qty {
        border: 0 !important;
        border-inline: 1px solid var(--mpp-border) !important;
        background: var(--mpp-surface) !important;
        color: var(--mpp-text) !important;
        text-align: center !important;
        appearance: textfield !important;
        -moz-appearance: textfield !important;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .qty::-webkit-inner-spin-button,
    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .quantity .qty::-webkit-outer-spin-button {
        margin: 0;
        -webkit-appearance: none;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-form .mpp-lab__cart-row .single_add_to_cart_button {
        grid-column: 1 !important;
        position: relative !important;
        z-index: 1 !important;
        width: 100% !important;
        min-height: 54px !important;
        margin: 0 !important;
        float: none !important;
        clear: both !important;
    }
}


/* 0.4.11 swatch visual polish
 * Visual-only: do not change the frozen mobile variation/purchase structure here.
 */
body.melorin-product-page-lab-active .mpp-lab__swatch {
    border-color: var(--mpp-border) !important;
    background: var(--mpp-surface) !important;
    color: var(--mpp-text) !important;
    box-shadow: 0 1px 0 rgba(47, 37, 41, .025);
    transform: translateY(0);
    transition:
        background-color .18s ease,
        border-color .18s ease,
        box-shadow .18s ease,
        color .18s ease,
        transform .14s ease;
}

body.melorin-product-page-lab-active .mpp-lab__swatch:hover:not(:disabled) {
    border-color: #d9b7c3 !important;
    background: var(--mpp-surface-warm) !important;
}

body.melorin-product-page-lab-active .mpp-lab__swatch.is-selected {
    border-color: var(--mpp-primary) !important;
    background: var(--mpp-selection) !important;
    color: var(--mpp-primary-strong) !important;
    box-shadow:
        inset 0 0 0 1px var(--mpp-primary),
        0 4px 12px var(--mpp-selection-ring);
    transform: translateY(-1px);
}

body.melorin-product-page-lab-active .mpp-lab__swatch.is-selected .mpp-lab__swatch-dot {
    border-color: var(--mpp-primary);
    box-shadow:
        0 0 0 2px var(--mpp-surface),
        0 0 0 3px var(--mpp-primary);
}

body.melorin-product-page-lab-active .mpp-lab__swatch:active:not(:disabled) {
    transform: translateY(0) scale(.985);
    transition-duration: .07s;
}

body.melorin-product-page-lab-active .mpp-lab__swatch:focus-visible {
    outline: 3px solid var(--mpp-selection-ring);
    outline-offset: 2px;
}


/* 0.4.12 variation group hierarchy
 * Visual-only. Keep the frozen mobile swatch/purchase interaction untouched.
 */
body.melorin-product-page-lab-active .mpp-lab__variation-fields {
    gap: 12px;
}

body.melorin-product-page-lab-active .mpp-lab__variation-field {
    padding: 12px;
    border: 1px solid #ead5dc;
    border-radius: 14px;
    background: #fff7f9;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}

body.melorin-product-page-lab-active .mpp-lab__variation-field > label {
    display: flex;
    width: fit-content;
    min-height: 28px;
    align-items: center;
    gap: 6px;
    margin: 0 0 10px;
    padding: 4px 9px;
    border: 1px solid #e3c4ce;
    border-radius: 999px;
    background: #f8e9ee;
    color: var(--mpp-primary-strong);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.45;
}

body.melorin-product-page-lab-active .mpp-lab__variation-field > label::before {
    content: "";
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    border-radius: 999px;
    background: var(--mpp-primary);
}

body.melorin-product-page-lab-active .mpp-lab__swatch {
    border-color: #dfcdd3 !important;
    background: #fff !important;
    box-shadow: 0 1px 2px rgba(47,37,41,.035);
}

body.melorin-product-page-lab-active .mpp-lab__swatch:hover:not(:disabled) {
    border-color: #c98ca0 !important;
    background: #fffafb !important;
}

body.melorin-product-page-lab-active .mpp-lab__swatch--text.is-selected {
    border-color: var(--mpp-primary) !important;
    background: var(--mpp-primary) !important;
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(101,27,53,.18);
}

body.melorin-product-page-lab-active .mpp-lab__swatch--color.is-selected {
    border-color: var(--mpp-primary) !important;
    background: #f4dce5 !important;
    color: var(--mpp-primary-strong) !important;
    box-shadow:
        inset 0 0 0 1px rgba(132,39,70,.22),
        0 5px 14px rgba(101,27,53,.13);
}

body.melorin-product-page-lab-active .mpp-lab__swatch--color.is-selected .mpp-lab__swatch-dot {
    box-shadow:
        0 0 0 2px #fff,
        0 0 0 4px var(--mpp-primary);
}

@media (max-width: 599px) {
    body.melorin-product-page-lab-active .mpp-lab__variation-field {
        padding: 11px;
        border-radius: 13px;
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-field > label {
        margin-bottom: 9px;
    }
}


/* 0.5.0 installment finance card
 * Reuses Melorin_Product_Summary_Sorter::render_installment_note().
 * Visual-only wrapper; installment math remains owned by the sorter plugin.
 */
.mpp-lab__finance-card {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
    align-items: center;
    margin: 4px 0 16px;
    padding: 14px 15px;
    overflow: hidden;
    border: 1px solid #d9aebd;
    border-radius: 16px;
    background:
        linear-gradient(115deg, #fff8fa 0%, #f9e8ee 45%, #fff8fa 100%);
    background-size: 220% 100%;
    box-shadow: 0 8px 22px rgba(101, 27, 53, .08);
    animation: mppFinanceGlow 5.5s ease-in-out infinite;
}

.mpp-lab__finance-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(
        110deg,
        transparent 30%,
        rgba(255,255,255,.72) 48%,
        transparent 66%
    );
    transform: translateX(115%);
    animation: mppFinanceShimmer 6.8s ease-in-out infinite;
}

.mpp-lab__finance-icon {
    position: relative;
    z-index: 1;
    display: flex;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    background: var(--mpp-primary);
    color: #fff;
    font-size: 20px;
    font-weight: 900;
    box-shadow: 0 6px 14px rgba(101, 27, 53, .2);
}

.mpp-lab__finance-copy {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.mpp-lab__finance-kicker {
    display: block;
    margin-bottom: 3px;
    color: var(--mpp-primary);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: -.1px;
}

.mpp-lab__finance-card .mpss-installment-note {
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    border-radius: 0 !important;
    background: none !important;
    background-size: auto !important;
    color: var(--mpp-text) !important;
    font-size: 13.5px !important;
    font-weight: 650 !important;
    line-height: 1.9 !important;
    animation: none !important;
}

.mpp-lab__finance-card .mpss-installment-note strong {
    color: var(--mpp-primary) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
}

.mpp-lab__finance-card .mpss-installment-sparkle {
    display: none !important;
}

.mpp-lab__finance-copy small {
    display: block;
    margin-top: 2px;
    color: var(--mpp-muted);
    font-size: 10.5px;
    line-height: 1.7;
}

@keyframes mppFinanceGlow {
    0%, 100% { background-position: 100% 50%; }
    50% { background-position: 0 50%; }
}

@keyframes mppFinanceShimmer {
    0%, 68%, 100% { transform: translateX(115%); opacity: 0; }
    74% { opacity: .7; }
    84% { transform: translateX(-115%); opacity: 0; }
}

@media (max-width: 599px) {
    .mpp-lab__finance-card {
        grid-template-columns: 42px minmax(0, 1fr);
        gap: 10px;
        padding: 12px;
        border-radius: 14px;
    }

    .mpp-lab__finance-icon {
        width: 42px;
        height: 42px;
        border-radius: 13px;
        font-size: 18px;
    }

    .mpp-lab__finance-card .mpss-installment-note {
        font-size: 12.5px !important;
    }

    .mpp-lab__finance-card .mpss-installment-note strong {
        font-size: 14px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mpp-lab__finance-card,
    .mpp-lab__finance-card::after {
        animation: none !important;
    }
}


/* 0.5.1: avoid repeating "۴" beside "۴ قسط"; use a neutral payment-card icon. */
.mpp-lab__finance-icon svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* 0.5.3 gallery thumbnail RTL + contain
 * Keep thumbnails anchored to the right in RTL and show the whole image
 * instead of cropping/zooming it.
 */
.mpp-lab__thumbs {
    direction: rtl;
    justify-content: flex-start;
}

.mpp-lab__thumb {
    background: var(--mpp-surface);
}

.mpp-lab__thumb img,
.mpp-lab__thumb:hover img,
.mpp-lab__thumb.is-active img {
    width: 100%;
    height: 100%;
    padding: 2px;
    object-fit: contain;
    object-position: center;
    transform: none;
}


/* 0.5.4 thumbnail visual zoom
 * Keep contain (no cover crop), but trim excessive white breathing room in source images.
 */
.mpp-lab__thumb img,
.mpp-lab__thumb:hover img,
.mpp-lab__thumb.is-active img {
    padding: 0;
    object-fit: contain;
    transform: scale(1.28);
    transform-origin: center;
}

.mpp-lab__thumb {
    overflow: hidden;
}


/* 0.5.5 tighter thumbnail framing
 * Crop only excess source-image breathing room so the product reads larger.
 */
.mpp-lab__thumb {
    background: transparent;
}

.mpp-lab__thumb img,
.mpp-lab__thumb:hover img,
.mpp-lab__thumb.is-active img {
    transform: scale(1.55);
    transform-origin: center;
}


/* 0.5.6 single-column product description
 * The redundant micro-info and attributes sidebar were removed.
 * Keep the product introduction as one wide, responsive reading column.
 */
.mpp-lab__details {
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
}

.mpp-lab__description {
    width: 100%;
    max-width: none;
}

.mpp-lab__description .mpp-lab__content {
    width: 100%;
    max-width: none;
}

@media (min-width: 768px) {
    .mpp-lab__description {
        padding: clamp(22px, 3vw, 34px);
    }

    .mpp-lab__description .mpp-lab__content {
        font-size: 14px;
        line-height: 2.15;
    }
}

@media (max-width: 767px) {
    .mpp-lab__description {
        padding: 15px 14px;
    }

    .mpp-lab__description .mpp-lab__content {
        font-size: 13.5px;
        line-height: 2.05;
    }
}


/* 0.5.7 purchase trust zone
 * Product Lab owns placement/presentation here; legacy Woodmart pages stay unchanged.
 */

/* The legacy Code Snippet #71 can fire from native Woo templates (e.g. simple products).
 * Hide only that legacy notice inside Product Lab to avoid duplicate messaging.
 */
body.melorin-product-page-lab-active .melorin-confidential-package {
    display: none !important;
}

.mpp-lab__trust-zone {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}

.mpp-lab__confidential {
    display: inline-flex;
    width: fit-content;
    max-width: 100%;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
    border: 1px solid var(--mpp-border);
    border-radius: 12px;
    background: var(--mpp-surface);
    box-shadow: 0 3px 12px rgba(47, 37, 41, .035);
}

.mpp-lab__confidential-icon {
    display: inline-flex;
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--mpp-primary-soft);
    color: var(--mpp-primary);
}

.mpp-lab__confidential-icon svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mpp-lab__confidential-copy {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1px;
}

.mpp-lab__confidential-copy strong {
    color: var(--mpp-text);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.6;
}

.mpp-lab__confidential-copy small {
    color: var(--mpp-muted);
    font-size: 10px;
    line-height: 1.6;
}

/* Re-skin the existing Melorin Shipping Progress output without changing its
 * calculator, AJAX, method availability or copy.
 */
body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-shipping-panel {
    --msp-accent: var(--mpp-primary);
    --msp-accent-soft: rgba(132, 39, 70, .075);
    --msp-text: var(--mpp-text);
    --msp-muted: var(--mpp-muted);
    --msp-border: var(--mpp-border);
    --msp-surface: var(--mpp-surface-warm);

    margin: 0;
    padding: 12px 13px;
    border: 1px solid var(--mpp-border);
    border-right: 3px solid var(--mpp-primary);
    border-radius: 13px;
    background: var(--mpp-surface-warm);
    box-shadow: 0 4px 16px rgba(101, 27, 53, .045);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-panel-head-icon,
body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method-icon {
    color: var(--mpp-primary);
    background: var(--mpp-primary-soft);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method-cost {
    color: var(--mpp-primary);
    background: var(--mpp-primary-soft);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-methods {
    border-top-color: rgba(132, 39, 70, .10);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method {
    border-bottom-color: rgba(132, 39, 70, .08);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-urgency {
    background: rgba(132, 39, 70, .045);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-progress-track {
    background: rgba(132, 39, 70, .12);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-progress-fill {
    background: var(--mpp-primary);
}

@media (max-width: 599px) {
    .mpp-lab__trust-zone {
        gap: 9px;
        margin-top: 10px;
    }

    .mpp-lab__confidential {
        width: 100%;
        padding: 8px 10px;
    }

    body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-shipping-panel {
        padding: 10px 11px;
        border-radius: 12px;
    }
}


/* 0.5.8 color hierarchy pass
 * Goal: preserve one Melorin identity while giving each purchase-zone component
 * a different visual weight. No layout or variation-interaction rules here.
 */

/* Main purchase area: calm warm-neutral canvas, not another pink card. */
body.melorin-product-page-lab-active .mpp-lab__purchase {
    border-color: #ead8de;
    background: var(--mpp-neutral-warm);
    box-shadow: 0 7px 24px rgba(70, 42, 51, .035);
}

body.melorin-product-page-lab-active .mpp-lab__buy-head {
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(132, 39, 70, .08);
}

body.melorin-product-page-lab-active .mpp-lab__buy-head strong {
    color: var(--mpp-heading);
    font-weight: 850;
}

/* Variation groups: clearly interactive blush panels, visually above trust/info cards. */
body.melorin-product-page-lab-active .mpp-lab__variation-field {
    border-color: var(--mpp-blush-border);
    background: var(--mpp-blush-panel);
    box-shadow: 0 4px 14px rgba(101, 27, 53, .035);
}

body.melorin-product-page-lab-active .mpp-lab__variation-field > label {
    border-color: #ddb3c1;
    background: #f9e5eb;
    color: var(--mpp-primary-strong);
}

body.melorin-product-page-lab-active .mpp-lab__swatch {
    border-color: #e2d7da !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(47, 37, 41, .04);
}

body.melorin-product-page-lab-active .mpp-lab__swatch:hover:not(:disabled) {
    border-color: #c98ca0 !important;
    background: #fffafb !important;
}

/* Selected states carry the brand color strongly. */
body.melorin-product-page-lab-active .mpp-lab__swatch--text.is-selected {
    border-color: var(--mpp-cta) !important;
    background: var(--mpp-cta) !important;
    color: #fff !important;
    box-shadow: 0 5px 15px rgba(143, 47, 87, .2);
}

body.melorin-product-page-lab-active .mpp-lab__swatch--color.is-selected {
    border-color: var(--mpp-cta) !important;
    background: #f4dce5 !important;
    color: var(--mpp-primary-strong) !important;
    box-shadow:
        inset 0 0 0 1px rgba(143, 47, 87, .18),
        0 5px 14px rgba(143, 47, 87, .12);
}

body.melorin-product-page-lab-active .mpp-lab__swatch--color.is-selected .mpp-lab__swatch-dot {
    box-shadow:
        0 0 0 2px #fff,
        0 0 0 4px var(--mpp-cta);
}

/* Quantity remains neutral; CTA becomes the strongest action only when enabled. */
body.melorin-product-page-lab-active .mpp-lab__cart-row .quantity {
    border-color: #e3d9dc !important;
    background: #fff !important;
}

body.melorin-product-page-lab-active .mpp-lab__purchase .single_add_to_cart_button:not(.disabled) {
    border-color: var(--mpp-cta) !important;
    background: var(--mpp-cta) !important;
    color: #fff !important;
    box-shadow: 0 7px 18px rgba(143, 47, 87, .2);
}

body.melorin-product-page-lab-active .mpp-lab__purchase .single_add_to_cart_button:not(.disabled):hover,
body.melorin-product-page-lab-active .mpp-lab__purchase .single_add_to_cart_button:not(.disabled):focus-visible {
    border-color: var(--mpp-cta-hover) !important;
    background: var(--mpp-cta-hover) !important;
    box-shadow: 0 8px 20px rgba(117, 36, 65, .24);
}

body.melorin-product-page-lab-active .mpp-lab__variation-form .single_add_to_cart_button.disabled {
    border-color: #ddd6d8 !important;
    background: #e8e4e5 !important;
    color: #8a7b80 !important;
    box-shadow: none !important;
}

/* Trust reassurance: deliberately quiet and neutral so it does not compete with CTA. */
body.melorin-product-page-lab-active .mpp-lab__confidential {
    border-color: var(--mpp-trust-border);
    background: #fff;
    box-shadow: 0 3px 12px rgba(47, 37, 41, .03);
}

body.melorin-product-page-lab-active .mpp-lab__confidential-icon {
    border: 1px solid #ead7de;
    background: #fbf1f4;
    color: var(--mpp-primary);
}

/* Shipping: informational card — mostly neutral with one wine edge and soft rose icons. */
body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-shipping-panel {
    --msp-accent: var(--mpp-primary);
    --msp-accent-soft: #f8edf1;
    --msp-text: var(--mpp-text);
    --msp-muted: #7c7074;
    --msp-border: #e9dedd;
    --msp-surface: #fffdfb;

    border-color: #e9dedd;
    border-right-color: var(--mpp-primary);
    background: #fffdfb;
    box-shadow: 0 4px 16px rgba(58, 39, 45, .035);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-panel-head {
    color: var(--mpp-heading);
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-panel-head-icon,
body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method-icon {
    color: var(--mpp-primary);
    background: #f8edf1;
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method-cost {
    color: var(--mpp-primary-strong);
    background: #f7e9ee;
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-methods {
    border-top-color: #eee4e2;
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-method {
    border-bottom-color: #eee7e5;
}

body.melorin-product-page-lab-active .mpp-lab__shipping-slot .msp-urgency {
    background: #fbf4f6;
}

/* Semantic green remains reserved for true success/availability states. */
body.melorin-product-page-lab-active .mpp-lab__stock--in,
body.melorin-product-page-lab-active .mpp-lab__variation-form .stock.in-stock {
    color: var(--mpp-success);
}

@media (max-width: 599px) {
    body.melorin-product-page-lab-active .mpp-lab__purchase {
        box-shadow: 0 5px 18px rgba(70, 42, 51, .03);
    }

    body.melorin-product-page-lab-active .mpp-lab__variation-field {
        box-shadow: 0 3px 10px rgba(101, 27, 53, .03);
    }
}


/* 0.5.11 desktop shipping placement
 * Mobile source order remains gallery -> summary/purchase -> shipping.
 * On desktop only, the shipping panel uses the empty space directly below the gallery.
 */
.mpp-lab__shipping-zone {
    min-width: 0;
}

@media (min-width: 900px) {
    .mpp-lab__hero.has-shipping-zone {
        grid-template-areas:
            "gallery summary"
            "shipping summary";
        grid-template-rows: auto auto;
    }

    .mpp-lab__hero.has-shipping-zone > .mpp-lab__gallery {
        grid-area: gallery;
    }

    .mpp-lab__hero.has-shipping-zone > .mpp-lab__summary {
        grid-area: summary;
        align-self: start;
    }

    .mpp-lab__hero.has-shipping-zone > .mpp-lab__shipping-zone {
        grid-area: shipping;
        align-self: start;
        margin-top: -6px;
    }
}

@media (max-width: 899px) {
    .mpp-lab__shipping-zone {
        margin-top: -10px;
    }
}


/* 0.5.12 Smart Recommendations visual integration
 * Functionality remains owned by Melorin Smart Recommendations.
 * These overrides only align the recommendation sheet with Product Lab identity.
 */
body.melorin-product-page-lab-active .mrs-backdrop {
    background: rgba(47, 37, 41, .26);
}

body.melorin-product-page-lab-active .mrs-sheet {
    border-color: var(--mpp-border);
    background: var(--mpp-neutral-warm);
    box-shadow: 0 18px 55px rgba(70, 42, 51, .2);
}

body.melorin-product-page-lab-active .mrs-sheet h3 {
    color: var(--mpp-heading);
}

body.melorin-product-page-lab-active .mrs-sheet__success {
    color: var(--mpp-success);
}

body.melorin-product-page-lab-active .mrs-sheet__check {
    background: var(--mpp-success-soft);
    color: var(--mpp-success);
}

body.melorin-product-page-lab-active .mrs-sheet__close {
    border-color: var(--mpp-border) !important;
    background: var(--mpp-surface) !important;
    color: var(--mpp-muted) !important;
}

body.melorin-product-page-lab-active .mrs-card {
    border-color: var(--mpp-border);
    background: var(--mpp-surface);
}

body.melorin-product-page-lab-active .mrs-card:hover {
    box-shadow: 0 5px 18px rgba(101, 27, 53, .07);
}

body.melorin-product-page-lab-active .mrs-card__name {
    color: var(--mpp-text);
}

body.melorin-product-page-lab-active .mrs-card__price {
    color: var(--mpp-price);
}

body.melorin-product-page-lab-active .mrs-add,
body.melorin-product-page-lab-active .mrs-choose {
    background: var(--mpp-primary-soft);
    color: var(--mpp-primary);
}

body.melorin-product-page-lab-active .mrs-add:hover,
body.melorin-product-page-lab-active .mrs-choose:hover {
    background: var(--mpp-primary);
    color: #fff;
}

body.melorin-product-page-lab-active .mrs-sheet__cart {
    color: var(--mpp-primary);
    border-bottom-color: var(--mpp-accent);
}


/* 0.5.13 AJAX add-to-cart feedback */
.mpp-lab__ajax-cart-message {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 9px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.75;
}

.mpp-lab__ajax-cart-message.is-success {
    border: 1px solid #cce7d7;
    background: var(--mpp-success-soft);
    color: var(--mpp-success);
}

.mpp-lab__ajax-cart-message.is-error {
    border: 1px solid #efcbd6;
    background: var(--mpp-danger-soft);
    color: var(--mpp-danger);
}

.mpp-lab__purchase .single_add_to_cart_button.is-loading {
    opacity: .78;
    cursor: wait !important;
}




/* 0.5.21 independent Melorin Wishlist integration */
body.melorin-product-page-lab-active .mpp-lab__wishlist-action {
    display: flex;
    justify-content: flex-start;
    margin: -2px 0 14px;
}

body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button {
    min-height: 42px;
    padding: 0 14px;
    border-color: #dfbdc8;
    background: #fff;
    color: var(--mpp-primary);
    box-shadow: 0 3px 12px rgba(101, 27, 53, .045);
}

body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button:hover,
body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button:focus-visible {
    border-color: var(--mpp-primary);
    background: var(--mpp-primary-soft);
    color: var(--mpp-primary-strong);
    box-shadow: 0 5px 15px rgba(101, 27, 53, .09);
    transform: translateY(-1px);
}

body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button.is-added {
    border-color: #cf91a6;
    background: #f7e5eb;
    color: var(--mpp-primary-strong);
}

body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button__label {
    font-size: 11.5px;
    font-weight: 800;
    line-height: 1.5;
}

@media (max-width: 599px) {
    body.melorin-product-page-lab-active .mpp-lab__wishlist-action {
        margin-bottom: 12px;
    }

    body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button {
        width: 100%;
        min-height: 44px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.melorin-product-page-lab-active .mpp-lab__wishlist-action .melorin-wishlist-button {
        transition: none;
    }
}

/* 0.5.23 — SC350 admin-only reference hero.
 * Presentation-only bridge for product 38636. The modifier is emitted only by
 * the Product Lab request; WooCommerce variation/cart/payment ownership stays untouched.
 */
.mpp-lab--reference-hero {
    width: min(1460px, calc(100% - (var(--mpp-page-gap) * 2)));
    margin-top: 18px;
    --mpp-ref-line: #eddfe3;
    --mpp-ref-soft: #fff9fa;
    --mpp-ref-soft-2: #fff5f7;
    --mpp-ref-green: #22a95a;
    --mpp-ref-green-soft: #effaf4;
}

.mpp-lab--reference-hero .mpp-lab__notice {
    display: none;
}

.mpp-lab--reference-hero .mpp-lab__breadcrumb {
    margin-bottom: 24px;
    padding-inline: 2px;
    font-size: 12px;
}

.mpp-lab--reference-hero .mpp-lab__hero {
    gap: clamp(32px, 4vw, 72px);
}

.mpp-lab--reference-hero .mpp-lab__gallery {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
        "main"
        "thumbs";
    gap: 16px;
}

.mpp-lab--reference-hero .mpp-lab__main-image-wrap {
    border: 0;
    border-radius: 0;
    background: #fff;
    aspect-ratio: 1 / 1;
}

.mpp-lab--reference-hero .mpp-lab__main-image {
    object-fit: contain;
}

.mpp-lab--reference-hero .mpp-lab__thumbs {
    display: flex;
    flex-direction: row;
    justify-content: center;
    gap: 8px;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 2px 2px 5px;
    touch-action: pan-x;
    scroll-snap-type: x proximity;
}

.mpp-lab--reference-hero .mpp-lab__thumb {
    flex: 0 0 74px;
    width: 74px;
    border-radius: 8px;
    background: #fff;
    box-shadow: inset 0 0 0 1px #f0e9eb;
}

.mpp-lab--reference-hero .mpp-lab__thumb:hover,
.mpp-lab--reference-hero .mpp-lab__thumb.is-active {
    box-shadow: inset 0 0 0 2px var(--mpp-primary);
}

.mpp-lab--reference-hero .mpp-lab__summary {
    position: static;
    padding-top: clamp(8px, 1.5vw, 22px);
}

.mpp-lab--reference-hero .mpp-lab__title {
    max-width: 720px;
    margin: 0 auto 12px;
    color: #2c2528;
    font-size: clamp(26px, 2.25vw, 38px);
    font-weight: 500;
    line-height: 1.55;
    text-align: center;
    letter-spacing: -.4px;
}

.mpp-lab--reference-hero .mpp-lab__meta-row {
    display: flex;
    justify-content: center;
    margin: 0 0 8px;
}

.mpp-lab--reference-hero .mpp-lab__sku-code {
    color: #aaa0a4;
    font-size: 10px;
    letter-spacing: .05em;
    direction: ltr;
}

.mpp-lab--reference-hero .mpp-lab__rating {
    justify-content: center;
    margin-bottom: 10px;
    font-size: 12px;
}

.mpp-lab--reference-hero .mpp-lab__price {
    margin: 8px 0 14px;
    color: var(--mpp-ref-green);
    font-size: clamp(22px, 2vw, 30px);
    font-weight: 900;
    text-align: center;
}

.mpp-lab--reference-hero .mpp-lab__promo-hooks {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 12px;
    text-align: center;
}

.mpp-lab--reference-hero .mpp-lab__finance-card {
    display: flex;
    width: fit-content;
    max-width: 100%;
    grid-template-columns: none;
    gap: 8px;
    margin: 0 auto 18px;
    padding: 7px 12px;
    border: 0;
    border-radius: 8px;
    background: linear-gradient(90deg, #f5eaff 0%, #fff0f6 100%);
    box-shadow: none;
}

.mpp-lab--reference-hero .mpp-lab__finance-card::after,
.mpp-lab--reference-hero .mpp-lab__finance-icon,
.mpp-lab--reference-hero .mpp-lab__finance-kicker,
.mpp-lab--reference-hero .mpp-lab__finance-copy small {
    display: none;
}

.mpp-lab--reference-hero .mpp-lab__finance-copy {
    display: flex;
    align-items: center;
    justify-content: center;
}

.mpp-lab--reference-hero .mpp-lab__finance-card .mpss-installment-note,
.mpp-lab--reference-hero .mpp-lab__finance-card .mpss-installment-note strong {
    font-size: 12px !important;
    line-height: 1.7 !important;
}

.mpp-lab--reference-hero .mpp-lab__wishlist-action {
    display: flex;
    justify-content: center;
    margin: 0 0 12px;
}

.mpp-lab--reference-hero .mpp-lab__purchase {
    margin-top: 12px;
    padding: clamp(16px, 2vw, 24px);
    border: 1px solid var(--mpp-ref-line);
    border-radius: 18px;
    background: var(--mpp-ref-soft);
    box-shadow: 0 16px 40px rgba(88, 54, 66, .035);
}

.mpp-lab--reference-hero .mpp-lab__buy-head {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 18px;
    padding: 10px 14px;
    border: 1px solid #d7ecdf;
    border-radius: 12px;
    background: var(--mpp-ref-green-soft);
    text-align: right;
}

.mpp-lab--reference-hero .mpp-lab__buy-head strong {
    color: #267448;
    font-size: 13px;
}

.mpp-lab--reference-hero .mpp-lab__buy-head span {
    color: #537263;
    font-size: 10.5px;
}

.mpp-lab--reference-hero .mpp-lab__variation-fields {
    gap: 12px;
}

.mpp-lab--reference-hero .mpp-lab__variation-field {
    padding: 12px 14px;
    border: 1px solid var(--mpp-ref-line);
    border-radius: 14px;
    background: #fff;
}

.mpp-lab--reference-hero .mpp-lab__variation-field label {
    margin-bottom: 8px;
    color: #493c41;
    font-size: 12px;
}

.mpp-lab--reference-hero .mpp-lab__variation-field select {
    min-height: 44px;
    border-color: #e7dfe2;
    border-radius: 999px;
    background-color: #fff;
}

.mpp-lab--reference-hero .mpp-lab__swatch {
    min-height: 42px;
    border-color: #e9dfe2;
    border-radius: 999px;
    background: #fff;
}

.mpp-lab--reference-hero .mpp-lab__swatch.is-selected {
    border-color: var(--mpp-primary);
    background: var(--mpp-primary-soft);
    box-shadow: 0 0 0 3px var(--mpp-selection-ring);
}

.mpp-lab--reference-hero .mpp-lab__cart-row {
    margin-top: 14px;
}

.mpp-lab--reference-hero .mpp-lab__cart-row .quantity,
.mpp-lab--reference-hero .mpp-lab__purchase .single_add_to_cart_button {
    min-height: 50px;
}

.mpp-lab--reference-hero .mpp-lab__purchase .single_add_to_cart_button {
    border-radius: 12px;
    box-shadow: none;
}

.mpp-lab--reference-hero .mpp-lab__purchase .single_add_to_cart_button:not(.disabled):not(:disabled) {
    background: var(--mpp-primary);
}

.mpp-lab--reference-hero .mpp-lab__purchase .single_add_to_cart_button:not(.disabled):not(:disabled):hover {
    background: var(--mpp-primary-strong);
}

.mpp-lab--reference-hero .mpp-lab__trust-zone {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #eee5e8;
}

.mpp-lab--reference-hero .mpp-lab__confidential {
    margin-inline: auto;
}

.mpp-lab--reference-hero .mpp-lab__shipping-zone {
    margin-top: 2px;
}

@media (min-width: 900px) {
    .mpp-lab--reference-hero .mpp-lab__hero,
    .mpp-lab--reference-hero .mpp-lab__hero.has-shipping-zone {
        grid-template-columns: minmax(0, 1.03fr) minmax(420px, .97fr);
        grid-template-areas:
            "gallery summary"
            "shipping summary";
        align-items: start;
    }

    .mpp-lab--reference-hero .mpp-lab__gallery {
        grid-area: gallery;
    }

    .mpp-lab--reference-hero .mpp-lab__summary {
        grid-area: summary;
    }

    .mpp-lab--reference-hero .mpp-lab__shipping-zone {
        grid-area: shipping;
    }

    .mpp-lab--reference-hero .mpp-lab__main-image-wrap {
        max-height: none;
    }
}

@media (max-width: 899px) {
    .mpp-lab--reference-hero {
        width: min(100% - 20px, 760px);
    }

    .mpp-lab--reference-hero .mpp-lab__breadcrumb {
        margin-bottom: 14px;
    }

    .mpp-lab--reference-hero .mpp-lab__title {
        text-align: right;
    }

    .mpp-lab--reference-hero .mpp-lab__meta-row,
    .mpp-lab--reference-hero .mpp-lab__rating {
        justify-content: flex-start;
    }

    .mpp-lab--reference-hero .mpp-lab__price {
        text-align: right;
    }

    .mpp-lab--reference-hero .mpp-lab__promo-hooks,
    .mpp-lab--reference-hero .mpp-lab__finance-card {
        margin-inline: 0;
    }
}

@media (max-width: 599px) {
    .mpp-lab--reference-hero .mpp-lab__thumb {
        flex-basis: 64px;
        width: 64px;
    }

    .mpp-lab--reference-hero .mpp-lab__purchase {
        padding: 13px;
        border-radius: 15px;
    }

    .mpp-lab--reference-hero .mpp-lab__buy-head {
        width: 100%;
    }
}


/* 0.5.36 mobile variation UX: fixed quantity + persistent selected state */
body.melorin-product-page-lab-active .mpp-lab__cart-row--fixed-quantity {
    grid-template-columns: minmax(0, 1fr) !important;
}

body.melorin-product-page-lab-active .mpp-lab__cart-row--fixed-quantity .single_add_to_cart_button {
    grid-column: 1 / -1 !important;
    width: 100% !important;
}

body.melorin-product-page-lab-active .mpp-lab__swatch.is-selected,
body.melorin-product-page-lab-active .mpp-lab__swatch[aria-pressed="true"] {
    border-color: var(--mpp-primary) !important;
    background: var(--mpp-primary) !important;
    color: #fff !important;
    opacity: 1 !important;
    box-shadow: 0 0 0 3px var(--mpp-selection-ring), 0 6px 16px rgba(132,39,70,.16) !important;
}

body.melorin-product-page-lab-active .mpp-lab__swatch.is-selected .mpp-lab__swatch-label,
body.melorin-product-page-lab-active .mpp-lab__swatch[aria-pressed="true"] .mpp-lab__swatch-label {
    color: #fff !important;
}


/* 0.5.39 desktop simple-product CTA: keep fixed-quantity purchase button full-width */
body.melorin-product-page-lab-active .mpp-lab__purchase form.cart .quantity.hidden + .single_add_to_cart_button {
    display: flex !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    float: none !important;
    flex: 1 1 100% !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: normal !important;
    text-align: center !important;
}

/* 0.5.40 review-count anchor */
body.melorin-product-page-lab-active .mpp-lab__review-count-link {
    color: inherit;
    font: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    cursor: pointer;
}

body.melorin-product-page-lab-active .mpp-lab__review-count-link:hover,
body.melorin-product-page-lab-active .mpp-lab__review-count-link:focus-visible {
    color: var(--mpp-primary);
}
