/* ============================================================
   TOKO ALUMNI — shop.css  (Mobile-First Rewrite)
   ============================================================ */

/* ── VARIABLES ─────────────────────────────────────────────── */
:root {
    --bg:           #0d1a12;
    --bg-2:         #111f17;
    --bg-card:      #162212;
    --bg-card-2:    #1c2e1c;
    --hijau:        #2e9958;
    --hijau-terang: #3ab86a;
    --hijau-gelap:  #1a6b3c;
    --hijau-muda:   rgba(46,153,88,0.12);
    --emas:         #c8a020;
    --emas-terang:  #f0c83a;
    --emas-muda:    rgba(200,160,32,0.12);
    --krem:         #f5f0e8;
    --border:       rgba(200,160,32,0.15);
    --border-hijau: rgba(46,153,88,0.2);
    --text:         #dde8d8;
    --text-muted:   #7a9e80;
    --white:        #ffffff;
    --font-serif:   'Playfair Display', Georgia, serif;
    --font-body:    'Tajawal', sans-serif;
    --font-arabic:  'Amiri', serif;
    --radius:       16px;
    --radius-sm:    8px;
    --transition:   0.3s cubic-bezier(0.4,0,0.2,1);
    --shadow:       0 8px 32px rgba(0,0,0,0.4);

    /* Safe area (iPhone notch / home bar) */
    --safe-top:    env(safe-area-inset-top, 0px);
    --safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* ── RESET ──────────────────────────────────────────────────── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; -webkit-text-size-adjust:100%; }
body {
    font-family: var(--font-body);
    background: var(--bg);
    color: var(--text);
    overflow-x: hidden;
    line-height: 1.7;
    /* extra bottom padding agar konten tak tertutup floating cart */
    padding-bottom: calc(80px + var(--safe-bottom));
}
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { cursor:pointer; font-family:var(--font-body); }
/* Cegah auto-zoom iOS pada input */
input, select, textarea { font-size:16px !important; font-family:var(--font-body); }
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-track { background:var(--bg); }
::-webkit-scrollbar-thumb { background:var(--emas); border-radius:2px; }

/* ── HEADER ─────────────────────────────────────────────────── */
.shop-header {
    background: rgba(13,26,18,0.97);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--border);
    position: sticky; top:0; z-index:500;
    padding: 0 16px;
    padding-top: var(--safe-top);
}
.shop-header-inner {
    max-width: 1280px; margin:0 auto;
    display: flex; align-items:center; justify-content:space-between;
    height: 56px; gap:8px;
}
.shop-brand {
    display: flex; align-items:center; gap:8px;
    font-family: var(--font-serif);
    font-size: 16px; font-weight:700; color:var(--white);
    white-space: nowrap;
}
.shop-brand i  { color:var(--emas); font-size:18px; }
.shop-brand span { color:var(--emas); }
.shop-nav-back {
    display: flex; align-items:center; gap:6px;
    font-size: 13px; color:var(--text-muted);
    padding: 8px 12px; border-radius:50px;
    border: 1px solid var(--border);
    transition: var(--transition);
    min-height: 44px; min-width:44px;
    justify-content: center;
    flex-shrink: 0;
}
.shop-nav-back:hover { color:var(--emas); border-color:var(--emas); }
.cart-btn {
    position: relative;
    display: flex; align-items:center; gap:6px;
    background: linear-gradient(135deg, var(--hijau-gelap), var(--hijau));
    color:#fff; font-size:14px; font-weight:500;
    padding: 8px 16px; border-radius:50px;
    border: none;
    transition: var(--transition);
    box-shadow: 0 4px 16px rgba(46,153,88,0.3);
    min-height: 44px; flex-shrink:0;
    white-space: nowrap;
}
.cart-btn:hover { background:var(--hijau-terang); transform:translateY(-1px); }
.cart-badge {
    position: absolute; top:-6px; right:-6px;
    background: var(--emas); color:#1a1000;
    font-size:11px; font-weight:700;
    width:20px; height:20px; border-radius:50%;
    display: flex; align-items:center; justify-content:center;
    border: 2px solid var(--bg);
    transition: transform 0.2s;
}
.cart-badge.bump { transform:scale(1.4); }

