/* Ajustes comunes sobre las 14 maquetas. */
html,body{overflow-x:clip;max-width:100%}.lulo-v2{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;color:var(--lulo-ink);background:#fff}
.lulo-v2 h1,.lulo-v2 h2,.lulo-v2 h3{font-weight:500}
.lulo-wrap{max-width:1260px;padding-inline:clamp(18px,3.6vw,34px);margin-inline:auto;width:100%}
.lulo-head .lulo-wrap{height:64px;gap:18px}.lulo-head{position:sticky;top:0;z-index:40;background:#fff}
.admin-bar .lulo-head{top:32px}.lulo-head .lulo-brand img,.lulo-head .lulo-logo{height:30px!important;width:auto!important;max-width:none;object-fit:contain;filter:none!important}
.lulo-brand{gap:10px;align-items:center}.lulo-brand .lulo-sub{font-size:10px;padding-left:10px;border-left:1px solid var(--lulo-line);letter-spacing:.16em;color:var(--lulo-muted)}
.lulo-head-actions{display:flex;align-items:center;gap:12px}.lulo-head .lulo-search{min-width:0}.lulo-search input{min-width:0}
.lulo-acct{display:flex;align-items:center;gap:9px;border:1px solid var(--lulo-line);border-radius:6px;height:38px;padding:0 12px;background:#fff}.lulo-acct .lulo-ini{width:24px;height:24px;border-radius:50%;background:var(--lulo-navy);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10.5px}.lulo-acct .lulo-nm{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.lulo-habilitado .lulo-nav>.lulo-wrap{display:none}.lulo-util .lulo-wrap{height:36px}.lulo-phead{padding-top:26px;padding-bottom:26px}.lulo-crumb{padding-top:22px;margin-bottom:18px}.lulo-phead .lulo-crumb{padding-top:0}
.lulo-foot{background:var(--lulo-navy)!important;color:var(--lulo-bg)!important;margin-top:40px!important;padding:0!important}.lulo-foot .lulo-wrap{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding-top:30px!important;padding-bottom:30px!important;flex-wrap:wrap}.lulo-fmark{display:flex!important;align-items:center;gap:14px;min-width:0}.lulo-foot .lulo-logo{height:26px!important;width:auto!important;max-width:none;filter:none!important}.lulo-eslogan{font-size:12.5px;color:var(--lulo-bg);line-height:1.4;padding-left:14px;border-left:1px solid rgba(245,245,220,.28)}.lulo-eslogan b{display:block;font-weight:600}.lulo-foot .lulo-legal{display:block!important;font-size:12px;color:var(--lulo-bg)!important;border:0!important;padding:0!important;margin:0!important}
.lulo-maqueta-01 .lulo-util,.lulo-maqueta-01 .lulo-head,.lulo-maqueta-01 .lulo-nav,.lulo-maqueta-01 .lulo-scrim{display:none}.lulo-maqueta-01 .lulo-foot{margin-top:0!important}.lulo-maqueta-01 .lulo-acceso{min-height:100dvh}
.lulo-fbar{position:relative!important;top:auto!important}.lulo-fbar>.lulo-wrap{padding-block:14px!important}.lulo-catalog-promos{padding-block:24px!important}.lulo-promo-grid{column-gap:14px!important;row-gap:16px!important}.lulo-promo-slide{color:var(--lulo-slide-ink,#fff)}
.lulo-rejilla{grid-template-columns:repeat(var(--lulo-col-esc,4),minmax(0,1fr))}.lulo-rejilla>*{min-width:0}.lulo-pcard h3{min-height:2.7em}.lulo-pfoto img{width:100%;height:100%;object-fit:contain}.lulo-pfoto{display:block}.lulo-ppie{margin-top:auto}.lulo-ppie input{width:30px;min-width:30px;flex:1}.lulo-pcard form{margin-bottom:0}.lulo-pcard .lulo-stepper{flex:0 0 98px}.lulo-addbtn{white-space:nowrap}
.lulo-btn,.lulo-hbtn{white-space:nowrap}.lulo-btn[disabled],.lulo-addbtn[disabled]{opacity:.55;cursor:not-allowed}.lulo-amenu .lulo-off{color:var(--lulo-muted);pointer-events:none}.lulo-pronto{font-size:10px;border:1px solid var(--lulo-line);padding:2px 5px;border-radius:4px;margin-left:auto}.lulo-amenu a{display:flex;align-items:center;gap:8px}
.lulo-pdp>*{min-width:0}.lulo-shot{position:sticky;top:94px;align-self:start}.lulo-two>*,.lulo-acols>*,.lulo-kpis>*,.lulo-pres-grid>*{min-width:0}.lulo-maqueta-07 .lulo-line{display:block}.lulo-maqueta-07 .lulo-lhead{display:grid;grid-template-columns:66px minmax(0,1fr) 28px}.lulo-maqueta-07 .lulo-lprecios{display:grid;grid-template-columns:1fr 1fr 1.4fr}.lulo-lpie{display:flex;align-items:center;justify-content:space-between;gap:14px}.lulo-lstep{display:flex;min-width:100px}.lulo-lstep input{width:44px;min-width:30px}.lulo-lstep button{flex:0 0 28px}.lulo-lsub{text-align:right}
.lulo-barras{height:230px;display:flex;gap:14px;align-items:stretch}.lulo-bcol{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.lulo-bcol .lulo-bar{width:100%;min-height:2px;background:var(--lulo-navy);border-radius:5px 5px 0 0}.lulo-bval{font-size:11px;white-space:nowrap}
.lulo-recup{margin:18px 0;border:1px solid var(--lulo-line);border-radius:9px;overflow:hidden}.lulo-recup .lulo-top{padding:18px;background:var(--lulo-navy);color:var(--lulo-bg)}.lulo-recup .lulo-top .lulo-v{font-size:28px;margin-top:5px}.lulo-rrow{display:flex;justify-content:space-between;gap:14px;padding:8px 0}.lulo-rrow b{white-space:nowrap}.lulo-paginacion{display:flex;gap:8px;justify-content:center;margin:20px 0}.lulo-paginacion a,.lulo-paginacion span{padding:8px 12px;border:1px solid var(--lulo-line);border-radius:5px}
@media(max-width:1240px){.lulo-rejilla{grid-template-columns:repeat(var(--lulo-col-tab,3),minmax(0,1fr))}}
@media(max-width:1060px){.lulo-shot{position:static}.lulo-presentaciones .lulo-pres-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lulo-presentaciones .lulo-pres-grid>:last-child:nth-child(odd){grid-column:1/-1}}
@media(max-width:900px){.lulo-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}.lulo-promo-grid{column-gap:10px!important}.lulo-acct .lulo-nm{display:none}.lulo-catalog-promos{padding-block:24px!important}}
@media(max-width:700px){.lulo-foot .lulo-wrap{flex-direction:column;align-items:flex-start!important;gap:14px}.lulo-head .lulo-wrap{height:auto;min-height:64px;flex-wrap:wrap;padding-top:14px;padding-bottom:14px;gap:14px}.lulo-head .lulo-search{order:3;flex:1 0 100%;width:100%;margin:0}.lulo-head-actions{margin-left:auto}.lulo-brand .lulo-sub{display:none}.lulo-head .lulo-logo{height:30px!important}.lulo-hbtn{padding-inline:10px}.lulo-acct{padding-inline:8px}.lulo-foot .lulo-eslogan{max-width:180px}.lulo-two{grid-template-columns:1fr}.lulo-aside{position:static}}
@media(max-width:520px){.lulo-ppie{flex-direction:column;align-items:stretch}.lulo-pcard .lulo-stepper{flex:0 0 34px;width:100%}.lulo-ppie .lulo-addbtn{flex:auto;width:100%}.lulo-rejilla{gap:10px}.lulo-actpair{display:grid;grid-template-columns:1fr}.lulo-btn{max-width:100%}.lulo-barras{gap:6px}.lulo-bval{font-size:9px}.lulo-fmark{gap:10px}.lulo-foot .lulo-legal{line-height:1.5}.lulo-maqueta-07 .lulo-lprecios{grid-template-columns:1fr 1fr}.lulo-lprecios .lulo-gana{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.lulo-filtros-escritorio{width:100%}.lulo-filtros-form{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.lulo-filter-selects{display:flex;gap:6px}.lulo-filtros-form select{max-width:100%;height:36px;border:1px solid var(--lulo-line);border-radius:5px;padding:0 9px;background:#fff;color:var(--lulo-ink);font-size:12.5px}.lulo-filtros-form .lulo-btn{height:36px;font-size:12.5px;padding-inline:14px}.lulo-toggle{font-size:12px;display:flex;align-items:center;gap:5px;min-height:36px}.lulo-mfilters{display:none}.lulo-catalogo-editable{padding-top:var(--lulo-cat-top);padding-bottom:var(--lulo-cat-bottom)}.lulo-catalogo-editable>.lulo-phead{padding-top:0}.lulo-catalogo-editable .lulo-pcard{border-radius:var(--lulo-cat-radio)}
@media(max-width:900px){.lulo-filtros-escritorio{display:none}.lulo-mfilters{display:block}.lulo-filtros-form{display:grid;grid-template-columns:1fr;width:100%}.lulo-filter-selects{display:grid;grid-template-columns:1fr 1fr}.lulo-filtros-form .lulo-btn{width:100%}.lulo-catalogo-editable{padding-top:var(--lulo-cat-top-m);padding-bottom:var(--lulo-cat-bottom-m)}}

/* El estado abierto pertenece al contenedor del cajón. */
.lulo-mega{left:auto;right:0;transform:translateX(100%);box-shadow:none}.lulo-mega.lulo-open{transform:none}.lulo-mega .lulo-drawer{position:static;width:100%;transform:none;overflow:visible}.lulo-pcard:hover{box-shadow:none}.lulo-v2 .lulo-pcard h3{font-weight:500}
.lulo-off{color:var(--lulo-muted);cursor:default}.lulo-menu-pronto{pointer-events:none;opacity:.65}

.lulo-promo-pause{font:12px Helvetica,Arial,sans-serif;line-height:1;color:#fff;background:var(--lulo-navy);border-radius:3px;width:24px;height:24px}.lulo-dnav a[aria-disabled=true]{color:var(--lulo-muted)}

/* El diálogo es hermano de la navegación: no queda atrapado bajo el scrim. */
.lulo-v2>.lulo-mega{z-index:120;max-height:100dvh;overscroll-behavior:contain}
.lulo-v2>.lulo-scrim{z-index:110}
.lulo-v2>.lulo-scrim.lulo-on{visibility:visible;opacity:1;pointer-events:auto}
.lulo-v2>.lulo-mega.lulo-open{visibility:visible;pointer-events:auto}

/* 2.0.3: viewport móvil, footer en flujo y límites horizontales. */
html{width:100%;max-width:100%;overflow-x:hidden;overscroll-behavior:none;background:var(--lulo-navy);-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.lulo-v2{width:100%;max-width:100%;min-width:0;margin:0;padding:0;overflow-x:hidden;overscroll-behavior:none}
.lulo-v2,.lulo-v2 *,.lulo-v2 *::before,.lulo-v2 *::after{box-sizing:border-box}
.lulo-v2>main,.lulo-v2>.lulo-wrap,.woocommerce-MyAccount-content,.lulo-v2 form,.lulo-v2 fieldset{min-width:0;max-width:100%}
.lulo-v2 fieldset{min-inline-size:0}
.lulo-v2 img,.lulo-v2 video,.lulo-v2 iframe{max-width:100%}
.lulo-v2 .lulo-foot{position:relative;inset:auto;clear:both;width:100%;max-width:100%;margin-bottom:0!important;flex-shrink:0}
.lulo-v2 .lulo-foot>.lulo-wrap{padding-bottom:calc(30px + env(safe-area-inset-bottom,0px))!important}
.lulo-v2 .lulo-legal{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
/* Un panel cerrado no debe ampliar el área desplazable fuera del viewport. */
.lulo-v2>.lulo-mega:not(.lulo-open){display:none;transform:none}
.lulo-v2>.lulo-mega.lulo-open{display:flex;position:fixed;left:auto;right:0;top:0;bottom:0;width:min(360px,90%);max-width:100%;transform:none;overflow-y:auto;overflow-x:hidden}
.lulo-v2.lulo-menu-abierto{overflow:hidden}
.lulo-v2.lulo-maqueta-01>main{padding:0!important;margin:0!important;width:100%;max-width:none}
.lulo-v2.lulo-maqueta-01 .lulo-acceso{min-height:100vh;min-height:100svh;min-height:100dvh;height:auto;margin:0;padding:0;flex-shrink:0}
.lulo-v2.lulo-maqueta-01 .lulo-bg{inset:0;display:block;overflow:hidden}
.lulo-v2.lulo-maqueta-01 .lulo-bg-img{width:100%;height:100%;object-fit:cover}
.lulo-v2.lulo-maqueta-01 .lulo-marca,.lulo-v2.lulo-maqueta-01 .lulo-tarjeta{flex-shrink:0}
.lulo-v2.lulo-maqueta-01 .lulo-hueco{flex:1 0 16px}
.lulo-v2.lulo-maqueta-01 .lulo-foot{margin-top:0!important}
@media(max-width:760px){
 .lulo-v2 input:not([type=checkbox]):not([type=radio]),.lulo-v2 select,.lulo-v2 textarea{font-size:16px!important;max-width:100%;min-width:0}
 .lulo-v2 .lulo-pcard input[type=number]{min-width:30px}
 .lulo-v2 .lulo-wrap{padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}
 .lulo-v2 .lulo-acols,.lulo-v2 .lulo-two,.lulo-v2 .lulo-pdp{grid-template-columns:minmax(0,1fr)}
 .lulo-v2 .lulo-acols>*,.lulo-v2 .lulo-two>*,.lulo-v2 .lulo-pdp>*{min-width:0;max-width:100%}
 .lulo-v2 .lulo-specs .lulo-r>*{min-width:0;overflow-wrap:anywhere}
 .lulo-v2 .lulo-head-actions{gap:8px;min-width:0}
 .lulo-v2.lulo-maqueta-01 .lulo-marca{padding-top:max(16px,env(safe-area-inset-top,0px))}
 .lulo-v2.lulo-maqueta-01 .lulo-marca img{height:clamp(34px,5.4svh,46px);width:auto}
 .lulo-v2.lulo-maqueta-01 .lulo-tarjeta{width:calc(100% - 36px);max-width:520px;margin:0 auto max(16px,env(safe-area-inset-bottom,0px));padding:18px 20px;}
 .lulo-v2.lulo-maqueta-01 .lulo-fld{margin-top:12px;gap:4px}
 .lulo-v2.lulo-maqueta-01 .lulo-fld input{height:44px}
 .lulo-v2.lulo-maqueta-01 .lulo-enlaces,.lulo-v2.lulo-maqueta-01 .lulo-acepta{margin-top:10px}
 .lulo-v2.lulo-maqueta-01 .lulo-entrar{height:46px;margin-top:12px}
 .lulo-v2.lulo-maqueta-01 .lulo-registro{margin-top:10px;padding:12px 14px}
}
@media(max-width:760px){
 .lulo-v2 .lulo-summary .lulo-wrap>div{max-width:100%;min-width:0;flex-wrap:wrap}
}
@media(max-width:760px) and (max-height:620px){
 .lulo-v2.lulo-maqueta-01 .lulo-tarjeta{padding-top:12px;padding-bottom:12px}
 .lulo-v2.lulo-maqueta-01 .lulo-fld{margin-top:8px}
 .lulo-v2.lulo-maqueta-01 .lulo-enlaces,.lulo-v2.lulo-maqueta-01 .lulo-acepta{margin-top:8px}
 .lulo-v2.lulo-maqueta-01 .lulo-entrar{margin-top:8px}
 .lulo-v2.lulo-maqueta-01 .lulo-registro{padding-top:8px;padding-bottom:8px}
}

/* 2.0.4: un único desplazamiento vertical, con el footer en el flujo. */
html{height:auto;min-height:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto}
body.lulo-v2{height:auto;min-height:100%;overflow:visible;overscroll-behavior:auto}
body.lulo-v2.lulo-menu-abierto{overflow:hidden}
.lulo-v2.lulo-maqueta-01 .lulo-acceso{overflow:visible}
@media(max-width:760px){
 .lulo-v2.lulo-maqueta-01 .lulo-marca{padding-top:max(var(--lulo-acceso-logo-top,36px),env(safe-area-inset-top,0px))}
 .lulo-v2.lulo-maqueta-01 .lulo-tarjeta{width:var(--lulo-acceso-ancho,92%);padding:var(--lulo-acceso-relleno,14px)}
 .lulo-v2.lulo-maqueta-01 .lulo-tit{font-size:var(--lulo-acceso-titulo,19px)}
 .lulo-v2.lulo-maqueta-01 .lulo-fld,
 .lulo-v2.lulo-maqueta-01 .lulo-enlaces,
 .lulo-v2.lulo-maqueta-01 .lulo-acepta,
 .lulo-v2.lulo-maqueta-01 .lulo-entrar,
 .lulo-v2.lulo-maqueta-01 .lulo-registro{margin-top:var(--lulo-acceso-espacio,8px)}
 .lulo-v2.lulo-maqueta-01 .lulo-registro{padding:var(--lulo-acceso-espacio,8px) 14px}
}

/* Stable mobile access height: do not resize cover when browser bars move. */
@media(max-width:760px){
 .lulo-v2.lulo-maqueta-01 .lulo-acceso{min-height:100vh;min-height:100svh}
 .lulo-v2.lulo-maqueta-01 .lulo-bg{background-attachment:scroll}
 .lulo-v2.lulo-maqueta-01 .lulo-bg-img{transform:none!important;transition:none!important;animation:none!important}
}
.lulo-v2 .lulo-pfoto{padding:0!important;border:0!important;background:transparent!important;overflow:hidden}
.lulo-v2 .lulo-pfoto img{display:block;width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:cover;margin:0;border:0;border-radius:0}
.lulo-v2 .lulo-rejilla:not(.lulo-lista){grid-template-columns:repeat(var(--lulo-col-esc,4),minmax(0,1fr))}
@media(max-width:1240px){.lulo-v2 .lulo-rejilla:not(.lulo-lista){grid-template-columns:repeat(var(--lulo-col-tab,3),minmax(0,1fr))}}
@media(max-width:760px){.lulo-v2 .lulo-rejilla:not(.lulo-lista){grid-template-columns:repeat(2,minmax(0,1fr))}}
.lulo-v2 .lulo-habilitado .lulo-nav>.lulo-wrap{display:flex}
.lulo-v2.lulo-habilitado .lulo-nav>.lulo-wrap{display:flex}
.lulo-v2 .lulo-acct{color:var(--lulo-ink);cursor:pointer}
.lulo-v2 .lulo-pgana{background:var(--lulo-olive)}

.lulo-v2 .lulo-tarjeta__foto{padding:0!important;background:transparent!important;border:0;overflow:hidden}
.lulo-v2 .lulo-tarjeta__foto img{display:block;width:100%;height:100%;object-fit:cover;margin:0;border:0}
@media(max-width:760px){
 .lulo-v2 .lulo-util .lulo-wrap{height:auto;min-height:36px;padding-top:6px;padding-bottom:6px}
 .lulo-v2 .lulo-util span{min-width:0;white-space:normal;overflow-wrap:anywhere}
}

.lulo-v2 .lulo-foot,.lulo-v2 .lulo-foot .lulo-eslogan,.lulo-v2 .lulo-foot .lulo-legal{color:var(--lulo-on-navy)!important}
.lulo-v2 .lulo-pgana,.lulo-v2 .lulo-pgana .lulo-k,.lulo-v2 .lulo-pgana .lulo-s{color:var(--lulo-on-olive)}
.lulo-v2 .lulo-entrar,.lulo-v2 .lulo-hbtn.lulo-solid,.lulo-v2 .lulo-addbtn{color:var(--lulo-on-navy)}
.lulo-v2 a:focus-visible,.lulo-v2 button:focus-visible,.lulo-v2 input:focus-visible,.lulo-v2 select:focus-visible{outline:2px solid var(--lulo-accent);outline-offset:3px}

/* 2.0.6: eliminar espacios acumulados de las maquetas. */
.lulo-v2 .lulo-phead{padding-top:var(--lulo-espacio-superior,16px)!important;padding-bottom:var(--lulo-espacio-titulo,12px)!important}
.lulo-v2 .lulo-catalogo-editable>.lulo-phead{padding-top:0!important;padding-bottom:var(--lulo-cat-title-gap,12px)!important}
.lulo-v2 .lulo-catalog-promos{margin-top:0!important;margin-bottom:0!important;padding-top:0!important;padding-bottom:var(--lulo-cat-banner-gap,16px)!important}
.lulo-v2 .lulo-fbar>.lulo-wrap{padding-top:var(--lulo-cat-filter-pad,10px)!important;padding-bottom:var(--lulo-cat-filter-pad,10px)!important}
.lulo-v2 .lulo-crumb{padding-top:12px;margin-bottom:12px}
.lulo-v2.lulo-maqueta-01 .lulo-hueco{flex:0 0 var(--lulo-acceso-separacion,18px)}
.lulo-v2.lulo-maqueta-01 .lulo-tarjeta{margin-top:var(--lulo-form-mt,auto);margin-bottom:var(--lulo-form-mb,auto)}
.lulo-v2.lulo-maqueta-01 .lulo-acceso{padding-bottom:16px}
@media(max-width:760px){
 .lulo-v2 .lulo-promo-carousel--small{aspect-ratio:1200 / calc(390 * var(--lulo-banner-height,110) / 100)}
 .lulo-v2 .lulo-promo-carousel--wide{aspect-ratio:2400 / calc(440 * var(--lulo-banner-height,110) / 100)}
 .lulo-v2 .lulo-promo-pause{width:24px!important;height:24px!important;min-width:0!important;min-height:0!important;padding:0!important;font-size:12px!important}
 .lulo-v2 .lulo-promo-dot{padding:0!important;min-width:0!important;min-height:0!important;height:7px!important}
}

.lulo-v2 .lulo-foot{margin-top:var(--lulo-espacio-footer,24px)!important}
.lulo-v2.lulo-maqueta-01 .lulo-foot{margin-top:0!important}
.lulo-v2 .lulo-catalogo-editable .lulo-rejilla{margin-top:var(--lulo-cat-product-gap,14px)}
@media(max-width:760px){.lulo-v2 .lulo-phead{padding-top:var(--lulo-espacio-superior-movil,12px)!important}.lulo-v2 .lulo-catalogo-editable>.lulo-phead{padding-top:0!important}}

/* 2.0.7: cabeceras compactas, menú único y tarjetas sin reglas de tabla. */
.lulo-v2>main{padding-top:0!important}
.lulo-v2 .lulo-phead .lulo-crumb{padding:0;margin:0;line-height:1.5}
.lulo-v2 .lulo-two,.lulo-v2 .lulo-acols{padding-top:var(--lulo-espacio-titulo,12px)!important}
.lulo-v2 .lulo-phead h1{margin:8px 0 4px}
.lulo-v2 .lulo-phead p{margin:0}
.lulo-v2 .lulo-avisos:empty{display:none}
.lulo-v2 .lulo-count{background:var(--lulo-pedido,#DDE329);color:var(--lulo-on-pedido,#17231A);min-width:26px;min-height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700}
.lulo-v2 .lulo-count.lulo-added{animation:lulo-added .55s ease-out}
@keyframes lulo-added{50%{transform:scale(1.3);box-shadow:0 0 0 6px rgba(221,227,41,.25)}}
.lulo-v2>.lulo-mega,.lulo-v2>.lulo-mega.lulo-open{left:auto;right:0;width:min(320px,88vw);max-height:100svh}
.lulo-v2>.lulo-mega .lulo-drawer{display:flex;flex-direction:column;min-height:0;height:100%;padding:0}
.lulo-v2 .lulo-drawerhead{padding:16px;flex-shrink:0}
.lulo-v2 .lulo-menu-negocio{margin:0;padding:8px 16px;color:var(--lulo-muted);font-size:13px;overflow-wrap:anywhere}
.lulo-v2 .lulo-dnav{padding:8px 0;margin:0;list-style:none}
.lulo-v2 .lulo-dnav a{min-height:48px;padding:12px 16px;display:flex;align-items:center;font-size:15px}
.lulo-v2 .lulo-menu-salida{margin-top:auto;padding:16px;border-top:1px solid var(--lulo-line)}
.lulo-v2 .lulo-menu-salida a{display:flex;align-items:center;min-height:44px;color:var(--lulo-ink);font-weight:600}
.lulo-v2.lulo-maqueta-07 .lulo-line{display:block;padding:0;grid-template-areas:none;background:#fff}
.lulo-v2 .lulo-order-head{display:grid;grid-template-columns:76px minmax(0,1fr) 28px;gap:12px;align-items:center;padding:14px;background:transparent;text-transform:none;letter-spacing:normal}
.lulo-v2 .lulo-order-head>*{grid-area:auto;min-width:0;order:initial}
.lulo-v2 .lulo-order-thumb{display:block;width:76px;height:76px}
.lulo-v2 .lulo-order-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.lulo-v2 .lulo-order-name{font-size:14px;line-height:1.35;font-weight:600;color:var(--lulo-ink)}
.lulo-v2 .lulo-order-meta{font-size:12px;line-height:1.4;margin-top:5px;color:var(--lulo-muted)}
.lulo-v2 .lulo-scale-hint{padding:12px 14px!important;line-height:1.5;gap:10px}
.lulo-v2 .lulo-bonif-box{padding:16px!important}
.lulo-v2 .lulo-recup .lulo-in{padding:16px}
.lulo-v2 .lulo-recup h2.lulo-k{padding:0;margin:0;border:0;font-size:14px}
.lulo-v2 .lulo-rrow{gap:12px;align-items:flex-start;line-height:1.45}
.lulo-v2 .lulo-smallnote{margin:8px 0;line-height:1.5}
.lulo-v2 .lulo-pdist{color:inherit;text-decoration:none}
.lulo-v2 .lulo-compra-dialog{box-sizing:border-box;width:min(760px,calc(100% - 24px));max-height:90svh;margin:auto;border:1px solid var(--lulo-line);border-radius:14px;padding:18px;background:#fff;color:var(--lulo-ink);overflow:auto}
.lulo-compra-dialog::backdrop{background:rgba(15,25,35,.5)}
.lulo-compra-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.lulo-compra-head h2{font-size:20px;margin:0}
.lulo-compra-close{min-width:44px;min-height:44px;font-size:26px;background:transparent;color:inherit;border:0}
.lulo-compra-intro,.lulo-compra-status{margin:12px 0;font-size:14px;line-height:1.45}
.lulo-compra-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lulo-compra-grid>.lulo-compra-card:last-child:nth-child(odd){grid-column:1/-1}
.lulo-compra-card{min-width:0;border:1px solid var(--lulo-line);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;padding:10px;gap:8px}
.lulo-compra-image{display:block;aspect-ratio:1;width:100%}
.lulo-compra-image img{width:100%;height:100%;object-fit:cover;display:block}
.lulo-compra-card a{color:inherit}.lulo-compra-name{font-size:13px;line-height:1.3}.lulo-compra-price{font-weight:600}
.lulo-compra-qty{margin-top:auto;display:flex;flex-direction:column;gap:5px}.lulo-compra-qtylabel{font-size:12px;color:var(--lulo-muted)}.lulo-compra-stepper{width:100%;height:38px;flex:0 0 38px}.lulo-compra-stepper input{min-width:44px;width:100%;border:0;padding:0;text-align:center;font-size:15px;font-weight:600;background:#fff}.lulo-compra-stepper button{flex:0 0 34px;width:34px}.lulo-compra-pack{font-size:11px;color:var(--lulo-muted);line-height:1.35}
.lulo-compra-ok{color:#215B39;font-weight:600;font-size:13px}
.lulo-compra-aviso{position:fixed;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:180;max-width:calc(100% - 24px);width:max-content;background:var(--lulo-navy);color:var(--lulo-on-navy);padding:14px 18px;border-radius:10px;box-shadow:0 4px 20px #0003;font-size:14px;display:flex;gap:12px;align-items:center}
.lulo-compra-aviso[hidden]{display:none}.lulo-compra-aviso a{color:inherit;font-weight:700;text-decoration:underline;white-space:nowrap}.lulo-compra-aviso.lulo-error{background:#7D2222;color:#fff}
body.lulo-compra-abierta{overflow:hidden}
@media(max-width:760px){.lulo-v2 .woocommerce-MyAccount-navigation{display:block}.lulo-compra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lulo-compra-aviso{flex-wrap:wrap}.lulo-v2 .lulo-order-head{grid-template-columns:64px minmax(0,1fr) 24px;gap:10px;padding:12px}.lulo-v2 .lulo-order-thumb{width:64px;height:64px}}
@media(prefers-reduced-motion:reduce){.lulo-v2 .lulo-count.lulo-added{animation:none}}

.lulo-v2 a.lulo-pbody{display:block;color:inherit;text-decoration:none}
.lulo-v2>main,.lulo-v2 .lulo-two,.lulo-v2 .lulo-acols{padding-bottom:0!important}
.lulo-v2 .lulo-foot .lulo-legal [data-lulo-txt]{display:inline!important}
.lulo-v2 .lulo-scales h2{padding:14px;margin:0}
.lulo-v2 .lulo-scales .lulo-srow{padding:10px 14px;gap:10px}
.lulo-v2 .lulo-scales .lulo-snote{padding:14px;margin:0;line-height:1.5;font-size:13px}
.lulo-v2.lulo-maqueta-07 .lulo-lprecios .lulo-gana{display:block;padding:10px 14px}
.lulo-v2.lulo-maqueta-07 .lulo-lprecios .lulo-k{font-size:10px}
.lulo-v2.lulo-maqueta-07 .lulo-lprecios .lulo-v{font-size:17px}
.lulo-v2.lulo-maqueta-07 .lulo-lprecios .lulo-s{font-size:12px;line-height:1.4}
.lulo-v2 .cart-collaterals:empty{display:none}

@media(max-width:520px){.lulo-compra-grid{grid-template-columns:1fr}.lulo-compra-grid>.lulo-compra-card:last-child:nth-child(odd){grid-column:auto}}

/* 2.0.11 · Catálogo: banners de imagen completa, compra clara y filtros mínimos */
.lulo-promo-full{background:#fff!important}
.lulo-promo-full:before{display:none!important}
.lulo-promo-full .lulo-promo-fullimage{position:absolute;inset:0;z-index:2;width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.lulo-promo-full:after{z-index:3}
.lulo-filtros-form--simple{align-items:flex-end;gap:14px}
.lulo-filtros-form--simple .lulo-filter-group{min-width:180px}
.lulo-filtros-form--simple .lulo-ganmodo{height:36px}
.lulo-cat-benefits{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin:12px 0 2px;padding:10px 13px;border:1px solid var(--lulo-line);border-radius:7px;background:var(--lulo-band);font-size:11.5px;line-height:1.35;color:var(--lulo-muted)}
.lulo-cat-benefits b{color:var(--lulo-navy);font-weight:600}
.lulo-price-context{font-size:9.5px;color:var(--lulo-muted);margin-top:1px}
.lulo-ppie{flex-wrap:wrap}
.lulo-qty-caption{width:100%;font-size:9.5px;font-weight:600;color:var(--lulo-muted);line-height:1.2;margin-bottom:-2px}
.lulo-rejilla.lulo-lista .lulo-qty-caption{display:none}
@media(max-width:900px){
 .lulo-mfilter-body .lulo-filtros-form--simple{display:grid;grid-template-columns:1fr;gap:12px}
 .lulo-mfilter-body .lulo-filtros-form--simple .lulo-filter-group{min-width:0}
 .lulo-mfilter-body .lulo-filtros-form--simple select{width:100%}
 .lulo-cat-benefits{margin-top:10px;font-size:10.5px;gap:7px}
 .lulo-cat-benefits span{flex:1 1 100%}
}
.lulo-compra-buy{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px;border:1px solid var(--lulo-line);border-radius:6px;background:var(--lulo-band)}
.lulo-compra-buy span{font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--lulo-muted)}
.lulo-compra-buy b{font-size:10.5px;color:var(--lulo-navy)}
.lulo-compra-price-label{display:block;margin-top:-6px;font-size:10px;color:var(--lulo-muted)}

.lulo-mode-help{display:block;margin-top:5px;font-size:10px;line-height:1.3;color:var(--lulo-muted)}


/* 2.0.11 · Catálogo: filtros compactos, caja clara y rentabilidad por presentación */
.lulo-filtros-movil{display:none;width:100%}
@media(min-width:901px){
 .lulo-filtros-escritorio{width:auto;max-width:560px}
 .lulo-filtros-escritorio .lulo-filtros-form--simple{
   display:grid;grid-template-columns:minmax(180px,220px) minmax(230px,290px);
   gap:20px;align-items:end;width:auto;max-width:560px
 }
 .lulo-filtros-escritorio .lulo-filter-group{min-width:0}
 .lulo-filtros-escritorio select{width:100%}
 .lulo-filtros-escritorio .lulo-ganmodo{width:max-content;min-width:164px;height:38px}
 .lulo-filtros-escritorio .lulo-ganmodo button{min-width:81px;padding-inline:14px}
 .lulo-fbar .lulo-wrap{justify-content:flex-start}
 .lulo-ppie .lulo-stepper,.lulo-ppie .lulo-addbtn{flex:1 1 0;min-width:0}
 .lulo-ppie .lulo-stepper{width:auto}
}
.lulo-pbonus{margin-top:5px;padding-top:5px;border-top:1px solid rgba(255,255,255,.22);font-size:9.5px;line-height:1.35;color:var(--lulo-bg)}
.lulo-pbonus[hidden],[data-lulo-suggested-row][hidden]{display:none!important}
.lulo-compra-gain{display:grid;grid-template-columns:1fr auto;gap:2px 10px;margin-top:2px;padding:8px 10px;border-radius:6px;background:var(--lulo-navy);color:#fff}
.lulo-compra-gain>span{font-size:8.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--lulo-bg)}
.lulo-compra-gain>b{font-size:13px}
.lulo-compra-gain>small{grid-column:1 / -1;font-size:9.5px;color:var(--lulo-bg);line-height:1.35}
.lulo-compra-gain .lulo-compra-bonus{padding-top:4px;margin-top:2px;border-top:1px solid rgba(255,255,255,.22)}
@media(max-width:900px){
 .lulo-mfilters{display:none!important}
 .lulo-filtros-movil{display:block}
 .lulo-filtros-movil .lulo-filtros-form--mobile{
   display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%
 }
 .lulo-filtros-movil .lulo-filter-group{min-width:0;margin:0}
 .lulo-filtros-movil .lulo-filter-brand select{width:100%;height:40px;font-size:13px;padding-inline:10px}
 .lulo-filtros-movil .lulo-filter-selection{width:auto}
 .lulo-filtros-movil .lulo-ganmodo{height:40px;width:auto}
 .lulo-filtros-movil .lulo-ganmodo button{height:40px;min-width:66px;padding:0 10px;font-size:12.5px}
 .lulo-fbar .lulo-wrap{padding-top:8px;padding-bottom:8px}
}
@media(max-width:420px){
 .lulo-filtros-movil .lulo-filtros-form--mobile{grid-template-columns:minmax(0,1fr) auto;gap:6px}
 .lulo-filtros-movil .lulo-ganmodo button{min-width:58px;padding-inline:8px;font-size:12px}
 .lulo-filtros-movil .lulo-filter-brand select{font-size:12.5px}
}

/* 2.1.3 · selector de presentaciones compacto y bloqueado sobre el catálogo */
.lulo-v2 .lulo-compra-dialog{width:min(760px,calc(100% - 24px));height:min(760px,88svh);max-height:88svh;padding:0;overflow:hidden;border:1px solid var(--lulo-line);border-radius:14px;background:#fff;color:var(--lulo-ink)}
.lulo-v2 .lulo-compra-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto}
.lulo-compra-dialog::backdrop{background:rgba(15,25,35,.56)}
.lulo-compra-head{position:relative;z-index:2;padding:15px 16px 10px;background:#fff;border-bottom:0}
.lulo-compra-head h2{font-size:19px}
.lulo-compra-intro{margin:0;padding:0 16px 12px;background:#fff;color:var(--lulo-muted);font-size:12.5px}
.lulo-compra-grid{min-height:0;overflow:auto;overscroll-behavior:contain;padding:2px 16px 14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}
.lulo-compra-grid>.lulo-compra-card:last-child:nth-child(odd),.lulo-compra-grid>.lulo-compra-card--wide{grid-column:1/-1}
.lulo-compra-card{padding:9px;gap:0;border-radius:8px;overflow:hidden;background:#fff}
.lulo-compra-card--wide{display:flex;flex-direction:row;align-items:stretch;gap:12px}
.lulo-compra-card--wide .lulo-compra-image{flex:0 0 150px;width:150px;height:auto;min-height:142px}
.lulo-compra-card--wide .lulo-compra-card__body{padding-top:0;justify-content:center}
.lulo-compra-card--wide .lulo-compra-name{min-height:0}
.lulo-compra-image{display:block;width:100%;height:132px;aspect-ratio:auto;background:#fff;overflow:hidden}
.lulo-compra-image img{display:block;width:100%;height:100%;object-fit:contain}
.lulo-compra-card__body{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:6px;padding-top:7px}
.lulo-compra-name{min-height:2.6em;font-size:12.5px;font-weight:600;line-height:1.3;color:var(--lulo-ink)}
.lulo-compra-price{font-size:14px;font-weight:600;color:var(--lulo-navy)}
.lulo-compra-price-label{margin-top:-4px;font-size:9.5px}
.lulo-compra-modal-form{display:block;margin:2px 0 0}
.lulo-compra-qty{margin-top:0}
.lulo-compra-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--lulo-line);background:#fff;box-shadow:0 -6px 18px rgba(39,54,75,.05)}
.lulo-compra-footer .lulo-compra-status{margin:0;min-height:1.3em;color:var(--lulo-muted);font-size:12px}
.lulo-compra-confirm{min-width:210px}
.lulo-compra-unavailable{display:block;margin-top:auto;padding:8px;border-radius:5px;background:var(--lulo-band);color:var(--lulo-muted);font-size:11px;line-height:1.35}
body.lulo-compra-abierta{position:fixed;left:0;right:0;width:100%;overflow:hidden;touch-action:none}
body.lulo-compra-abierta .lulo-compra-dialog{touch-action:auto}

/* Bonificación contextual: solo emerge cuando la cantidad actual ya gana. */
.lulo-bonus-pop{box-sizing:border-box;max-height:0;overflow:hidden;padding:0 9px;border:0 solid #CFDFD1;border-radius:6px;background:#EEF5EE;color:#315D38;opacity:0;transform:translateY(7px);transition:max-height .22s ease,padding .22s ease,border-width .18s ease,opacity .18s ease,transform .22s ease}
.lulo-bonus-pop.is-visible{max-height:76px;padding:8px 9px;border-width:1px;opacity:1;transform:translateY(0)}
.lulo-bonus-pop__row{display:flex;align-items:center;gap:8px;min-width:0}
.lulo-bonus-pop__text{flex:1 1 auto;min-width:0;font-size:10.5px;font-weight:600;line-height:1.35}
.lulo-bonus-progress{display:block;flex:0 0 52px;height:4px;overflow:hidden;border-radius:3px;background:#CFDFD1}
.lulo-bonus-progress i{display:block;width:0;height:100%;border-radius:inherit;background:#315D38;transition:width .22s ease}
.lulo-pcard>.lulo-bonus-pop{margin:-4px 13px 13px}
.lulo-tarjeta__pie>.lulo-bonus-pop,.lulo-compra-card__body>.lulo-bonus-pop{margin:0}

@media(max-width:520px){
 .lulo-v2 .lulo-compra-dialog{width:calc(100% - 16px);height:min(780px,92svh);max-height:92svh;border-radius:12px}
 .lulo-compra-head{padding:12px 12px 7px}
 .lulo-compra-head h2{font-size:17px}
 .lulo-compra-intro{padding:0 12px 9px;font-size:11.5px}
 .lulo-compra-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 10px 10px}
 .lulo-compra-grid>.lulo-compra-card:last-child:nth-child(odd),.lulo-compra-grid>.lulo-compra-card--wide{grid-column:1/-1}
 .lulo-compra-card{padding:7px}
 .lulo-compra-image{height:96px}
 .lulo-compra-card__body{gap:5px;padding-top:5px}
 .lulo-compra-name{min-height:2.6em;font-size:11px}
 .lulo-compra-buy{padding:5px 6px}
 .lulo-compra-buy span{font-size:7.5px}
 .lulo-compra-buy b{font-size:9.5px}
 .lulo-compra-price{font-size:12.5px}
 .lulo-compra-price-label{font-size:8.5px}
 .lulo-compra-qtylabel{font-size:9.5px}
 .lulo-compra-stepper{height:34px;flex-basis:34px}
 .lulo-compra-stepper button{width:30px;flex-basis:30px}
 .lulo-compra-stepper input{font-size:13px;min-width:26px}
 .lulo-compra-pack{font-size:9px}
 .lulo-compra-card--wide{display:flex;flex-direction:row;align-items:stretch;gap:9px}
 .lulo-compra-card--wide .lulo-compra-image{flex:0 0 104px;width:104px;height:auto;min-height:112px}
 .lulo-compra-card--wide .lulo-compra-card__body{padding-top:0;justify-content:center}
 .lulo-compra-card--wide .lulo-compra-name{min-height:0;font-size:11.5px}
 .lulo-compra-footer{grid-template-columns:1fr;padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px));gap:7px}
 .lulo-compra-confirm{width:100%;min-width:0}
 .lulo-bonus-pop__text{font-size:9.5px}
 .lulo-bonus-progress{flex-basis:42px}
 .lulo-pcard>.lulo-bonus-pop{margin:-3px 10px 10px}
}

/* Mi pedido: reutiliza el aviso existente; solo cambia al verde de éxito B2B. */
.lulo-v2 .lulo-scale-hint.lulo-win{background:#EEF5EE;color:#315D38;border:1px solid #CFDFD1}
.lulo-v2 .lulo-scale-hint.lulo-win b{color:#315D38}

.lulo-v2 .lulo-scale-hint.lulo-near .lulo-bar{background:#DDE9DE}
.lulo-v2 .lulo-scale-hint.lulo-near .lulo-bar i{background:#315D38}


/* 2.1.4 · hotfix: la confirmación conserva la tarjeta de producto completa.
   La única adaptación de composición es que la última presentación impar ocupa
   la fila completa y se vuelve horizontal. */
.lulo-v2 .lulo-compra-card{
  padding:0;
  gap:0;
  overflow:hidden;
  border:1px solid var(--lulo-line);
  border-radius:9px;
  background:#fff;
}
.lulo-v2 .lulo-compra-image{
  display:flex!important;
  align-items:center;
  justify-content:center;
  width:100%;
  height:180px;
  padding:12px;
  box-sizing:border-box;
  overflow:hidden;
  background:var(--lulo-band);
}
.lulo-v2 .lulo-compra-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  margin:0!important;
}
.lulo-v2 .lulo-compra-card__body{
  display:flex;
  flex:1 1 auto;
  min-width:0;
  flex-direction:column;
  gap:7px;
  padding:11px 12px 12px;
}
.lulo-v2 .lulo-compra-brand{
  font-size:9px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--lulo-muted);
}
.lulo-v2 .lulo-compra-name{
  min-height:2.7em;
  font-size:13px;
  font-weight:600;
  line-height:1.35;
  color:var(--lulo-ink);
}
.lulo-v2 .lulo-compra-meta{
  font-size:9.5px;
  line-height:1.3;
  color:var(--lulo-muted);
}
.lulo-v2 .lulo-compra-stock{
  width:max-content;
  max-width:100%;
  font-size:9px;
  font-weight:600;
  color:#315D38;
}
.lulo-v2 .lulo-compra-buy{
  margin-top:1px;
  background:#fff;
}
.lulo-v2 .lulo-compra-pricing{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.lulo-v2 .lulo-compra-price{
  font-size:15px;
  font-weight:600;
  line-height:1.2;
  color:var(--lulo-navy);
}
.lulo-v2 .lulo-compra-price-label{
  margin:0;
  font-size:9.5px;
  line-height:1.25;
  color:var(--lulo-muted);
}
.lulo-v2 .lulo-compra-gain{
  margin:1px 0 0;
}
.lulo-v2 .lulo-compra-modal-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:end;
  gap:8px;
  margin-top:2px;
}
.lulo-v2 .lulo-compra-qty{
  min-width:0;
  margin:0;
}
.lulo-v2 .lulo-compra-stepper{
  width:100%;
}
.lulo-v2 .lulo-compra-add{
  width:100%;
  min-width:0;
  height:38px;
  margin:0;
}
.lulo-v2 .lulo-compra-card.is-added{
  border-color:#A9C9AE;
}
.lulo-v2 .lulo-compra-card.is-added .lulo-compra-add{
  background:#315D38;
  border-color:#315D38;
  color:#fff;
}
.lulo-v2 .lulo-compra-card--wide{
  display:grid;
  grid-template-columns:minmax(180px,220px) minmax(0,1fr);
  align-items:stretch;
  gap:0;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-image{
  width:100%;
  height:100%;
  min-height:245px;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-card__body{
  justify-content:center;
  padding:13px 14px;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-name{
  min-height:0;
}
.lulo-v2 .lulo-compra-footer{
  position:relative;
  z-index:3;
}
@media(max-width:520px){
  .lulo-v2 .lulo-compra-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }
  .lulo-v2 .lulo-compra-card{
    min-width:0;
  }
  .lulo-v2 .lulo-compra-image{
    height:108px;
    padding:7px;
  }
  .lulo-v2 .lulo-compra-card__body{
    gap:5px;
    padding:8px;
  }
  .lulo-v2 .lulo-compra-brand{
    font-size:7.5px;
  }
  .lulo-v2 .lulo-compra-name{
    min-height:2.7em;
    font-size:10.5px;
    line-height:1.3;
  }
  .lulo-v2 .lulo-compra-meta,
  .lulo-v2 .lulo-compra-stock{
    font-size:8px;
  }
  .lulo-v2 .lulo-compra-buy{
    padding:5px 6px;
  }
  .lulo-v2 .lulo-compra-price{
    font-size:12.5px;
  }
  .lulo-v2 .lulo-compra-price-label{
    font-size:8px;
  }
  .lulo-v2 .lulo-compra-gain{
    padding:6px 7px;
    gap:2px 6px;
  }
  .lulo-v2 .lulo-compra-gain>span{
    font-size:7px;
  }
  .lulo-v2 .lulo-compra-gain>b{
    font-size:11px;
  }
  .lulo-v2 .lulo-compra-gain>small{
    font-size:8px;
  }
  .lulo-v2 .lulo-compra-modal-form{
    grid-template-columns:1fr;
    gap:5px;
  }
  .lulo-v2 .lulo-compra-qtylabel{
    font-size:8.5px;
  }
  .lulo-v2 .lulo-compra-stepper,
  .lulo-v2 .lulo-compra-add{
    width:100%;
    height:34px;
  }
  .lulo-v2 .lulo-compra-add{
    font-size:10.5px;
  }
  .lulo-v2 .lulo-compra-pack{
    font-size:8px;
  }
  .lulo-v2 .lulo-compra-card--wide{
    display:grid;
    grid-template-columns:112px minmax(0,1fr);
    gap:0;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-image{
    width:100%;
    height:100%;
    min-height:220px;
    padding:8px;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-card__body{
    justify-content:center;
    padding:9px;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-name{
    min-height:0;
    font-size:11px;
  }
}


/* 2.1.5 · selector de presentaciones: tarjeta completa, imágenes fiables y cero recortes de contenido. */
.lulo-v2 .lulo-compra-dialog{
  width:min(1080px,calc(100vw - 28px));
  height:min(900px,94svh);
  max-height:94svh;
}
.lulo-v2 .lulo-compra-dialog[open]{
  grid-template-rows:auto auto minmax(0,1fr) auto;
}
.lulo-v2 .lulo-compra-head{padding:18px 20px 9px}
.lulo-v2 .lulo-compra-intro{padding:0 20px 13px}
.lulo-v2 .lulo-compra-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:max-content;
  align-content:start;
  gap:14px;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:2px 20px 18px;
  scroll-padding-bottom:20px;
}
.lulo-v2 .lulo-compra-card{
  display:flex;
  flex-direction:column;
  width:100%;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden;
  padding:0;
  border:1px solid var(--lulo-line);
  border-radius:10px;
  background:#fff;
}
.lulo-v2 .lulo-compra-image{
  display:flex!important;
  flex:0 0 190px;
  width:100%!important;
  height:190px!important;
  min-height:190px!important;
  padding:8px!important;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  border-bottom:1px solid var(--lulo-line-2);
  background:#F7F8F9;
  box-sizing:border-box;
}
.lulo-v2 .lulo-compra-image:empty::after{
  content:'Imagen no disponible';
  font-size:11px;
  color:var(--lulo-muted);
}
.lulo-v2 .lulo-compra-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:scale(1.12);
  transform-origin:center;
  margin:0!important;
  opacity:1!important;
  visibility:visible!important;
}
.lulo-v2 .lulo-compra-card__body{
  display:flex!important;
  flex:1 1 auto;
  flex-direction:column;
  gap:7px;
  min-width:0;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding:12px 13px 14px;
}
.lulo-v2 .lulo-compra-name{min-height:2.65em}
.lulo-v2 .lulo-compra-gain{flex:0 0 auto}
.lulo-v2 .lulo-compra-modal-form{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  align-items:end;
  width:100%;
  margin-top:auto;
  overflow:visible!important;
}
.lulo-v2 .lulo-compra-qty,
.lulo-v2 .lulo-compra-stepper,
.lulo-v2 .lulo-compra-add{min-width:0;max-width:none}
.lulo-v2 .lulo-compra-stepper,
.lulo-v2 .lulo-compra-add{width:100%;height:40px}
.lulo-v2 .lulo-compra-grid>.lulo-compra-card:last-child:nth-child(odd),
.lulo-v2 .lulo-compra-grid>.lulo-compra-card--wide{grid-column:1/-1}
.lulo-v2 .lulo-compra-card--wide{
  display:grid!important;
  grid-template-columns:minmax(230px,34%) minmax(0,1fr);
  align-items:stretch;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-image{
  width:100%!important;
  height:100%!important;
  min-height:310px!important;
  border-right:1px solid var(--lulo-line-2);
  border-bottom:0;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-card__body{
  justify-content:center;
  padding:15px 16px;
}
.lulo-v2 .lulo-compra-footer{
  padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));
}
@media(max-width:760px){
  .lulo-v2 .lulo-compra-dialog{width:calc(100vw - 12px);height:94svh;max-height:94svh;border-radius:12px}
  .lulo-v2 .lulo-compra-head{padding:13px 12px 7px}
  .lulo-v2 .lulo-compra-intro{padding:0 12px 9px}
  .lulo-v2 .lulo-compra-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:2px 10px 10px}
  .lulo-v2 .lulo-compra-image{flex-basis:104px;height:104px!important;min-height:104px!important;padding:5px!important}
  .lulo-v2 .lulo-compra-image img{transform:scale(1.10)}
  .lulo-v2 .lulo-compra-card__body{gap:5px;padding:8px}
  .lulo-v2 .lulo-compra-name{min-height:2.7em;font-size:10.5px}
  .lulo-v2 .lulo-compra-modal-form{grid-template-columns:1fr;gap:5px;margin-top:auto}
  .lulo-v2 .lulo-compra-stepper,.lulo-v2 .lulo-compra-add{height:35px}
  .lulo-v2 .lulo-compra-card--wide{grid-template-columns:minmax(105px,34%) minmax(0,1fr)}
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-image{height:100%!important;min-height:230px!important;padding:6px!important}
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-card__body{padding:9px}
  .lulo-v2 .lulo-compra-footer{padding:9px 10px calc(9px + env(safe-area-inset-bottom,0px))}
}
@media(max-width:390px){
  .lulo-v2 .lulo-compra-grid{gap:6px;padding-inline:8px}
  .lulo-v2 .lulo-compra-image{height:94px!important;min-height:94px!important}
  .lulo-v2 .lulo-compra-card__body{padding:7px 6px}
  .lulo-v2 .lulo-compra-name{font-size:10px}
  .lulo-v2 .lulo-compra-card--wide{grid-template-columns:100px minmax(0,1fr)}
}


/* 2.1.6 · hotfix UX: el modal aparece solo con alternativas reales.
   La tarjeta impar horizontal replica la composición compacta de "Otras presentaciones":
   imagen limpia a la izquierda, contenido a la derecha y controles a todo el ancho. */
.lulo-v2 .lulo-compra-card--wide{
  display:grid!important;
  grid-template-columns:minmax(150px,30%) minmax(0,1fr);
  grid-template-rows:auto;
  column-gap:14px;
  row-gap:6px;
  align-items:start;
  padding:12px;
  background:#fff;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-image{
  grid-column:1;
  grid-row:1 / span 7;
  align-self:start;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1 / 1;
  padding:8px!important;
  border:0!important;
  background:#fff!important;
  overflow:hidden;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-image img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
  transform:none!important;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-card__body{
  display:contents!important;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-brand,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-name,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-meta,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-stock,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-buy,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-pricing,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-gain,
.lulo-v2 .lulo-compra-card--wide .lulo-compra-unavailable{
  grid-column:2;
  min-width:0;
  margin:0;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-name{
  min-height:0;
}
.lulo-v2 .lulo-compra-card--wide .lulo-compra-modal-form{
  grid-column:1 / -1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:8px;
  width:100%;
  margin-top:6px;
}
.lulo-v2 .lulo-compra-card--wide .lulo-bonus-pop{
  grid-column:1 / -1;
  width:100%;
}

@media(max-width:760px){
  .lulo-v2 .lulo-compra-card--wide{
    grid-template-columns:132px minmax(0,1fr);
    column-gap:10px;
    row-gap:4px;
    padding:9px;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-image{
    aspect-ratio:1 / 1;
    padding:4px!important;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-modal-form{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:7px;
    margin-top:5px;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-qtylabel,
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-pack{
    display:none;
  }
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-stepper,
  .lulo-v2 .lulo-compra-card--wide .lulo-compra-add{
    height:38px;
  }
}
@media(max-width:390px){
  .lulo-v2 .lulo-compra-card--wide{
    grid-template-columns:112px minmax(0,1fr);
    padding:8px;
  }
}


/* ------------------------------------------------------------------ tarjetas
   Todas las tarjetas de una misma fila comparten sus líneas: la foto, el
   nombre, el selector de compra, el precio, la utilidad y el pie quedan a la
   misma altura aunque un producto tenga el nombre más largo o una escala de
   bonificación que otro no tiene. Se resuelve con subgrid; donde no exista,
   las alturas mínimas de abajo dejan la desviación en unos pocos píxeles. */
.lulo-v2 .lulo-rejilla:not(.lulo-lista){align-items:stretch}
@supports (grid-template-rows: subgrid){
 .lulo-v2 .lulo-rejilla:not(.lulo-lista){grid-auto-rows:auto}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pcard{
  grid-row:span 7;display:grid;grid-template-rows:subgrid;align-content:stretch}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pbody{flex:none}
}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pbody{min-height:96px}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pprecio{min-height:74px}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pgana{min-height:58px;
 display:flex;flex-direction:column;justify-content:center}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-ppie{align-items:center}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pprecio{display:flex;flex-direction:column;justify-content:flex-start}

/* El obsequio por escala se reserva su línea aunque el producto no la tenga:
   así la utilidad no empuja el pie de una tarjeta y no el de la de al lado. */
.lulo-pgana .lulo-pbonus{font-size:9.5px;line-height:1.3;margin-top:4px;
 color:var(--lulo-on-olive);opacity:.9}
.lulo-pgana .lulo-pbonus[hidden]{display:block!important;visibility:hidden;height:0;margin:0}
.lulo-pgana--vacia{background:transparent!important;min-height:0!important;margin:0!important;padding:0!important}
.lulo-pbuy--vacia{display:none}
.lulo-pprecio--muro{display:flex;align-items:center;min-height:0!important}
.lulo-pprecio--muro .lulo-wall{font-size:12.5px;color:var(--lulo-muted);display:inline-flex;align-items:center;gap:5px}

/* ------------------------------------------------- comprar: unidad o caja
   La decisión fuerte vive en la barra de filtros. Dentro de la tarjeta es un
   ajuste fino, y por eso va discreto: mismo alto en todas, sin bloques que
   cambien la altura de una tarjeta respecto de su vecina. */
.lulo-pbuy{margin:9px 13px 0;padding:0;border:0;background:none;display:flex;
 flex-direction:column;align-items:stretch;gap:4px;line-height:1.2}
.lulo-pbuy-k{font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--lulo-muted)}
.lulo-pbuy-opts{display:grid;grid-template-columns:1fr 1fr;gap:0;
 border:1px solid var(--lulo-line);border-radius:6px;overflow:hidden;background:#fff}
.lulo-pbuy-opts:has(> :only-child){grid-template-columns:1fr}
.lulo-pbuy-opt{display:flex;flex-direction:column;justify-content:center;gap:1px;
 min-height:38px;padding:5px 7px;text-align:left;background:#fff;
 border-left:1px solid var(--lulo-line);transition:background .15s,color .15s}
.lulo-pbuy-opt:first-child{border-left:0}
.lulo-pbuy-opt b{font-size:10.5px;font-weight:600;color:var(--lulo-ink);line-height:1.15;
 white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lulo-pbuy-opt small{font-size:9.5px;color:var(--lulo-muted);font-variant-numeric:tabular-nums}
.lulo-pbuy-opt:hover{background:var(--lulo-band)}
.lulo-pbuy-opt[aria-pressed="true"]{background:var(--lulo-navy)}
.lulo-pbuy-opt[aria-pressed="true"] b{color:var(--lulo-on-navy,#fff)}
.lulo-pbuy-opt[aria-pressed="true"] small{color:var(--lulo-on-navy,#fff);opacity:.78}
.lulo-rejilla.lulo-lista .lulo-pbuy{margin:0;padding:0 14px;justify-content:center}

/* ---------------------------------------------------- la barra de filtros
   Aquí sí manda: es el control que cambia la lectura de todo el catálogo. */
.lulo-filtros-form--simple .lulo-filter-selection .lulo-mfilter-label{color:var(--lulo-navy)}
.lulo-filtros-form--simple .lulo-ganmodo{height:40px;border:1.5px solid var(--lulo-navy);
 border-radius:7px;overflow:hidden;box-shadow:0 1px 2px rgba(31,38,48,.08)}
.lulo-filtros-form--simple .lulo-ganmodo button{min-width:92px;padding:0 16px;height:100%;
 font-size:13px;font-weight:600;color:var(--lulo-navy);border-left:1px solid var(--lulo-line)}
.lulo-filtros-form--simple .lulo-ganmodo button:first-of-type{border-left:0}
.lulo-filtros-form--simple .lulo-ganmodo button.lulo-on,
.lulo-filtros-form--simple .lulo-ganmodo button[aria-pressed="true"]{background:var(--lulo-navy);color:var(--lulo-on-navy,#fff)}
.lulo-filtros-form--simple .lulo-filter-brand select{height:40px}

@media(max-width:900px){
 .lulo-pbuy{margin:7px 10px 0}
 .lulo-pbuy-opt{min-height:36px;padding:4px 6px}
 .lulo-pbuy-opt b{font-size:10px}
 .lulo-pbuy-opt small{font-size:9px}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pbody{min-height:88px}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pprecio{min-height:70px}
}


/* ====================================================================
   Los dos colores que cuentan la misma historia en todo el portal.

   VERDE OSCURO — lo que el negocio gana. «Usted gana», la utilidad por
   unidad y por caja, la ganancia estimada del pedido. Da igual la
   pantalla: catálogo, ficha, Mi pedido, caja, cuenta o el selector de
   presentaciones. Si dice cuánto le queda al cliente, va en verde.

   AZUL DE ACENTO — lo que todavía no ha pasado. «Faltan X unidades para
   llevar 1 gratis» es una promesa a medio camino, no una ganancia: se
   lee distinto y por eso se ve distinto. Cuando la escala ya se alcanzó,
   el aviso vuelve al verde, porque ahí sí hay algo ganado.
   ==================================================================== */

/* -- Verde: todo lo que es ganancia -------------------------------- */
.lulo-v2 .lulo-pgana,
.lulo-v2 .lulo-gana,
.lulo-v2 .lulo-lprecios .lulo-gana,
.lulo-v2 .lulo-ganancia-box,
.lulo-v2 .lulo-compra-gain,
.lulo-v2 .lulo-recup .lulo-top{
 background:var(--lulo-olive)!important;
 color:var(--lulo-on-olive)!important}

.lulo-v2 .lulo-pgana .lulo-k,.lulo-v2 .lulo-pgana .lulo-v,.lulo-v2 .lulo-pgana .lulo-s,.lulo-v2 .lulo-pgana .lulo-pbonus,
.lulo-v2 .lulo-gana .lulo-k,.lulo-v2 .lulo-gana .lulo-v,.lulo-v2 .lulo-gana .lulo-s,
.lulo-v2 .lulo-gana__rotulo,.lulo-v2 .lulo-gana__valor,.lulo-v2 .lulo-gana__nota,
.lulo-v2 .lulo-lprecios .lulo-gana .lulo-k,.lulo-v2 .lulo-lprecios .lulo-gana .lulo-v,.lulo-v2 .lulo-lprecios .lulo-gana .lulo-s,
.lulo-v2 .lulo-compra-gain>span,.lulo-v2 .lulo-compra-gain>b,.lulo-v2 .lulo-compra-gain>small,
.lulo-v2 .lulo-recup .lulo-top .lulo-k,.lulo-v2 .lulo-recup .lulo-top .lulo-v{
 color:var(--lulo-on-olive)!important}

/* Los rótulos y las notas, un punto por debajo del valor, sin salirse del verde. */
.lulo-v2 .lulo-pgana .lulo-k,.lulo-v2 .lulo-pgana .lulo-s,.lulo-v2 .lulo-pgana .lulo-pbonus,
.lulo-v2 .lulo-gana .lulo-k,.lulo-v2 .lulo-gana .lulo-s,
.lulo-v2 .lulo-lprecios .lulo-gana .lulo-k,.lulo-v2 .lulo-lprecios .lulo-gana .lulo-s,
.lulo-v2 .lulo-compra-gain>span,.lulo-v2 .lulo-compra-gain>small,
.lulo-v2 .lulo-recup .lulo-top .lulo-k{opacity:.84}
.lulo-v2 .lulo-compra-gain .lulo-compra-bonus{border-top-color:rgba(255,255,255,.24)}

/* El margen suelto que no vive dentro de una caja verde. */
.lulo-v2 .lulo-tot.lulo-good .lulo-v,
.lulo-v2 .lulo-lsug b,
.lulo-v2 .lulo-bonif-row b{color:var(--lulo-olive)}

/* -- Azul: lo que falta para la bonificación ----------------------- */
.lulo-v2 .lulo-scale-hint.lulo-near{
 background:var(--lulo-aviso)!important;
 color:var(--lulo-aviso-ink)!important;
 border:1px solid var(--lulo-aviso-line)!important}
.lulo-v2 .lulo-scale-hint.lulo-near b{color:var(--lulo-aviso-ink)!important}
.lulo-v2 .lulo-scale-hint.lulo-near .lulo-bar{background:var(--lulo-aviso-line)!important}
.lulo-v2 .lulo-scale-hint.lulo-near .lulo-bar i{background:var(--lulo-aviso-ink)!important}

/* -- Verde: la escala ya alcanzada -------------------------------- */
.lulo-v2 .lulo-scale-hint.lulo-win{
 background:#EEF5EE!important;color:var(--lulo-olive)!important;border:1px solid #CFDFD1!important}
.lulo-v2 .lulo-scale-hint.lulo-win b{color:var(--lulo-olive)!important}
.lulo-v2 .lulo-scale-hint.lulo-win .lulo-bar i{background:var(--lulo-olive)!important}

/* ------------------------------------------------------------------
   Navegación del pedido y confirmación contraentrega (2.3.2)
   ------------------------------------------------------------------ */

/* Ruta de navegación: lista semántica, misma apariencia de siempre. */
.lulo-crumb ol{list-style:none;display:flex;flex-wrap:wrap;gap:0;margin:0;padding:0}
.lulo-crumb li{display:flex;align-items:center}
.lulo-crumb li+li::before{content:"/";margin:0 6px;color:var(--lulo-line)}
.lulo-crumb [aria-current="page"]{color:var(--lulo-ink);font-weight:600}

/* Indicador de avance: tres momentos, uno vigente. */
.lulo-pasos{margin:0 0 14px}
.lulo-pasos ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0}
.lulo-paso{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--lulo-muted)}
.lulo-paso+.lulo-paso::before{content:"";width:22px;height:1px;background:var(--lulo-line);margin-right:1px}
.lulo-paso__n{display:inline-flex;align-items:center;justify-content:center;width:21px;height:21px;
 border-radius:50%;border:1px solid var(--lulo-line);font-size:11px;font-weight:700;background:#fff;flex:0 0 21px}
.lulo-paso a{color:var(--lulo-muted);text-decoration:none}
.lulo-paso a:hover{color:var(--lulo-ink);text-decoration:underline}
.lulo-paso--hecho .lulo-paso__n{background:var(--lulo-olive);border-color:var(--lulo-olive);color:var(--lulo-on-olive)}
.lulo-paso--aqui{color:var(--lulo-ink);font-weight:700}
.lulo-paso--aqui .lulo-paso__n{background:var(--lulo-navy);border-color:var(--lulo-navy);color:#fff}
@media (max-width:560px){
 .lulo-paso{font-size:12px}
 .lulo-paso+.lulo-paso::before{width:12px}
}

/* Volver al catálogo sin perder el pedido. */
.lulo-volver{display:inline-block;margin:2px 0 10px;font-size:13px;color:var(--lulo-navy);text-decoration:none}
.lulo-volver:hover{text-decoration:underline}

/* Contadores: en cero no hay nada que restar ni nada que agregar. */
.lulo-stepper button[disabled],.lulo-lstep button[disabled]{opacity:.38;cursor:not-allowed;background:#fff}
.lulo-addbtn[disabled],.single_add_to_cart_button[disabled]{opacity:.5;cursor:not-allowed}
/* El botón de agregar nunca se apaga por estar el contador en cero: solo cuando
   de verdad no hay existencias. Es el control principal de la tarjeta. */
.lulo-v2 .lulo-addbtn:not([data-lulo-sin-stock]){opacity:1;cursor:pointer;
 background:var(--lulo-navy);color:var(--lulo-on-navy,#fff)}
.lulo-v2 .lulo-addbtn:not([data-lulo-sin-stock]):hover,
.lulo-v2 .lulo-addbtn:not([data-lulo-sin-stock]):focus-visible{background:var(--lulo-deep)}

/* Confirmación de entrega contraentrega. */
.lulo-contraentrega{margin-top:10px}
.lulo-ce-intro{font-size:13px;color:var(--lulo-ink);margin:0 0 10px}
.lulo-ce-dir{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:10px 12px;margin-bottom:12px;
 background:var(--lulo-aviso);border:1px solid var(--lulo-aviso-line);border-radius:6px}
.lulo-ce-k{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--lulo-aviso-ink);font-weight:700}
.lulo-ce-v{font-size:13px;color:var(--lulo-ink);flex:1 1 200px}
.lulo-ce-editar{font-size:12px;color:var(--lulo-aviso-ink);text-decoration:underline}
.lulo-contraentrega .form-row{margin-bottom:10px}
.lulo-contraentrega label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--lulo-ink)}
.lulo-contraentrega .input-text,.lulo-contraentrega select{width:100%;height:40px;padding:0 10px;
 border:1px solid var(--lulo-line);border-radius:6px;font-size:14px;background:#fff;color:var(--lulo-ink)}
.lulo-ce-check label{display:flex;align-items:flex-start;gap:8px;font-weight:400;font-size:13px;line-height:1.4}
.lulo-ce-check input{margin-top:2px;flex:0 0 auto}
.lulo-ce-resumen{margin-top:18px}
.lulo-ce-resumen h2{font-size:15px;margin:0 0 8px}
.lulo-ce-resumen ul{list-style:none;margin:0;padding:0;font-size:13px}
.lulo-ce-resumen li{padding:4px 0;border-bottom:1px solid var(--lulo-line)}
.lulo-ce-resumen li:last-child{border-bottom:0;color:var(--lulo-muted)}
@media (min-width:520px){
 .lulo-contraentrega .form-row-first,.lulo-contraentrega .form-row-last{width:calc(50% - 5px);display:inline-block;vertical-align:top}
 .lulo-contraentrega .form-row-first{margin-right:8px}
}

/* ------------------------------------------------------------------
   Tarjeta más compacta (2.3.3)
   El aire entre bloques se había vuelto altura: seis franjas con margen
   propio suman una tarjeta larga que obliga a bajar para ver el precio.
   Se recorta el espacio, no el contenido, y las alturas mínimas bajan
   en bloque para que las filas sigan alineadas.
   ------------------------------------------------------------------ */
.lulo-v2 .lulo-pbody{padding-top:9px}
.lulo-v2 .lulo-pmeta{margin-top:3px}
.lulo-v2 .lulo-pcard h3{margin-top:4px;line-height:1.3}
.lulo-v2 .lulo-pprecio{padding-top:7px}
.lulo-v2 .lulo-psug{margin-top:1px}
.lulo-v2 .lulo-pgana{margin-top:7px;padding:6px 9px}
.lulo-v2 .lulo-pbuy{margin-top:7px}
.lulo-v2 .lulo-ppie{padding:9px 13px 11px}
.lulo-v2 .lulo-pcard>.lulo-bonus-pop{margin:-3px 13px 10px}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pbody{min-height:82px}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pprecio{min-height:60px}
.lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pgana{min-height:50px}
@media(max-width:560px){
 .lulo-v2 .lulo-pbody{padding-top:8px}
 .lulo-v2 .lulo-pgana{margin-top:6px;padding:5px 8px}
 .lulo-v2 .lulo-pbuy{margin-top:6px}
 .lulo-v2 .lulo-ppie{padding:8px 10px 10px}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pbody{min-height:76px}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pprecio{min-height:56px}
 .lulo-v2 .lulo-rejilla:not(.lulo-lista) .lulo-pgana{min-height:46px}
}

/* ------------------------------------------------------------------
   Guardar como lista y descargar cotización
   Son las dos acciones que un mayorista repite cada semana, y estaban
   dibujadas como enlaces secundarios. Suben a acento azul —el mismo de
   la escala por alcanzar— para que se vean sin disputarle el primer
   plano al botón de pagar, que sigue siendo el único sólido en azul
   marino.
   ------------------------------------------------------------------ */
.lulo-acciones-pedido .lulo-btn-icono{
 background:var(--lulo-aviso);
 border:1px solid var(--lulo-aviso-line);
 color:var(--lulo-aviso-ink);
 font-weight:700;
 box-shadow:0 1px 0 rgba(31,92,139,.08)}
.lulo-acciones-pedido .lulo-btn-icono svg{color:var(--lulo-aviso-ink)}
.lulo-acciones-pedido .lulo-btn-icono:hover,
.lulo-acciones-pedido .lulo-btn-icono:focus-visible{
 background:var(--lulo-aviso-ink);
 border-color:var(--lulo-aviso-ink);
 color:#fff}
.lulo-acciones-pedido .lulo-btn-icono:hover svg,
.lulo-acciones-pedido .lulo-btn-icono:focus-visible svg{color:#fff}
.lulo-guardar-lista[open]>summary{
 background:var(--lulo-aviso-ink)!important;
 border-color:var(--lulo-aviso-ink)!important;
 color:#fff}
.lulo-guardar-lista[open]>summary svg{color:#fff}

/* ------------------------------------------------------------------
   Código de entrega (2.3.4)
   Tiene que encontrarse de una mirada con el domiciliario en la puerta.
   ------------------------------------------------------------------ */
.lulo-codigo{margin:18px 0;padding:16px 18px;border-radius:8px;
 background:var(--lulo-aviso);border:1px solid var(--lulo-aviso-line)}
.lulo-codigo h2{font-size:13px;margin:0 0 6px;text-transform:uppercase;letter-spacing:.09em;
 color:var(--lulo-aviso-ink)}
.lulo-codigo-intro{font-size:13px;margin:0 0 10px;color:var(--lulo-ink);line-height:1.45}
.lulo-codigo-n{margin:0;font-size:34px;font-weight:700;letter-spacing:.14em;line-height:1.1;
 color:var(--lulo-aviso-ink);font-variant-numeric:tabular-nums}
.lulo-codigo-nota{font-size:11.5px;color:var(--lulo-muted);margin:8px 0 0;line-height:1.4}
.lulo-codigo--usado{background:#EEF5EE;border-color:#CBE0CE}
.lulo-codigo--usado h2{color:var(--lulo-olive)}
@media(max-width:520px){.lulo-codigo-n{font-size:28px}}

/* ------------------------------------------------------------------
   Mi pedido: unidad o caja en cada línea (2.3.5)
   La misma decisión del catálogo, disponible donde el comprador todavía
   está ajustando. Discreta: es un ajuste, no la acción principal.
   ------------------------------------------------------------------ */
.lulo-lmodo{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.lulo-lmodo-k{font-size:9px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--lulo-muted)}
.lulo-lmodo button{font-size:11px;font-weight:600;padding:4px 10px;border:1px solid var(--lulo-line);
 border-radius:999px;background:#fff;color:var(--lulo-ink);cursor:pointer;line-height:1.3}
.lulo-lmodo button:hover{border-color:var(--lulo-navy)}
.lulo-lmodo button[aria-pressed="true"]{background:var(--lulo-navy);border-color:var(--lulo-navy);
 color:var(--lulo-on-navy,#fff)}

/* Dirección de despacho: se confirma, no se edita. */
.lulo-campo-fijo input,.lulo-campo-fijo select,input[data-lulo-fijo]{
 background:var(--lulo-band)!important;color:var(--lulo-muted)!important;cursor:not-allowed}
.lulo-ce-dir[data-lulo-dir-fija]{cursor:help}
.lulo-ce-dir[data-lulo-dir-fija]:focus-visible{outline:2px solid var(--lulo-aviso-ink);outline-offset:2px}
.lulo-aviso-fijo,.lulo-ce-aviso{display:block;width:100%;margin-top:6px;padding:6px 9px;border-radius:5px;
 background:var(--lulo-aviso-ink);color:#fff;font-size:11.5px;line-height:1.4;font-weight:600}
.lulo-aviso-fijo[hidden],.lulo-ce-aviso[hidden]{display:none}

/* ------------------------------------------------------------------
   Formas de pago en espacios estrechos (2.3.5)
   La vista previa del personalizador pinta la caja dentro de un panel de
   unos 300 px. Ahí la etiqueta «Despacho inmediato» no encogía y le
   dejaba al nombre del método una columna de una letra de ancho. La
   etiqueta ahora baja a su propia línea antes que estrangular el texto.
   ------------------------------------------------------------------ */
.lulo-v2 .lulo-ro{container-type:inline-size}
.lulo-v2 .lulo-rohead{flex-wrap:wrap;row-gap:6px}
.lulo-v2 .lulo-rotext{flex:1 1 170px;min-width:0}
.lulo-v2 .lulo-roname,.lulo-v2 .lulo-rodesc{display:block;overflow-wrap:anywhere}
.lulo-v2 .lulo-roflag{flex:0 0 auto;margin-left:auto;white-space:nowrap;align-self:flex-start}
.lulo-v2 .lulo-robody{min-width:0;overflow-wrap:anywhere}
.lulo-v2 .lulo-robody .form-row{min-width:0}
@container (max-width: 420px){
 .lulo-v2 .lulo-roflag{order:3;width:100%;margin-left:0}
 .lulo-v2 .lulo-robody{padding-left:15px}
 .lulo-v2 .lulo-contraentrega .form-row-first,
 .lulo-v2 .lulo-contraentrega .form-row-last{width:100%;margin-right:0;display:block}
}
@media (max-width:520px){
 .lulo-v2 .lulo-roflag{order:3;width:100%;margin-left:0}
 .lulo-v2 .lulo-robody{padding-left:15px}
}

/* ------------------------------------------------------------------
   Elige las presentaciones (2.3.8)
   ------------------------------------------------------------------ */

/* Unidad o caja dentro de la propia presentación. */
.lulo-compra-modo{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin:6px 0 2px}
.lulo-compra-modo-k{font-size:8.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--lulo-muted)}
.lulo-compra-modo button{font-size:10.5px;font-weight:600;padding:3px 9px;border:1px solid var(--lulo-line);
 border-radius:999px;background:#fff;color:var(--lulo-ink);cursor:pointer;line-height:1.3}
.lulo-compra-modo button:hover{border-color:var(--lulo-navy)}
.lulo-compra-modo button[aria-pressed="true"]{background:var(--lulo-navy);border-color:var(--lulo-navy);
 color:var(--lulo-on-navy,#fff)}

/* El aviso viste como el botón de Mi pedido: fondo oscuro, acento en el texto. */
.lulo-v2 .lulo-compra-aviso{background:var(--lulo-navy);color:var(--lulo-pedido,#DDE329);font-weight:600}
.lulo-v2 .lulo-compra-aviso a{color:var(--lulo-pedido,#DDE329)}
.lulo-v2 .lulo-compra-aviso.lulo-error{background:#7D2222;color:#fff}
.lulo-v2 .lulo-compra-aviso.lulo-error a{color:#fff}

/* Dentro del diálogo se ancla al propio contenedor, no a la ventana. */
.lulo-compra-aviso--dentro{position:absolute;bottom:76px;left:50%;transform:translateX(-50%);
 z-index:5;width:max-content;max-width:calc(100% - 32px)}

/* Menos aire arriba y abajo: un 10% en cada franja vertical del contenedor. */
.lulo-v2 .lulo-compra-head{padding:16px 20px 8px}
.lulo-v2 .lulo-compra-intro{padding:0 20px 12px}
.lulo-v2 .lulo-compra-footer{padding:11px 20px calc(11px + env(safe-area-inset-bottom,0px))}
@media(max-width:760px){
 .lulo-v2 .lulo-compra-head{padding:12px 12px 6px}
 .lulo-v2 .lulo-compra-intro{padding:0 12px 8px}
 .lulo-v2 .lulo-compra-footer{padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px))}
 .lulo-compra-aviso--dentro{bottom:64px}
}
/* El diálogo es el marco de referencia del aviso que vive dentro. */
.lulo-v2 .lulo-compra-dialog{position:fixed}

/* El bloque del vendedor en la solicitud. */
.lulo-vendedor{margin-top:18px;padding-top:16px;border-top:1px solid var(--lulo-line)}
.lulo-hd-min h3{font-size:14px;margin:0 0 4px}
.lulo-hd-min .lulo-hint{margin:0 0 12px}


/* Lockup oficial «Pedidos LuloGroup» en la cabecera.
   El logotipo ya dice Pedidos, así que el chip de al lado sobra. */
.lulo-head .lulo-brand .lulo-logo--lockup{height:26px;width:auto;max-width:200px;display:block}
.lulo-head .lulo-brand .lulo-sub{display:none}
@media (max-width:560px){
.lulo-head .lulo-brand .lulo-logo--lockup{height:21px;max-width:158px}
}
