@font-face {
    font-family: 'Apercu';
    src: url('../fonts/ApercuPro.woff2') format('woff2'),
        url('../fonts/apercu.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Apercu';
    src: url('../fonts/ApercuPro-Medium.woff2') format('woff2'),
        url('../fonts/apercu-medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Apercu';
    src: url('../fonts/ApercuPro-Bold.woff2') format('woff2'),
        url('../fonts/apercu-bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

:root {
    --cream: #f4f0e7;
    --cream-2: #ebe5d7;
    --olive: #9a9a86;
    --olive-dark: #777765;
    --text: #1f1f1b;
    --muted: #6b6a5d;
    --white: #ffffff;
    --line: rgba(0, 0, 0, .08);
    --topbar-h: 28px;
    --header-h: 80px;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Apercu', -apple-system, BlinkMacSystemFont, sans-serif;
    background: var(--cream);
    color: var(--text);
    overflow-x: hidden;
}

a {
    color: inherit;
    text-decoration: none;
}

img {
    display: block;
}

button,
input {
    font-family: inherit;
}

/* ================================
   TOPBAR
================================ */
.site-topbar {
    position: sticky;
    top: 0;
    z-index: 101;
    width: 100%;
    height: var(--topbar-h);
    background: #9a9a86;
    color: var(--white);
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
    padding: 0 48px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .75px;
    text-transform: uppercase;
    transition:
        background-color .35s ease,
        backdrop-filter .35s ease,
        -webkit-backdrop-filter .35s ease;
}

.site-topbar__item:nth-child(1) {
    text-align: left;
}

.site-topbar__item:nth-child(2) {
    text-align: center;
}

.site-topbar__item:nth-child(3) {
    text-align: right;
}

.site-topbar.is-scrolled {
    background: rgba(154, 154, 134, .72);
    backdrop-filter: blur(18px) saturate(130%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
}

/* ── TOPBAR RUNNING TEXT ── */
.site-topbar {
    overflow: hidden;
    /* hapus display:grid yang lama, ganti ke flex */
    display: flex;
    align-items: center;
    padding: 0;  /* hapus padding lama */
}

.topbar-track {
    display: flex;
    white-space: nowrap;
    animation: topbar-scroll 28s linear infinite;
    will-change: transform;
}

.topbar-track:hover { animation-play-state: paused }

.topbar-item {
    display: inline-flex;
    align-items: center;
    gap: 0;
    padding: 0 52px;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 1.8px;
    text-transform: uppercase;
    color: rgba(255,255,255,.92);
    white-space: nowrap;
    flex-shrink: 0;
}

/* Separator dot antar item */
.topbar-item::after {
    content: '·';
    margin-left: 52px;
    color: rgba(255,255,255,.4);
    font-size: 14px;
}

@keyframes topbar-scroll {
    0%   { transform: translateX(0) }
    100% { transform: translateX(-50%) }
}

@media (max-width: 768px) {
    .topbar-item { padding: 0 36px; font-size: 9px; letter-spacing: 1.4px }
    .topbar-item::after { margin-left: 36px }
}

/* ================================
   HEADER
================================ */
.site-header {
    position: sticky;
    top: var(--topbar-h);
    z-index: 100;
    width: 100%;
    background: var(--cream);
    border-bottom: 1px solid var(--line);
    transition:
        background-color .35s ease,
        backdrop-filter .35s ease,
        -webkit-backdrop-filter .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}

.site-header.is-scrolled {
    background: rgba(244, 240, 231, .68);
    backdrop-filter: blur(18px) saturate(130%);
    -webkit-backdrop-filter: blur(18px) saturate(130%);
    border-bottom-color: rgba(255, 255, 255, .25);
    box-shadow: 0 10px 32px rgba(0, 0, 0, .06);
}

.site-header__inner {
    height: var(--header-h);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 40px;
    padding: 0 100px;
}

/* Nav links */
.desktop-nav {
    display: flex;
    align-items: center;
    gap: 82px;
}

.desktop-nav--right {
    justify-content: flex-end;
    gap: 32px;
}

.desktop-nav a {
    font-size: 15px;
    font-weight: 500;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .95px;
    transition: opacity .2s;
}

.desktop-nav a:hover {
    opacity: .55;
}

/* Logo */
.site-logo {
    font-size: 42px;
    font-weight: 400;
    color: #747369;
    letter-spacing: 22px;
    padding-left: 22px;
    line-height: 1;
    transition: opacity .2s;
}

.site-logo:hover {
    opacity: .7;
}

.header-icon {
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    position: relative;
    transition: opacity .2s;
    /* hapus width & height dari sini */
}

.header-icon img {
    display: block;
    width: 28px;
    height: 28px;
    object-fit: contain;
}

.header-icon:hover {
    opacity: .55;
}

.cart-badge {
    position: absolute;
    top: -8px;
    right: -9px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: #9e9d8a;
    color: #fff;
    border-radius: 99px;
    font-size: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* scrolled header text colour */
.site-header.is-scrolled .site-logo,
.site-header.is-scrolled .desktop-nav a,
.site-header.is-scrolled .header-icon {
    color: #5f5e53;
}

/* ================================
   MOBILE TOGGLE
================================ */
.mobile-toggle {
    display: none;
    width: 28px;
    height: 22px;
    border: 0;
    background: transparent;
    cursor: pointer;
    flex-direction: column;
    justify-content: center;
    gap: 7px;
}

.mobile-toggle span {
    display: block;
    width: 100%;
    height: 1.5px;
    background: var(--muted);
    transition: transform .25s ease, opacity .25s ease;
    transform-origin: center;
}

.mobile-toggle.is-active span:nth-child(1) {
    transform: translateY(4.25px) rotate(45deg);
}

.mobile-toggle.is-active span:nth-child(2) {
    transform: translateY(-4.25px) rotate(-45deg);
}

/* ================================
   MOBILE NAV
================================ */
.mobile-nav {
    display: none;
    background: rgba(244, 240, 231, .97);
    border-top: 1px solid var(--line);
    padding: 18px 24px 24px;
}

.mobile-nav.is-open {
    display: block;
}

.mobile-nav a {
    display: block;
    padding: 12px 0;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #636254;
    border-bottom: 1px solid rgba(0, 0, 0, .06);
}

/* ================================
   FOOTER
================================ */
.bhre-footer {
    background: #9c9b88;
    color: #fff;
    padding: 72px 64px 56px;
}

.footer-subscribe {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 48px;
    align-items: start;
    margin-bottom: 72px;
}

.footer-subscribe__left h2 {
    font-size: 64px;
    font-weight: 400;
    line-height: 1;
    margin-bottom: 16px;
    letter-spacing: 1px;
}

.footer-subscribe__left p {
    font-size: 18px;
    opacity: .78;
    line-height: 1.6;
    max-width: 380px;
}

.subscribe-form {
    width: 100%;
    padding-top: 12px;
}

.subscribe-row {
    display: grid;
    grid-template-columns: 1fr 130px;
    gap: 0;
}

.subscribe-row input {
    height: 46px;
    border: 0;
    background: #f7f3ea;
    color: #222;
    padding: 0 18px;
    font-size: 14px;
}

.subscribe-row input::placeholder {
    color: #aaa;
}

.subscribe-row button {
    height: 46px;
    border: 1px solid rgba(255, 255, 255, .55);
    border-left: 0;
    background: transparent;
    color: #fff;
    font-size: 13px;
    letter-spacing: .5px;
    cursor: pointer;
    transition: background .25s, border-color .25s;
}

.subscribe-row button:hover {
    background: rgba(255, 255, 255, .12);
    border-color: rgba(255, 255, 255, .9);
}

.subscribe-form small {
    display: block;
    margin-top: 14px;
    font-size: 16px;
    line-height: 1.6;
    opacity: .65;
    max-width: 580px;
}

/* footer bottom row */
.footer-bottom {
    display: grid;
    grid-template-columns: 1fr 2fr;
    align-items: end;
    gap: 40px;
}

.footer-logo {
    font-size: 56px;
    font-weight: 400;
    letter-spacing: 18px;
    padding-left: 4px;
    line-height: 1;
}

.footer-links {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 10px;
    justify-self: end;
}

.footer-links__col {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.footer-links a {
    font-size: 24px;
    color: #fff;
    opacity: .88;
    transition: opacity .2s;
}

.footer-links a:hover {
    opacity: .55;
}

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
    .site-header__inner {
        padding: 0 28px;
        gap: 24px;
    }

    .desktop-nav {
        gap: 24px;
    }

    .desktop-nav--right {
        gap: 18px;
    }

    .site-logo {
        font-size: 30px;
        letter-spacing: 12px;
        padding-left: 12px;
    }
}

@media (max-width: 768px) {
    :root {
        --topbar-h: 28px;
        --header-h: 58px;
    }

    .site-topbar {
        grid-template-columns: 1fr;
        padding: 0 16px;
        font-size: 8px;
    }

    .site-topbar__item:nth-child(1),
    .site-topbar__item:nth-child(3) {
        display: none;
    }

    .site-topbar__item:nth-child(2) {
        text-align: center;
    }

    .site-header__inner {
        grid-template-columns: auto 1fr auto;
        padding: 0 18px;
    }

    .mobile-toggle {
        display: flex;
    }

    .desktop-nav--left {
        display: none;
    }

    .desktop-nav--right>a {
        display: none;
    }

    .desktop-nav--right {
        gap: 12px;
    }

    .site-logo {
        justify-self: center;
        font-size: 24px;
        letter-spacing: 10px;
        padding-left: 10px;
    }

    .bhre-footer {
        padding: 52px 28px 40px;
    }

    .footer-subscribe {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-bottom: 56px;
    }

    .footer-subscribe__left h2 {
        font-size: 48px;
    }

    .subscribe-form {
        padding-top: 0;
    }

    .footer-bottom {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .footer-links {
        justify-self: start;
        gap: 32px;
    }
}

@media (max-width: 480px) {
    .footer-subscribe__left h2 {
        font-size: 40px;
    }

    .subscribe-row {
        grid-template-columns: 1fr;
    }

    .subscribe-row button {
        border-left: 1px solid rgba(255, 255, 255, .55);
    }

    .footer-logo {
        font-size: 40px;
        letter-spacing: 14px;
    }

    .footer-links {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}
/* ================================================
   MOBILE RESPONSIVE — TAMBAHAN
   (header mobile nav button + footer font sizes)
================================================ */

/* Mobile nav: search button samain style link */
.mobile-nav button {
    display: block;
    width: 100%;
    padding: 12px 0;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: #636254;
    background: none;
    border: none;
    border-bottom: 1px solid rgba(0,0,0,.06);
    text-align: left;
    font-family: inherit;
    cursor: pointer;
}

/* ── Footer font fix: 24px terlalu besar di mobile ── */
@media (max-width: 768px) {
    .footer-subscribe__left h2   { font-size: 40px; }
    .footer-subscribe__left p    { font-size: 15px; max-width: 100%; }
    .footer-links a              { font-size: 17px; }
    .footer-links__col           { gap: 12px; }
    .subscribe-form small        { font-size: 13px; }
    .footer-logo                 { font-size: 42px; letter-spacing: 14px; }
}

@media (max-width: 480px) {
    .bhre-footer                 { padding: 40px 20px 32px; }
    .footer-subscribe            { margin-bottom: 40px; gap: 20px; }
    .footer-subscribe__left h2   { font-size: 32px; }
    .footer-subscribe__left p    { font-size: 14px; }
    .footer-links a              { font-size: 15px; }
    .footer-links__col           { gap: 10px; }
    .footer-logo                 { font-size: 34px; letter-spacing: 12px; }
    .footer-bottom               { gap: 24px; }
    .subscribe-row input         { font-size: 14px; }
}

@media (max-width: 390px) {
    .bhre-footer                 { padding: 32px 16px 28px; }
    .footer-subscribe__left h2   { font-size: 26px; }
    .footer-links a              { font-size: 14px; }
    .footer-logo                 { font-size: 28px; letter-spacing: 10px; }
    .site-logo                   { font-size: 20px; letter-spacing: 8px; padding-left: 8px; }
    .site-header__inner          { padding: 0 14px; }
}

/* ================================================
   PATCH v2 — Footer subscribe visible + links 2 kolom
================================================ */

/* Footer pastikan di atas showcase (z-index) */
.bhre-footer {
    position: relative;
    z-index: 2;
}

/* Subscribe form: pastikan visible dan tidak collapse */
.footer-subscribe__left,
.subscribe-form {
    position: relative;
    z-index: 1;
}

/* Footer links: 2 kolom di semua ukuran mobile,
   font kecil biar tidak wrap */
@media (max-width: 768px) {
    .footer-links {
        grid-template-columns: 1fr 1fr !important;
        gap: 12px 24px;
    }
    .footer-links a      { font-size: 14px; }
    .footer-links__col   { gap: 10px; }
}

@media (max-width: 480px) {
    .footer-links {
        grid-template-columns: 1fr 1fr !important;
        gap: 8px 16px;
    }
    .footer-links a      { font-size: 13px; letter-spacing: .3px; }
    .footer-links__col   { gap: 9px; }

    /* Subscribe form stacking di mobile kecil */
    .subscribe-row {
        grid-template-columns: 1fr !important;
        gap: 8px;
    }
    .subscribe-row input  { height: 44px; font-size: 13px; }
    .subscribe-row button {
        height: 44px;
        border-top: 1px solid rgba(255,255,255,.55);
    }
}

@media (max-width: 390px) {
    .footer-links {
        grid-template-columns: 1fr 1fr !important;
        gap: 6px 12px;
    }
    .footer-links a      { font-size: 12px; }
    .footer-links__col   { gap: 8px; }
}

/* ================================================
   PATCH v3 — Footer links full width 2 kolom no wrap
================================================ */

@media (max-width: 768px) {
    /* Footer bottom: logo di atas, links full width di bawah */
    .footer-bottom {
        grid-template-columns: 1fr !important;
        gap: 28px;
    }

    /* Links: full width, 2 kolom rata kiri-kanan */
    .footer-links {
        width: 100%;
        justify-self: stretch !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px 20px;
    }

    /* Kolom kanan rata kanan */
    .footer-links__col:last-child {
        justify-self: end;
        align-items: flex-end;
    }

    /* Link: kecil + no wrap */
    .footer-links a {
        font-size: 13px;
        white-space: nowrap;
        letter-spacing: .2px;
    }
    .footer-links__col { gap: 10px; }
}

@media (max-width: 480px) {
    .footer-links {
        width: 100%;
        justify-self: stretch !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px 16px;
    }
    .footer-links__col:last-child {
        justify-self: end;
        align-items: flex-end;
    }
    .footer-links a {
        font-size: 12px;
        white-space: nowrap;
        letter-spacing: .1px;
    }
    .footer-links__col { gap: 9px; }
}

@media (max-width: 390px) {
    .footer-links a {
        font-size: 11px;
        white-space: nowrap;
    }
}

/* ================================================
   MOBILE HEADER ESTETIK — hamburger 3 garis asimetris
================================================ */

/* Override hamburger default */
.mobile-toggle {
    width: 26px !important;
    height: 18px !important;
    gap: 0 !important;
    justify-content: space-between !important;
}

/* 3 garis: panjang 100% > 62% > 34% (editorial asymmetric) */
.mobile-toggle span {
    height: 1px !important;
    background: #8a8977 !important;
    border-radius: 1px !important;
    transition: transform .35s cubic-bezier(.4,0,.2,1),
                opacity   .28s ease,
                width     .35s cubic-bezier(.4,0,.2,1) !important;
    transform-origin: left center !important;
}
.mobile-toggle span:nth-child(1) { width: 100%; }
.mobile-toggle span:nth-child(2) { width: 62%; }
.mobile-toggle span:nth-child(3) { width: 34%; }

/* Animasi jadi X yang elegan saat is-active */
.mobile-toggle.is-active span:nth-child(1) {
    width: 100% !important;
    transform: translateY(8.5px) rotate(38deg) !important;
}
.mobile-toggle.is-active span:nth-child(2) {
    opacity: 0 !important;
    transform: scaleX(0) !important;
}
.mobile-toggle.is-active span:nth-child(3) {
    width: 100% !important;
    transform: translateY(-8.5px) rotate(-38deg) !important;
}

/* Mobile header: logo lebih ramping, spacing lebih enak */
@media (max-width: 768px) {
    .site-header {
        border-bottom: 1px solid rgba(0,0,0,.06) !important;
    }

    .site-header__inner {
        padding: 0 20px !important;
        gap: 0 !important;
    }

    /* Logo: lebih tipis, tracking lebih lebar dan elegan */
    .site-logo {
        font-size: 22px !important;
        letter-spacing: 12px !important;
        padding-left: 12px !important;
        color: #888474 !important;
    }

    /* Search icon kecil, warna selaras */
    .desktop-nav--right .header-icon img {
        width: 17px !important;
        height: 17px !important;
        opacity: .75;
    }

    /* Mobile nav: font lebih ringan, spacing enak */
    .mobile-nav {
        padding: 14px 22px 22px !important;
        background: rgba(244,240,231,.98) !important;
    }
    .mobile-nav a,
    .mobile-nav button {
        padding: 11px 0 !important;
        font-size: 12px !important;
        font-weight: 400 !important;
        letter-spacing: 2px !important;
        color: #7d7c6c !important;
        border-bottom: 1px solid rgba(0,0,0,.04) !important;
    }
    .mobile-nav a:last-of-type {
        border-bottom: none !important;
    }
}


/* \u2500\u2500 MOBILE: tampilkan cart icon di header (sejajar search) \u2500\u2500 */
@media (max-width: 768px) {
    .desktop-nav--right > a.header-cart {
        display: inline-flex !important;
    }
}
