/* ═══════════════════════════════════════════════════════════════════
   TAHAP 1 UPGRADE SITUS PUBLIK (Nov 2026)
   Mockup: mockup-upgrade-website-09nov.html (layar 1–5, 15, 16).

   Dimuat SESUDAH style.css (header.blade.php). Semua warna lewat token
   tokens.css; jangan tulis kode warna baru di sini kecuali tidak ada
   tokennya.
   ═══════════════════════════════════════════════════════════════════ */

/* ── 1. Tombol Member di kepala halaman ───────────────────────────── */
/* Selalu terlihat. Di HP berbentuk kapsul di samping tombol menu
   (masukan marketing 12 Nov 2026, contoh: tombol MEMBERSHIP di kepala
   situs ritel lain). Di komputer kembali ke gaya miring arah C dan
   dipindah ke ujung kanan dengan `order`. */
.tombol-member {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin-left: auto;
    margin-right: .6rem;
    padding: .5rem 1rem;
    border-radius: var(--radius-pill);
    background: var(--brand);
    color: var(--on-brand) !important;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.05rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    box-shadow: 0 6px 16px -8px rgba(255, 94, 20, .8);
    transition: background var(--dur) var(--ease), transform var(--dur) var(--ease);
}

.tombol-member:hover,
.tombol-member:focus-visible { background: var(--brand-press); color: var(--on-brand) !important; }
.tombol-member:active { transform: scale(.97); }
.tombol-member:focus-visible { outline: 3px solid var(--navy); outline-offset: 2px; }
.tombol-member svg { flex: 0 0 auto; }

@media (max-width: 380px) {
    .tombol-member { padding: .45rem .75rem; font-size: .98rem; margin-right: .4rem; }
    .tombol-member svg { display: none; }
}

@media (min-width: 1200px) {
    .navbar .navbar-collapse { order: 2; }
    .tombol-member {
        order: 3;
        margin: 0 0 0 1.5rem;
        padding: .75rem 1.25rem;
        border-radius: 0;
        transform: skewX(var(--skew));
        box-shadow: none;
    }
    .tombol-member > * { transform: skewX(calc(var(--skew) * -1)); }
    .tombol-member:active { transform: skewX(var(--skew)) scale(.97); }
}

/* ── 2. Bilah bawah HP ────────────────────────────────────────────── */
.bilah-bawah { display: none; }

@media (max-width: 991.98px) {
    .bilah-bawah {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1030;
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        background: var(--surface);
        border-top: 1px solid var(--line);
        box-shadow: 0 -6px 18px -12px rgba(20, 24, 31, .35);
        padding-bottom: env(safe-area-inset-bottom, 0);
    }

    .bilah-bawah a {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2px;
        min-height: 60px;
        padding: 6px 2px;
        color: var(--ink-2);
        font-family: var(--font-body);
        font-size: .74rem;
        font-weight: var(--fw-semibold);
        text-decoration: none;
        -webkit-tap-highlight-color: transparent;
    }

    .bilah-bawah a.is-aktif { color: var(--brand-press); }
    .bilah-bawah a.is-aktif svg { stroke-width: 2.4; }

    /* Member di tengah: lingkaran oranye supaya paling mudah ditemukan. */
    .bilah-bawah a.is-utama svg {
        box-sizing: content-box;
        padding: 7px;
        margin-top: -16px;
        border-radius: 50%;
        background: var(--brand);
        color: var(--on-brand);
        border: 3px solid var(--surface);
        box-shadow: 0 6px 14px -6px rgba(255, 94, 20, .9);
    }
    .bilah-bawah a.is-utama { color: var(--brand-press); }

    /* Ruang di bawah halaman supaya kaki halaman tidak tertutup bilah. */
    body { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0)); }

    /* Tombol melayang & "kembali ke atas" diganti bilah bawah. */
    .tombol-melayang,
    .back-to-top { display: none !important; }
}

/* ── 3. Kaki halaman: akun sosial bernama ─────────────────────────── */
.sosial-chip {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}

.sosial-chip a {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .75rem;
    border-radius: var(--radius-pill);
    background: rgba(255, 255, 255, .08);
    border: 1px solid var(--on-navy-line);
    color: var(--on-navy) !important;
    font-size: var(--fs-200);
    font-weight: var(--fw-semibold);
    text-decoration: none;
    transition: background var(--dur) var(--ease);
}

.sosial-chip a:hover { background: var(--brand); border-color: var(--brand); }
.sosial-chip img { object-fit: contain; }