/* ── HERO ───────────────────────────────────────────────────── */
.shop-hero {
    background:
        radial-gradient(ellipse 60% 80% at 0% 50%, rgba(26,107,60,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 40% 60% at 100% 20%, rgba(200,160,32,0.07) 0%, transparent 50%),
        var(--bg-2);
    border-bottom: 1px solid var(--border);
    padding: 28px 16px 24px;
    position: relative; overflow:hidden;
}
.shop-hero::before {
    content:''; position:absolute; inset:0;
    background-image:
        repeating-linear-gradient(45deg,rgba(200,160,32,0.025) 0px,rgba(200,160,32,0.025) 1px,transparent 1px,transparent 36px),
        repeating-linear-gradient(-45deg,rgba(200,160,32,0.025) 0px,rgba(200,160,32,0.025) 1px,transparent 1px,transparent 36px);
    pointer-events:none;
}
.shop-hero-inner {
    max-width:1280px; margin:0 auto;
    position:relative; z-index:1;
    display:flex; align-items:center; justify-content:space-between;
    gap:20px; flex-wrap:wrap;
}
.shop-hero-text .badge {
    display:inline-flex; align-items:center; gap:6px;
    font-size:11px; font-weight:500; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--emas); background:var(--emas-muda);
    border:1px solid rgba(200,160,32,0.3);
    padding:4px 12px; border-radius:50px; margin-bottom:10px;
}
.shop-hero-text h1 {
    font-family: var(--font-serif);
    font-size:clamp(22px,5vw,38px); font-weight:700; color:var(--white);
    line-height:1.2; margin-bottom:8px;
}
.shop-hero-text h1 em { color:var(--emas); font-style:italic; }
.shop-hero-text p { font-size:14px; color:var(--text-muted); max-width:460px; }
.hero-stats { display:flex; gap:10px; flex-wrap:wrap; }
.hstat {
    text-align:center;
    background:var(--bg-card);
    border:1px solid var(--border);
    border-radius:var(--radius-sm);
    padding:10px 16px;
}
.hstat strong { display:block; font-family:var(--font-serif); font-size:22px; font-weight:700; color:var(--emas); }
.hstat span   { font-size:11px; color:var(--text-muted); }

/* ── FILTER BAR (sticky, mobile-first) ─────────────────────── */
.filter-bar {
    position: sticky; top:56px; z-index:400;
    background: rgba(13,26,18,0.97);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--border);
}
.filter-bar-inner {
    max-width:1280px; margin:0 auto;
    display:flex; align-items:center; gap:8px;
    padding:10px 16px;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
}
.filter-bar-inner::-webkit-scrollbar { display:none; }
.filter-chips {
    display:flex; gap:6px;
    flex-shrink:0;
}
.chip {
    display:inline-flex; align-items:center; gap:5px;
    font-size:13px; font-weight:500;
    padding:7px 14px; border-radius:50px;
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(255,255,255,0.03);
    color: var(--text-muted);
    white-space:nowrap;
    transition: var(--transition);
    min-height:36px;
}
.chip:hover { color:var(--emas); border-color:rgba(200,160,32,0.4); background:var(--emas-muda); }
.chip.active { color:var(--emas); border-color:rgba(200,160,32,0.4); background:var(--emas-muda); }
.chip-count {
    font-size:10px; font-weight:700;
    color:var(--emas); background:rgba(200,160,32,0.15);
    padding:1px 6px; border-radius:50px;
}
.filter-sort-wrap { flex-shrink:0; margin-left:auto; }
.sort-select {
    background:rgba(255,255,255,0.03);
    border:1px solid rgba(255,255,255,0.08);
    border-radius:var(--radius-sm);
    padding:7px 10px; font-size:13px;
    color:var(--text); outline:none; cursor:pointer;
    min-height:36px;
}
.sort-select:focus { border-color:var(--emas); }
.sort-select option { background:var(--bg-2); }

/* ── MAIN LAYOUT ────────────────────────────────────────────── */
.shop-main {
    max-width:1280px; margin:0 auto;
    padding:20px 16px;
    display:grid; grid-template-columns:1fr;
    gap:20px; align-items:start;
}

