/* AbrangPlus storefront v5 */
:root{
  --abp-primary:#ef4056; --abp-primary-d:#c62b3f; --abp-ink:#0f172a; --abp-muted:#64748b;
  --abp-line:#e9ecf1; --abp-radius:18px; --abp-bg:#f7f8fa;
  --abp-shadow:0 6px 22px rgba(15,23,42,.07); --abp-shadow-h:0 18px 40px rgba(15,23,42,.14);
  --abp-grad:linear-gradient(135deg,#ef4056,#f97316);
}
.abp-sec{max-width:1280px;margin:34px auto;padding:0 16px;box-sizing:border-box}
.abp-sec *{box-sizing:border-box}
.abp-sec>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.abp-sec>header h2{font-size:clamp(17px,1.6vw,22px);font-weight:800;color:var(--abp-ink);margin:0;padding-inline-start:12px;position:relative}
.abp-sec>header h2:before{content:"";position:absolute;inset-inline-start:0;top:50%;transform:translateY(-50%);width:4px;height:22px;border-radius:3px;background:var(--abp-grad)}
.abp-sec>header a{font-size:12.5px;font-weight:700;color:var(--abp-primary);text-decoration:none}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(18px)}
[data-reveal].is-in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}

/* ---------- trust ---------- */
.abp-trust{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:6px}
.abp-trust__item{position:relative;background:#fff;border:1px solid var(--abp-line);border-radius:var(--abp-radius);padding:18px 12px 16px;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;row-gap:2px;align-items:center;transition:transform .25s ease,box-shadow .25s ease}
.abp-trust__item:hover{transform:translateY(-4px);box-shadow:var(--abp-shadow-h)}
.abp-trust__item i{grid-row:1/span 2;font-style:normal;font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#fff1f2,#fff7ed)}
.abp-trust__item b{font-size:13.5px;color:var(--abp-ink);font-weight:800}
.abp-trust__item small{font-size:11.5px;color:var(--abp-muted)}

/* ---------- flash ---------- */
.abp-flash{background:linear-gradient(140deg,#fff1f2 0%,#fff 60%,#fff7ed 100%);border:1px solid #fecdd3;border-radius:24px;padding:20px;margin-top:34px}
.abp-flash__head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.abp-flash__head h2{margin:0;font-size:20px;font-weight:800;color:var(--abp-primary);padding:0}
.abp-flash__head h2:before{display:none}
.abp-flash__sub{font-size:11.5px;color:var(--abp-muted);margin-inline-start:8px}
.abp-flip{display:flex;gap:6px}
.abp-flip__unit{background:var(--abp-ink);color:#fff;border-radius:12px;padding:6px 10px;display:flex;flex-direction:column;align-items:center;min-width:56px}
.abp-flip__unit b{font-size:16px;font-variant-numeric:tabular-nums;line-height:1.3}
.abp-flip__unit span{font-size:9.5px;opacity:.7}

/* ---------- cards ---------- */
.abp-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.abp-slider-wrap{position:relative}
.abp-swiper{overflow:hidden}
.abp-swiper .swiper-slide{height:auto;display:flex}
.abp-swiper .swiper-slide>.abp-card{width:100%}
.abp-nav{position:absolute;inset-inline:0;top:34%;display:flex;justify-content:space-between;pointer-events:none}
.abp-nav button{pointer-events:auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--abp-line);background:#fff;color:var(--abp-ink);font-size:19px;line-height:1;cursor:pointer;box-shadow:var(--abp-shadow)}
.abp-nav button:hover{border-color:var(--abp-primary);color:var(--abp-primary)}

.abp-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--abp-line);border-radius:var(--abp-radius);overflow:hidden;height:100%;transition:box-shadow .25s ease,transform .25s ease;will-change:transform}
.abp-card:hover{box-shadow:var(--abp-shadow-h)}
.abp-card__media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1/1;background:#fbfbfc;padding:10px;text-decoration:none;overflow:hidden}
.abp-card__img{width:100%;height:100%;object-fit:contain;display:block;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.abp-card:hover .abp-card__img{transform:scale(1.07)}
.abp-card__noimg{font-size:11px;color:var(--abp-muted)}
.abp-card__off{position:absolute;top:9px;inset-inline-start:9px;background:var(--abp-grad);color:#fff;font-size:11px;font-weight:800;border-radius:9px;padding:3px 8px;box-shadow:0 4px 12px rgba(239,64,86,.35)}
.abp-card__body{display:flex;flex-direction:column;gap:6px;padding:11px 12px 12px;flex:1}
.abp-card__title{font-size:12.5px;line-height:1.85;color:#1f2937;text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:46px}
.abp-card__title:hover{color:var(--abp-primary)}
.abp-card__price{font-size:14px;font-weight:800;color:var(--abp-ink);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.abp-card__price del{color:#9ca3af;font-size:11.5px;font-weight:400}
.abp-card__price ins{text-decoration:none;color:var(--abp-primary)}
.abp-card__meta{font-size:11px}
.abp-card__stock{color:#9ca3af}
.abp-card__stock.is-in{color:#059669}
.abp-card__actions{margin-top:auto}
.abp-card__add{width:100%;min-height:40px;border:0;border-radius:12px;background:var(--abp-primary);color:#fff;font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:background .18s ease,transform .12s ease;position:relative;overflow:hidden}
.abp-card__add:hover{background:var(--abp-primary-d)}
.abp-card__add:active{transform:scale(.985)}
.abp-card__add.is-done{background:#059669}
.abp-card__add:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}

/* ---------- masonry showcase ---------- */
.abp-masonry{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;grid-auto-rows:minmax(0,auto)}
.abp-masonry .abp-card{grid-column:span 2}
.abp-masonry .abp-card--tile{grid-column:span 3;grid-row:span 1;flex-direction:row}
.abp-masonry .abp-card--tile .abp-card__media{width:52%;aspect-ratio:auto;min-height:100%}
.abp-masonry .abp-card--tile .abp-card__body{justify-content:center}
.abp-masonry .abp-card--tile .abp-card__title{font-size:15px;-webkit-line-clamp:3;min-height:0}
.abp-masonry .abp-card--tile .abp-card__price{font-size:17px}

/* ---------- story ---------- */
.abp-story{display:grid;grid-template-columns:1.05fr 1fr;gap:26px;align-items:center;background:#fff;border:1px solid var(--abp-line);border-radius:26px;padding:24px;overflow:hidden}
.abp-story__media{position:relative;border-radius:20px;min-height:300px;background:
  radial-gradient(circle at 25% 20%,#fecdd3,transparent 55%),
  radial-gradient(circle at 80% 75%,#bfdbfe,transparent 55%),
  linear-gradient(135deg,#0f172a,#1e293b);display:flex;align-items:flex-end;padding:18px}
.abp-story__badge{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;backdrop-filter:blur(8px);border-radius:12px;padding:6px 12px;font-size:11.5px}
.abp-story__text h2{font-size:clamp(19px,2vw,26px);margin:6px 0 10px;color:var(--abp-ink);font-weight:800}
.abp-story__text p{font-size:13px;line-height:2.1;color:#475569;margin:0 0 12px}
.abp-eyebrow{font-size:12px;font-weight:800;color:var(--abp-primary);margin:0}
.abp-story__list{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:6px}
.abp-story__list li{font-size:12.5px;color:#334155;padding-inline-start:20px;position:relative}
.abp-story__list li:before{content:"✓";position:absolute;inset-inline-start:0;color:#059669;font-weight:800}

/* ---------- marquee reviews ---------- */
.abp-marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.abp-marquee__track{display:flex;gap:14px;width:max-content;animation:abpMarquee 46s linear infinite}
.abp-marquee:hover .abp-marquee__track{animation-play-state:paused}
@keyframes abpMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.abp-rev{width:300px;background:#fff;border:1px solid var(--abp-line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px}
.abp-rev__stars{color:#f59e0b;font-size:13px;letter-spacing:2px}
.abp-rev p{margin:0;font-size:12.5px;line-height:2;color:#374151;flex:1}
.abp-rev footer{display:flex;justify-content:space-between;font-size:11.5px}
.abp-rev footer b{color:var(--abp-ink)}
.abp-rev footer a{color:var(--abp-primary);text-decoration:none}

/* ---------- buttons ---------- */
.abp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;border:1px solid rgba(255,255,255,.45);background:transparent;color:#fff;border-radius:12px;padding:10px 20px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none;font-family:inherit;transition:.2s}
.abp-btn.solid{background:var(--abp-primary);border-color:var(--abp-primary)}
.abp-btn.solid:hover{background:var(--abp-primary-d);box-shadow:0 10px 24px rgba(239,64,86,.35)}
.abp-story .abp-btn{border-color:var(--abp-line);color:var(--abp-ink);background:#fff}
.abp-story .abp-btn.solid{background:var(--abp-primary);color:#fff}

/* ---------- live search ---------- */
.abp-search{position:relative;flex:1;max-width:520px;margin:8px 0}
.abp-search input{width:100%;min-height:44px;border:1.5px solid var(--abp-line);background:#f7f8fa;border-radius:13px;padding:11px 40px 11px 14px;font-family:inherit;font-size:12.5px;outline:none;transition:.2s}
.abp-search input:focus{border-color:var(--abp-primary);background:#fff;box-shadow:0 0 0 4px rgba(239,64,86,.08)}
.abp-search:after{content:"🔍";position:absolute;inset-inline-end:13px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.55}
.abp-suggest{position:absolute;inset-inline:0;top:calc(100% + 6px);background:#fff;border:1px solid var(--abp-line);border-radius:14px;box-shadow:var(--abp-shadow-h);overflow:hidden;z-index:99975}
.abp-suggest[hidden]{display:none!important}
.abp-suggest a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid #f3f4f6;text-decoration:none;color:var(--abp-ink)}
.abp-suggest a:last-child{border-bottom:0}
.abp-suggest a:hover{background:#fff5f6}
.abp-suggest img{width:38px;height:38px;object-fit:contain;border-radius:8px;background:#f9fafb}
.abp-suggest b{display:block;font-size:12px;font-weight:600}
.abp-suggest small{font-size:11px;color:var(--abp-primary);font-weight:700}

/* ---------- ship bar ---------- */
.abp-ship{background:#fff;border:1px solid var(--abp-line);border-radius:14px;padding:14px 16px;margin-bottom:16px}
.abp-ship p{margin:0 0 8px;font-size:12.5px;font-weight:600;color:var(--abp-ink)}
.abp-ship__bar{height:8px;border-radius:6px;background:#f1f2f4;overflow:hidden}
.abp-ship__bar span{display:block;height:100%;background:var(--abp-grad)}

/* ---------- sticky header ---------- */
.abp-sticky{position:sticky!important;top:0;z-index:99970;background:rgba(255,255,255,.92);backdrop-filter:saturate(160%) blur(12px);box-shadow:0 3px 16px rgba(15,23,42,.07)}

/* ---------- footer ---------- */
.abp-footer-extra{max-width:1280px;margin:38px auto 0;padding:24px 16px;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:22px;border-top:1px solid var(--abp-line)}
.abp-fe-col h3{font-size:13.5px;margin:0 0 10px;color:var(--abp-ink)}
.abp-fe-col p{margin:0;font-size:12px;line-height:2;color:var(--abp-muted)}
.abp-fe-col a{display:block;font-size:12px;color:var(--abp-muted);text-decoration:none;padding:5px 0}
.abp-fe-col a:hover{color:var(--abp-primary)}
.abp-badge{display:inline-block;border:1px solid var(--abp-line);border-radius:10px;padding:7px 10px;font-size:11px;margin:0 4px 6px 0;background:#fff}

/* ---------- bottom nav (mobile) ---------- */
.abp-bottomnav{display:none;position:fixed;inset-inline:0;bottom:0;z-index:99983;background:rgba(255,255,255,.97);backdrop-filter:blur(10px);border-top:1px solid var(--abp-line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}
.abp-bottomnav a{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;color:#64748b;text-decoration:none;padding:6px 0;min-height:48px;justify-content:center}
.abp-bottomnav a span{font-size:19px;line-height:1}
.abp-bottomnav a.is-active{color:var(--abp-primary);font-weight:700}

/* ---------- admin FAB ---------- */
.abp-admin-fab{position:fixed;inset-inline-start:18px;bottom:18px;z-index:99982;display:flex;flex-direction:column;align-items:center;gap:8px}
.abp-admin-fab__items{display:flex;flex-direction:column;gap:8px;opacity:0;visibility:hidden;transform:translateY(10px);transition:.22s}
.abp-admin-fab.open .abp-admin-fab__items{opacity:1;visibility:visible;transform:none}
.abp-admin-fab__items a{display:flex;align-items:center;gap:6px;background:#111827;color:#fff;text-decoration:none;border-radius:12px;padding:8px 12px;font-size:11.5px;font-weight:700;box-shadow:0 8px 20px rgba(15,23,42,.25)}
.abp-admin-fab__items a:hover{background:var(--abp-primary)}
.abp-admin-fab__main{width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;background:#111827;color:#fff;font-size:17px;box-shadow:0 8px 20px rgba(15,23,42,.28);transition:.2s}
.abp-admin-fab.open .abp-admin-fab__main{background:var(--abp-primary);transform:rotate(45deg)}

[hidden]{display:none!important}

/* ---------- responsive ---------- */
@media(max-width:1100px){
  .abp-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .abp-masonry{grid-template-columns:repeat(4,minmax(0,1fr))}
  .abp-masonry .abp-card{grid-column:span 2}
  .abp-masonry .abp-card--tile{grid-column:span 4;flex-direction:row}
  .abp-story{grid-template-columns:1fr}
  .abp-footer-extra{grid-template-columns:1fr 1fr}
}
@media(max-width:760px){
  .abp-sec{margin:22px auto;padding:0 12px}
  .abp-trust{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .abp-trust__item{padding:12px 10px;grid-template-columns:auto 1fr}
  .abp-trust__item i{width:38px;height:38px;font-size:21px}
  .abp-flash{padding:14px;border-radius:18px;margin-top:20px}
  .abp-flip__unit{min-width:48px;padding:5px 8px}
  .abp-flip__unit b{font-size:14px}
  .abp-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .abp-masonry{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .abp-masonry .abp-card{grid-column:span 1}
  .abp-masonry .abp-card--tile{grid-column:span 2;flex-direction:column}
  .abp-masonry .abp-card--tile .abp-card__media{width:100%;aspect-ratio:1/1;min-height:0}
  .abp-story{padding:16px;border-radius:18px;gap:16px}
  .abp-story__media{min-height:190px}
  .abp-bottomnav{display:flex}
  .abp-nav{display:none}
  .abp-footer-extra{grid-template-columns:1fr;padding-bottom:90px}
  .abp-admin-fab{bottom:74px}
  .abp-card__title{font-size:12px;min-height:44px}
  .abp-card__add{min-height:44px}
  .abp-rev{width:260px}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important}
  [data-reveal]{opacity:1;transform:none}
}
