.wm-promo-builder {
    --wm-pino: #174746;
    --wm-oro: #d9aa26;
    --wm-marfil: #fbf8ef;
    margin: 1.25rem 0;
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid rgba(217, 170, 38, .48);
    border-radius: 22px;
    background: var(--wm-marfil);
    color: var(--wm-pino);
}
.wm-promo-builder__heading { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1rem; }
.wm-promo-builder__heading span { color:#9c7000; font-size:.78rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.wm-promo-builder__heading strong { font-size:.88rem; }
.wm-promo-builder__offer-status { display:flex; justify-content:space-between; align-items:center; gap:1rem; margin:0 0 1rem; padding:.8rem 1rem; border:1px solid #d9cda9; border-radius:14px; background:#f5f0e3; color:var(--wm-pino); }
.wm-promo-builder__offer-status strong { font-size:clamp(.94rem, 1.5vw, 1.08rem); }
.wm-promo-builder__offer-status span { flex:0 0 auto; font-weight:800; }
.wm-promo-builder__offer-status.is-saving { border-color:#9cc9b3; background:#e8f5ee; color:#216747; }
.wm-promo-builder__offer-status.is-saving strong::before { content:'✓'; display:inline-grid; width:1.35rem; height:1.35rem; margin-right:.45rem; place-items:center; border-radius:50%; background:#216747; color:#fff; font-size:.75rem; }
.wm-promo-builder__offer-status.is-ready { border-color:#b8d2cb; background:#eef6f3; }
.wm-promo-builder__offer-status.is-error { border-color:#ddb0a8; background:#fbefed; color:#923b31; }
.wm-promo-builder__question { display:block; margin:0 0 .45rem; font-size:.9rem; font-weight:800; }
.wm-promo-builder__controls { display:grid; grid-template-columns:minmax(150px, 180px) minmax(220px, 1fr); gap:.75rem; }
.wm-promo-builder__quantity { box-sizing:border-box; width:100% !important; min-width:150px; min-height:56px; padding:.65rem 1rem; border:1px solid #b9cfca; border-radius:14px; background:#fff; font-size:1.25rem; font-variant-numeric:tabular-nums; font-weight:750; text-align:center; }
.woocommerce div.product .wm-promo-builder .wm-promo-builder__add,
.elementor-widget-woocommerce-product-add-to-cart .wm-promo-builder .wm-promo-builder__add,
.wm-promo-builder .wm-promo-builder__add { min-height:56px; border:1px solid var(--wm-pino) !important; border-radius:14px !important; background:var(--wm-pino) !important; background-color:var(--wm-pino) !important; box-shadow:none !important; color:#fff !important; font-weight:800; text-transform:none; }
.woocommerce div.product .wm-promo-builder .wm-promo-builder__add:not(:disabled):hover,
.elementor-widget-woocommerce-product-add-to-cart .wm-promo-builder .wm-promo-builder__add:not(:disabled):hover,
.wm-promo-builder .wm-promo-builder__add:not(:disabled):hover { border-color:#0f3837 !important; background:#0f3837 !important; background-color:#0f3837 !important; color:#fff !important; }
.wm-promo-builder .wm-promo-builder__add:disabled { cursor:not-allowed; opacity:.52; }
.wm-promo-builder__help { margin:.75rem 0 0; color:#5d706f; font-size:.9rem; }
.wm-promo-builder__breakdown { margin-top:1.2rem; padding:1rem; border-radius:16px; background:#fff; }
.wm-promo-builder__breakdown-heading { margin-bottom:.65rem; }
.wm-promo-builder__breakdown-heading > span { color:#9c7000; font-size:.7rem; font-weight:850; letter-spacing:.12em; text-transform:uppercase; }
.wm-promo-builder__breakdown h4 { margin:.15rem 0 0; color:var(--wm-pino); font-size:1.08rem; }
.wm-promo-builder__breakdown ul { list-style:none; margin:0; padding:0; }
.wm-promo-builder__breakdown li { display:flex; justify-content:space-between; gap:1rem; padding:.7rem 0; border-bottom:1px solid #e5ecea; }
.wm-promo-builder__component > span { display:flex; min-width:0; flex-direction:column; gap:.15rem; }
.wm-promo-builder__component > span > strong { color:var(--wm-pino); font-size:clamp(1rem, 1.4vw, 1.1rem); font-weight:850; line-height:1.25; }
.wm-promo-builder__component small { color:#687a78; font-size:.84rem; }
.wm-promo-builder__component > strong { flex:0 0 auto; align-self:center; color:var(--wm-pino); font-size:clamp(1rem, 1.4vw, 1.1rem); font-weight:850; }
.wm-promo-builder__price-comparison { display:grid; gap:.55rem; margin-top:.85rem; padding-top:.2rem; }
.wm-promo-builder__regular-price,
.wm-promo-builder__promo-price,
.wm-promo-builder__savings { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.wm-promo-builder__regular-price { color:#71807e; font-size:.88rem; }
.wm-promo-builder__regular-price del { color:#8e9795; font-size:1rem; font-weight:750; opacity:.72; text-decoration-thickness:2px; }
.wm-promo-builder__promo-price { color:var(--wm-pino); font-weight:850; }
.wm-promo-builder__promo-price ins { color:#9c7000; font-size:clamp(1.25rem, 3vw, 1.65rem); font-weight:900; text-decoration:none; }
.wm-promo-builder__savings { padding:.55rem .7rem; border-radius:10px; background:#edf7f2; color:#276b51; font-size:.84rem; font-weight:800; }
.wm-promo-builder p.is-error { margin:.65rem 0 0; color:#9d2f2f; font-weight:700; }
.wm-promo-price-from { color:#9c7000; font-weight:800; }

/* Galería sincronizada con las promociones que componen el pedido. */
.eael-single-product-images.wm-promo-gallery-active .product_image_slider {
    display: none !important;
}

.wm-promo-visual-carousel {
    --wm-promo-carousel-pino: #174746;
    --wm-promo-carousel-oro: #d9aa26;
    --wm-promo-stage-ratio: 1 / 1;
    width: 100%;
    color: #fff;
}

.wm-promo-visual-carousel__stage {
    position: relative;
    width: 100%;
    max-height: 680px;
    aspect-ratio: var(--wm-promo-stage-ratio);
    overflow: hidden;
    border: 1px solid rgba(217, 170, 38, .55);
    border-radius: clamp(18px, 2vw, 28px);
    background: #f4f0e5;
    box-shadow: 0 22px 50px rgba(23, 71, 70, .16);
}

.wm-promo-visual-carousel__stage::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: clamp(24px, 7%, 52px);
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(10, 49, 48, .22));
}

.wm-promo-visual-carousel__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1);
    opacity: 1;
    transition: opacity .35s ease, transform 3.2s ease;
}

.wm-promo-visual-carousel__image.is-changing {
    transform: scale(1.035);
    opacity: .18;
}

.wm-promo-visual-carousel__caption {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 5px clamp(14px, 3vw, 28px);
    align-items: center;
    min-height: clamp(92px, 21%, 132px);
    padding: clamp(16px, 3vw, 26px) clamp(18px, 4vw, 34px);
    border-top: 1px solid rgba(231, 201, 107, .32);
    background: linear-gradient(120deg, rgba(18, 67, 65, .96), rgba(65, 111, 97, .92));
    box-shadow: 0 -12px 30px rgba(14, 55, 54, .12);
    text-shadow: 0 1px 5px rgba(0, 0, 0, .22);
    backdrop-filter: blur(7px);
}

.wm-promo-visual-carousel__caption span {
    grid-column: 1 / -1;
    color: #f1d06d;
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.wm-promo-visual-carousel__caption strong {
    color: #fff;
    font-size: clamp(1.05rem, 1.8vw, 1.5rem);
    font-weight: 620;
    line-height: 1.18;
}

.wm-promo-visual-carousel__caption em {
    color: #fff;
    font-size: clamp(.98rem, 1.55vw, 1.22rem);
    font-style: normal;
    font-weight: 600;
    white-space: nowrap;
}

.wm-promo-visual-carousel__arrow {
    position: absolute;
    z-index: 3;
    top: 50%;
    display: none !important;
    width: 48px;
    height: 56px;
    padding: 0;
    place-items: center;
    transform: translateY(-50%);
    border: 1px solid rgba(255, 255, 255, .5) !important;
    border-radius: 15px !important;
    background: rgba(23, 71, 70, .88) !important;
    color: #fff !important;
    font-family: Georgia, serif;
    font-size: 2.1rem;
    line-height: 1;
    cursor: pointer;
    backdrop-filter: blur(8px);
}

.wm-promo-visual-carousel.has-multiple .wm-promo-visual-carousel__arrow {
    display: grid !important;
}

.wm-promo-visual-carousel__arrow.is-prev { left: 16px; }
.wm-promo-visual-carousel__arrow.is-next { right: 16px; }

.wm-promo-visual-carousel__dots {
    display: flex;
    min-height: 28px;
    justify-content: center;
    gap: 8px;
    padding: 12px 8px 0;
}

.wm-promo-visual-carousel:not(.has-multiple) .wm-promo-visual-carousel__dots {
    display: none;
}

.wm-promo-visual-carousel__dots button {
    width: 28px;
    height: 8px;
    padding: 0;
    overflow: hidden;
    border: 0 !important;
    border-radius: 999px !important;
    background: #cad8d4 !important;
    color: transparent !important;
    cursor: pointer;
    transition: width .25s ease, background-color .25s ease;
}

.wm-promo-visual-carousel__dots button.is-active {
    width: 48px;
    background: var(--wm-promo-carousel-oro) !important;
}

@media (prefers-reduced-motion: reduce) {
    .wm-promo-visual-carousel__image,
    .wm-promo-visual-carousel__dots button { transition: none; }
}

@media (max-width: 560px) {
    .wm-promo-builder__heading,
    .wm-promo-builder__offer-status { align-items:flex-start; flex-direction:column; }
    .wm-promo-builder__controls { grid-template-columns:1fr; }
    .wm-promo-builder__regular-price,
    .wm-promo-builder__promo-price,
    .wm-promo-builder__savings { align-items:flex-start; flex-direction:column; gap:.2rem; }
    .wm-promo-visual-carousel__caption { grid-template-columns:1fr; min-height:auto; padding:15px 18px; }
    .wm-promo-visual-carousel__caption em { white-space:normal; }
    .wm-promo-visual-carousel__arrow { width:42px; height:48px; }
}