/* ── SIDEBAR (desktop) ──────────────────────────────────────── */
.sidebar { display:none; } /* hidden on mobile, shown on desktop */
.sidebar-section {
    background:var(--bg-card);
    border:1px solid var(--border-hijau);
    border-radius:var(--radius);
    padding:18px;
    margin-bottom:14px;
}
.sidebar-section h3 {
    font-family:var(--font-serif);
    font-size:12px; font-weight:700; color:var(--white);
    text-transform:uppercase; letter-spacing:1.5px;
    margin-bottom:12px; padding-bottom:8px;
    border-bottom:1px solid var(--border);
}
.filter-group { display:flex; flex-direction:column; gap:6px; }
.filter-btn, .price-filter-btn {
    display:flex; align-items:center; justify-content:space-between;
    font-size:13px; color:var(--text-muted);
    padding:8px 12px; border-radius:var(--radius-sm);
    border:1px solid transparent;
    background:none; text-align:left;
    transition:var(--transition); width:100%;
    min-height:44px;
}
.filter-btn:hover, .price-filter-btn:hover { color:var(--emas); background:var(--emas-muda); }
.filter-btn.active, .price-filter-btn.active { color:var(--emas); background:var(--emas-muda); border-color:rgba(200,160,32,0.3); }
.filter-count {
    font-size:10px; font-weight:600;
    color:var(--emas); background:rgba(200,160,32,0.15);
    padding:2px 6px; border-radius:50px;
}
.deadline-banner {
    background:linear-gradient(135deg,#2a1000,rgba(200,160,32,0.08));
    border:1px solid rgba(200,160,32,0.3);
    border-radius:var(--radius);
    padding:14px; text-align:center;
}
.deadline-banner i       { color:var(--emas); font-size:18px; margin-bottom:6px; display:block; }
.deadline-banner p       { font-size:12px; color:var(--text-muted); line-height:1.6; }
.deadline-banner > strong{ color:var(--emas); display:block; font-size:13px; margin-bottom:4px; }

/* ── DEADLINE MOBILE BANNER ─────────────────────────────────── */
.deadline-mobile {
    display:flex; align-items:center; justify-content:center;
    gap:8px; padding:10px 16px;
    background:linear-gradient(135deg,rgba(42,16,0,0.8),rgba(200,160,32,0.06));
    border-top:1px solid rgba(200,160,32,0.2);
    font-size:12px; color:var(--text-muted);
    text-align:center;
}
.deadline-mobile i    { color:var(--emas); }
.deadline-mobile strong { color:var(--emas); }

/* ── PRODUCT TOOLBAR ────────────────────────────────────────── */
.products-area {}
.products-toolbar {
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:16px; gap:8px;
}
.products-count { font-size:13px; color:var(--text-muted); }
.products-count strong { color:var(--white); }
.view-toggle { display:flex; gap:4px; }
.view-btn {
    width:36px; height:36px;
    display:flex; align-items:center; justify-content:center;
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:var(--radius-sm); color:var(--text-muted);
    transition:var(--transition);
}
.view-btn.active, .view-btn:hover { color:var(--emas); border-color:var(--emas); background:var(--emas-muda); }

/* ── PRODUCTS GRID ──────────────────────────────────────────── */
.products-grid {
    display:grid;
    grid-template-columns: repeat(2, 1fr);
    gap:12px;
}

/* ── PRODUCT CARD ───────────────────────────────────────────── */
.product-card {
    background:var(--bg-card);
    border:1px solid var(--border-hijau);
    border-radius:var(--radius);
    overflow:hidden;
    transition:var(--transition);
    display:flex; flex-direction:column;
}
.product-card:hover { border-color:rgba(200,160,32,0.4); box-shadow:0 12px 36px rgba(0,0,0,0.35); }

/* Thumb */
.product-thumb {
    height:160px; position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.product-thumb .product-img {
    width:100%; height:100%; object-fit:cover;
    position:absolute; inset:0;
    transition:transform 0.45s ease;
}
.product-card:hover .product-img { transform:scale(1.06); }
.product-thumb .emoji-fallback { font-size:56px; z-index:2; position:relative; display:none; }
.product-thumb .thumb-overlay {
    position:absolute; inset:0; z-index:3;
    background-image:
        repeating-linear-gradient(45deg,rgba(255,255,255,0.008) 0px,rgba(255,255,255,0.008) 1px,transparent 1px,transparent 18px),
        repeating-linear-gradient(-45deg,rgba(255,255,255,0.008) 0px,rgba(255,255,255,0.008) 1px,transparent 1px,transparent 18px);
    pointer-events:none;
}
.product-thumb .thumb-gradient {
    position:absolute; bottom:0; left:0; right:0; height:50px; z-index:4;
    background:linear-gradient(to top,rgba(13,26,18,0.65) 0%,transparent 100%);
    pointer-events:none;
}
.pt-hijau  { background:linear-gradient(135deg,#0f3d20,#1a6b3c 60%,#2e9958); }
.pt-emas   { background:linear-gradient(135deg,#2a2000,#6b5000 60%,#c8a020); }
.pt-putih  { background:linear-gradient(135deg,#1c2e1c,#2e4a2e); }
.pt-gelap  { background:linear-gradient(135deg,#0d1520,#1a2a40); }
.pt-special{ background:linear-gradient(135deg,#1a0a30,#3d1a6b 60%,#6b2e99); }

/* Body */
.product-body { padding:12px; flex:1; display:flex; flex-direction:column; }
.product-cat {
    font-size:10px; font-weight:600; letter-spacing:1.5px;
    text-transform:uppercase; color:var(--hijau-terang); margin-bottom:4px;
}
.product-name {
    font-family:var(--font-serif);
    font-size:14px; font-weight:700;
    color:var(--white); margin-bottom:4px; line-height:1.3;
}
.product-desc {
    font-size:11px; color:var(--text-muted);
    line-height:1.5; margin-bottom:10px; flex:1;
    display:-webkit-box;
    -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.product-price-wrap { margin-bottom:10px; }
.product-price { font-family:var(--font-serif); font-size:17px; font-weight:700; color:var(--emas); }
.product-unit  { font-size:10px; color:var(--text-muted); }

/* Actions */
.product-actions { display:flex; gap:6px; margin-top:auto; }
.btn-detail {
    display:flex; align-items:center; justify-content:center; gap:5px;
    background:transparent; border:1px solid var(--border);
    color:var(--text-muted); font-size:12px; font-weight:500;
    padding:8px 10px; border-radius:var(--radius-sm);
    transition:var(--transition); white-space:nowrap;
    min-height:40px; flex:1;
}
.btn-detail:hover { border-color:var(--emas); color:var(--emas); }
.btn-cart {
    display:flex; align-items:center; justify-content:center; gap:5px;
    background:linear-gradient(135deg,var(--hijau-gelap),var(--hijau));
    color:#fff; font-size:12px; font-weight:500;
    padding:8px 10px; border-radius:var(--radius-sm);
    border:none; transition:var(--transition); white-space:nowrap;
    min-height:40px; flex:2;
}
.btn-cart:hover { background:var(--hijau-terang); }
.btn-cart:active { transform:scale(0.97); }

/* ── LIST VIEW ──────────────────────────────────────────────── */
.products-grid.list-view { grid-template-columns:1fr; }
.products-grid.list-view .product-card { flex-direction:row; }
.products-grid.list-view .product-thumb {
    width:130px; min-height:130px; height:auto;
    flex-shrink:0; border-radius:var(--radius) 0 0 var(--radius);
}
.products-grid.list-view .product-body { padding:12px; }
.products-grid.list-view .product-name { font-size:15px; }
.products-grid.list-view .product-desc { -webkit-line-clamp:2; }
.products-grid.list-view .product-actions { flex-direction:row; }
.products-grid.list-view .btn-detail,
.products-grid.list-view .btn-cart { flex:1; }

/* ── EMPTY STATE ────────────────────────────────────────────── */
.empty-state { text-align:center; padding:48px 16px; color:var(--text-muted); }
.empty-state i { font-size:44px; opacity:0.3; margin-bottom:14px; display:block; }
.empty-state h3 { font-family:var(--font-serif); font-size:18px; color:var(--white); margin-bottom:6px; }

/* ── CART DRAWER ────────────────────────────────────────────── */
.cart-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,0.7);
    z-index:900; opacity:0; visibility:hidden;
    transition:opacity 0.35s, visibility 0.35s;
}
.cart-overlay.active { opacity:1; visibility:visible; }
.cart-drawer {
    position:fixed; top:0; right:-100%; bottom:0;
    width:min(420px, 100vw);
    background:var(--bg-2); border-left:1px solid var(--border);
    z-index:901; display:flex; flex-direction:column;
    transition:right 0.4s cubic-bezier(0.4,0,0.2,1);
    box-shadow:-20px 0 60px rgba(0,0,0,0.5);
}
.cart-drawer.active { right:0; }
.cart-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 20px; border-bottom:1px solid var(--border);
    flex-shrink:0;
}
.cart-header h2 { font-family:var(--font-serif); font-size:18px; font-weight:700; color:var(--white); }
.cart-header h2 small { font-size:13px; color:var(--text-muted); font-weight:400; margin-left:6px; }
.cart-close {
    width:40px; height:40px; border-radius:50%;
    background:rgba(255,255,255,0.04); border:1px solid var(--border);
    color:var(--text-muted); font-size:16px;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.cart-close:hover { color:var(--emas); border-color:var(--emas); }
.cart-items { flex:1; overflow-y:auto; padding:14px 20px; -webkit-overflow-scrolling:touch; }
.cart-empty {
    display:flex; flex-direction:column; align-items:center;
    justify-content:center; height:100%;
    gap:12px; color:var(--text-muted); text-align:center; padding:40px 20px;
}
.cart-empty i { font-size:44px; opacity:0.3; }
.cart-empty p { font-size:14px; }
.cart-item {
    display:flex; gap:12px; padding:12px 0;
    border-bottom:1px solid rgba(255,255,255,0.04);
}
.cart-item-thumb {
    width:56px; height:56px; border-radius:var(--radius-sm);
    overflow:hidden; flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    background:var(--bg-card);
}
.cart-item-thumb img { width:100%; height:100%; object-fit:cover; }
.cart-item-thumb .cart-emoji { font-size:24px; display:none; }
.cart-item-info { flex:1; min-width:0; }
.cart-item-name { font-size:13px; font-weight:600; color:var(--white); margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cart-item-variant { font-size:11px; color:var(--text-muted); margin-bottom:8px; }
.cart-item-controls { display:flex; align-items:center; gap:8px; }
.qty-btn {
    width:30px; height:30px; border-radius:6px;
    background:rgba(255,255,255,0.04); border:1px solid var(--border);
    color:var(--text); font-size:16px; font-weight:600;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition);
}
.qty-btn:hover { background:var(--emas-muda); border-color:var(--emas); color:var(--emas); }
.qty-btn:active { transform:scale(0.92); }
.qty-num { font-size:14px; font-weight:700; color:var(--white); min-width:20px; text-align:center; }
.cart-item-price { font-family:var(--font-serif); font-size:15px; font-weight:700; color:var(--emas); flex-shrink:0; align-self:center; }
.remove-btn { background:none; border:none; color:var(--text-muted); font-size:13px; padding:6px; transition:var(--transition); align-self:center; min-width:28px; min-height:28px; }
.remove-btn:hover { color:#e05a5a; }
.cart-footer { padding:14px 20px calc(14px + var(--safe-bottom)); border-top:1px solid var(--border); flex-shrink:0; }
.cart-summary { margin-bottom:14px; }
.cart-summary-row { display:flex; justify-content:space-between; font-size:13px; color:var(--text-muted); padding:4px 0; }
.cart-summary-row.total { font-size:15px; font-weight:700; color:var(--white); border-top:1px solid var(--border); margin-top:6px; padding-top:10px; }
.cart-summary-row.total span:last-child { color:var(--emas); font-family:var(--font-serif); }
.discount-badge {
    display:inline-flex; align-items:center; gap:6px;
    font-size:12px; color:var(--hijau-terang);
    background:rgba(46,153,88,0.1); border:1px solid rgba(46,153,88,0.25);
    padding:5px 12px; border-radius:50px; margin-bottom:10px; width:100%;
}
.cart-footer-actions { display:flex; flex-direction:column; gap:8px; }
.btn-checkout {
    width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
    background:linear-gradient(135deg,var(--hijau-gelap),var(--hijau));
    color:#fff; border:none;
    font-size:15px; font-weight:500;
    padding:14px; border-radius:var(--radius-sm);
    transition:var(--transition); box-shadow:0 4px 20px rgba(46,153,88,0.3);
    min-height:52px;
}
.btn-checkout:hover { background:var(--hijau-terang); }
.btn-checkout:active { transform:scale(0.98); }
.btn-wa-order {
    width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
    background:#25d366; color:#fff; border:none;
    font-size:14px; font-weight:500;
    padding:12px; border-radius:var(--radius-sm); transition:var(--transition);
    min-height:48px;
}
.btn-wa-order:hover { background:#1aa854; }
.btn-wa-order:active { transform:scale(0.98); }

/* ── PRODUCT MODAL ──────────────────────────────────────────── */
.modal-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,0.75);
    z-index:800; opacity:0; pointer-events:none;
    display:flex; align-items:flex-end; justify-content:center;
    transition:opacity 0.3s;
}
.modal-overlay.open { opacity:1; pointer-events:all; }
.modal {
    background:var(--bg-2); border:1px solid var(--border);
    border-radius:24px 24px 0 0;
    width:100%; max-width:640px;
    max-height:92vh; overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 -20px 60px rgba(0,0,0,0.5);
    transform:translateY(40px); opacity:0;
    transition:transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.3s;
    position:relative;
    /* drag handle visual */
}
.modal::before {
    content:''; display:block; width:36px; height:4px;
    background:rgba(255,255,255,0.15); border-radius:2px;
    margin:12px auto 0;
}
.modal-overlay.open .modal { transform:translateY(0); opacity:1; }
.modal-inner { display:flex; flex-direction:column; }
.modal-visual {
    height:220px; position:relative; overflow:hidden;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0;
}
.modal-visual .modal-img {
    width:100%; height:100%; object-fit:cover;
    position:absolute; inset:0;
}
.modal-visual .big-emoji { font-size:72px; z-index:2; position:relative; display:none; }
.modal-visual::after {
    content:''; position:absolute; inset:0; z-index:1;
    background-image:
        repeating-linear-gradient(45deg,rgba(255,255,255,0.015) 0px,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 18px),
        repeating-linear-gradient(-45deg,rgba(255,255,255,0.015) 0px,rgba(255,255,255,0.015) 1px,transparent 1px,transparent 18px);
}
.modal-body { padding:20px 20px calc(20px + var(--safe-bottom)); }
.modal-cat  { font-size:10px; font-weight:600; letter-spacing:1.5px; text-transform:uppercase; color:var(--hijau-terang); margin-bottom:5px; }
.modal-name { font-family:var(--font-serif); font-size:20px; font-weight:700; color:var(--white); margin-bottom:8px; line-height:1.3; }
.modal-desc { font-size:13px; color:var(--text-muted); line-height:1.8; margin-bottom:16px; }
.modal-price-wrap { display:flex; align-items:baseline; gap:10px; margin-bottom:16px; }
.modal-price { font-family:var(--font-serif); font-size:26px; font-weight:700; color:var(--emas); }
.modal-actions { display:flex; gap:8px; }
.modal-close {
    position:absolute; top:20px; right:16px;
    width:40px; height:40px; border-radius:50%;
    background:rgba(13,26,18,0.85); border:1px solid var(--border);
    color:var(--text-muted); font-size:16px;
    display:flex; align-items:center; justify-content:center;
    transition:var(--transition); z-index:10;
}
.modal-close:hover { color:var(--emas); border-color:var(--emas); }

/* ── CHECKOUT MODAL ─────────────────────────────────────────── */
.checkout-modal-overlay {
    position:fixed; inset:0; background:rgba(0,0,0,0.8);
    z-index:950; opacity:0; pointer-events:none;
    display:flex; align-items:flex-end; justify-content:center;
    transition:opacity 0.3s;
}
.checkout-modal-overlay.open { opacity:1; pointer-events:all; }
.checkout-modal {
    background:var(--bg-2); border:1px solid var(--border);
    border-radius:24px 24px 0 0;
    width:100%; max-width:580px;
    max-height:95vh; overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 -20px 60px rgba(0,0,0,0.6);
    transform:translateY(40px); opacity:0;
    transition:transform 0.35s cubic-bezier(0.4,0,0.2,1), opacity 0.3s;
}
.checkout-modal::before {
    content:''; display:block; width:36px; height:4px;
    background:rgba(255,255,255,0.15); border-radius:2px;
    margin:12px auto 0;
}
.checkout-modal-overlay.open .checkout-modal { transform:translateY(0); opacity:1; }
.checkout-header { padding:20px 20px 14px; border-bottom:1px solid var(--border); }
.checkout-header h2 { font-family:var(--font-serif); font-size:20px; font-weight:700; color:var(--white); }
.checkout-header p { font-size:13px; color:var(--text-muted); margin-top:4px; }
.checkout-body { padding:16px 20px; }
.checkout-order-summary {
    background:var(--bg-card); border:1px solid var(--border);
    border-radius:var(--radius-sm); padding:12px; margin-bottom:18px;
}
.checkout-order-summary h4 { font-size:11px; font-weight:600; letter-spacing:1px; text-transform:uppercase; color:var(--text-muted); margin-bottom:8px; }
.checkout-item-row { display:flex; justify-content:space-between; font-size:13px; padding:3px 0; color:var(--text); }
.checkout-item-row.grand {
    border-top:1px solid var(--border); margin-top:6px; padding-top:8px;
    font-weight:700; color:var(--emas); font-family:var(--font-serif); font-size:15px;
}
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.form-group label { font-size:12px; font-weight:500; color:var(--text-muted); letter-spacing:0.5px; }
.form-group input,
.form-group select,
.form-group textarea {
    background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.1);
    border-radius:var(--radius-sm); padding:12px 14px;
    color:var(--text); transition:var(--transition); outline:none;
    min-height:48px;
}
.form-group input::placeholder, .form-group textarea::placeholder { color:rgba(255,255,255,0.2); }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus { border-color:var(--emas); background:rgba(200,160,32,0.04); }
.form-group select option { background:var(--bg-2); }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.payment-methods { display:flex; flex-direction:column; gap:8px; margin-bottom:14px; }
.payment-method {
    display:flex; align-items:center; gap:12px; padding:12px 14px;
    border-radius:var(--radius-sm); border:1px solid var(--border);
    cursor:pointer; transition:var(--transition); min-height:52px;
}
.payment-method.active { border-color:var(--emas); background:var(--emas-muda); }
.payment-method input[type="radio"] { accent-color:var(--emas); width:18px; height:18px; flex-shrink:0; }
.payment-method .pm-icon { font-size:20px; flex-shrink:0; }
.payment-method .pm-info strong { display:block; font-size:13px; color:var(--white); }
.payment-method .pm-info span   { font-size:11px; color:var(--text-muted); }
.checkout-footer { padding:14px 20px calc(20px + var(--safe-bottom)); border-top:1px solid var(--border); }
.btn-submit {
    width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
    background:linear-gradient(135deg,var(--hijau-gelap),var(--hijau));
    color:#fff; border:none;
    font-size:15px; font-weight:500;
    padding:15px; border-radius:var(--radius-sm);
    transition:var(--transition); box-shadow:0 4px 20px rgba(46,153,88,0.3);
    min-height:52px;
}
.btn-submit:hover { background:var(--hijau-terang); }
.btn-submit:active { transform:scale(0.98); }

/* ── SUCCESS SCREEN ─────────────────────────────────────────── */
.success-screen { text-align:center; padding:36px 20px calc(36px + var(--safe-bottom)); }
.success-icon {
    width:68px; height:68px; border-radius:50%;
    background:linear-gradient(135deg,var(--hijau-gelap),var(--hijau));
    display:flex; align-items:center; justify-content:center;
    font-size:30px; color:#fff; margin:0 auto 18px;
    box-shadow:0 0 0 10px rgba(46,153,88,0.12);
}
.success-screen h2 { font-family:var(--font-serif); font-size:22px; font-weight:700; color:var(--white); margin-bottom:10px; }
.success-screen p  { font-size:14px; color:var(--text-muted); margin-bottom:22px; line-height:1.7; }
.success-order-id {
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; font-weight:700;
    color:var(--emas); background:var(--emas-muda); border:1px solid rgba(200,160,32,0.3);
    padding:8px 18px; border-radius:50px; margin-bottom:22px;
}

/* ── TOAST ──────────────────────────────────────────────────── */
.toast-container {
    position:fixed; bottom:calc(24px + var(--safe-bottom)); left:50%;
    transform:translateX(-50%);
    z-index:9999; display:flex; flex-direction:column; align-items:center; gap:8px;
    pointer-events:none; width:calc(100% - 32px); max-width:360px;
}
.toast {
    background:var(--bg-card); border:1px solid var(--border); border-radius:50px;
    padding:10px 20px; display:flex; align-items:center; gap:10px;
    font-size:13px; font-weight:500; color:var(--white);
    box-shadow:0 8px 30px rgba(0,0,0,0.4);
    animation:toastIn 0.3s ease forwards; width:100%; justify-content:center;
}
.toast.hide { animation:toastOut 0.3s ease forwards; }
.toast i    { color:var(--emas); }
@keyframes toastIn  { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes toastOut { from { opacity:1; transform:translateY(0); } to { opacity:0; transform:translateY(8px); } }

/* ──────────────────────────────────────────────────────────── */
/* DESKTOP — 900px ke atas                                       */
/* ──────────────────────────────────────────────────────────── */
@media (min-width: 900px) {
    body { padding-bottom: 0; }

    .shop-header { padding: 0 24px; }
    .shop-header-inner { height:64px; }
    .shop-brand { font-size:17px; }
    .shop-brand i { font-size:20px; }
    .nav-back-text { display:inline; }
    .shop-nav-back { padding:6px 16px; min-width:auto; justify-content:flex-start; }

    .shop-hero { padding:48px 24px 40px; }

    /* Filter bar jadi lebih compact di desktop */
    .filter-bar-inner { padding:10px 24px; }

    /* Main layout — 2 kolom */
    .shop-main { grid-template-columns:240px 1fr; gap:32px; padding:32px 24px; }
    .sidebar { display:block; position:sticky; top:120px; }

    /* Products grid — lebih banyak kolom */
    .products-grid { grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:20px; }

    /* Cards lebih besar di desktop */
    .product-thumb { height:200px; }
    .product-body { padding:16px; }
    .product-name { font-size:16px; }
    .product-desc { font-size:12px; }
    .product-price { font-size:20px; }
    .btn-detail, .btn-cart { font-size:13px; padding:9px 12px; }

    /* Modal jadi center di desktop */
    .modal-overlay { align-items:center; }
    .modal {
        border-radius:20px; max-width:740px;
        transform:scale(0.95); max-height:90vh;
    }
    .modal::before { display:none; }
    .modal-overlay.open .modal { transform:scale(1); }
    .modal-inner { flex-direction:row; min-height:380px; }
    .modal-visual {
        width:320px; height:auto; flex-shrink:0;
        border-radius:20px 0 0 20px;
    }
    .modal-body { padding:28px; }
    .modal-name { font-size:22px; }
    .modal-price { font-size:28px; }

    /* Checkout jadi center di desktop */
    .checkout-modal-overlay { align-items:center; padding:24px; }
    .checkout-modal {
        border-radius:20px; max-height:90vh;
        transform:translateY(20px);
    }
    .checkout-modal::before { display:none; }
    .checkout-modal-overlay.open .checkout-modal { transform:translateY(0); }
    .checkout-header { padding:24px 28px 16px; }
    .checkout-body { padding:18px 28px; }
    .checkout-footer { padding:14px 28px 24px; }
    .form-row { grid-template-columns:1fr 1fr; }

    .deadline-mobile { display:none; }

    .toast-container { width:auto; max-width:380px; }
}

/* ── TABLET 600-899px ───────────────────────────────────────── */
@media (min-width:600px) and (max-width:899px) {
    .products-grid { grid-template-columns:repeat(3, 1fr); gap:14px; }
    .product-thumb { height:180px; }
    .form-row { grid-template-columns:1fr 1fr; }
    .nav-back-text { display:inline; }
}

/* ── SMALL PHONE ≤ 360px ────────────────────────────────────── */
@media (max-width: 360px) {
    .shop-header-inner { height:52px; }
    .shop-brand { font-size:14px; }
    .products-grid { gap:8px; }
    .product-thumb { height:130px; }
    .product-body { padding:10px 8px; }
    .product-name { font-size:13px; }
    .product-price { font-size:15px; }
    .btn-detail, .btn-cart { font-size:11px; padding:7px 6px; min-height:36px; }
    .cart-btn { padding:8px 12px; font-size:13px; }
    .cart-btn-text { display:none; }
}
