/* ============================================================
   HEIRLOOM GOLD — heirloom.css
   Master stylesheet for all non-homepage pages.

   Palette: Chalk & Carbon
     --carbon  : #0f0f0f   (headlines, nav text, footer bg)
     --ink     : #1a1a1a   (body text)
     --mid     : #666666   (secondary text)
     --muted   : #999999   (captions, labels)
     --red     : #b02a20   (accent — rules, active states only)
     --chalk   : #f5f5f0   (page background)
     --surface : #ffffff   (cards, header, nav)
     --warm    : #ede8e0   (breadcrumb, hover tints)
     --rule    : #e4e4de   (borders, dividers)

   Type:
     Display   : Cinzel (serif, architectural)
     Editorial : Cormorant Garamond (serif italic, refined)
     UI        : Tenor Sans (sans, clean)

   Load order:
     1. Google Fonts (in <head>)
     2. heirloom.css (this file)
     3. Page-specific overrides if needed

   Google Fonts link for <head>:
   <link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500&family=Tenor+Sans&family=Cormorant+Garamond:ital,wght@0,300;0,400;1,300;1,400&display=swap" rel="stylesheet">
   ============================================================ */


/* ── RESET & BASE ────────────────────────────────────────── */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --carbon  : #0f0f0f;
    --ink     : #1a1a1a;
    --mid     : #666666;
    --muted   : #999999;
    --red     : #b02a20;
    --chalk   : #f5f5f0;
    --surface : #ffffff;
    --warm    : #ede8e0;
    --rule    : #e4e4de;

    --ff-display  : 'Cinzel', 'Trajan Pro', Georgia, serif;
    --ff-editorial: 'Cormorant Garamond', Georgia, serif;
    --ff-ui       : 'Tenor Sans', system-ui, sans-serif;

    --max-w       : 1200px;
    --pad-x       : clamp(20px, 5vw, 56px);
    --nav-h       : 50px;    /* desktop nav height */
    --header-h    : 88px;    /* desktop header height */
    --trans       : 180ms ease;
    --radius      : 2px;     /* deliberately tight — not rounded */
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family:            var(--ff-ui);
    font-size:              15px;
    line-height:            1.65;
    color:                  var(--ink);
    background:             var(--chalk);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing:grayscale;
}

body.hg-no-scroll { overflow: hidden; }

a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button { font-family: var(--ff-ui); }
ul, ol { list-style: none; }


/* ── ANNOUNCEMENT BAR ────────────────────────────────────── */
.hg-announce {
    background:     var(--carbon);
    color:          #888;
    font-family:    var(--ff-ui);
    font-size:      11px;
    letter-spacing: .18em;
    text-transform: uppercase;
    text-align:     center;
    padding:        10px var(--pad-x);
    display:        flex;
    align-items:    center;
    justify-content:center;
    gap:            0;
    flex-wrap:      wrap;
}
.hg-announce strong {
    color:      #d0d0d0;
    font-weight:400;
}
.hg-announce-sep {
    margin:  0 14px;
    color:   #333;
    font-size: 10px;
}


/* ── HEADER ──────────────────────────────────────────────── */
.hg-header {
    background:   var(--surface);
    border-bottom:1px solid var(--rule);
    position:     sticky;
    top:          0;
    z-index:      200;
}
.hg-header-inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    height:          var(--header-h);
    max-width:       var(--max-w);
    margin:          0 auto;
    padding:         0 var(--pad-x);
    gap:             24px;
}


/* ── LOGO ────────────────────────────────────────────────── */
.hg-logo {
    display:        flex;
    flex-direction: column;
    gap:            0;
    flex-shrink:    0;
    text-decoration:none;
}
.hg-logo-mark {
    font-family:    var(--ff-display);
    font-size:      clamp(18px, 2.2vw, 26px);
    font-weight:    400;
    color:          var(--carbon);
    letter-spacing: .14em;
    line-height:    1;
    white-space:    nowrap;
}
.hg-logo-rule {
    display:    block;
    width:      100%;
    height:     1px;
    background: var(--red);
    margin:     4px 0 3px;
}
.hg-logo-sub {
    font-family:    var(--ff-ui);
    font-size:      8.5px;
    font-weight:    400;
    letter-spacing: .3em;
    text-transform: uppercase;
    color:          var(--muted);
    white-space:    nowrap;
}


