/* Product-card Color and Size controls. The WooCommerce selects remain the source of truth. */
.product .memez-external-swatches {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 10px 0 12px;
}

.product .memez-swatch-choices {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
}

.product .memez-color-swatch,
.product .memez-size-swatch {
    appearance: none;
    background: transparent;
    cursor: pointer;
    margin: 0;
    padding: 0;
    transition: border-color .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.product .memez-color-swatch {
    width: 22px;
    height: 22px;
    border: 1px solid #cfcfcf;
    border-radius: 50%;
    background: var(--memez-swatch-color);
    box-shadow: inset 0 0 0 2px #fff;
}

.product .memez-color-swatch.is-selected {
    border-color: #111;
    box-shadow: inset 0 0 0 2px #fff, 0 0 0 1px #111;
}

.product .memez-size-swatch {
    min-width: 31px;
    height: 27px;
    padding: 0 7px;
    border: 1px solid #d7d7d7;
    border-radius: 3px;
    color: #111;
    font-size: 11px;
    font-weight: 600;
    line-height: 25px;
    text-align: center;
}

.product .memez-size-swatch.is-selected {
    border-color: #111;
    background: #111;
    color: #fff;
}

.product .memez-color-swatch:disabled,
.product .memez-size-swatch:disabled {
    cursor: not-allowed;
    opacity: .28;
}

.product .variations_form.memez-has-external-swatches .variations {
    display: none !important;
}

.elementor-element-ea0f42c .elementor-heading-title {
    margin: 0 0 26px;
    font-size: clamp(24px, 2.4vw, 34px);
    font-weight: 500;
    letter-spacing: .035em;
    line-height: 1.15;
    text-align: center;
}

/* Use one category section at every breakpoint. */
.elementor-element.elementor-element-40f435d {
    display: flex !important;
    width: 100% !important;
    padding-inline: clamp(16px, 3vw, 44px);
}

.elementor-element-40f435d > .e-con-inner,
.elementor-element-40f435d.e-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: clamp(12px, 1.5vw, 24px) !important;
    width: 100% !important;
    max-width: 1380px !important;
    margin-inline: auto !important;
}

.elementor-element-40f435d > .e-con-inner > .elementor-element-d056c6a,
.elementor-element-40f435d > .elementor-element-d056c6a {
    grid-column: 1 / -1 !important;
    order: 0;
    width: 100% !important;
}

.elementor-element-d056c6a .e-heading-base {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    isolation: isolate;
    min-height: clamp(190px, 19vw, 270px);
    margin: 0 0 clamp(12px, 1vw, 18px);
    padding: clamp(30px, 5vw, 68px);
    overflow: hidden;
    border: 1px solid #e5e0da;
    border-radius: 12px;
    background:
        radial-gradient(circle at 82% 34%, rgba(255,255,255,.98) 0 4%, transparent 5%),
        radial-gradient(circle at 82% 34%, #f7f3ee 0 12%, #c9c0b7 28%, #746d67 42%, transparent 43%),
        linear-gradient(120deg, #f8f5f1 0%, #e7e0d9 55%, #c9beb4 100%);
    color: #171717;
    font-size: clamp(30px, 3.6vw, 54px);
    font-weight: 500;
    letter-spacing: .075em;
    line-height: 1.08;
    text-align: center;
    text-wrap: balance;
    box-shadow: 0 16px 38px rgba(41, 34, 29, .08);
}

.elementor-element-40f435d .elementor-element-77be4e3,
.elementor-element-40f435d .elementor-element-1259147,
.elementor-element-40f435d .elementor-element-a616395 {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
}

.elementor-element-40f435d .elementor-element-77be4e3 { order: 1; }
.elementor-element-40f435d .elementor-element-a616395 { order: 2; }
.elementor-element-40f435d .elementor-element-1259147 { order: 3; }

.elementor-element-40f435d > .e-con-inner > .elementor-element-1cfc0fe,
.elementor-element-40f435d > .elementor-element-1cfc0fe {
    grid-column: 1 / -1 !important;
    order: 4;
    justify-self: center;
    width: max-content !important;
    margin: 12px auto 0 !important;
}

.elementor-element-40f435d .e-image-base {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.elementor-element-40f435d .elementor-heading-title,
.elementor-element-40f435d .e-heading-base:not(.elementor-element-d056c6a .e-heading-base) {
    margin-top: 10px;
    text-align: center;
}

@media (max-width: 767px) {
    .elementor-element.elementor-element-40f435d { padding-inline: 14px; }

    .elementor-element-40f435d > .e-con-inner,
    .elementor-element-40f435d.e-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px 10px !important;
    }

    .elementor-element-40f435d > .e-con-inner > .elementor-element-d056c6a,
    .elementor-element-40f435d > .elementor-element-d056c6a,
    .elementor-element-40f435d > .e-con-inner > .elementor-element-77be4e3,
    .elementor-element-40f435d > .elementor-element-77be4e3 {
        grid-column: 1 / -1 !important;
    }

    .elementor-element-40f435d .elementor-element-77be4e3 { order: 1; }

    .elementor-element-d056c6a .e-heading-base {
        min-height: 150px;
        margin-bottom: 2px;
        padding: 28px 20px;
        border-radius: 8px;
        background:
            radial-gradient(circle at 82% 28%, rgba(255,255,255,.98) 0 4%, transparent 5%),
            radial-gradient(circle at 82% 28%, #f7f3ee 0 13%, #c9c0b7 30%, #746d67 45%, transparent 46%),
            linear-gradient(135deg, #f8f5f1 0%, #e7e0d9 58%, #c9beb4 100%);
        font-size: clamp(25px, 7.5vw, 34px);
        letter-spacing: .045em;
        line-height: 1.08;
    }

    .elementor-element-40f435d .elementor-element-a616395 { order: 2; }
    .elementor-element-40f435d .elementor-element-1259147 { order: 3; }

    .elementor-element-40f435d > .e-con-inner > .elementor-element-1cfc0fe,
    .elementor-element-40f435d > .elementor-element-1cfc0fe {
        display: block !important;
        grid-column: 1 / -1 !important;
        order: 4;
        justify-self: center !important;
        margin: 8px auto 12px !important;
    }

    .product .memez-external-swatches { gap: 6px; margin: 8px 0 10px; }
    .product .memez-swatch-choices { gap: 6px; }
    .product .memez-color-swatch { width: 20px; height: 20px; }
    .product .memez-size-swatch { min-width: 28px; height: 25px; padding: 0 5px; line-height: 23px; }
}
/* Approved product option labels and accessible focus. */
.product .memez-swatch-label{display:block;margin:0 0 5px;font-size:10px;line-height:1.3;letter-spacing:.12em;color:#444;}
.product .memez-external-swatches button{flex-shrink:0;min-height:0;}
.product .memez-external-swatches button:focus-visible{outline:2px solid #111;outline-offset:3px;}
.product .memez-color-unknown{width:auto;min-width:28px;padding:0 6px;border-radius:3px;font-size:10px;}