/* ── 4. Status jam (Customer Care & cabang) ───────────────────────── */
.status-jam {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    margin: 0 0 .9rem;
    font-weight: var(--fw-semibold);
    font-size: var(--fs-300);
}
.status-jam__titik { width: .6rem; height: .6rem; border-radius: 50%; background: currentColor; }
.status-jam.is-buka { color: var(--ok); }
.status-jam.is-tutup { color: var(--bad); }

/* ── 5. Halaman Bantuan ───────────────────────────────────────────── */
.kartu-bantuan {
    height: 100%;
    padding: clamp(1.25rem, 1rem + 1vw, 2rem);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
}
.kartu-bantuan--utama { border-top: 4px solid var(--layar); }
.kartu-bantuan__judul { font-size: var(--fs-700); line-height: 1.05; margin-bottom: .6rem; }
.kartu-bantuan__ket { color: var(--ink-2); margin: .9rem 0 0; }
.kartu-bantuan__sub {
    margin: 1.25rem 0 .5rem;
    font-size: var(--fs-100);
    font-weight: var(--fw-bold);
    letter-spacing: var(--tracking-label);
    text-transform: uppercase;
    color: var(--ink-3);
}
.kartu-bantuan__kontak { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: 1rem; }
.kartu-bantuan__kontak a { color: var(--navy); font-weight: var(--fw-semibold); text-decoration: none; }
.kartu-bantuan__kontak a:hover { color: var(--brand-press); }
.kartu-bantuan__kontak i { color: var(--brand); margin-right: .25rem; }