/* ── SEARCH ──────────────────────────────────────────────── */
.hg-search {
    flex:      1;
    max-width: 320px;
    position:  relative;
}
.hg-search form {
    position: relative;
    display:  flex;
    align-items: center;
}
.hg-search-input {
    width:          100%;
    background:     transparent;
    border:         none;
    border-bottom:  1px solid #ccc;
    color:          var(--carbon);
    font-family:    var(--ff-ui);
    font-size:      13px;
    letter-spacing: .06em;
    padding:        8px 30px 8px 0;
    outline:        none;
    transition:     border-color var(--trans);
    -webkit-appearance: none;
}
.hg-search-input:focus          { border-bottom-color: var(--carbon); }
.hg-search-input::placeholder   { color: #bbb; letter-spacing: .1em; }
.hg-search-btn {
    position:   absolute;
    right:      0;
    top:        50%;
    transform:  translateY(-50%);
    background: none;
    border:     none;
    cursor:     pointer;
    color:      #bbb;
    padding:    4px;
    display:    flex;
    align-items:center;
    transition: color var(--trans);
}
.hg-search-btn:hover { color: var(--carbon); }


/* ── HEADER ICONS ────────────────────────────────────────── */
.hg-header-icons {
    display:     flex;
    align-items: center;
    gap:         20px;
    flex-shrink: 0;
}
.hg-icon-btn {
    background: none;
    border:     none;
    cursor:     pointer;
    color:      #aaa;
    padding:    0;
    display:    flex;
    align-items:center;
    transition: color var(--trans);
    position:   relative;
}
.hg-icon-btn:hover        { color: var(--carbon); }
.hg-icon-btn:focus-visible{
    outline:        2px solid var(--red);
    outline-offset: 3px;
    border-radius:  1px;
}

.hg-cart-btn  { position: relative; }
.hg-cart-badge {
    position:        absolute;
    top:             -5px;
    right:           -6px;
    width:           15px;
    height:          15px;
    border-radius:   50%;
    background:      var(--red);
    color:           #fff;
    font-family:     var(--ff-ui);
    font-size:       8px;
    display:         flex;
    align-items:     center;
    justify-content: center;
    pointer-events:  none;
}

/* Hamburger — hidden on desktop */
.hg-menu-btn {
    display:    none;
    background: none;
    border:     none;
    cursor:     pointer;
    color:      #999;
    padding:    4px;
    transition: color var(--trans);
}
.hg-menu-btn:hover { color: var(--carbon); }


/* ── DESKTOP NAV ─────────────────────────────────────────── */
.hg-nav {
    background:    var(--surface);
    border-bottom: 3px solid var(--carbon);
    position:      sticky;
    top:           var(--header-h);
    z-index:       190;
}
.hg-nav-inner {
    display:         flex;
    align-items:     center;
    justify-content: center;
    max-width:       var(--max-w);
    margin:          0 auto;
    padding:         0 var(--pad-x);
}

.hg-nav-item { position: relative; }

.hg-nav-btn {
    display:        flex;
    align-items:    center;
    gap:            5px;
    font-family:    var(--ff-ui);
    font-size:      11px;
    font-weight:    400;
    letter-spacing: .2em;
    text-transform: uppercase;
    color:          var(--mid);
    padding:        17px 24px;
    background:     none;
    border:         none;
    border-bottom:  3px solid transparent;
    margin-bottom:  -3px;
    cursor:         pointer;
    white-space:    nowrap;
    transition:     color var(--trans), border-color var(--trans);
    text-decoration:none;
}
.hg-nav-btn:hover            { color: var(--carbon); }
.hg-nav-item.hg-nav-on .hg-nav-btn {
    color:         var(--carbon);
    border-bottom-color: var(--red);
}
.hg-nav-arr {
    opacity:    .45;
    transition: opacity var(--trans), transform var(--trans);
}
.hg-nav-item[aria-expanded="true"] .hg-nav-arr {
    opacity:   .7;
    transform: rotate(180deg);
}


/* ── MEGA DROPDOWN ───────────────────────────────────────── */
.hg-dropdown {
    position:   absolute;
    top:        calc(100% + 3px);
    left:       50%;
    transform:  translateX(-50%);
    background: var(--surface);
    border:     1px solid var(--rule);
    border-top: 2px solid var(--red);
    box-shadow: 0 8px 32px rgba(0,0,0,.08);
    opacity:    0;
    pointer-events: none;
    transform:  translateX(-50%) translateY(-6px);
    transition: opacity var(--trans), transform var(--trans);
    min-width:  680px;
    z-index:    300;
}
.hg-dropdown--open {
    opacity:        1;
    pointer-events: auto;
    transform:      translateX(-50%) translateY(0);
}
.hg-mega-inner {
    display: flex;
    gap:     0;
    padding: 28px 0;
}
.hg-mega-col {
    flex:    1;
    padding: 0 24px;
}
.hg-mega-col--narrow {
    flex: 0 0 160px;
}
.hg-mega-divider {
    width:      1px;
    background: var(--rule);
    flex-shrink:0;
}
.hg-mega-heading {
    font-family:    var(--ff-ui);
    font-size:      9px;
    font-weight:    400;
    letter-spacing: .28em;
    text-transform: uppercase;
    color:          var(--muted);
    margin-bottom:  12px;
    padding-bottom: 8px;
    border-bottom:  1px solid var(--rule);
}
.hg-mega-group {
    margin-bottom: 16px;
}
.hg-mega-group:last-child { margin-bottom: 0; }

.hg-mega-parent {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      12px;
    font-weight:    400;
    letter-spacing: .08em;
    color:          var(--carbon);
    margin-bottom:  4px;
    transition:     color var(--trans);
}
.hg-mega-parent:hover { color: var(--red); }

.hg-mega-child {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      12px;
    color:          var(--mid);
    padding:        3px 0 3px 10px;
    letter-spacing: .04em;
    transition:     color var(--trans);
    border-left:    1px solid transparent;
}
.hg-mega-child:hover {
    color:        var(--carbon);
    border-left-color: var(--red);
}
.hg-mega-link {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      12px;
    color:          var(--mid);
    padding:        5px 0;
    letter-spacing: .04em;
    transition:     color var(--trans);
}
.hg-mega-link:hover { color: var(--carbon); }


/* ── BREADCRUMB ──────────────────────────────────────────── */
.hg-bc {
    background:    var(--warm);
    border-bottom: 1px solid var(--rule);
    padding:       11px var(--pad-x);
}
.hg-bc-inner {
    max-width: var(--max-w);
    margin:    0 auto;
}
.hg-bc-list {
    display:     flex;
    align-items: center;
    flex-wrap:   wrap;
    gap:         0;
    list-style:  none;
}
.hg-bc-item {
    display:     flex;
    align-items: center;
    gap:         8px;
}
.hg-bc-link {
    font-family:    var(--ff-ui);
    font-size:      11px;
    letter-spacing: .06em;
    color:          #888;
    text-decoration:none;
    transition:     color var(--trans);
}
.hg-bc-link:hover        { color: var(--carbon); }
.hg-bc-sep {
    color:     #ccc;
    font-size: 11px;
    margin:    0 2px;
}
.hg-bc-current {
    font-family:    var(--ff-ui);
    font-size:      11px;
    letter-spacing: .06em;
    color:          var(--carbon);
    font-weight:    400;
}


/* ── PAGE BODY WRAPPER ───────────────────────────────────── */
.hg-page {
    max-width: var(--max-w);
    margin:    0 auto;
    padding:   0 var(--pad-x);
}


/* ── PAGE HEADER BLOCK ───────────────────────────────────── */
/* Split layout: H1 + meta left · lead para right · full-width intro below */
.hg-page-hd {
    padding:  clamp(40px, 5vw, 72px) 0 0;
}
.hg-page-hd-top {
    display:               grid;
    grid-template-columns: 1fr 1px 1fr;
    gap:                   0 clamp(24px, 4vw, 56px);
    align-items:           start;
    padding-bottom:        32px;
}
.hg-page-hd-divider {
    background: var(--rule);
    width:      1px;
    align-self: stretch;
}
.hg-eyebrow {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .32em;
    text-transform: uppercase;
    color:          var(--red);
    margin-bottom:  14px;
}
.hg-h1 {
    font-family:    var(--ff-display);
    font-size:      clamp(26px, 3.5vw, 40px);
    font-weight:    400;
    color:          var(--carbon);
    line-height:    1.2;
    letter-spacing: .04em;
    margin-bottom:  0;
}
.hg-h1-rule {
    width:      40px;
    height:     2px;
    background: var(--red);
    margin:     18px 0 20px;
}

/* Meta strip (piece count, price range, eras) */
.hg-meta-strip {
    display:     flex;
    align-items: center;
    gap:         24px;
    flex-wrap:   wrap;
}
.hg-meta-item {
    display:        flex;
    flex-direction: column;
    gap:            3px;
}
.hg-meta-label {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .2em;
    text-transform: uppercase;
    color:          #bbb;
}
.hg-meta-val {
    font-family:    var(--ff-display);
    font-size:      clamp(13px, 1.4vw, 16px);
    color:          var(--carbon);
    letter-spacing: .06em;
}
.hg-meta-div {
    width:      1px;
    height:     28px;
    background: var(--rule);
    flex-shrink:0;
}

/* Right side: lead paragraph */
.hg-page-hd-right { padding-top: 2px; }
.hg-intro-lead {
    font-family:    var(--ff-editorial);
    font-size:      clamp(16px, 1.6vw, 19px);
    font-weight:    300;
    font-style:     italic;
    color:          #333;
    line-height:    1.75;
    letter-spacing: .01em;
}

/* Full-width two-column intro below the split header */
.hg-page-hd-intro {
    padding:       clamp(20px, 3vw, 32px) 0 clamp(32px, 4vw, 52px);
    border-top:    1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    margin-bottom: clamp(24px, 3vw, 44px);
    column-count:  2;
    column-gap:    clamp(24px, 4vw, 56px);
    column-rule:   1px solid var(--rule);
}
.hg-intro-body {
    font-family:    var(--ff-ui);
    font-size:      13px;
    color:          #777;
    line-height:    1.85;
    letter-spacing: .03em;
}
.hg-intro-body p + p { margin-top: 12px; }

/* Single-column variant (for pages without the split header) */
.hg-intro-single {
    max-width:     660px;
    margin:        0 auto clamp(32px,4vw,52px);
    text-align:    center;
}
.hg-intro-single .hg-intro-lead  { display: block; margin-bottom: 14px; }
.hg-intro-single .hg-intro-body  { color: #666; }


/* ── TOOLBAR (count + sort) ──────────────────────────────── */
.hg-toolbar {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    flex-wrap:       wrap;
    gap:             12px;
    margin-bottom:   clamp(18px, 2.5vw, 32px);
}
.hg-count {
    font-family:    var(--ff-ui);
    font-size:      12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color:          #aaa;
}
.hg-count strong {
    color:      var(--carbon);
    font-weight:400;
}
.hg-sort-tabs {
    display: flex;
    gap:     0;
}
.hg-sort-tab {
    font-family:    var(--ff-ui);
    font-size:      10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          #999;
    padding:        8px 16px;
    cursor:         pointer;
    border:         1px solid var(--rule);
    border-right:   none;
    background:     var(--surface);
    transition:     all var(--trans);
    white-space:    nowrap;
}
.hg-sort-tab:first-child { border-radius: var(--radius) 0 0 var(--radius); }
.hg-sort-tab:last-child  {
    border-right:   1px solid var(--rule);
    border-radius:  0 var(--radius) var(--radius) 0;
}
.hg-sort-tab:hover       { background: var(--warm); color: var(--carbon); }
.hg-sort-tab.hg-sort-on  {
    background:    var(--carbon);
    border-color:  var(--carbon);
    color:         var(--chalk);
}


/* ── PRODUCT GRID ────────────────────────────────────────── */
.hg-grid {
    display:               grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap:                   1px;
    background:            var(--rule);
    margin-bottom:         clamp(48px, 6vw, 96px);
}

/* ── PRODUCT CARD ────────────────────────────────────────── */
.hg-card {
    background:     var(--surface);
    display:        flex;
    flex-direction: column;
    cursor:         pointer;
    transition:     background var(--trans);
    text-decoration:none;
    color:          inherit;
}
.hg-card:hover            { background: #fafafa; }
.hg-card:focus-visible    {
    outline:        2px solid var(--red);
    outline-offset: -2px;
}

/* Image */
.hg-card-img {
    aspect-ratio:  4/3;
    background:    #1a1a1a;
    position:      relative;
    overflow:      hidden;
}
.hg-card-img img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
    transition: transform 450ms ease;
    filter:     grayscale(6%) contrast(1.03);
}
.hg-card:hover .hg-card-img img { transform: scale(1.04); }

/* Era tag over image */
.hg-card-era {
    position:   absolute;
    bottom:     0; left: 0; right: 0;
    background: rgba(15,15,15,.72);
    padding:    7px 14px;
    display:    flex;
    align-items:center;
    justify-content:space-between;
}
.hg-card-era-name {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color:          #ccc;
}
.hg-card-era-date {
    font-family: var(--ff-editorial);
    font-size:   12px;
    font-style:  italic;
    color:       #888;
}

/* Card body */
.hg-card-body {
    padding:        18px 20px 22px;
    flex:           1;
    display:        flex;
    flex-direction: column;
}
.hg-card-title {
    font-family:    var(--ff-editorial);
    font-size:      clamp(16px, 1.5vw, 19px);
    font-weight:    400;
    color:          var(--carbon);
    line-height:    1.3;
    margin-bottom:  6px;
    letter-spacing: .01em;
}
.hg-card-spec {
    font-family:    var(--ff-ui);
    font-size:      11px;
    letter-spacing: .08em;
    color:          #aaa;
    flex:           1;
    padding-bottom: 14px;
}
.hg-card-foot {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    border-top:      1px solid var(--rule);
    padding-top:     14px;
    margin-top:      4px;
}
.hg-card-price {
    font-family:    var(--ff-display);
    font-size:      clamp(17px, 1.6vw, 21px);
    font-weight:    400;
    color:          var(--carbon);
    letter-spacing: .06em;
}
.hg-card-view {
    font-family:     var(--ff-ui);
    font-size:       10px;
    letter-spacing:  .16em;
    text-transform:  uppercase;
    color:           var(--red);
    border-bottom:   1px solid rgba(176,42,32,.3);
    padding-bottom:  1px;
    text-decoration: none;
    transition:      color var(--trans), border-color var(--trans);
}
.hg-card-view:hover {
    color:        var(--carbon);
    border-color: var(--carbon);
}

/* Empty state */
.hg-empty {
    grid-column: 1 / -1;
    text-align:  center;
    padding:     64px 24px;
    color:       #aaa;
}
.hg-empty h2 {
    font-family:    var(--ff-display);
    font-size:      22px;
    font-weight:    400;
    color:          var(--carbon);
    margin-bottom:  10px;
    letter-spacing: .04em;
}


/* ── FILTER SIDEBAR (category pages) ────────────────────── */
.hg-layout {
    display:     flex;
    gap:         clamp(20px, 3vw, 40px);
    align-items: flex-start;
    padding:     0 0 clamp(48px,6vw,96px);
}
.hg-sidebar {
    flex:          0 0 230px;
    width:         230px;
    background:    var(--surface);
    border:        1px solid var(--rule);
    padding:       20px 18px 22px;
    position:      sticky;
    top:           calc(var(--header-h) + var(--nav-h) + 12px);
}
.hg-main { flex: 1 1 0; min-width: 0; }

.hg-sidebar-hd {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    margin-bottom:   16px;
    padding-bottom:  12px;
    border-bottom:   1px solid var(--rule);
}
.hg-sidebar-title {
    font-family:    var(--ff-display);
    font-size:      14px;
    font-weight:    400;
    color:          var(--carbon);
    letter-spacing: .08em;
}
.hg-sidebar-clear {
    background:      none;
    border:          none;
    font-family:     var(--ff-ui);
    font-size:       11px;
    color:           var(--red);
    cursor:          pointer;
    text-decoration: underline;
    padding:         0;
    transition:      color var(--trans);
}
.hg-sidebar-clear:hover { color: var(--carbon); }

.hg-filter-group {
    padding:       12px 0;
    border-bottom: 1px solid var(--rule);
}
.hg-filter-group:last-of-type { border-bottom: none; }
.hg-filter-label {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .24em;
    text-transform: uppercase;
    color:          var(--muted);
    margin-bottom:  10px;
}

/* Checkbox filters */
.hg-filter-list { display: flex; flex-direction: column; gap: 6px; }
.hg-filter-check {
    display:     flex;
    align-items: center;
    gap:         8px;
    cursor:      pointer;
    font-size:   13px;
    color:       var(--ink);
    user-select: none;
}
.hg-filter-check input[type="checkbox"] {
    position: absolute; opacity: 0; width: 0; height: 0;
}
.hg-filter-box {
    flex-shrink:  0;
    width:        15px;
    height:       15px;
    border:       1px solid #ccc;
    background:   var(--chalk);
    position:     relative;
    transition:   border-color var(--trans), background var(--trans);
}
.hg-filter-check input:checked + .hg-filter-box {
    background:   var(--carbon);
    border-color: var(--carbon);
}
.hg-filter-check input:checked + .hg-filter-box::after {
    content:     '';
    position:    absolute;
    left:        4px; top: 1px;
    width:       5px; height: 9px;
    border:      1.5px solid #fff;
    border-top:  none;
    border-left: none;
    transform:   rotate(45deg);
}
.hg-filter-check:hover .hg-filter-box { border-color: var(--carbon); }
.hg-filter-check input:focus-visible + .hg-filter-box {
    outline:        2px solid var(--red);
    outline-offset: 2px;
}
.hg-filter-check-label { flex: 1; line-height: 1.3; }
.hg-filter-count {
    font-size:  11px;
    color:      #bbb;
    min-width:  24px;
    text-align: right;
}

/* Price range */
.hg-price-track {
    position:   relative;
    height:     3px;
    background: var(--rule);
    margin:     20px 0 8px;
}
.hg-price-fill {
    position:      absolute;
    height:        100%;
    background:    var(--carbon);
    pointer-events:none;
}
.hg-price-input {
    position:   absolute;
    top:        50%;
    transform:  translateY(-50%);
    width:      100%;
    height:     100%;
    opacity:    0;
    cursor:     pointer;
    margin:     0;
    -webkit-appearance: none;
    appearance: none;
    z-index:    2;
}
.hg-price-labels {
    display:         flex;
    justify-content: space-between;
    font-family:     var(--ff-ui);
    font-size:       12px;
    color:           var(--ink);
    margin-top:      16px;
}

/* Mobile sidebar close */
.hg-sidebar-close {
    display:       none;
    width:         100%;
    margin-top:    18px;
    padding:       10px;
    background:    var(--carbon);
    color:         var(--chalk);
    border:        none;
    font-family:   var(--ff-ui);
    font-size:     12px;
    letter-spacing:.1em;
    text-transform:uppercase;
    cursor:        pointer;
}

/* Active filter chips */
.hg-active-filters {
    display:     flex;
    flex-wrap:   wrap;
    gap:         6px;
    margin-bottom:14px;
}
.hg-active-chip {
    display:       inline-flex;
    align-items:   center;
    gap:           5px;
    padding:       4px 10px;
    background:    var(--warm);
    border:        1px solid #d8d4cc;
    font-family:   var(--ff-ui);
    font-size:     11px;
    color:         var(--carbon);
    white-space:   nowrap;
}
.hg-chip-remove {
    background: none;
    border:     none;
    color:      var(--mid);
    cursor:     pointer;
    font-size:  14px;
    line-height:1;
    padding:    0;
    transition: color var(--trans);
}
.hg-chip-remove:hover { color: var(--red); }

/* Filter toggle btn (mobile) */
.hg-filter-toggle {
    display:        none;
    align-items:    center;
    gap:            6px;
    padding:        8px 14px;
    background:     var(--surface);
    border:         1px solid var(--rule);
    font-family:    var(--ff-ui);
    font-size:      11px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--carbon);
    cursor:         pointer;
    transition:     border-color var(--trans);
}
.hg-filter-toggle:hover     { border-color: var(--carbon); }
.hg-filter-badge {
    background:      var(--red);
    color:           #fff;
    font-size:       9px;
    padding:         2px 5px;
    border-radius:   1px;
    font-weight:     400;
}
.hg-mob-overlay-filter {
    position:   fixed;
    inset:      0;
    background: rgba(0,0,0,.4);
    z-index:    198;
}


/* ── MOBILE NAV DRAWER ───────────────────────────────────── */
.hg-mobile-nav {
    position:   fixed;
    top:        0; right: 0; bottom: 0;
    width:      min(340px, 90vw);
    background: var(--surface);
    border-left:1px solid var(--rule);
    z-index:    400;
    overflow-y: auto;
    transform:  translateX(100%);
    transition: transform 280ms ease;
}
.hg-mobile-nav--open { transform: translateX(0); }
.hg-mobile-nav-inner { padding: 24px 24px 48px; }

.hg-mobile-close {
    display:    flex;
    align-items:center;
    background: none;
    border:     none;
    cursor:     pointer;
    color:      #aaa;
    margin-bottom:24px;
    padding:    0;
    transition: color var(--trans);
}
.hg-mobile-close:hover { color: var(--carbon); }

.hg-mob-top-link {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color:          var(--mid);
    padding:        14px 0;
    border-bottom:  1px solid var(--rule);
    transition:     color var(--trans);
}
.hg-mob-top-link:hover { color: var(--carbon); }

.hg-mob-section  { border-bottom: 1px solid var(--rule); }
.hg-mob-toggle {
    display:        flex;
    align-items:    center;
    justify-content:space-between;
    width:          100%;
    font-family:    var(--ff-ui);
    font-size:      12px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color:          var(--mid);
    padding:        14px 0;
    background:     none;
    border:         none;
    cursor:         pointer;
    transition:     color var(--trans);
}
.hg-mob-toggle:hover,
.hg-mob-toggle--open { color: var(--carbon); }
.hg-mob-arr { transition: transform 250ms ease; }
.hg-mob-toggle--open .hg-mob-arr { transform: rotate(180deg); }

.hg-mob-panel  { padding-bottom: 12px; }
.hg-mob-group  { margin-bottom: 16px; }
.hg-mob-group-label {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .24em;
    text-transform: uppercase;
    color:          var(--muted);
    margin-bottom:  8px;
    padding-left:   12px;
}
.hg-mob-link {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      13px;
    color:          var(--mid);
    padding:        6px 0 6px 12px;
    border-left:    1px solid transparent;
    letter-spacing: .03em;
    transition:     color var(--trans), border-color var(--trans);
}
.hg-mob-link:hover {
    color:        var(--carbon);
    border-left-color: var(--red);
}

.hg-mob-overlay {
    position:   fixed;
    inset:      0;
    background: rgba(0,0,0,.4);
    z-index:    399;
}


/* ── FOOTER ──────────────────────────────────────────────── */
.hg-footer        { background: var(--carbon); }
.hg-footer-rule   { height: 3px; background: var(--red); }
.hg-footer-body {
    max-width: var(--max-w);
    margin:    0 auto;
    display:   grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap:       clamp(24px, 4vw, 56px);
    padding:   clamp(36px,5vw,56px) var(--pad-x) clamp(28px,4vw,48px);
}
.hg-footer-brand { display: flex; flex-direction: column; gap: 0; }

.hg-footer-logo       { text-decoration: none; display: block; }
.hg-footer-logo-mark  {
    font-family:    var(--ff-display);
    font-size:      clamp(16px, 1.8vw, 20px);
    color:          var(--chalk);
    letter-spacing: .14em;
    line-height:    1;
}
.hg-footer-logo-rule  {
    display:    block;
    width:      100%;
    height:     1px;
    background: var(--red);
    margin:     5px 0 4px;
}
.hg-footer-logo-sub   {
    font-family:    var(--ff-ui);
    font-size:      8px;
    letter-spacing: .28em;
    text-transform: uppercase;
    color:          #3a3a3a;
}
.hg-footer-strapline {
    font-family:  var(--ff-editorial);
    font-size:    14px;
    font-style:   italic;
    font-weight:  300;
    color:        #555;
    line-height:  1.7;
    margin-top:   14px;
    max-width:    220px;
}
.hg-footer-socials {
    display:   flex;
    flex-wrap: wrap;
    gap:       6px;
    margin-top:18px;
}
.hg-social-link {
    font-family:    var(--ff-ui);
    font-size:      9px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color:          #444;
    border:         1px solid #1e1e1e;
    padding:        5px 10px;
    text-decoration:none;
    transition:     color var(--trans), border-color var(--trans);
}
.hg-social-link:hover { color: #ccc; border-color: #555; }

.hg-whatsapp-btn {
    display:        inline-flex;
    align-items:    center;
    gap:            8px;
    margin-top:     16px;
    font-family:    var(--ff-ui);
    font-size:      10px;
    letter-spacing: .14em;
    text-transform: uppercase;
    color:          var(--chalk);
    background:     #1a3a1a;
    border:         1px solid #2a4a2a;
    padding:        9px 16px;
    text-decoration:none;
    transition:     background var(--trans);
    width:          fit-content;
}
.hg-whatsapp-btn:hover { background: #243a24; }

.hg-footer-col h2.hg-footer-heading {
    font-family:    var(--ff-ui);
    font-size:      9px;
    font-weight:    400;
    letter-spacing: .26em;
    text-transform: uppercase;
    color:          #3a3a3a;
    margin-bottom:  14px;
    padding-bottom: 10px;
    border-bottom:  1px solid #1a1a1a;
}
.hg-footer-link {
    display:        block;
    font-family:    var(--ff-ui);
    font-size:      12px;
    color:          #4a4a4a;
    margin-bottom:  9px;
    text-decoration:none;
    letter-spacing: .03em;
    transition:     color var(--trans);
}
.hg-footer-link:hover { color: #ccc; }

.hg-footer-bottom {
    border-top: 1px solid #181818;
    max-width:  var(--max-w);
    margin:     0 auto;
    padding:    18px var(--pad-x);
    display:    flex;
    justify-content: space-between;
    align-items:center;
    flex-wrap:  wrap;
    gap:        8px;
}
.hg-footer-bottom span {
    font-family:    var(--ff-ui);
    font-size:      10px;
    letter-spacing: .1em;
    color:          #333;
}


/* ── UTILITY ─────────────────────────────────────────────── */
.sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; overflow: hidden; clip: rect(0,0,0,0);
    white-space: nowrap; border: 0;
}
.link-btn {
    background: none; border: none;
    font-family: var(--ff-ui); font-size: inherit;
    color: var(--red); cursor: pointer;
    text-decoration: underline; padding: 0;
}


/* ================================================================
   RESPONSIVE
   ================================================================ */

/* ── Large desktop ── */
@media (min-width: 1100px) {
    .hg-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ── Tablet ── */
@media (max-width: 899px) {

    /* Hide desktop nav, show hamburger */
    .hg-nav            { display: none; }
    .hg-menu-btn       { display: flex; }

    /* Header tightens */
    :root              { --header-h: 68px; }
    .hg-logo-mark      { font-size: 20px; }

    /* Search moves to second row */
    .hg-header-inner   { flex-wrap: wrap; height: auto; padding: 14px var(--pad-x); gap: 12px; }
    .hg-search         { order: 3; max-width: 100%; flex-basis: 100%; margin: 0; }

    /* Page header: stack instead of split */
    .hg-page-hd-top    {
        grid-template-columns: 1fr;
        gap: 20px 0;
    }
    .hg-page-hd-divider { display: none; }
    .hg-page-hd-intro  { column-count: 1; }

    /* Filter sidebar becomes bottom drawer */
    .hg-layout         { display: block; }
    .hg-filter-toggle  { display: inline-flex; }
    .hg-sidebar {
        position:      fixed;
        bottom:        0; left: 0; right: 0;
        width:         100%;
        max-height:    80vh;
        overflow-y:    auto;
        z-index:       300;
        border-radius: 0;
        border-top:    1px solid var(--rule);
        transform:     translateY(100%);
        transition:    transform 260ms ease;
    }
    .hg-sidebar.is-open    { transform: translateY(0); }
    .hg-sidebar-close      { display: block; }

    /* Footer: 2 columns */
    .hg-footer-body    {
        grid-template-columns: 1fr 1fr;
        gap: 32px 24px;
    }
    .hg-footer-brand   { grid-column: 1 / -1; }
    .hg-footer-strapline { max-width: 100%; }
}

/* ── Mobile ── */
@media (max-width: 640px) {

    .hg-announce { font-size: 10px; gap: 0; flex-direction: column; gap: 4px; }
    .hg-announce-sep { display: none; }

    .hg-grid    { grid-template-columns: repeat(2, 1fr); }

    .hg-card-body  { padding: 12px 14px 16px; }
    .hg-card-title { font-size: 15px; }
    .hg-card-price { font-size: 16px; }
    .hg-card-img   { aspect-ratio: 1/1; }

    .hg-h1        { font-size: clamp(22px, 7vw, 32px); }
    .hg-intro-lead{ font-size: 15px; }

    .hg-footer-body {
        grid-template-columns: 1fr 1fr;
        gap: 24px 16px;
    }
    .hg-footer-bottom { flex-direction: column; align-items: flex-start; gap: 4px; }

    .hg-sort-tabs .hg-sort-tab { padding: 7px 10px; font-size: 9px; }
}

/* ── Very small ── */
@media (max-width: 380px) {
    .hg-grid { grid-template-columns: 1fr; }
}
