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

/* PAGE HERO */
.page-hero{background:linear-gradient(135deg,var(--navy) 0%,#2d3748 100%);padding:120px 64px 60px;text-align:center;position:relative;overflow:hidden}
.page-hero::before{content:'';position:absolute;top:-100px;right:-100px;width:400px;height:400px;background:radial-gradient(circle,rgba(232,80,10,.15) 0%,transparent 65%);pointer-events:none}
.breadcrumb{display:flex;align-items:center;justify-content:center;gap:8px;font-size:13px;color:rgba(255,255,255,.5);margin-bottom:16px;position:relative;z-index:2}
.breadcrumb a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s}
.breadcrumb a:hover{color:var(--orange-lt)}
.breadcrumb span{color:var(--orange-lt)}
.page-hero h1{font-family:'Bebas Neue',sans-serif;font-size:clamp(42px,6vw,72px);letter-spacing:3px;color:var(--white);margin-bottom:16px;position:relative;z-index:2}
.page-hero h1 span{color:var(--orange)}
.page-hero p{font-size:16px;color:rgba(255,255,255,.6);max-width:560px;margin:0 auto;line-height:1.7;position:relative;z-index:2}

/* MAIN FILTER BAR */
.main-filter-bar{background:var(--white);border-bottom:2px solid var(--silver);padding:0 64px;display:flex;gap:0;overflow-x:auto;position:sticky;top:72px;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.main-filter-btn{padding:18px 28px;font-size:14px;font-weight:600;color:var(--gray);border:none;background:transparent;cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;transition:all .2s;font-family:'DM Sans',sans-serif;margin-bottom:-2px}
.main-filter-btn:hover{color:var(--orange)}
.main-filter-btn.active{color:var(--orange);border-bottom-color:var(--orange)}

/* SUB FILTER BAR */
.sub-filter-bar{background:var(--silver-lt);border-bottom:1px solid var(--silver);padding:12px 64px;display:flex;gap:8px;overflow-x:auto;flex-wrap:wrap;min-height:56px;align-items:center}
.sub-filter-btn{padding:7px 18px;font-size:12.5px;font-weight:600;color:var(--gray);border:1px solid var(--silver-md);background:var(--white);cursor:pointer;white-space:nowrap;border-radius:100px;transition:all .2s;font-family:'DM Sans',sans-serif}
.sub-filter-btn:hover{border-color:var(--orange);color:var(--orange)}
.sub-filter-btn.active{background:var(--orange);color:var(--white);border-color:var(--orange)}
.sub-filter-bar.hidden{display:none}

/* MAIN CONTENT */
.main-content{max-width:1400px;margin:0 auto;padding:50px 64px}

/* CATEGORY HEADER */
.cat-header{display:flex;align-items:center;gap:20px;margin-bottom:36px;padding-bottom:20px;border-bottom:2px solid var(--silver)}
.cat-icon{width:56px;height:56px;background:rgba(232,80,10,.1);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:26px;border:1px solid rgba(232,80,10,.2);flex-shrink:0}
.cat-title-wrap .cat-label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--orange);font-weight:700;margin-bottom:4px}
.cat-title-wrap h2{font-family:'DM Serif Display',serif;font-size:clamp(22px,3vw,32px);color:var(--navy)}
.cat-title-wrap p{font-size:14px;color:var(--gray);margin-top:6px;line-height:1.6}

/* PRODUCT GRID */
.prod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.prod-card{background:var(--white);border:1px solid var(--silver);border-radius:16px;overflow:hidden;cursor:pointer;transition:all .3s;text-decoration:none;color:inherit;display:flex;flex-direction:column;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.prod-card:hover{border-color:var(--orange);transform:translateY(-6px);box-shadow:0 20px 48px rgba(0,0,0,.12)}
.prod-img-wrap{height:240px;background:var(--silver-lt);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}
.prod-img-wrap img{width:100%;height:100%;object-fit:contain;transition:transform .4s}
.prod-card:hover .prod-img-wrap img{transform:scale(1.06)}
.prod-img-placeholder{font-size:72px;opacity:.2}
.prod-badge{position:absolute;top:12px;left:12px;background:var(--orange);color:var(--white);font-size:10px;letter-spacing:1.5px;font-weight:700;padding:4px 10px;border-radius:4px;text-transform:uppercase}
.prod-body{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column}
.prod-subcat{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--orange);margin-bottom:6px;font-weight:700}
.prod-name{font-family:'DM Serif Display',serif;font-size:19px;color:var(--navy);margin-bottom:8px;line-height:1.3}
.prod-desc{font-size:13px;color:var(--gray);line-height:1.6;flex:1}
.prod-cta{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--orange);font-size:13px;font-weight:600;transition:gap .2s}
.prod-card:hover .prod-cta{gap:12px}

/* LOADING & EMPTY */
.loading{text-align:center;padding:80px 20px;color:var(--gray)}
.loading-spinner{width:40px;height:40px;border:3px solid var(--silver);border-top-color:var(--orange);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}
@keyframes spin{to{transform:rotate(360deg)}}
.empty-state{text-align:center;padding:80px 20px;color:var(--gray);grid-column:1/-1}
.empty-state span{font-size:64px;display:block;margin-bottom:16px;opacity:.3}

/* CTA */
.cta-section{background:linear-gradient(135deg,var(--navy),#2d3748);border-radius:24px;padding:60px;text-align:center;margin-top:20px}
.cta-section h2{font-family:'Bebas Neue',sans-serif;font-size:clamp(32px,4vw,52px);letter-spacing:2px;color:var(--white);margin-bottom:12px}
.cta-section h2 span{color:var(--orange)}
.cta-section p{color:rgba(255,255,255,.6);font-size:15px;margin-bottom:28px}
.cta-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.btn-primary{background:var(--orange);color:var(--white);padding:14px 32px;border-radius:6px;font-weight:700;font-size:14px;text-decoration:none;transition:all .25s;display:inline-block}
.btn-primary:hover{background:var(--orange-dk);transform:translateY(-2px)}
.btn-secondary{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);color:var(--white);padding:14px 32px;border-radius:6px;font-weight:600;font-size:14px;text-decoration:none;transition:all .25s;display:inline-block}

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

/* RESPONSIVE */
@media(max-width:1024px){
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:70px;left:0;right:0;background:#fff;padding:20px 24px;border-bottom:2px solid var(--orange);box-shadow:0 8px 24px rgba(0,0,0,.12);gap:16px;z-index:199}
  .page-hero{padding:100px 24px 50px}
  .main-filter-bar{padding:0 24px}
  .sub-filter-bar{padding:12px 24px}
  .main-content{padding:40px 24px}
  .prod-grid{grid-template-columns:repeat(2,1fr)}
  .cta-section{padding:40px 24px}
}
@media(max-width:600px){
  .prod-grid{grid-template-columns:1fr}
}

/* ===== 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 */
    }
}