.tombol-penuh {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    min-height: 52px;
    padding: .75rem 1rem;
    border-radius: var(--radius);
    background: var(--brand);
    color: var(--on-brand) !important;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.15rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    margin-top: 1rem;
    transition: background var(--dur) var(--ease);
}
.tombol-penuh:hover { background: var(--brand-press); }
.tombol-penuh--wa { background: var(--layar); }
.tombol-penuh--wa:hover { background: #155637; }
.tombol-penuh--navy { background: var(--navy); }
.tombol-penuh--navy:hover { background: var(--navy-2); }
.tombol-penuh--garis { background: transparent; color: var(--navy) !important; border: 2px solid var(--navy); }
.tombol-penuh--garis:hover { background: var(--navy); color: var(--on-navy) !important; }

.chip-baris { display: flex; flex-wrap: wrap; gap: .5rem; }

.daftar-pintu {
    display: grid;
    gap: .75rem;
}
@media (min-width: 768px) { .daftar-pintu { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .daftar-pintu { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.pintu {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: 1rem 1.1rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    color: var(--ink);
    text-decoration: none;
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.pintu:hover { border-color: var(--brand); color: var(--ink); transform: translateY(-1px); }
.pintu__ikon {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: var(--radius);
    background: var(--brand-soft);
    color: var(--brand-press);
    font-size: 1.2rem;
}
.pintu__ikon img { object-fit: contain; }
.pintu__ikon[style] { color: #fff; }
.pintu__teks { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.pintu__teks b { color: var(--navy); font-size: var(--fs-400); }
.pintu__teks small { color: var(--ink-2); font-size: var(--fs-200); }
.pintu__panah { color: var(--ink-3); }

#kirim-pesan { scroll-margin-top: 90px; }

/* ── 6. Halaman Lokasi ────────────────────────────────────────────── */
.alat-lokasi {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1rem;
    margin-bottom: .5rem;
}
.saring-merek {
    display: flex;
    gap: .5rem;
    overflow-x: auto;
    scrollbar-width: none;
    max-width: 100%;
    padding-bottom: 2px;
}
.saring-merek::-webkit-scrollbar { display: none; }
.saring-merek .filter-kat { white-space: nowrap; background: var(--surface); cursor: pointer; }
.saring-merek .filter-kat.is-aktif { background: var(--navy); border-color: var(--navy); color: #fff; }

.tombol-terdekat {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .55rem 1rem;
    border: 2px solid var(--brand);
    border-radius: var(--radius-pill);
    background: var(--brand-soft);
    color: var(--brand-press);
    font-weight: var(--fw-bold);
    font-size: var(--fs-300);
    cursor: pointer;
}
.tombol-terdekat:disabled { opacity: .7; cursor: wait; }
.ket-terdekat { color: var(--ink-3); font-size: var(--fs-200); margin: 0 0 1rem; }

.daftar-lokasi {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}
@media (min-width: 768px) { .daftar-lokasi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .daftar-lokasi { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.kartu-lokasi {
    display: flex;
    min-height: 150px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
}
.kartu-lokasi[hidden] { display: none; }
.kartu-lokasi__media { position: relative; flex: 0 0 34%; max-width: 150px; background: var(--surface-2); }
.kartu-lokasi__media picture,
.kartu-lokasi__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.kartu-lokasi__merek { z-index: 1; }
.kartu-lokasi__merek {
    position: absolute;
    top: .5rem;
    left: .5rem;
    padding: .15rem .45rem;
    border-radius: var(--radius-sm);
    color: #fff;
    font-family: var(--font-display);
    font-size: .78rem;
    font-weight: var(--fw-bold);
    letter-spacing: .04em;
    text-transform: uppercase;
}
.kartu-lokasi__isi { flex: 1; min-width: 0; padding: .85rem 1rem; display: flex; flex-direction: column; }
.kartu-lokasi__nama { font-size: 1.25rem; line-height: 1.05; margin: 0 0 .3rem; color: var(--navy); }
.kartu-lokasi__alamat { color: var(--ink-2); font-size: var(--fs-200); line-height: 1.4; margin: 0 0 .35rem; }
.kartu-lokasi .status-jam { margin: 0 0 .2rem; font-size: var(--fs-200); }
.kartu-lokasi__jarak { margin: 0 0 .2rem; color: var(--brand-press); font-weight: var(--fw-bold); font-size: var(--fs-200); }
.kartu-lokasi__aksi { display: flex; gap: .5rem; margin-top: auto; padding-top: .6rem; }

.tombol-kecil {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .35rem;
    min-height: 42px;
    padding: .4rem .6rem;
    border-radius: var(--radius);
    color: #fff !important;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.02rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    white-space: nowrap;
}
.tombol-kecil--navy { background: var(--navy); }
.tombol-kecil--navy:hover { background: var(--navy-2); }
.tombol-kecil--wa { background: var(--layar); }
.tombol-kecil--wa:hover { background: #155637; }
.tombol-kecil--mati { background: var(--surface-2); color: var(--ink-3) !important; font-size: .85rem; }
.kosong-merek { color: var(--ink-2); padding: 1rem 0; }

/* ── 7. Daftar Promo & program ────────────────────────────────────── */
.daftar-program { display: grid; gap: 1rem; }
@media (min-width: 768px) { .daftar-program { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .daftar-program { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.kartu-program {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    color: var(--ink);
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.kartu-program:hover { border-color: var(--brand); color: var(--ink); transform: translateY(-1px); }
.kartu-program.is-mendesak { border-left: 4px solid var(--bad); }

.kartu-program__gambar {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 84px;
    height: 84px;
    border-radius: var(--radius);
    overflow: hidden;
    background: linear-gradient(135deg, var(--brand) 0%, #ff9a5c 100%);
    color: #fff;
    font-size: 2rem;
}
.kartu-program__gambar--katalog { background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); }
.kartu-program__gambar img { width: 100%; height: 100%; object-fit: cover; }
.kartu-program__isi { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .15rem; }
.kartu-program__judul {
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.3rem;
    line-height: 1.05;
    text-transform: uppercase;
    color: var(--navy);
}
.kartu-program__ket { color: var(--ink-2); font-size: var(--fs-200); }
.kartu-program__status { color: var(--brand-press); font-weight: var(--fw-bold); font-size: var(--fs-200); }
.kartu-program.is-mendesak .kartu-program__status { color: var(--bad); }
.kartu-program__panah { color: var(--ink-3); }

/* ── 8. Beranda: sisa hari, toko terdekat, ajakan member ──────────── */
.rel-program__sisa {
    display: inline-block;
    margin-top: 2px;
    padding: 0 .35rem;
    border-radius: var(--radius-sm);
    background: var(--bad-soft);
    color: var(--bad);
    font-size: .72rem;
    font-weight: var(--fw-bold);
    line-height: 1.5;
    width: fit-content;
}

.kartu-terdekat,
.kartu-ajak-member {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border-radius: var(--radius-lg);
}
.kartu-terdekat { background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
.kartu-terdekat__isi { min-width: 0; }
.kartu-terdekat__nama { font-size: 1.45rem; line-height: 1.05; margin: 0 0 .25rem; color: var(--navy); }
.kartu-terdekat__ket { margin: 0; color: var(--ink-2); font-size: var(--fs-300); }
.kartu-terdekat__ket.is-buka { color: var(--ok); font-weight: var(--fw-semibold); }
.kartu-terdekat__ket.is-tutup { color: var(--bad); font-weight: var(--fw-semibold); }
.kartu-terdekat__tombol {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    min-height: 46px;
    padding: .5rem 1.1rem;
    border: 0;
    border-radius: var(--radius);
    background: var(--navy);
    color: #fff !important;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.05rem;
    letter-spacing: .04em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
}
.kartu-terdekat__tombol:disabled { opacity: .7; cursor: wait; }

.kartu-ajak-member {
    flex-wrap: wrap;
    background:
        radial-gradient(circle at 92% 120%, rgba(255, 94, 20, .35) 0%, transparent 55%),
        linear-gradient(120deg, var(--navy-deep) 0%, var(--navy) 100%);
    color: #fff;
    text-decoration: none;
}
.kartu-ajak-member .u-eyebrow { color: #ff9a66; }
.kartu-ajak-member__judul {
    display: block;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.5rem;
    line-height: 1.05;
    text-transform: uppercase;
}
.kartu-ajak-member__tombol {
    padding: .65rem 1.1rem;
    border-radius: var(--radius);
    background: var(--brand);
    color: #fff;
    font-family: var(--font-display);
    font-weight: var(--fw-bold);
    font-size: 1.05rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.kartu-ajak-member:hover .kartu-ajak-member__tombol { background: var(--brand-press); }
@media (max-width: 575.98px) { .kartu-ajak-member__tombol { width: 100%; text-align: center; } }

/* Rel program: di HP satu baris yang bisa digeser (dulu petak 2 kolom
   dengan satu sel kosong); di komputer 6 kolom (+ "Semua promo"). */
@media (max-width: 991.98px) {
    .rel-program {
        display: flex;
        gap: .6rem;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        padding: .75rem var(--gutter);
        background: var(--surface-2);
        border-bottom: 0;
    }
    .rel-program::-webkit-scrollbar { display: none; }
    .rel-program__item {
        flex: 0 0 auto;
        min-width: 158px;
        scroll-snap-align: start;
        padding: .7rem .8rem;
        border: 1px solid var(--line);
        border-left: 4px solid var(--brand);
        border-radius: var(--radius);
    }
}
@media (min-width: 992px) {
    .rel-program { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
.rel-program__teks { display: flex; flex-direction: column; }

/* ── 9. Pembaca katalog (satu halaman per layar) ──────────────────── */
.baca-katalog { max-width: 720px; margin: 0 auto; }
.baca-katalog__kepala { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; margin-bottom: .6rem; }
.baca-katalog__hitung { font-family: var(--font-display); font-weight: var(--fw-bold); font-size: 1.2rem; text-transform: uppercase; color: var(--navy); }
.baca-katalog__hitung b { color: var(--brand-press); }
.baca-katalog__ket { color: var(--ink-3); font-size: var(--fs-200); }
.baca-katalog__bingkai { position: relative; }
.baca-katalog__jalur {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    border-radius: var(--radius-lg);
    background: var(--navy-deep);
    outline: none;
}
.baca-katalog__jalur::-webkit-scrollbar { display: none; }
.baca-katalog__jalur:focus-visible { box-shadow: 0 0 0 3px var(--brand); }
.baca-katalog__halaman {
    flex: 0 0 100%;
    margin: 0;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    display: grid;
    place-items: center;
    padding: .5rem;
}
.baca-katalog__halaman img { width: 100%; height: auto; max-height: 78vh; object-fit: contain; border-radius: var(--radius); }
.baca-katalog__panah {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(2, 36, 91, .82);
    color: #fff;
    font-size: 1.3rem;
    display: grid;
    place-items: center;
    cursor: pointer;
}
.baca-katalog__panah--kiri { left: .5rem; }
.baca-katalog__panah--kanan { right: .5rem; }
@media (hover: none) { .baca-katalog__panah { display: none; } }

.baca-katalog__petak {
    display: flex;
    gap: .4rem;
    overflow-x: auto;
    scrollbar-width: none;
    padding: .6rem 0 .2rem;
}
.baca-katalog__petak::-webkit-scrollbar { display: none; }
.baca-katalog__petak button {
    position: relative;
    flex: 0 0 auto;
    width: 52px;
    height: 70px;
    padding: 0;
    border: 2px solid transparent;
    border-radius: var(--radius-sm);
    overflow: hidden;
    background: var(--surface-2);
    opacity: .6;
    cursor: pointer;
}
.baca-katalog__petak button.is-aktif { border-color: var(--brand); opacity: 1; }
.baca-katalog__petak img { width: 100%; height: 100%; object-fit: cover; }
.baca-katalog__petak span {
    position: absolute;
    right: 2px;
    bottom: 2px;
    padding: 0 .25rem;
    border-radius: 3px;
    background: rgba(0, 0, 0, .65);
    color: #fff;
    font-size: .7rem;
    font-weight: var(--fw-bold);
}

/* ── 10. Banner versi HP (4:5) ────────────────────────────────────── */
@media (max-width: 767.98px) {
    .hero-slider--hp .carousel-item img { aspect-ratio: 4 / 5; }
}
