/* ALEX_V51_2_SHARED_STOREFRONT_SURFACES
   Structural/functional presentation shared by registered packages.
   Package CSS loaded later remains responsible for visual identity. */

.red-location-modal[hidden]{display:none!important}
body.red-location-modal-open{overflow:hidden}
.red-location-modal{
    position:fixed;
    inset:0;
    z-index:10060;
    display:grid;
    place-items:center;
    padding:22px;
    opacity:0;
    visibility:hidden;
    transition:opacity .18s ease,visibility .18s ease;
}
.red-location-modal.is-open{opacity:1;visibility:visible}
.red-location-modal__backdrop{position:absolute;inset:0;background:rgba(15,23,42,.68);backdrop-filter:blur(2px)}
.red-location-modal__dialog{
    position:relative;
    z-index:1;
    width:min(940px,100%);
    max-height:min(90vh,860px);
    overflow:auto;
    padding:26px;
    border-radius:16px;
    background:#fff;
    color:#101828;
    box-shadow:0 28px 80px rgba(15,23,42,.28);
    transform:translateY(12px) scale(.985);
    transition:transform .18s ease;
}
.red-location-modal.is-open .red-location-modal__dialog{transform:none}
.red-location-modal__close{
    position:absolute;top:14px;right:14px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;background:#f2f4f7;color:#344054;font-size:24px;line-height:1;cursor:pointer
}
.red-location-modal__header{padding-right:44px;text-align:center}
.red-location-modal__eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--red-color-primary,#ef1b23);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.red-location-modal__header h2{margin:7px 0 5px;font-size:clamp(1.35rem,2.6vw,2rem);line-height:1.15}
.red-location-modal__header p{max-width:680px;margin:0 auto;color:#667085;line-height:1.5}
.red-location-modal__account-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:18px 0 4px}
.red-location-account-pill{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 13px;border:1px solid #e4e7ec;border-radius:999px;background:#fff;color:#344054;font-size:.76rem;font-weight:700;text-decoration:none;cursor:pointer}
.red-location-account-pill.is-active,.red-location-account-pill:hover{border-color:color-mix(in srgb,var(--red-color-primary,#ef1b23) 42%,#e4e7ec);background:color-mix(in srgb,var(--red-color-primary,#ef1b23) 7%,#fff);color:var(--red-color-primary,#ef1b23)}
.red-location-saved{margin-top:18px;padding:14px;border:1px solid #e4e7ec;border-radius:12px;background:#f9fafb}
.red-location-saved__title{margin-bottom:9px;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#475467}
.red-location-saved__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.red-location-saved__item{display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:9px;align-items:center;padding:11px;border:1px solid #e4e7ec;border-radius:10px;background:#fff;text-align:left;color:#101828;cursor:pointer}
.red-location-saved__item:hover,.red-location-saved__item.is-default{border-color:color-mix(in srgb,var(--red-color-primary,#ef1b23) 35%,#e4e7ec)}
.red-location-saved__item span{min-width:0}.red-location-saved__item strong,.red-location-saved__item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.red-location-saved__item small{margin-top:2px;color:#667085}.red-location-saved__item em{font-size:.66rem;font-style:normal;color:var(--red-color-primary,#ef1b23);font-weight:800}
.red-location-modal__detect{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0;color:#98a2b3;font-size:.76rem}
.red-location-form{display:grid;gap:13px}
.red-location-form label{display:grid;gap:6px;color:#344054;font-size:.78rem;font-weight:700}.red-location-form label>span{color:var(--red-color-primary,#ef1b23)}
.red-location-form input,.red-location-form select{width:100%;height:44px;padding:0 11px;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#101828;font:inherit;outline:0;transition:border-color .16s ease,box-shadow .16s ease}
.red-location-form input:focus,.red-location-form select:focus{border-color:var(--red-color-primary,#ef1b23);box-shadow:0 0 0 3px color-mix(in srgb,var(--red-color-primary,#ef1b23) 12%,transparent)}
.red-location-form__geo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.red-location-form__address input{font-size:.9rem}
.red-location-map-wrap{overflow:hidden;border:1px solid #e4e7ec;border-radius:12px;background:#f2f4f7}
.red-location-map{height:310px;width:100%}
.red-location-map__hint{margin:0;padding:8px 11px;background:#fff;color:#667085;font-size:.72rem}
.red-location-form__status{margin:0;padding:9px 11px;border-radius:8px;background:#ecfdf3;color:#027a48;font-size:.77rem}.red-location-form__status.is-error{background:#fef3f2;color:#b42318}
.red-location-form__actions{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:2px}
.red-mall-button{border-radius:8px}

@media (min-width:981px){
    :where(.red-legacy,.red-modern).red-mode-mall .legacy-header__inner,:where(.red-legacy,.red-modern).red-mall-child .legacy-header__inner{grid-template-columns:auto minmax(280px,1fr) auto auto}
}
@media (max-width:1100px) and (min-width:981px){
    :where(.red-legacy,.red-modern) .legacy-location-chip{max-width:180px;padding-inline:10px}
}
@media (max-width:980px){
    :where(.red-legacy,.red-modern) .legacy-location-chip{display:none}
    .red-location-modal{padding:0;place-items:end center}
    .red-location-modal__dialog{width:100%;max-height:92dvh;border-radius:18px 18px 0 0;padding:20px 16px 18px;transform:translateY(28px)}
    .red-location-form__geo-grid{grid-template-columns:1fr 1fr}
    .red-location-form__geo-grid label:first-child{grid-column:1/-1}
    .red-location-map{height:260px}
}
@media (max-width:620px){
    .red-location-saved__grid{grid-template-columns:1fr}
    .red-location-modal__detect{align-items:stretch;flex-direction:column;text-align:center}
    .red-location-modal__detect .red-mall-button{width:100%}
    .red-location-form__geo-grid{grid-template-columns:1fr}
    .red-location-form__geo-grid label:first-child{grid-column:auto}
    .red-location-form__actions{display:grid;grid-template-columns:1fr}.red-location-form__actions .red-mall-button{width:100%}
    .red-location-map{height:225px}
}

.red-location-form__remember{display:flex!important;align-items:flex-start;gap:9px;padding:10px 12px;border:1px solid #e4e7ec;border-radius:10px;background:#f8fafc;color:#475467;font-size:.8rem;font-weight:600}
.red-location-form__remember input{width:16px!important;height:16px!important;min-width:16px;margin:1px 0 0;accent-color:var(--red-color-primary,#ef1b23)}
.red-location-form__remember span{line-height:1.4}

/* Google Places autocomplete dentro del modal de ubicación. */
.pac-container{
    z-index:10180!important;
    margin-top:6px;
    border:1px solid #e4e7ec;
    border-radius:10px;
    overflow:hidden;
    box-shadow:0 14px 36px rgba(15,23,42,.18);
    font-family:var(--red-font-family,Inter,Arial,sans-serif);
}
.pac-item{
    min-height:44px;
    padding:8px 12px;
    border-top:1px solid #f2f4f7;
    color:#475467;
    font-size:.8rem;
    line-height:1.35;
    cursor:pointer;
}
.pac-item:first-child{border-top:0}
.pac-item:hover,.pac-item-selected{background:#f8fafc}
.pac-item-query{color:#101828;font-size:.82rem}
.pac-matched{font-weight:800;color:var(--red-color-primary,#ef1b23)}

/* Fase 4.2.2: Google Places (New) - el desplegable vive dentro del componente y acompaña el scroll del modal. */
.red-location-place-host{
    position:relative;
    z-index:6;
    min-width:0;
}
.red-location-place-autocomplete{
    display:block;
    width:100%;
    min-height:44px;
    border:1px solid #d0d5dd;
    border-radius:8px;
    background:#fff;
    color:#101828;
    color-scheme:light;
    font-family:var(--red-font-family,Inter,Arial,sans-serif);
    font-size:.9rem;
    line-height:1.35;
    box-sizing:border-box;
}
.red-location-place-autocomplete:focus-within{
    border-color:var(--red-color-primary,#ef1b23);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--red-color-primary,#ef1b23) 12%,transparent);
}
.red-location-place-autocomplete::part(input){
    min-height:42px;
    padding:0 11px;
    color:#101828;
    font-family:var(--red-font-family,Inter,Arial,sans-serif);
    font-size:.9rem;
}
.red-location-place-autocomplete::part(prediction-list){
    z-index:20;
    margin-top:6px;
    border:1px solid #e4e7ec;
    border-radius:10px;
    background:#fff;
    box-shadow:0 14px 36px rgba(15,23,42,.18);
    overflow:hidden;
}
.red-location-place-autocomplete::part(prediction-item){
    min-height:46px;
    padding:9px 12px;
    color:#475467;
    font-family:var(--red-font-family,Inter,Arial,sans-serif);
    font-size:.8rem;
    line-height:1.35;
}
.red-location-place-autocomplete::part(prediction-item-selected){
    background:#f8fafc;
}
.red-location-place-autocomplete::part(prediction-item-main-text){
    color:#101828;
    font-weight:700;
}
.red-location-place-autocomplete::part(prediction-item-secondary-text){
    color:#667085;
}
.red-location-place-autocomplete::part(prediction-item-match){
    color:var(--red-color-primary,#ef1b23);
    font-weight:800;
}
@media (max-width:620px){
    .red-location-place-autocomplete::part(prediction-item){
        min-height:50px;
        padding:10px 11px;
        font-size:.78rem;
    }
}


/* ========================================================================== */
/* FASE 4.4 — MINI CART / CART DRAWER                                        */
/* ========================================================================== */

.red-cart-drawer-overlay{
    position:fixed;
    inset:0;
    z-index:1180;
    background:rgba(15,23,42,.48);
    -webkit-backdrop-filter:blur(2px);
    backdrop-filter:blur(2px);
}
.red-cart-drawer-overlay[hidden]{
    display:none!important;
}

.red-cart-drawer{
    position:fixed;
    z-index:1190;
    top:0;
    right:0;
    bottom:0;
    width:min(94vw,430px);
    background:#fff;
    color:#101828;
    box-shadow:-20px 0 60px rgba(15,23,42,.18);
    display:grid;
    grid-template-rows:auto minmax(0,1fr) auto;
    transform:translateX(105%);
    visibility:hidden;
    transition:transform .22s ease,visibility .22s step-end;
}
.red-cart-drawer.is-open{
    transform:translateX(0);
    visibility:visible;
    transition:transform .22s ease,visibility 0s;
}
.red-cart-drawer.is-busy::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:5;
    background:rgba(255,255,255,.22);
    pointer-events:none;
}

.red-cart-drawer__header{
    min-height:82px;
    padding:16px 18px;
    border-bottom:1px solid #eaecf0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    background:#fff;
}
.red-cart-drawer__header>div{
    min-width:0;
}
.red-cart-drawer__eyebrow{
    display:block;
    margin-bottom:2px;
    color:var(--red-color-primary,#b00000);
    font-size:9px;
    line-height:1.1;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.red-cart-drawer__header strong{
    display:block;
    color:#101828;
    font-size:20px;
    line-height:1.15;
}
.red-cart-drawer__header small{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:11px;
}
.red-cart-drawer__close{
    flex:0 0 38px;
    width:38px;
    height:38px;
    padding:0;
    border:1px solid #e4e7ec;
    border-radius:50%;
    background:#fff;
    color:#344054;
    display:grid;
    place-items:center;
    cursor:pointer;
}
.red-cart-drawer__close:hover,
.red-cart-drawer__close:focus-visible{
    border-color:#cdd3dc;
    background:#f8fafc;
}

.red-cart-drawer__body{
    min-height:0;
    padding:0 16px 22px;
    overflow:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
}
.red-cart-drawer__loading,
.red-cart-drawer__empty{
    min-height:300px;
    padding:44px 24px;
    color:#667085;
    text-align:center;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
}
.red-cart-drawer__loading .fa,
.red-cart-drawer__empty>.fa{
    color:var(--red-color-primary,#b00000);
    font-size:28px;
}
.red-cart-drawer__empty strong{
    margin-top:4px;
    color:#101828;
    font-size:15px;
}
.red-cart-drawer__empty p{
    max-width:300px;
    margin:0;
    font-size:12px;
    line-height:1.45;
}
.red-cart-drawer__empty--error>.fa{
    color:#b42318;
}
.red-cart-drawer__retry{
    margin-top:8px;
    min-height:34px;
    padding:7px 12px;
    border:1px solid #d0d5dd;
    border-radius:9px;
    background:#fff;
    color:#344054;
    font:inherit;
    font-size:11px;
    font-weight:700;
    cursor:pointer;
}

/* Producto del mini-cart */
.red-cart-drawer__item{
    position:relative;
    min-width:0;
    padding:14px 0;
    border-bottom:1px solid #eef0f3;
    display:grid;
    grid-template-columns:72px minmax(0,1fr);
    gap:11px;
}
.red-cart-drawer__item:last-child{
    border-bottom:0;
}
.red-cart-drawer__item-media{
    width:72px;
    height:72px;
    padding:4px;
    border:1px solid #eef0f3;
    border-radius:11px;
    background:#fff;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
}
.red-cart-drawer__item-media img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
}
.red-cart-drawer__item-content{
    min-width:0;
}
.red-cart-drawer__item-name{
    display:-webkit-box;
    overflow:hidden;
    color:#101828;
    font-size:12px;
    line-height:1.28;
    font-weight:750;
    text-decoration:none;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
}
.red-cart-drawer__item-name:hover{
    color:var(--red-color-primary,#b00000);
}
.red-cart-drawer__item-meta{
    min-width:0;
    margin-top:5px;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:4px 7px;
}
.red-cart-drawer__item-price{
    color:#101828;
    font-size:14px;
    line-height:1.1;
    font-weight:850;
    font-variant-numeric:tabular-nums;
}
.red-cart-drawer__item-price.is-quote{
    color:#475467;
    font-size:10px;
}
.red-cart-drawer__item-mode{
    padding:2px 5px;
    border-radius:999px;
    background:#fff4e5;
    color:#934000;
    font-size:8px;
    line-height:1.15;
    font-weight:700;
}
.red-cart-drawer__unavailable{
    display:block;
    margin-top:4px;
    color:#b42318;
    font-size:9px;
}
.red-cart-drawer__item-controls{
    margin-top:9px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
}
.red-cart-drawer__qty{
    height:30px;
    border:1px solid #dfe3e8;
    border-radius:999px;
    background:#fff;
    display:inline-grid;
    grid-template-columns:28px 32px 28px;
    align-items:center;
    overflow:hidden;
}
.red-cart-drawer__qty button{
    height:100%;
    padding:0;
    border:0;
    background:transparent;
    color:#101828;
    font:inherit;
    font-size:14px;
    font-weight:700;
    cursor:pointer;
}
.red-cart-drawer__qty button:hover:not(:disabled){
    background:#f2f4f7;
}
.red-cart-drawer__qty button:disabled,
.red-cart-drawer__qty input:disabled{
    opacity:.45;
    cursor:not-allowed;
}
.red-cart-drawer__qty input{
    width:32px;
    height:100%;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:#101828;
    font:inherit;
    font-size:11px;
    font-weight:750;
    text-align:center;
    appearance:textfield;
    -moz-appearance:textfield;
}
.red-cart-drawer__qty input::-webkit-outer-spin-button,
.red-cart-drawer__qty input::-webkit-inner-spin-button{
    margin:0;
    -webkit-appearance:none;
}
.red-cart-drawer__remove{
    width:30px;
    height:30px;
    padding:0;
    border:1px solid #f1d4d2;
    border-radius:9px;
    background:#fff;
    color:#b42318;
    display:grid;
    place-items:center;
    cursor:pointer;
}
.red-cart-drawer__remove:hover{
    background:#fff5f4;
}

/* Agrupación por comercio en Mall root */
.red-cart-drawer__group{
    margin-top:14px;
    border:1px solid #e4e7ec;
    border-radius:13px;
    background:#fff;
    overflow:hidden;
}
.red-cart-drawer__group-head{
    min-height:52px;
    padding:10px 12px;
    border-bottom:1px solid #eef0f3;
    background:#f9fafb;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.red-cart-drawer__group-identity{
    min-width:0;
}
.red-cart-drawer__group-identity>a{
    display:block;
    overflow:hidden;
    color:#101828;
    font-size:12px;
    line-height:1.2;
    font-weight:800;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-decoration:none;
}
.red-cart-drawer__group-identity small{
    display:block;
    margin-top:3px;
    color:#667085;
    font-size:9px;
}
.red-cart-drawer__group-head>.fa{
    color:#98a2b3;
}
.red-cart-drawer__group-items{
    padding:0 12px;
}
.red-cart-drawer__group-action{
    min-height:38px;
    padding:8px 12px;
    border-top:1px solid #eef0f3;
    color:var(--red-color-primary,#b00000);
    font-size:10px;
    font-weight:800;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
}
.red-cart-drawer__group-action:hover{
    background:#fff8f7;
}

/* Footer */
.red-cart-drawer__footer{
    padding:13px 16px max(16px,env(safe-area-inset-bottom));
    border-top:1px solid #e4e7ec;
    background:#fff;
    box-shadow:0 -8px 28px rgba(15,23,42,.045);
}
.red-cart-drawer__footer[hidden]{
    display:none!important;
}
.red-cart-drawer__total{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:14px;
}
.red-cart-drawer__total span{
    color:#475467;
    font-size:11px;
    font-weight:650;
}
.red-cart-drawer__total strong{
    min-width:0;
    color:#101828;
    font-size:19px;
    line-height:1.1;
    font-weight:900;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
    text-align:right;
}
.red-cart-drawer__note{
    display:block;
    min-height:12px;
    margin-top:4px;
    color:#667085;
    font-size:9px;
    line-height:1.35;
}
.red-cart-drawer__footer-actions{
    margin-top:11px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.red-cart-drawer__view,
.red-cart-drawer__checkout{
    min-height:40px;
    padding:9px 10px;
    border-radius:9px;
    font-size:11px;
    font-weight:800;
    text-align:center;
    text-decoration:none;
    display:flex;
    align-items:center;
    justify-content:center;
}
.red-cart-drawer__view{
    border:1px solid #d0d5dd;
    background:#fff;
    color:#344054;
}
.red-cart-drawer__checkout{
    border:1px solid var(--red-color-primary,#b00000);
    background:var(--red-color-primary,#b00000);
    color:#fff;
}

@media(max-width:560px){
    .red-cart-drawer{
        width:100vw;
        max-width:none;
    }
    .red-cart-drawer__header{
        min-height:72px;
        padding:13px 14px;
    }
    .red-cart-drawer__body{
        padding-inline:13px;
    }
    .red-cart-drawer__group{
        margin-top:11px;
    }
    .red-cart-drawer__item{
        grid-template-columns:64px minmax(0,1fr);
        gap:9px;
        padding:12px 0;
    }
    .red-cart-drawer__item-media{
        width:64px;
        height:64px;
    }
    .red-cart-drawer__footer{
        padding-inline:14px;
    }
}

/* ========================================================================== */
/* Fase 4.5 — ViewCart                                                        */
/* ========================================================================== */

:where(.red-legacy,.red-modern) .red-viewcart{
    width:100%;
    max-width:100%;
}
:where(.red-legacy,.red-modern) .red-viewcart.is-busy{
    pointer-events:none;
}
:where(.red-legacy,.red-modern) .red-viewcart.is-busy::after{
    content:"";
    position:fixed;
    z-index:120;
    inset:0;
    background:rgba(255,255,255,.28);
    cursor:progress;
}
:where(.red-legacy,.red-modern) .red-viewcart__breadcrumb{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 14px;
    color:#7b8494;
    font-size:11px;
}
:where(.red-legacy,.red-modern) .red-viewcart__breadcrumb a{
    color:inherit;
    text-decoration:none;
}
:where(.red-legacy,.red-modern) .red-viewcart__breadcrumb a:hover{
    color:var(--red-color-primary,#b00000);
}
:where(.red-legacy,.red-modern) .red-viewcart__header{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
    margin:0 0 20px;
}
:where(.red-legacy,.red-modern) .red-viewcart__eyebrow,
:where(.red-legacy,.red-modern) .red-viewcart-summary__eyebrow{
    display:block;
    margin-bottom:3px;
    color:var(--red-color-primary,#b00000);
    font-size:9px;
    font-weight:850;
    letter-spacing:.07em;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart__header h1{
    margin:0;
    color:#101828;
    font-size:clamp(24px,3vw,34px);
    line-height:1.08;
}
:where(.red-legacy,.red-modern) .red-viewcart__header p{
    margin:6px 0 0;
    color:#667085;
    font-size:12px;
}
:where(.red-legacy,.red-modern) .red-viewcart__count{
    flex:0 0 auto;
    padding:7px 11px;
    border:1px solid #e6e9ee;
    border-radius:999px;
    background:#fff;
    color:#667085;
    font-size:10px;
}
:where(.red-legacy,.red-modern) .red-viewcart__count strong{
    color:#101828;
}
:where(.red-legacy,.red-modern) .red-viewcart__alert{
    display:flex;
    align-items:flex-start;
    gap:9px;
    margin:0 0 14px;
    padding:11px 13px;
    border:1px solid #f3c8c8;
    border-radius:11px;
    background:#fff7f7;
    color:#9f1d1d;
    font-size:11px;
}
:where(.red-legacy,.red-modern) .red-viewcart__layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(285px,340px);
    gap:20px;
    align-items:start;
}
:where(.red-legacy,.red-modern) .red-viewcart__content{
    min-width:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-store{
    overflow:hidden;
    margin-bottom:16px;
    border:1px solid #e5e9ef;
    border-radius:14px;
    background:#fff;
    box-shadow:0 7px 24px rgba(16,24,40,.035);
}
:where(.red-legacy,.red-modern) .red-viewcart-store__header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:13px 15px;
    border-bottom:1px solid #edf0f3;
    background:#fbfcfd;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__label{
    display:block;
    margin-bottom:2px;
    color:var(--red-color-primary,#b00000);
    font-size:8px;
    font-weight:850;
    letter-spacing:.07em;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__identity h2{
    margin:0;
    font-size:14px;
    line-height:1.2;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__identity h2 a{
    color:#101828;
    text-decoration:none;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__identity small{
    display:block;
    margin-top:3px;
    color:#7b8494;
    font-size:9px;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__subtotal{
    flex:0 0 auto;
    text-align:right;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__subtotal span{
    display:block;
    color:#7b8494;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__subtotal strong{
    color:#101828;
    font-size:14px;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__items{
    display:grid;
}
:where(.red-legacy,.red-modern) .red-viewcart-item{
    position:relative;
    display:grid;
    grid-template-columns:92px minmax(170px,1fr) minmax(100px,130px) 122px minmax(105px,135px) 34px;
    gap:13px;
    align-items:center;
    min-width:0;
    padding:13px 14px;
    border-bottom:1px solid #edf0f3;
}
:where(.red-legacy,.red-modern) .red-viewcart-item:last-child{
    border-bottom:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-item.is-unavailable{
    background:#fff8f8;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__image{
    display:flex;
    align-items:center;
    justify-content:center;
    width:92px;
    height:92px;
    overflow:hidden;
    border:1px solid #edf0f3;
    border-radius:10px;
    background:#fff;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__image img{
    width:100%;
    height:100%;
    object-fit:contain;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__main{
    min-width:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__code{
    display:block;
    margin-bottom:3px;
    color:#98a2b3;
    font-size:8px;
    font-style:italic;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__main h3{
    margin:0;
    font-size:12px;
    font-weight:750;
    line-height:1.28;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__main h3 a{
    color:#101828;
    text-decoration:none;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__main h3 a:hover{
    color:var(--red-color-primary,#b00000);
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badges{
    display:flex;
    flex-wrap:wrap;
    gap:4px 7px;
    margin-top:7px;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge{
    display:inline-flex;
    align-items:center;
    gap:3px;
    color:#667085;
    font-size:8px;
    line-height:1.1;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge.is-tax{
    color:#13a538;
    font-style:italic;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge.is-stock .fa{
    color:#17324d;
    font-size:6px;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge.is-stock.is-unavailable{
    color:#b42318;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge.is-stock.is-unavailable .fa{
    color:#b42318;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__badge.is-quote{
    color:#8a4b00;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__unit,
:where(.red-legacy,.red-modern) .red-viewcart-item__total,
:where(.red-legacy,.red-modern) .red-viewcart-item__quantity{
    min-width:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__unit>span,
:where(.red-legacy,.red-modern) .red-viewcart-item__total>span,
:where(.red-legacy,.red-modern) .red-viewcart-item__quantity>span{
    display:block;
    margin-bottom:4px;
    color:#98a2b3;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__unit strong,
:where(.red-legacy,.red-modern) .red-viewcart-item__total strong{
    display:block;
    max-width:100%;
    color:#101828;
    font-size:12px;
    line-height:1.1;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__total strong{
    font-size:14px;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__unit small{
    display:block;
    margin-top:4px;
    color:#667085;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__quantity form{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-qty{
    display:inline-grid;
    grid-template-columns:28px 40px 28px;
    align-items:center;
    height:31px;
    overflow:hidden;
    border:1px solid #dde3ea;
    border-radius:999px;
    background:#fff;
}
:where(.red-legacy,.red-modern) .red-viewcart-qty button{
    width:28px;
    height:29px;
    padding:0;
    border:0;
    background:transparent;
    color:#101828;
    font-size:15px;
    line-height:1;
    cursor:pointer;
}
:where(.red-legacy,.red-modern) .red-viewcart-qty button:hover{
    background:#f3f5f7;
}
:where(.red-legacy,.red-modern) .red-viewcart-qty input{
    width:40px;
    height:29px;
    padding:0;
    border:0;
    outline:0;
    background:transparent;
    color:#101828;
    text-align:center;
    font-size:10px;
    font-weight:750;
    appearance:textfield;
    -moz-appearance:textfield;
}
:where(.red-legacy,.red-modern) .red-viewcart-qty input::-webkit-outer-spin-button,
:where(.red-legacy,.red-modern) .red-viewcart-qty input::-webkit-inner-spin-button{
    margin:0;
    -webkit-appearance:none;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__remove-form{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__remove{
    display:grid;
    place-items:center;
    width:31px;
    height:31px;
    padding:0;
    border:1px solid #f2d1d1;
    border-radius:9px;
    background:#fff;
    color:#d92d20;
    cursor:pointer;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__remove:hover{
    background:#fff3f2;
}
:where(.red-legacy,.red-modern) .red-viewcart-item__mobile-price{
    display:none;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__footer{
    padding:9px 13px;
    border-top:1px solid #edf0f3;
    background:#fbfcfd;
    text-align:right;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__footer a{
    display:inline-flex;
    align-items:center;
    gap:7px;
    color:#101828;
    font-size:9px;
    font-weight:750;
    text-decoration:none;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__footer a:hover{
    color:var(--red-color-primary,#b00000);
}
:where(.red-legacy,.red-modern) .red-viewcart-summary{
    position:sticky;
    top:calc(var(--red-sticky-header-offset,94px) + 16px);
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__card{
    padding:18px;
    border:1px solid #e5e9ef;
    border-radius:14px;
    background:#fff;
    box-shadow:0 8px 30px rgba(16,24,40,.055);
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__card h2{
    margin:0 0 17px;
    color:#101828;
    font-size:17px;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals>div{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:7px 0;
    color:#667085;
    font-size:10px;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals dt,
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals dd{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals dd{
    color:#344054;
    font-weight:700;
    text-align:right;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals dd.is-pending{
    color:#98a2b3;
    font-size:9px;
    font-weight:600;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__grand-total{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-top:10px;
    padding-top:13px;
    border-top:1px solid #e7eaee;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__grand-total span{
    color:#101828;
    font-size:11px;
    font-weight:750;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__grand-total strong{
    max-width:62%;
    color:#101828;
    font-size:20px;
    line-height:1;
    text-align:right;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__notice{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:14px;
    padding:10px;
    border-radius:10px;
    background:#f7f8fa;
    color:#667085;
    font-size:9px;
    line-height:1.4;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__notice p{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__notice--quote{
    background:#fff7e8;
    color:#8a4b00;
}
:where(.red-legacy,.red-modern) .red-viewcart__primary-button,
:where(.red-legacy,.red-modern) .red-viewcart__secondary-button{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-height:42px;
    margin-top:14px;
    padding:9px 13px;
    border:1px solid var(--red-color-primary,#b00000);
    border-radius:9px;
    background:var(--red-color-primary,#b00000);
    color:#fff;
    font-size:10px;
    font-weight:800;
    text-decoration:none;
}
:where(.red-legacy,.red-modern) .red-viewcart__primary-button:hover{
    filter:brightness(.93);
    color:#fff;
}
:where(.red-legacy,.red-modern) .red-viewcart__secondary-button{
    border-color:#d9dee5;
    background:#fff;
    color:#101828;
}
:where(.red-legacy,.red-modern) .red-viewcart__secondary-button:hover{
    border-color:#b6bec9;
    color:#101828;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__login-note{
    display:block;
    margin-top:8px;
    color:#98a2b3;
    font-size:8px;
    line-height:1.35;
    text-align:center;
}
:where(.red-legacy,.red-modern) .red-viewcart__below-actions{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:4px;
    padding:3px 2px;
}
:where(.red-legacy,.red-modern) .red-viewcart__below-actions form{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart__continue-shopping,
:where(.red-legacy,.red-modern) .red-viewcart__clear{
    display:inline-flex;
    align-items:center;
    gap:7px;
    padding:6px 0;
    border:0;
    background:transparent;
    color:#667085;
    font:inherit;
    font-size:9px;
    font-weight:700;
    text-decoration:none;
    cursor:pointer;
}
:where(.red-legacy,.red-modern) .red-viewcart__continue-shopping:hover{
    color:#101828;
}
:where(.red-legacy,.red-modern) .red-viewcart__clear{
    color:#b42318;
}
:where(.red-legacy,.red-modern) .red-viewcart__empty{
    display:grid;
    justify-items:center;
    max-width:600px;
    margin:35px auto;
    padding:45px 24px;
    border:1px solid #e7eaee;
    border-radius:16px;
    background:#fff;
    text-align:center;
}
:where(.red-legacy,.red-modern) .red-viewcart__empty-icon{
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    margin-bottom:13px;
    border-radius:50%;
    background:#f4f5f7;
    color:#667085;
    font-size:22px;
}
:where(.red-legacy,.red-modern) .red-viewcart__empty h2{
    margin:0;
    color:#101828;
    font-size:18px;
}
:where(.red-legacy,.red-modern) .red-viewcart__empty p{
    max-width:450px;
    margin:8px 0 0;
    color:#667085;
    font-size:11px;
}
:where(.red-legacy,.red-modern) .red-viewcart__empty .red-viewcart__primary-button{
    width:auto;
    min-width:180px;
}

/* Desktop reducido: ocultamos precio unitario antes de apretar la tarjeta. */
@media(max-width:1180px){
    :where(.red-legacy,.red-modern) .red-viewcart__layout{
        grid-template-columns:minmax(0,1fr) 285px;
        gap:14px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item{
        grid-template-columns:82px minmax(150px,1fr) 116px minmax(100px,130px) 32px;
        gap:10px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__image{
        width:82px;
        height:82px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__unit{
        display:none;
    }
}

/* Tablet */
@media(max-width:900px){
    :where(.red-legacy,.red-modern) .red-viewcart__layout{
        grid-template-columns:1fr;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-summary{
        position:static;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item{
        grid-template-columns:78px minmax(0,1fr) 110px 32px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__image{
        width:78px;
        height:78px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__total{
        display:none;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__mobile-price{
        display:block;
        margin-top:7px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__mobile-price strong{
        color:#101828;
        font-size:13px;
        font-variant-numeric:tabular-nums;
    }
}

/* Mobile */
@media(max-width:620px){
    :where(.red-legacy,.red-modern) .red-viewcart__breadcrumb{
        margin-bottom:10px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart__header{
        align-items:flex-start;
        margin-bottom:14px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart__header p{
        font-size:10px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart__count{
        display:none;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-store{
        margin-inline:-2px;
        border-radius:11px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-store__header{
        padding:11px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-store__subtotal strong{
        font-size:12px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item{
        grid-template-columns:70px minmax(0,1fr) 31px;
        gap:10px;
        padding:11px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__image{
        width:70px;
        height:70px;
        align-self:start;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__quantity{
        grid-column:2 / 3;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__quantity>span{
        display:none;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__remove-form{
        grid-column:3 / 4;
        grid-row:1 / 3;
        align-self:center;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__unit,
    :where(.red-legacy,.red-modern) .red-viewcart-item__total{
        display:none;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__main h3{
        font-size:11px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-item__badges{
        gap:3px 6px;
        margin-top:5px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart-summary__card{
        padding:15px;
    }
    :where(.red-legacy,.red-modern) .red-viewcart__below-actions{
        padding-inline:3px;
    }
}
/* ========================================================================== */
/* Fase 4.5.1 — Cupones + require_impuestos                                  */
/* ========================================================================== */

:where(.red-legacy,.red-modern) .red-viewcart__alert--success{
    border-color:#bde8c9;
    background:#f3fff6;
    color:#187a35;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin:0 0 16px;
    padding:13px 14px;
    border:1px dashed #e4b65e;
    border-radius:12px;
    background:#fffaf0;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending__icon{
    display:grid;
    place-items:center;
    flex:0 0 34px;
    width:34px;
    height:34px;
    border-radius:50%;
    background:#fff0c8;
    color:#9a5d00;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending span{
    display:block;
    color:#9a5d00;
    font-size:8px;
    font-weight:850;
    letter-spacing:.06em;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending strong{
    display:block;
    margin-top:2px;
    color:#101828;
    font-size:12px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending p{
    margin:4px 0 0;
    color:#667085;
    font-size:9px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon-pending small{
    display:block;
    margin-top:5px;
    color:#7b8494;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-store__coupon-badge{
    display:inline-flex!important;
    align-items:center;
    gap:4px;
    width:max-content;
    margin-top:6px!important;
    padding:3px 6px;
    border-radius:999px;
    background:#fff2cc;
    color:#8a5700!important;
    font-size:7px!important;
    font-weight:800;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals .is-discount dt,
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals .is-discount dd{
    color:#15933a;
}
:where(.red-legacy,.red-modern) .red-viewcart-summary__totals dd.is-free{
    color:#15933a;
    font-size:9px;
    font-weight:800;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon{
    margin-top:15px;
    padding-top:14px;
    border-top:1px solid #e8ebef;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__heading{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:9px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__heading span{
    display:block;
    color:#98a2b3;
    font-size:7px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__heading strong{
    display:block;
    margin-top:1px;
    color:#344054;
    font-size:10px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__heading>.fa{
    color:var(--red-color-primary,#b00000);
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__form{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__form input{
    min-width:0;
    height:36px;
    padding:0 10px;
    border:1px solid #dce1e7;
    border-radius:8px;
    outline:0;
    background:#fff;
    color:#101828;
    font:inherit;
    font-size:10px;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__form input:focus{
    border-color:var(--red-color-primary,#b00000);
    box-shadow:0 0 0 3px color-mix(in srgb,var(--red-color-primary,#b00000) 10%,transparent);
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__form button{
    height:36px;
    padding:0 12px;
    border:0;
    border-radius:8px;
    background:#101828;
    color:#fff;
    font-size:9px;
    font-weight:800;
    cursor:pointer;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__form button:hover{
    background:#000;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__message{
    display:flex;
    align-items:flex-start;
    gap:5px;
    margin-bottom:8px;
    padding:7px 8px;
    border-radius:7px;
    background:#fff2f1;
    color:#b42318;
    font-size:8px;
    line-height:1.35;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__message.is-pending{
    background:#fff8e6;
    color:#8a5700;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    padding:10px;
    border:1px solid #bfe8cb;
    border-radius:9px;
    background:#f4fff7;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied>div{
    min-width:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied span{
    display:block;
    color:#15933a;
    font-size:7px;
    font-weight:850;
    letter-spacing:.05em;
    text-transform:uppercase;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied strong{
    color:#101828;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied>div>strong{
    display:block;
    margin-top:1px;
    font-size:13px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied small{
    display:block;
    margin-top:2px;
    color:#667085;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied p{
    margin:5px 0 0;
    color:#267a3f;
    font-size:8px;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied form{
    margin:0;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied button{
    padding:4px 7px;
    border:1px solid #cfd5dc;
    border-radius:7px;
    background:#fff;
    color:#667085;
    font-size:8px;
    font-weight:750;
    cursor:pointer;
}
:where(.red-legacy,.red-modern) .red-viewcart-coupon__applied button:hover{
    color:#b42318;
    border-color:#edc4c1;
}
