.lp-gift-box{
  --lp-red:#BE1A34;
  --lp-red-hover:#9F152A;
  --lp-red-soft:#FBECEF;
  --lp-ink:#111111;
  --lp-muted:#666666;
  --lp-soft:#F5F5F5;
  box-sizing:border-box;
  width:100%;
  min-width:0;
  margin:26px 0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--lp-ink);
  overflow:visible;
  container-type:inline-size;
}
.lp-gift-box *{box-sizing:border-box;min-width:0;border-radius:0}
.lp-gift-location-mobile{display:none}

.lp-gift-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) 136px;
  align-items:start;
  gap:18px;
  padding:0 0 16px;
}
.lp-gift-header h3{
  margin:0 0 8px;
  font-size:clamp(22px,3.6cqw,30px);
  line-height:1.12;
  letter-spacing:-.02em;
  overflow-wrap:anywhere;
}
.lp-gift-header p{
  margin:0;
  color:var(--lp-muted);
  line-height:1.6;
  font-size:15px;
}
.lp-gift-counter{
  min-width:0;
  padding:18px 14px;
  background:var(--lp-red);
  color:#fff;
  text-align:center;
}
.lp-gift-counter strong,.lp-gift-counter span{display:block}
.lp-gift-counter strong{
  margin-bottom:8px;
  font-size:34px;
  line-height:1;
  font-weight:800;
  letter-spacing:-.03em;
}
.lp-gift-counter span{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.14em;
  opacity:.94;
  overflow-wrap:anywhere;
}

.lp-progress-card{
  margin:0 0 18px;
  padding:20px 22px;
  background:var(--lp-soft);
  border:0;
}
.lp-progress-copy{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:16px;
  align-items:end;
  margin-bottom:14px;
}
.lp-progress-copy strong{font-size:16px;line-height:1.3}
.lp-progress-copy span,.lp-progress-note{font-size:14px;color:var(--lp-muted)}
.lp-progress-track{
  position:relative;
  height:10px;
  background:#E5E5E5;
  overflow:hidden;
}
.lp-progress-track span{
  display:block;
  height:100%;
  background:var(--lp-red);
  transition:width .35s ease;
}
.lp-progress-note{margin-top:12px;line-height:1.55}

