.ecs-gift-wrap{
  --ecsg-accent:#e5006d;--ecsg-accent2:#ff7ab8;--ecsg-bg:#fff;--ecsg-text:#1b1b1f;
  --ecsg-muted:#6b6b76;--ecsg-border:#e7e7ee;--ecsg-radius:16px;--ecsg-cols:3;
  box-sizing:border-box;width:100%;margin:0 0 24px;color:var(--ecsg-text);
  font-family:inherit;
}
.ecs-gift-wrap *,.ecs-gift-wrap *::before,.ecs-gift-wrap *::after{box-sizing:border-box;}

.ecs-gift-card,.ecs-ship-card{
  background:var(--ecsg-bg);border:1px solid var(--ecsg-border);
  border-radius:var(--ecsg-radius);padding:20px;
  box-shadow:0 6px 24px rgba(20,20,40,.06);
}

.ecs-gift-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;}
.ecs-gift-title{margin:0 0 4px;font-size:1.15rem;line-height:1.25;font-weight:700;color:var(--ecsg-text);}
.ecs-gift-sub{margin:0;font-size:.9rem;line-height:1.45;color:var(--ecsg-muted);}
.ecs-gift-badge{
  flex:none;background:linear-gradient(135deg,var(--ecsg-accent),var(--ecsg-accent2));
  color:#fff;font-size:.68rem;font-weight:800;letter-spacing:.08em;
  padding:6px 10px;border-radius:999px;text-transform:uppercase;white-space:nowrap;
}

.ecs-gift-progress{
  position:relative;height:8px;margin:14px 0 10px;border-radius:999px;
  background:color-mix(in srgb,var(--ecsg-border) 75%,#fff);overflow:hidden;
}
.ecs-gift-progress>span{
  display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--ecsg-accent),var(--ecsg-accent2));
  transition:width .4s ease;
}
.ecs-gift-msg{margin:0 0 16px;font-size:.92rem;line-height:1.45;color:var(--ecsg-muted);}
.ecs-gift-msg strong{color:var(--ecsg-accent);}

.ecs-gift-grid{
  list-style:none;margin:0;padding:0;display:grid;gap:14px;
  grid-template-columns:repeat(var(--ecsg-cols),minmax(0,1fr));
}
.ecs-gift-item{
  display:flex;flex-direction:column;gap:10px;padding:12px;margin:0;
  border:1px solid var(--ecsg-border);border-radius:calc(var(--ecsg-radius) - 4px);
  background:var(--ecsg-bg);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.ecs-gift-item:hover{border-color:var(--ecsg-accent);transform:translateY(-2px);}
.ecs-gift-item.is-chosen{border-color:var(--ecsg-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--ecsg-accent) 20%,transparent);}
.ecs-gift-thumb{border-radius:calc(var(--ecsg-radius) - 8px);overflow:hidden;background:#f6f6fa;aspect-ratio:1/1;}
.ecs-gift-thumb img{width:100%;height:100%;object-fit:cover;display:block;margin:0;}
.ecs-gift-body{display:flex;flex-direction:column;gap:8px;flex:1;}
.ecs-gift-name{font-size:.92rem;font-weight:600;line-height:1.3;}
.ecs-gift-price{display:flex;align-items:baseline;gap:8px;font-size:.85rem;}
.ecs-gift-price del{color:var(--ecsg-muted);opacity:.8;}
.ecs-gift-price ins{text-decoration:none;color:var(--ecsg-accent);font-weight:700;}

.ecs-gift-btn{
  margin-top:auto;width:100%;min-height:44px;padding:10px 14px;border:0;cursor:pointer;
  border-radius:999px;font-size:.9rem;font-weight:700;color:#fff;
  background:linear-gradient(135deg,var(--ecsg-accent),var(--ecsg-accent2));
  transition:opacity .2s ease,filter .2s ease;
}
.ecs-gift-btn:hover:not(:disabled){filter:brightness(1.05);}
.ecs-gift-btn:disabled{opacity:.45;cursor:not-allowed;}
.ecs-gift-btn.is-added{background:#18a957;}
.ecs-gift-remove{
  background:none;border:0;padding:0;cursor:pointer;font-size:.8rem;
  color:var(--ecsg-muted);text-decoration:underline;
}

.ecs-gift-module.is-loading{opacity:.6;pointer-events:none;}
.ecs-gift-error{margin:10px 0 0;color:#c0392b;font-size:.85rem;}

/* Shipping bar */
.ecs-ship-card{padding:16px 18px;}
.ecs-ship-row{display:flex;align-items:center;gap:10px;}
.ecs-ship-icon{font-size:1.15rem;line-height:1;}
.ecs-ship-text{margin:0;font-size:.95rem;line-height:1.4;color:var(--ecsg-text);}
.ecs-ship-text strong{color:var(--ecsg-accent);}
.ecs-ship-card.is-unlocked .ecs-gift-progress>span{background:#18a957;}
.ecs-ship-card .ecs-gift-progress{margin:12px 0 0;}

/* Cart line labels */
.ecs-gift-tag{
  display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;
  background:linear-gradient(135deg,#e5006d,#ff7ab8);color:#fff;
  font-size:.65rem;font-weight:800;letter-spacing:.06em;vertical-align:middle;
}
.ecs-gift-free{color:#18a957;font-weight:700;}

@media (max-width:900px){
  .ecs-gift-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
  .ecs-gift-card,.ecs-ship-card{padding:16px;}
  .ecs-gift-grid{grid-template-columns:1fr;gap:12px;}
  .ecs-gift-item{flex-direction:row;align-items:center;gap:12px;}
  .ecs-gift-thumb{width:88px;min-width:88px;aspect-ratio:1/1;}
  .ecs-gift-btn{width:auto;align-self:flex-start;padding:10px 18px;}
  .ecs-gift-title{font-size:1.05rem;}
  .ecs-gift-head{flex-direction:row;align-items:center;}
}