*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --orange:#E8500A;--orange-lt:#F97316;--orange-dk:#B03A06;
  --dark:#212529;--mid:#F1F3F5;--cream:#495057;
  --gray:#6C757D;--white:#FFFFFF;
  --silver-lt:#F8F9FA;--silver:#E2E6EA;--navy:#1A1F2E;
}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;background:var(--white);color:#212529;overflow-x:hidden}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--white)}::-webkit-scrollbar-thumb{background:var(--orange);border-radius:3px}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:120px 64px 80px;position:relative;overflow:hidden;gap:60px;background:linear-gradient(135deg,#FFFFFF 0%,#F8F9FA 50%,#E2E6EA 100%)}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 75% 45%,rgba(232,80,10,.13) 0%,transparent 70%),radial-gradient(ellipse 50% 60% at 15% 85%,rgba(176,58,6,.1) 0%,transparent 55%);pointer-events:none}
.hero-left{position:relative;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(232,80,10,.1);border:1px solid rgba(232,80,10,.35);border-radius:100px;padding:7px 18px;font-size:11px;color:var(--orange-lt);letter-spacing:2px;text-transform:uppercase;font-weight:600;margin-bottom:28px;animation:fadeUp .8s ease both}
.badge-dot{width:6px;height:6px;background:var(--orange);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}
.hero-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(62px,8vw,100px);line-height:.93;letter-spacing:2px;margin-bottom:24px;animation:fadeUp .8s .12s ease both;color:#1A1F2E}
.t-orange{color:var(--orange);display:block}
.t-outline{display:block;color:#B0B8C1;}
.hero-desc{font-size:15.5px;line-height:1.75;color:#495057;max-width:450px;margin-bottom:40px;font-weight:300;animation:fadeUp .8s .24s ease both}
.hero-desc strong{color:#212529;font-weight:600}
.hero-actions{display:flex;gap:16px;align-items:center;animation:fadeUp .8s .36s ease both}
.btn-primary{background:var(--orange);color:#212529;padding:14px 34px;border-radius:4px;font-weight:700;font-size:14px;text-decoration:none;transition:all .25s;display:inline-block}
.btn-primary:hover{background:var(--orange-lt);transform:translateY(-2px);box-shadow:0 10px 32px rgba(232,80,10,.4)}
.btn-ghost{color:#212529;text-decoration:none;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;transition:gap .2s,color .2s}
.btn-ghost:hover{gap:14px;color:var(--orange-lt)}
.hero-stats{display:flex;gap:44px;margin-top:52px;padding-top:34px;border-top:1px solid rgba(232,80,10,.15);animation:fadeUp .8s .5s ease both}
.stat-num{font-family:'Bebas Neue',sans-serif;font-size:44px;line-height:1;color:#212529}
.stat-num span{color:var(--orange)}
.stat-label{font-size:11.5px;color:#495057;margin-top:5px}
.hero-right{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;animation:fadeIn 1.2s .3s ease both}
.hero-product-wrap{position:relative;width:420px;height:460px;display:flex;align-items:center;justify-content:center}
.hero-glow{position:absolute;width:320px;height:320px;background:radial-gradient(circle,rgba(232,80,10,.25) 0%,transparent 70%);border-radius:50%;filter:blur(30px)}
.orbit{position:absolute;border-radius:50%;border:1px solid rgba(232,80,10,.15)}
.orbit-1{inset:0;animation:spin 22s linear infinite}
.orbit-1::after{content:'';position:absolute;top:-5px;left:50%;transform:translateX(-50%);width:10px;height:10px;background:var(--orange);border-radius:50%;box-shadow:0 0 14px var(--orange)}
.orbit-2{inset:40px;border-style:dashed;border-color:rgba(232,80,10,.08);animation:spin 14s linear infinite reverse}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-product-img{width:340px;height:380px;object-fit:contain;position:relative;z-index:2;filter:drop-shadow(0 20px 50px rgba(232,80,10,.3)) drop-shadow(0 4px 20px rgba(0,0,0,.6));animation:float 3.5s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.float-card{position:absolute;background:#FFFFFF;backdrop-filter:blur(14px);border:1px solid #E2E6EA;border-radius:12px;padding:11px 16px;z-index:3;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.float-card-1{top:40px;right:-10px}.float-card-2{bottom:70px;left:-20px}
.fc-label{color:#495057;font-size:10px;margin-bottom:2px}
.fc-val{font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:1.5px;color:var(--orange-lt)}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0;transform:scale(.93)}to{opacity:1;transform:scale(1)}}

/* MARQUEE */
.marquee-strip{background:var(--orange);padding:13px 0;overflow:hidden;white-space:nowrap}
.marquee-track{display:inline-flex;animation:mq 28s linear infinite}
.mq-item{font-family:'Bebas Neue',sans-serif;font-size:14px;letter-spacing:3px;color:#212529;padding:0 36px}
.mq-dot{width:5px;height:5px;background:rgba(255,255,255,.5);border-radius:50%;display:inline-block;vertical-align:middle}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* SECTIONS */
section{padding:96px 64px}
.sec-label{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--orange-lt);font-weight:600;margin-bottom:10px}
.sec-title{font-family:'DM Serif Display',serif;font-size:clamp(30px,3.8vw,50px);line-height:1.15;margin-bottom:18px}
.sec-title em{color:var(--orange-lt);font-style:italic}
.sec-desc{color:#495057;font-size:15px;line-height:1.75;max-width:520px}

/* PRODUCTS */
.products-section{background:#F8F9FA}
.prod-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:52px}
.view-all{color:var(--orange-lt);text-decoration:none;font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;transition:gap .2s}
.view-all:hover{gap:12px}
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-items:start}
.prod-card{background:#FFFFFF;border:1px solid #E2E6EA;border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s ease;text-decoration:none;color:inherit;display:flex;flex-direction:column;position:relative;box-shadow:0 2px 12px rgba(0,0,0,.06);width:100%}
.prod-card:hover{border-color:rgba(232,80,10,.4);transform:translateY(-6px);box-shadow:0 20px 48px rgba(0,0,0,.15)}
.prod-img-wrap{background:#F8F9FA;position:relative;overflow:hidden;height:200px;width:100%;display:flex;align-items:center;justify-content:center;padding:16px;flex-shrink:0;border-bottom:1px solid #E2E6EA}
.prod-img{width:100%;height:100%;object-fit:contain;transition:transform .4s}
.prod-card:hover .prod-img{transform:scale(1.06)}
.prod-badge{position:absolute;top:12px;left:12px;background:var(--orange);color:#FFFFFF;font-size:10px;letter-spacing:1px;font-weight:700;padding:4px 10px;border-radius:4px;text-transform:uppercase;z-index:2}
.prod-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:6px;background:#FFFFFF}
.prod-cat{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--orange-lt);font-weight:600}
.prod-name{font-family:'DM Serif Display',serif;font-size:18px;line-height:1.3;color:#1A1F2E;margin:0}
.prod-desc-text{font-size:13px;color:#6C757D;line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.spec-tag{background:#F1F3F5;border:1px solid #CED4DA;border-radius:4px;padding:3px 8px;font-size:10px;color:#495057;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prod-specs{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap;max-height:58px;overflow:hidden}
.prod-cta-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;color:var(--orange-lt);font-size:13px;font-weight:600;transition:gap .2s}
.prod-card:hover .prod-cta-link{gap:12px}
.prod-empty{grid-column:1/-1;text-align:center;padding:60px 20px;color:#495057;font-size:15px;border:2px dashed rgba(232,80,10,.2);border-radius:20px}
.prod-empty span{font-size:48px;display:block;margin-bottom:16px;opacity:.5}

/* PILAR */
.pilar-section{background:var(--white)}
.pilar-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:52px;border:1px solid #E2E6EA;border-radius:20px;overflow:hidden}
.pilar-card{background:#FFFFFF;padding:38px 26px;transition:background .3s}
.pilar-card:hover{background:rgba(232,80,10,.07)}
.pilar-num{font-family:'Bebas Neue',sans-serif;font-size:54px;line-height:1;color:rgba(232,80,10,.18);margin-bottom:14px;transition:color .3s}
.pilar-card:hover .pilar-num{color:var(--orange)}
.pilar-card h4{font-size:15.5px;font-weight:700;margin-bottom:9px;color:#FFFFFF}
.pilar-card p{font-size:13px;color:#495057;line-height:1.65}

/* CTA */
.cta-section{background:linear-gradient(135deg,#1A1F2E 0%,#2d3748 100%);padding:80px 64px}
.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:40px}
.cta-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(36px,4vw,62px);line-height:1;letter-spacing:2px;color:#FFFFFF}
.cta-title span{color:var(--orange-lt)}
.cta-sub{color:rgba(253,244,236,.6);font-size:15px;margin-top:8px}
.cta-btns{display:flex;gap:14px;flex-shrink:0}
.btn-secondary{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);color:#212529;padding:14px 32px;border-radius:4px;font-weight:600;font-size:14px;text-decoration:none;transition:all .25s;display:inline-block}
.btn-secondary:hover{background:rgba(255,255,255,.15)}

/* ===== ADMIN PANEL ===== */
.admin-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:999;display:none;align-items:center;justify-content:center;backdrop-filter:blur(6px)}
.admin-overlay.open{display:flex}
.admin-panel{background:#FFFFFF;border:1px solid #E2E6EA;border-radius:20px;width:90%;max-width:680px;max-height:90vh;overflow-y:auto;box-shadow:0 40px 80px rgba(0,0,0,.15)}
.admin-header{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid #E2E6EA}
.admin-header h2{font-family:'Bebas Neue',sans-serif;font-size:22px;letter-spacing:3px;color:var(--orange)}
.admin-close{width:36px;height:36px;background:rgba(255,255,255,.06);border:none;border-radius:8px;color:#212529;font-size:18px;cursor:pointer;transition:background .2s;display:flex;align-items:center;justify-content:center}
.admin-close:hover{background:rgba(232,80,10,.3)}
.admin-body{padding:28px}
.admin-tabs{display:flex;gap:8px;margin-bottom:24px}
.admin-tab{padding:9px 20px;border-radius:6px;border:1px solid rgba(232,80,10,.2);background:transparent;color:#495057;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.admin-tab.active{background:var(--orange);color:#212529;border-color:var(--orange)}
.admin-tab-content{display:none}
.admin-tab-content.active{display:block}

/* ADD PRODUCT FORM */
.form-group{margin-bottom:18px}
.form-group label{display:block;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:#495057;margin-bottom:8px}
.form-group input,.form-group textarea,.form-group select{width:100%;background:rgba(255,255,255,.05);border:1px solid rgba(232,80,10,.2);border-radius:8px;padding:11px 14px;color:#212529;font-size:14px;font-family:'DM Sans',sans-serif;transition:border-color .2s;outline:none}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:rgba(232,80,10,.6)}
.form-group textarea{resize:vertical;min-height:80px}
.form-group select option{background:#1a0f06;color:#212529}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.img-upload-area{border:2px dashed #CED4DA;border-radius:12px;padding:28px;text-align:center;cursor:pointer;transition:all .2s;position:relative;background:#F8F9FA}
.img-upload-area:hover{border-color:rgba(232,80,10,.6);background:rgba(232,80,10,.06)}
.img-upload-area input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.img-preview{width:100%;height:160px;object-fit:contain;border-radius:8px;margin-top:12px;display:none}
.upload-icon{font-size:36px;margin-bottom:10px}
.upload-text{font-size:13px;color:#495057}
.upload-text strong{color:var(--orange-lt)}
.specs-input{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.spec-chip{display:inline-flex;align-items:center;gap:6px;background:rgba(232,80,10,.1);border:1px solid rgba(232,80,10,.3);border-radius:4px;padding:4px 10px;font-size:12px;color:var(--orange-lt)}
.spec-chip button{background:none;border:none;color:var(--orange-lt);cursor:pointer;font-size:14px;line-height:1;padding:0}
.spec-add{display:flex;gap:8px;margin-bottom:8px}
.spec-add input{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(232,80,10,.2);border-radius:6px;padding:8px 12px;color:#212529;font-size:13px;font-family:'DM Sans',sans-serif;outline:none}
.spec-add button{background:rgba(232,80,10,.2);border:1px solid rgba(232,80,10,.3);border-radius:6px;padding:8px 14px;color:var(--orange-lt);font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;font-family:'DM Sans',sans-serif}
.spec-add button:hover{background:rgba(232,80,10,.4)}
.btn-save{width:100%;background:var(--orange);color:#212529;border:none;padding:14px;border-radius:8px;font-family:'Bebas Neue',sans-serif;font-size:18px;letter-spacing:2px;cursor:pointer;transition:all .2s;margin-top:8px}
.btn-save:hover{background:var(--orange-lt);box-shadow:0 8px 24px rgba(232,80,10,.4)}
.save-success{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);border-radius:8px;padding:12px 16px;color:#4ade80;font-size:13px;font-weight:600;text-align:center;margin-top:12px;display:none}

/* PRODUCT LIST IN ADMIN */
.admin-prod-list{display:flex;flex-direction:column;gap:12px}
.admin-prod-item{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.04);border:1px solid #E2E6EA;border-radius:12px;padding:14px 16px;transition:background .2s}
.admin-prod-item:hover{background:rgba(232,80,10,.05)}
.admin-prod-thumb{width:56px;height:56px;object-fit:contain;border-radius:8px;background:#fff;padding:4px;flex-shrink:0}
.admin-prod-info{flex:1}
.admin-prod-name{font-weight:600;font-size:14px;margin-bottom:3px;color:#1A1F2E}
.admin-prod-cat{font-size:11px;color:var(--orange-lt);letter-spacing:1px;text-transform:uppercase}
.admin-prod-actions{display:flex;gap:8px}
.btn-edit{background:rgba(232,80,10,.15);border:1px solid rgba(232,80,10,.25);border-radius:6px;padding:7px 14px;color:var(--orange-lt);font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.btn-edit:hover{background:rgba(232,80,10,.3)}
.btn-delete{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.25);border-radius:6px;padding:7px 14px;color:#f87171;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.btn-delete:hover{background:rgba(239,68,68,.25)}
.admin-empty{text-align:center;padding:40px 20px;color:#495057;font-size:14px}
.admin-empty span{font-size:40px;display:block;margin-bottom:12px;opacity:.4}

/* REVEAL */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE */
@media(max-width:1024px){
  nav{padding:10px 16px}
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:rgba(255,255,255,0.98);padding:16px 24px;border-bottom:1px solid #E2E6EA;box-shadow:0 8px 24px rgba(0,0,0,.08);gap:4px;z-index:199}
  .hamburger{display:flex}
  .nav-admin-btn{display:none}
  .nav-cta{padding:8px 14px;font-size:12px}
  section{padding:70px 28px}
  .hero{padding:100px 28px 64px;grid-template-columns:1fr}
  .hero-right{display:none}
  .prod-grid{grid-template-columns:1fr 1fr}
  .pilar-grid{grid-template-columns:repeat(2,1fr)}
  .cta-inner{flex-direction:column;text-align:center}
  .cta-btns{justify-content:center}
  .foot-top{grid-template-columns:1fr 1fr;gap:36px}
  .foot-bottom{flex-direction:column;gap:10px;text-align:center}
  .form-row{grid-template-columns:1fr}
}
@media(max-width:600px){
  .prod-grid{grid-template-columns:1fr}
  .pilar-grid{grid-template-columns:1fr}
  .foot-top{grid-template-columns:1fr}
  .hero-stats{flex-wrap:wrap;gap:24px}
  .hero-actions{flex-direction:column;align-items:flex-start}
}

/* SHOP BUTTONS */
.prod-shop-btns{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;position:relative;z-index:10}
.shop-btn{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;text-decoration:none;transition:all .2s;flex-shrink:0;position:relative;z-index:10;-webkit-tap-highlight-color:transparent}
.shop-btn svg{width:18px;height:18px;pointer-events:none}
.shop-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.2)}
.shop-btn-wa{background:#25D366;color:#fff}
.shop-btn-tokped{background:#42B549;color:#fff}
.shop-btn-shopee{background:#EE4D2D;color:#fff}
.shop-btn-tiktok{background:#010101;color:#fff}
@media(max-width:768px){
  .shop-btn{width:44px;height:44px}
}
.prod-img-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#F8F9FA}
.prod-img-placeholder svg{width:56px;height:56px;opacity:.2}
.prod-img-placeholder span{font-size:10px;color:#CED4DA;letter-spacing:.5px}



.card-img-wrap {
    display: block;
    position: relative;
    background: #f8f9fa;
    overflow: hidden;
    border-radius: 20px 20px 0 0;
    aspect-ratio: 1;
    text-decoration: none;
}
.card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 20px;
    transition: transform .35s ease;
}
.card-img-wrap:hover img { transform: scale(1.05); }
 
.card-name-link { text-decoration: none; color: inherit; }
.card-name-link:hover .card-name { color: #E8500A; }
 
.card-shop-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 6px;
    margin-top: 12px;
}
 
.shop-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 8px 6px;
    border-radius: 8px;
    font-size: .75rem;
    font-weight: 600;
    text-decoration: none;
    transition: all .2s ease;
    border: 1.5px solid transparent;
    white-space: nowrap;
}
.shop-btn:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.shop-btn img { flex-shrink: 0; }
 
.btn-wa      { background: #25D366; color: #fff; }
.btn-wa:hover { background: #1da854; color: #fff; }
.btn-tokped  { background: #fff; color: #42b549; border-color: #42b549; }
.btn-tokped:hover { background: #42b549; color: #fff; }
.btn-shopee  { background: #fff; color: #ee4d2d; border-color: #ee4d2d; }
.btn-shopee:hover { background: #ee4d2d; color: #fff; }
.btn-tiktok  { background: #fff; color: #010101; border-color: #ccc; }
.btn-tiktok:hover { background: #010101; color: #fff; }
.btn-disabled-store { opacity: .35; pointer-events: none; }
 
.card-detail-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 10px;
    padding: 10px;
    border: 1.5px solid #E2E6EA;
    border-radius: 10px;
    font-size: .82rem;
    font-weight: 600;
    color: #495057;
    text-decoration: none;
    transition: all .2s ease;
    background: #f8f9fa;
}
.card-detail-btn:hover {
    border-color: #E8500A;
    color: #E8500A;
    background: rgba(232,80,10,.04);
}
 
/* ===== GLOBAL FIX — Cegah horizontal scroll ===== */
html, body {
    overflow-x: hidden;
    max-width: 100%;
}
* {
    box-sizing: border-box;
}
 
/* ===== PRODUCT SECTION ===== */
.products-section {
    padding: 96px 64px;
}
.products-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: 100%;
}
 
/* ===== PRODUCT CARD ===== */
.product-card {
    background: #fff;
    border-radius: 20px;
    border: 1px solid #E2E6EA;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
    overflow: hidden;          /* ← penting: cegah konten meluber */
    display: flex;
    flex-direction: column;
    transition: box-shadow .25s ease, transform .25s ease;
    min-width: 0;              /* ← penting untuk grid child */
    width: 100%;
}
.product-card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,.12);
    transform: translateY(-4px);
}
 
/* ===== CARD IMAGE ===== */
.card-img-wrap {
    display: block;
    position: relative;
    background: #f8f9fa;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    width: 100%;
    text-decoration: none;
}
.card-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    padding: 20px;
    transition: transform .35s ease;
    display: block;
}
.card-img-wrap:hover img {
    transform: scale(1.05);
}
 
/* ===== BADGE — FIX posisi ===== */
.card-badge {
    position: absolute;
    top: 12px;
    left: 12px;        /* ← pastikan left, bukan nilai negatif */
    z-index: 2;
    display: inline-block;
    padding: 4px 12px;
    border-radius: 30px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .5px;
    text-transform: uppercase;
    background: #E8500A;
    color: #fff;
    white-space: nowrap;
    max-width: calc(100% - 24px);  /* ← jangan overflow card */
    overflow: hidden;
    text-overflow: ellipsis;
}
 
/* ===== CARD BODY ===== */
.card-body {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 1;
    min-width: 0;      /* ← penting */
    overflow: hidden;
}
 
.card-cat {
    font-size: .72rem;
    font-weight: 600;
    color: #E8500A;
    text-transform: uppercase;
    letter-spacing: .5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
 
.card-name-link {
    text-decoration: none;
    color: inherit;
}
.card-name-link:hover .card-name {
    color: #E8500A;
}
.card-name {
    font-family: 'Bebas Neue', sans-serif;
    font-size: 1.2rem;
    line-height: 1.15;
    color: #212529;
    letter-spacing: .5px;
    /* Batasi 2 baris */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}
 
.card-desc {
    font-size: .8rem;
    color: #495057;
    line-height: 1.55;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0;
}
 
/* ===== SPEC TAGS ===== */
.card-specs {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 2px;
}
.spec-tag {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: .68rem;
    font-weight: 600;
    background: #F8F9FA;
    color: #495057;
    border: 1px solid #E2E6EA;
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.spec-more {
    background: #fff3ec;
    color: #E8500A;
    border-color: #fbd5c5;
}
 
/* ===== SHOP BUTTONS ROW ===== */
.card-shop-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 5px;
    margin-top: 10px;
}
 
.shop-btn {
    display: flex;
    flex-direction: column;   /* ← icon di atas, teks di bawah */
    align-items: center;
    justify-content: center;
    gap: 3px;
    padding: 7px 4px;
    border-radius: 8px;
    font-size: .65rem;
    font-weight: 700;
    text-decoration: none;
    transition: all .2s ease;
    border: 1.5px solid transparent;
    white-space: nowrap;
    overflow: hidden;
    min-width: 0;
    text-align: center;
    line-height: 1;
}
.shop-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0,0,0,.12);
}
.shop-btn svg,
.shop-btn img {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    object-fit: contain;
}
.shop-btn span {
    display: block;
    font-size: .62rem;
}
 
.btn-wa {
    background: #25D366;
    color: #fff;
}
.btn-wa:hover { background: #1da854; color: #fff; }
 
.btn-tokped {
    background: #fff;
    color: #42b549;
    border-color: #42b549;
}
.btn-tokped:hover { background: #42b549; color: #fff; }
 
.btn-shopee {
    background: #fff;
    color: #ee4d2d;
    border-color: #ee4d2d;
}
.btn-shopee:hover { background: #ee4d2d; color: #fff; }
 
.btn-tiktok {
    background: #fff;
    color: #010101;
    border-color: #ccc;
}
.btn-tiktok:hover { background: #010101; color: #fff; }
 
/* Tombol belum ada link — redup tapi tetap tampil */
.btn-disabled-store {
    opacity: .38;
    pointer-events: none;
    cursor: default;
}
 
/* ===== DETAIL BUTTON ===== */
.card-detail-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 8px;
    padding: 10px;
    border: 1.5px solid #E2E6EA;
    border-radius: 10px;
    font-size: .8rem;
    font-weight: 600;
    color: #495057;
    text-decoration: none;
    transition: all .2s ease;
    background: #f8f9fa;
    width: 100%;
}
.card-detail-btn:hover {
    border-color: #E8500A;
    color: #E8500A;
    background: rgba(232,80,10,.04);
}
.card-detail-btn svg {
    flex-shrink: 0;
    transition: transform .2s ease;
}
.card-detail-btn:hover svg {
    transform: translateX(3px);
}
 
/* ===== IMG PLACEHOLDER ===== */
.img-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: #adb5bd;
    font-size: .75rem;
    min-height: 180px;
}
.img-placeholder svg {
    opacity: .35;
}
 
/* ===================================================
   RESPONSIVE
   =================================================== */
 
/* Tablet */
@media (max-width: 1024px) {
    .products-section {
        padding: 70px 28px;
    }
    .products-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
    }
}
 
/* Mobile */
@media (max-width: 640px) {
    .products-section {
        padding: 56px 16px;
    }
    .products-grid {
        grid-template-columns: 1fr 1fr;  /* 2 kolom di mobile */
        gap: 12px;
    }
 
    .product-card {
        border-radius: 14px;
    }
 
    .card-body {
        padding: 11px;
        gap: 5px;
    }
 
    .card-name {
        font-size: 1rem;
    }
 
    .card-desc {
        font-size: .72rem;
        -webkit-line-clamp: 2;
    }
 
    /* Tombol shop — tetap 4 kolom tapi lebih compact */
    .card-shop-row {
        grid-template-columns: repeat(4, 1fr);
        gap: 4px;
    }
    .shop-btn {
        padding: 6px 2px;
        border-radius: 6px;
    }
    .shop-btn svg,
    .shop-btn img {
        width: 15px;
        height: 15px;
    }
    .shop-btn span {
        font-size: .55rem;
    }
 
    .card-detail-btn {
        font-size: .72rem;
        padding: 8px;
    }
 
    .spec-tag {
        font-size: .62rem;
        padding: 2px 6px;
    }
}
 
/* Very small screens */
@media (max-width: 380px) {
    .products-grid {
        grid-template-columns: 1fr;   /* 1 kolom di hp kecil */
    }
}