.lp-gift-progress,
.lp-gift-success{
  margin:0 0 18px;
  padding:18px 20px;
  background:var(--lp-soft);
  border:0;
  border-left:5px solid var(--lp-red);
}
.lp-gift-success{background:var(--lp-red-soft)}
.lp-gift-success strong,.lp-gift-success span{display:block}
.lp-gift-success strong{font-size:15px}
.lp-gift-success span{margin-top:5px;color:#6B5055;line-height:1.5}

.lp-unlock-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  margin:0 0 18px;
  padding:24px 22px;
  background:#111111;
  color:#fff;
  border:0;
  border-left:6px solid var(--lp-red);
  box-shadow:none;
}
.lp-unlock-card>div>*{display:block}
.lp-unlock-kicker{
  margin-bottom:8px;
  color:rgba(255,255,255,.72);
  font-size:12px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.lp-unlock-card strong{
  font-size:clamp(26px,4cqw,34px);
  line-height:1.14;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
}
.lp-unlock-card small{
  margin-top:8px;
  color:rgba(255,255,255,.78);
  line-height:1.55;
  font-size:14px;
}

.lp-toggle-gifts,
.lp-add-gift,
.lp-show-more{
  appearance:none;
  border:0 !important;
  background:var(--lp-red) !important;
  color:#fff !important;
  box-shadow:none !important;
  text-shadow:none !important;
  font-weight:700;
  letter-spacing:.01em;
}
.lp-toggle-gifts{
  min-height:48px;
  min-width:220px;
  padding:13px 22px !important;
  white-space:normal;
  text-align:center;
  line-height:1.25;
}
.lp-toggle-gifts:hover,
.lp-add-gift:hover,
.lp-show-more:hover{background:var(--lp-red-hover) !important}
.lp-toggle-gifts:focus,
.lp-add-gift:focus,
.lp-show-more:focus{outline:2px solid var(--lp-red);outline-offset:2px}

.lp-gift-picker{
  padding:20px 22px 22px;
  background:#fff;
  border:0;
  box-shadow:0 8px 24px rgba(17,17,17,.08);
}
.lp-gift-picker[hidden]{display:none!important}
.lp-gift-toolbar{
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(180px,.7fr);
  gap:12px;
  margin-bottom:18px;
}
.lp-gift-toolbar input,
.lp-gift-toolbar select,
.lp-gift-attributes select{
  width:100%;
  min-height:46px;
  border:0;
  padding:0 14px;
  background:#F1F1F1;
  color:var(--lp-ink);
  box-shadow:inset 0 -2px 0 #D7D7D7;
}
.lp-gift-toolbar input:focus,
.lp-gift-toolbar select:focus,
.lp-gift-attributes select:focus{
  outline:none;
  box-shadow:inset 0 -3px 0 var(--lp-red);
}

.lp-gift-grid{
  display:flex;
  gap:16px;
  overflow-x:auto;
  padding:4px 2px 12px;
  scroll-snap-type:x proximity;
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:var(--lp-red) transparent;
}
.lp-gift-grid::-webkit-scrollbar{height:8px}
.lp-gift-grid::-webkit-scrollbar-thumb{background:var(--lp-red)}
.lp-gift-grid::-webkit-scrollbar-track{background:transparent}

.lp-gift-card{
  flex:0 0 clamp(220px,28%,255px);
  border:0;
  background:#fff;
  overflow:hidden;
  box-shadow:0 8px 20px rgba(17,17,17,.10);
  scroll-snap-align:start;
}
.lp-gift-card[hidden]{display:none!important}
.lp-gift-image img{
  display:block;
  width:100%;
  height:190px;
  object-fit:cover;
  background:#FAFAFA;
}
.lp-gift-content{padding:14px}
.lp-gift-content h4{margin:0 0 8px;font-size:15px;line-height:1.35;min-height:40px}
.lp-gift-original-price{margin-bottom:12px;font-size:13px;color:var(--lp-muted)}
.lp-gift-original-price strong{margin-left:8px;color:var(--lp-red);font-size:14px}
.lp-gift-attributes{display:grid;gap:8px;margin-bottom:12px}
.lp-gift-attributes label span{display:block;margin-bottom:4px;font-size:12px;font-weight:700;color:#393939}
.lp-add-gift{width:100%;min-height:44px;padding:0 14px !important}
.lp-gift-message{min-height:18px;margin-top:8px;font-size:12px;color:var(--lp-red)}
.lp-gift-message.is-error{color:#B42318}
.lp-show-more{display:block;margin:18px auto 0;padding:12px 18px !important}
.lp-no-results{padding:24px;text-align:center;background:var(--lp-soft);color:var(--lp-muted)}

.lp-selected-gifts{
  margin:18px 0 0;
  padding:18px 20px;
  background:#fff;
  border:0;
  box-shadow:0 8px 24px rgba(17,17,17,.08);
}
.lp-selected-gifts h4{margin:0 0 12px;font-size:16px}
.lp-selected-row{
  display:grid;
  grid-template-columns:54px minmax(0,1fr) 38px;
  align-items:center;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid #EFEFEF;
}
.lp-selected-row:last-child{border-bottom:0}
.lp-selected-row img{width:54px;height:54px;object-fit:cover;background:#FAFAFA}
.lp-selected-row strong{display:block;line-height:1.35}
.lp-selected-row small{display:block;color:var(--lp-red);margin-top:2px}
.lp-remove-gift{
  border:0;
  background:var(--lp-red);
  color:#fff;
  width:32px;
  height:32px;
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.lp-gift-badge{
  display:inline-block;
  margin-left:8px;
  padding:4px 7px;
  background:var(--lp-red);
  color:#fff;
  font-size:10px;
  font-weight:800;
  vertical-align:middle;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.lp-gift-fixed-qty{font-weight:700}

@container (max-width:680px){
  .lp-gift-header{grid-template-columns:minmax(0,1fr) 118px;gap:14px}
  .lp-progress-copy{grid-template-columns:1fr}
  .lp-unlock-card{grid-template-columns:1fr}
  .lp-toggle-gifts{width:100%;min-width:0}
  .lp-gift-toolbar{grid-template-columns:1fr}
  .lp-gift-card{flex-basis:230px}
}
@media(max-width:1100px){
  .lp-gift-card{flex-basis:240px}
}
@media(max-width:767px){
  body.woocommerce-cart .lp-gift-location-mobile{display:block;margin:0 0 22px}
  body.woocommerce-cart .lp-gift-location-sidebar{display:none!important}

  /* En móvil las referencias se muestran como listado vertical, sin slider. */
  .lp-gift-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    overflow:visible;
    padding:0;
    scroll-snap-type:none;
  }
  .lp-gift-grid::-webkit-scrollbar{display:none}
  .lp-gift-card{
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    width:100%;
    max-width:none;
    min-height:164px;
    flex:none;
    box-shadow:0 5px 14px rgba(17,17,17,.08);
    scroll-snap-align:none;
  }
  .lp-gift-image{
    min-height:100%;
    background:#FAFAFA;
  }
  .lp-gift-image img{
    width:100%;
    height:100%;
    min-height:164px;
    object-fit:cover;
  }
  .lp-gift-content{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:14px;
  }
  .lp-gift-content h4{
    min-height:0;
    margin-bottom:7px;
    font-size:15px;
  }
  .lp-gift-original-price{margin-bottom:9px}
  .lp-gift-attributes{margin-bottom:10px}
  .lp-gift-attributes select{min-height:42px}
  .lp-add-gift{min-height:42px}
  .lp-gift-message{margin-top:6px}
}
@media(max-width:600px){
  .lp-gift-box{margin:22px 0}
  .lp-gift-header{grid-template-columns:minmax(0,1fr) 112px;gap:12px}
  .lp-gift-header h3{font-size:23px}
  .lp-progress-card,
  .lp-gift-progress,
  .lp-gift-success,
  .lp-unlock-card,
  .lp-gift-picker,
  .lp-selected-gifts{padding-left:16px;padding-right:16px}
}
@media(max-width:420px){
  .lp-gift-header{grid-template-columns:1fr}
  .lp-gift-counter{max-width:none}
  .lp-gift-card{
    grid-template-columns:96px minmax(0,1fr);
    min-height:150px;
  }
  .lp-gift-image img{min-height:150px}
  .lp-gift-content{padding:12px}
  .lp-gift-content h4{font-size:14px}
  .lp-gift-original-price{font-size:12px}
}

.lp-gift-header .lp-gift-price-rule{
  margin-top:7px;
  color:var(--lp-red);
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
