/* ============================================================
   GoldHub — Design System
   Direction: mobile-first fintech app. Light canvas, white cards,
   one dark hero card, big tabular numerals, saturated stat tiles.
   ============================================================ */

/* ---------- 1. TOKENS ---------- */
:root{
  /* canvas + surfaces */
  --gh-bg:#EDF1F7;
  --gh-bg-2:#F6F8FB;
  --gh-card:#FFFFFF;
  --gh-ink:#141720;          /* hero dark card + primary text */
  --gh-ink-2:#1E222C;

  /* text */
  --gh-tx:#141720;
  --gh-tx-2:#5A6376;
  --gh-tx-3:#8D96A8;
  --gh-on-dark:#F4F6FA;
  --gh-on-dark-2:#A3ACBE;

  /* brand */
  --gh-gold:#E8A33D;
  --gh-gold-2:#C9821F;
  --gh-gold-soft:#FDF3E3;

  /* market */
  --gh-up:#12A575;
  --gh-up-soft:#E4F6EF;
  --gh-down:#EF5B4C;
  --gh-down-soft:#FDECEA;

  /* karat tiles — energy borrowed from ref #2, desaturated for long reading */
  --gh-t1:#5B3FA8;  --gh-t1-s:#EFEAF9;
  --gh-t2:#EF5B4C;  --gh-t2-s:#FDECEA;
  --gh-t3:#E8A33D;  --gh-t3-s:#FDF3E3;
  --gh-t4:#12A575;  --gh-t4-s:#E4F6EF;
  --gh-t5:#2B9FC0;  --gh-t5-s:#E5F3F8;
  --gh-t6:#D9557F;  --gh-t6-s:#FBEBF1;

  /* lines */
  --gh-line:#E3E8F0;
  --gh-line-2:#D3DAE6;
  --gh-line-dark:#2A2F3C;

  /* shape */
  --gh-r-xl:24px;
  --gh-r-lg:18px;
  --gh-r-md:14px;
  --gh-r-sm:10px;
  --gh-pill:999px;

  /* elevation */
  --gh-sh-1:0 1px 2px rgba(20,23,32,.04), 0 2px 8px rgba(20,23,32,.04);
  --gh-sh-2:0 2px 4px rgba(20,23,32,.04), 0 8px 24px rgba(20,23,32,.07);
  --gh-sh-3:0 4px 8px rgba(20,23,32,.06), 0 16px 40px rgba(20,23,32,.10);
  --gh-sh-dark:0 8px 32px rgba(20,23,32,.24);

  /* rhythm */
  --gh-gap:14px;
  --gh-pad:18px;
  --gh-shell:1120px;

  /* type */
  --gh-font:'Plus Jakarta Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --gh-num:'Plus Jakarta Sans',ui-monospace,monospace;
}

/* ---------- 2. RESET ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:78px}
body{margin:0;background:var(--gh-bg);color:var(--gh-tx);font-family:var(--gh-font);
  font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none;padding:0}
h1,h2,h3,h4,h5,p,figure,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2.5px solid var(--gh-gold);outline-offset:2px;border-radius:4px}
::selection{background:var(--gh-gold);color:#fff}

/* numerals: always tabular so prices don't jitter on tick */
.gh-num,.gh-price,.gh-stat__n,.gh-tile__n,table td.num{
  font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:-.015em}

/* ---------- 3. LAYOUT ---------- */
.gh-shell{width:100%;max-width:var(--gh-shell);margin-inline:auto;padding-inline:16px}
.gh-main{padding-block:16px 40px}
.gh-stack>*+*{margin-top:var(--gh-gap)}
.gh-sec{margin-top:26px}
.gh-sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:12px;padding-inline:2px}
.gh-sec__title{font-size:19px;font-weight:800;letter-spacing:-.02em;min-width:0}
.gh-sec__link{font-size:13px;font-weight:600;color:var(--gh-tx-3);flex-shrink:0;white-space:nowrap}
.gh-sec__link:hover{color:var(--gh-gold-2)}

/* ---------- 4. CARD ---------- */
.gh-card{background:var(--gh-card);border-radius:var(--gh-r-xl);padding:var(--gh-pad);box-shadow:var(--gh-sh-1)}
.gh-card--flat{box-shadow:none;border:1px solid var(--gh-line)}
.gh-card--dark{background:var(--gh-ink);color:var(--gh-on-dark);box-shadow:var(--gh-sh-dark)}
.gh-card--dark .gh-card__label{color:var(--gh-on-dark-2)}

/* ---------- 5. HEADER ---------- */
.gh-head{position:sticky;top:0;z-index:60;background:rgba(237,241,247,.86);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .2s,background .2s}
.gh-head.is-stuck{border-bottom-color:var(--gh-line);background:rgba(237,241,247,.95)}
.gh-head__bar{display:flex;align-items:center;gap:12px;height:62px}
.gh-brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:17px;letter-spacing:-.03em;flex-shrink:0}
.gh-brand__mark{width:32px;height:32px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(145deg,var(--gh-gold) 0%,var(--gh-gold-2) 100%);
  display:grid;place-items:center;color:#fff;font-size:15px;font-weight:800;
  box-shadow:0 2px 8px rgba(232,163,61,.4)}
.gh-head__spacer{flex:1}
.gh-iconbtn{width:38px;height:38px;border-radius:50%;background:var(--gh-card);display:grid;place-items:center;
  box-shadow:var(--gh-sh-1);flex-shrink:0;transition:transform .15s,box-shadow .15s}
.gh-iconbtn:hover{transform:translateY(-1px);box-shadow:var(--gh-sh-2)}
.gh-iconbtn svg{width:17px;height:17px;stroke:var(--gh-tx);stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
.gh-iconbtn--live{position:relative}
.gh-iconbtn--live::after{content:'';position:absolute;top:7px;right:7px;width:7px;height:7px;
  border-radius:50%;background:var(--gh-up);box-shadow:0 0 0 2px var(--gh-card)}

/* desktop nav */
.gh-nav{display:none}
.gh-nav ul{display:flex;gap:2px}
.gh-nav a{display:block;padding:8px 13px;font-size:14px;font-weight:600;color:var(--gh-tx-2);
  border-radius:var(--gh-pill);transition:.15s}
.gh-nav a:hover{color:var(--gh-tx);background:rgba(255,255,255,.7)}
.gh-nav .current-menu-item>a{color:var(--gh-tx);background:var(--gh-card);box-shadow:var(--gh-sh-1)}

/* mobile drawer */
.gh-drawer{position:fixed;inset:0;z-index:100;background:rgba(20,23,32,.4);opacity:0;visibility:hidden;
  transition:opacity .25s,visibility .25s;backdrop-filter:blur(3px)}
.gh-drawer.is-open{opacity:1;visibility:visible}
.gh-drawer__panel{position:absolute;inset-block:0;inset-inline-end:0;width:min(84vw,320px);
  background:var(--gh-bg-2);padding:20px 18px;overflow-y:auto;
  transform:translateX(100%);transition:transform .28s cubic-bezier(.32,.72,0,1)}
.gh-drawer.is-open .gh-drawer__panel{transform:none}
.gh-drawer__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}
.gh-drawer nav a{display:block;padding:13px 14px;border-radius:var(--gh-r-md);font-weight:600;font-size:15px;
  color:var(--gh-tx);transition:background .15s}
.gh-drawer nav a:hover{background:var(--gh-card)}
.gh-drawer .current-menu-item>a{background:var(--gh-card);box-shadow:var(--gh-sh-1)}

/* ---------- 6. HERO PRICE CARD ---------- */
.gh-hero{padding:22px 20px 20px;position:relative;overflow:hidden}
.gh-hero::before{content:'';position:absolute;width:230px;height:230px;border-radius:50%;
  top:-120px;right:-70px;background:radial-gradient(circle,rgba(232,163,61,.28),transparent 68%);pointer-events:none}
.gh-hero__top{display:flex;align-items:center;justify-content:space-between;gap:12px;position:relative}
.gh-hero__asset{display:flex;align-items:center;gap:10px}
.gh-hero__ring{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;
  background:linear-gradient(145deg,var(--gh-gold),var(--gh-gold-2));color:#fff;font-weight:800;font-size:12px}
.gh-hero__name{display:inline-block;font-size:14px;font-weight:700;line-height:1.25}
.gh-hero__sym{font-size:11.5px;color:var(--gh-on-dark-2);font-weight:600;letter-spacing:.04em}
.gh-live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.07em;
  padding:5px 10px;border-radius:var(--gh-pill);background:rgba(18,165,117,.16);color:#4ADCA6}
.gh-live__dot{width:6px;height:6px;border-radius:50%;background:#4ADCA6;animation:ghPulse 2s ease-in-out infinite}
@keyframes ghPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}

.gh-hero__price{margin-top:18px;display:flex;align-items:flex-start;gap:3px;position:relative}
.gh-hero__cur{font-size:23px;font-weight:700;color:var(--gh-on-dark-2);margin-top:7px}
.gh-price{font-size:clamp(38px,11vw,52px);font-weight:800;line-height:1;letter-spacing:-.035em}
.gh-price__dec{font-size:.55em;font-weight:700;color:var(--gh-on-dark-2);align-self:flex-start;margin-top:.28em}
.gh-hero__meta{display:flex;align-items:center;gap:10px;margin-top:11px;flex-wrap:wrap;position:relative}
.gh-chg{display:inline-flex;align-items:center;gap:5px;font-size:13.5px;font-weight:700;
  padding:5px 11px;border-radius:var(--gh-pill)}
.gh-chg--up{background:rgba(18,165,117,.16);color:#4ADCA6}
.gh-chg--down{background:rgba(239,91,76,.16);color:#FF8B7E}
.gh-chg--flat{background:rgba(163,172,190,.14);color:var(--gh-on-dark-2)}
.gh-hero__unit{font-size:12.5px;color:var(--gh-on-dark-2);font-weight:600}

.gh-spark{margin-top:16px;height:66px;position:relative}
.gh-spark svg{width:100%;height:100%;overflow:visible}

.gh-ranges{display:flex;gap:5px;margin-top:14px;overflow-x:auto;scrollbar-width:none;position:relative}
.gh-ranges::-webkit-scrollbar{display:none}
.gh-range{flex:1;min-width:44px;padding:8px 4px;border-radius:var(--gh-r-sm);font-size:12px;font-weight:700;
  color:var(--gh-on-dark-2);background:rgba(255,255,255,.05);transition:.16s;text-align:center}
.gh-range:hover{background:rgba(255,255,255,.1);color:var(--gh-on-dark)}
.gh-range.is-on{background:var(--gh-card);color:var(--gh-ink)}

.gh-hero__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;
  padding-top:13px;border-top:1px solid var(--gh-line-dark);position:relative}
.gh-hero__stamp{font-size:11.5px;color:var(--gh-on-dark-2);font-weight:600}
.gh-hero__src{font-size:11px;color:var(--gh-on-dark-2);opacity:.75}
.gh-hero__src a{text-decoration:underline;text-underline-offset:2px}

/* ---------- 7. UNIT STRIP ---------- */
.gh-units{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--gh-line);
  border-radius:var(--gh-r-lg);overflow:hidden;box-shadow:var(--gh-sh-1)}
.gh-unit{background:var(--gh-card);padding:13px 10px;text-align:center}
.gh-unit__n{font-size:15px;font-weight:800;letter-spacing:-.025em;white-space:nowrap}
.gh-unit__l{font-size:10.5px;color:var(--gh-tx-3);font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;margin-top:3px}

/* ---------- 8. KARAT TILES ---------- */
.gh-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gh-gap)}
.gh-tile{border-radius:var(--gh-r-lg);padding:15px 15px 14px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;min-height:112px;
  transition:transform .18s cubic-bezier(.32,.72,0,1),box-shadow .18s}
.gh-tile:hover{transform:translateY(-3px);box-shadow:var(--gh-sh-2)}
.gh-tile__k{font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;opacity:.9}
.gh-tile__n{font-size:25px;font-weight:800;line-height:1.05;letter-spacing:-.03em;margin-top:auto}
.gh-tile__u{font-size:11.5px;font-weight:700;opacity:.8;margin-top:2px}
.gh-tile__pct{position:absolute;top:13px;right:14px;font-size:10.5px;font-weight:800;opacity:.55}
.gh-tile--solid{color:#fff}
.gh-tile--1{background:var(--gh-t1)} .gh-tile--2{background:var(--gh-t2)}
.gh-tile--3{background:var(--gh-t3)} .gh-tile--4{background:var(--gh-t4)}
.gh-tile--5{background:var(--gh-t5)} .gh-tile--6{background:var(--gh-t6)}
.gh-tile--soft-1{background:var(--gh-t1-s);color:var(--gh-t1)}
.gh-tile--soft-2{background:var(--gh-t2-s);color:var(--gh-t2)}
.gh-tile--soft-3{background:var(--gh-t3-s);color:var(--gh-gold-2)}
.gh-tile--soft-4{background:var(--gh-t4-s);color:var(--gh-t4)}
.gh-tile--soft-5{background:var(--gh-t5-s);color:var(--gh-t5)}
.gh-tile--soft-6{background:var(--gh-t6-s);color:var(--gh-t6)}

/* ---------- 9. SEARCH / LOCATOR ---------- */
.gh-locate{background:linear-gradient(150deg,#FFF 0%,var(--gh-gold-soft) 130%)}
.gh-locate__t{font-size:17px;font-weight:800;letter-spacing:-.02em;margin-bottom:5px}
.gh-locate__s{font-size:13.5px;color:var(--gh-tx-2);margin-bottom:14px}
.gh-field{display:flex;align-items:center;gap:10px;background:var(--gh-bg-2);border:1px solid var(--gh-line);
  border-radius:var(--gh-pill);padding:4px 5px 4px 16px;transition:.18s}
.gh-field:focus-within{border-color:var(--gh-gold);box-shadow:0 0 0 3px rgba(232,163,61,.16);background:#fff}
.gh-field input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:14.5px;padding:10px 0}
.gh-field input::placeholder{color:var(--gh-tx-3)}
.gh-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 20px;
  border-radius:var(--gh-pill);font-size:14px;font-weight:700;transition:.18s;white-space:nowrap}
.gh-btn--go{background:var(--gh-gold);color:#fff;box-shadow:0 2px 10px rgba(232,163,61,.36)}
.gh-btn--go:hover{background:var(--gh-gold-2);transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,163,61,.44)}
.gh-btn--dark{background:var(--gh-ink);color:#fff}
.gh-btn--dark:hover{background:var(--gh-ink-2);transform:translateY(-1px)}
.gh-btn--ghost{background:transparent;border:1.5px solid var(--gh-line-2);color:var(--gh-tx)}
.gh-btn--ghost:hover{border-color:var(--gh-tx);background:var(--gh-card)}
.gh-btn--block{width:100%}
.gh-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.gh-chip{padding:6px 13px;border-radius:var(--gh-pill);background:var(--gh-card);border:1px solid var(--gh-line);
  font-size:12.5px;font-weight:600;color:var(--gh-tx-2);transition:.15s}
.gh-chip:hover{border-color:var(--gh-gold);color:var(--gh-gold-2);background:var(--gh-gold-soft)}

/* ---------- 10. TOOL ROW ---------- */
.gh-tools{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gh-gap)}
.gh-tool{display:flex;align-items:center;gap:12px;padding:14px;background:var(--gh-card);
  border-radius:var(--gh-r-lg);box-shadow:var(--gh-sh-1);transition:.18s}
.gh-tool:hover{transform:translateY(-2px);box-shadow:var(--gh-sh-2)}
.gh-tool__ico{width:40px;height:40px;border-radius:var(--gh-r-md);display:grid;place-items:center;flex-shrink:0}
.gh-tool__ico svg{width:19px;height:19px;stroke-width:2;fill:none;stroke:currentColor;
  stroke-linecap:round;stroke-linejoin:round}
.gh-tool>span:last-child{min-width:0}
.gh-tool__t{display:block;font-size:13.5px;font-weight:700;line-height:1.3}
.gh-tool__d{display:block;font-size:11.5px;color:var(--gh-tx-3);margin-top:2px;line-height:1.35}

/* ---------- 11. LIST ---------- */
.gh-list{display:flex;flex-direction:column;gap:1px;background:var(--gh-line);
  border-radius:var(--gh-r-lg);overflow:hidden;box-shadow:var(--gh-sh-1)}
.gh-row{display:flex;align-items:center;gap:13px;padding:14px 16px;background:var(--gh-card);transition:background .15s}
.gh-row:hover{background:var(--gh-bg-2)}
.gh-row__ico{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:grid;place-items:center;
  background:var(--gh-bg-2);font-weight:800;font-size:13px;color:var(--gh-tx-2);overflow:hidden}
.gh-row__ico img{width:100%;height:100%;object-fit:cover}
.gh-row__body{flex:1;min-width:0}
.gh-row__t{font-size:14px;font-weight:700;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gh-row__m{display:block;font-size:11.5px;color:var(--gh-tx-3);margin-top:3px;font-weight:600}
.gh-row__go{color:var(--gh-tx-3);flex-shrink:0}
.gh-row__go svg{width:16px;height:16px;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}

/* ---------- 12. PROSE ---------- */
.gh-prose{font-size:16px;line-height:1.75;color:var(--gh-tx-2)}
.gh-prose>*+*{margin-top:16px}
.gh-prose h2{font-size:24px;font-weight:800;color:var(--gh-tx);letter-spacing:-.025em;margin-top:34px;line-height:1.25}
.gh-prose h3{font-size:19px;font-weight:800;color:var(--gh-tx);letter-spacing:-.02em;margin-top:28px;line-height:1.3}
.gh-prose h4{font-size:16px;font-weight:700;color:var(--gh-tx);margin-top:22px}
.gh-prose strong{color:var(--gh-tx);font-weight:700}
.gh-prose a{color:var(--gh-gold-2);text-decoration:underline;text-underline-offset:2.5px;
  text-decoration-thickness:1.5px;text-decoration-color:rgba(201,130,31,.35)}
.gh-prose a:hover{text-decoration-color:var(--gh-gold-2)}
.gh-prose ul,.gh-prose ol{padding-left:20px}
.gh-prose ul li{list-style:disc} .gh-prose ol li{list-style:decimal}
.gh-prose li{margin-top:7px}
.gh-prose li::marker{color:var(--gh-gold)}
.gh-prose blockquote{border-left:3px solid var(--gh-gold);padding:2px 0 2px 18px;color:var(--gh-tx);font-weight:500}
.gh-prose code{background:var(--gh-bg-2);border:1px solid var(--gh-line);border-radius:6px;
  padding:1.5px 6px;font-size:.88em;font-family:ui-monospace,monospace}
.gh-prose pre{background:var(--gh-ink);color:var(--gh-on-dark);padding:16px;border-radius:var(--gh-r-md);overflow-x:auto}
.gh-prose pre code{background:none;border:none;padding:0;color:inherit}
.gh-prose img{border-radius:var(--gh-r-md)}
.gh-prose table{width:100%;border-collapse:collapse;font-size:14px;display:block;overflow-x:auto}
.gh-prose th{background:var(--gh-bg-2);padding:10px 12px;text-align:left;font-weight:700;
  font-size:12px;color:var(--gh-tx-3);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}
.gh-prose td{padding:10px 12px;border-top:1px solid var(--gh-line)}
.gh-prose hr{border:none;border-top:1px solid var(--gh-line);margin-block:28px}

/* ---------- 13. ARTICLE ---------- */
.gh-art__head{margin-bottom:20px}
.gh-art__kicker{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;
  color:var(--gh-gold-2);background:var(--gh-gold-soft);padding:5px 11px;border-radius:var(--gh-pill);margin-bottom:12px}
.gh-art__title{font-size:clamp(26px,6.5vw,38px);font-weight:800;letter-spacing:-.032em;line-height:1.16}
.gh-art__by{display:flex;align-items:center;gap:11px;margin-top:16px;padding-top:16px;border-top:1px solid var(--gh-line)}
.gh-art__av{width:38px;height:38px;border-radius:50%;background:var(--gh-bg-2);flex-shrink:0;overflow:hidden}
.gh-art__by>span:last-child{min-width:0}
.gh-art__byl{display:block;font-size:13px;font-weight:700;line-height:1.3}
.gh-art__dates{display:block;font-size:11.5px;color:var(--gh-tx-3);font-weight:600;margin-top:1px}

/* ---------- 14. PAGINATION / MISC ---------- */
.gh-pag{display:flex;justify-content:center;gap:6px;margin-top:26px;flex-wrap:wrap}
.gh-pag .page-numbers{min-width:38px;height:38px;padding:0 12px;display:grid;place-items:center;
  border-radius:var(--gh-r-md);background:var(--gh-card);font-size:14px;font-weight:700;
  box-shadow:var(--gh-sh-1);transition:.15s}
.gh-pag .page-numbers:hover{transform:translateY(-1px);box-shadow:var(--gh-sh-2)}
.gh-pag .page-numbers.current{background:var(--gh-ink);color:#fff}
.gh-note{display:flex;gap:11px;padding:14px 16px;border-radius:var(--gh-r-lg);
  background:var(--gh-gold-soft);border:1px solid rgba(232,163,61,.3);font-size:13px;color:var(--gh-tx-2)}
.gh-note strong{color:var(--gh-tx)}
.gh-skel{background:linear-gradient(90deg,rgba(255,255,255,.06) 25%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.06) 75%);
  background-size:200% 100%;animation:ghShim 1.4s linear infinite;border-radius:6px;color:transparent!important}
@keyframes ghShim{to{background-position:-200% 0}}
.gh-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.gh-skip{position:absolute;left:-9999px;z-index:999;padding:12px 20px;background:var(--gh-ink);color:#fff;border-radius:0 0 12px 0}
.gh-skip:focus{left:0;top:0}

/* ---------- 15. FOOTER ---------- */
.gh-foot{background:var(--gh-ink);color:var(--gh-on-dark);margin-top:44px;padding-block:36px 26px}
.gh-foot__grid{display:grid;gap:26px}
.gh-foot__about{font-size:13.5px;color:var(--gh-on-dark-2);line-height:1.7;margin-top:12px;max-width:44ch}
.gh-foot__h{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gh-on-dark-2);margin-bottom:12px}
.gh-foot__nav a{display:block;padding:5px 0;font-size:14px;color:var(--gh-on-dark);opacity:.82;transition:.15s}
.gh-foot__nav a:hover{opacity:1;color:var(--gh-gold)}
.gh-foot__bot{margin-top:30px;padding-top:20px;border-top:1px solid var(--gh-line-dark);
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:12px;color:var(--gh-on-dark-2)}
.gh-foot__disc{max-width:70ch;line-height:1.65}

/* ---------- 16. RESPONSIVE ---------- */
@media(min-width:600px){
  :root{--gh-gap:16px;--gh-pad:22px}
  .gh-shell{padding-inline:24px}
  .gh-tiles{grid-template-columns:repeat(3,1fr)}
  .gh-tools{grid-template-columns:repeat(4,1fr)}
  .gh-foot__grid{grid-template-columns:1.6fr 1fr 1fr}
}
@media(min-width:900px){
  body{font-size:16px}
  .gh-head__bar{height:70px}
  .gh-nav{display:block}
  .gh-burger{display:none}
  .gh-main{padding-block:26px 56px}
  .gh-hero{padding:30px 30px 26px}
  .gh-sec{margin-top:38px}
  .gh-sec__title{font-size:22px}
  .gh-grid-2{display:grid;grid-template-columns:1.55fr 1fr;gap:var(--gh-gap);align-items:start}
  /* The locator stays in view while the price column scrolls — turns dead space into utility. */
  .gh-grid-2>*:last-child{position:sticky;top:86px}
  .gh-tiles{grid-template-columns:repeat(6,1fr)}
  .gh-foot__grid{grid-template-columns:2fr 1fr 1fr 1fr}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
}
@media print{.gh-head,.gh-foot,.gh-ranges,.gh-locate{display:none!important}body{background:#fff}}

/* ============================================================
   17. DIRECTORY  (added in 0.2.0 — Step 5)
   ============================================================ */

.gh-dir{max-width:960px;margin-inline:auto}
.gh-dir__head{margin-bottom:18px}
.gh-dir__lede{margin-top:12px;font-size:16px;line-height:1.75;color:var(--gh-tx-2);max-width:62ch}
.gh-dir__count{margin-top:10px;font-size:13.5px;font-weight:600;color:var(--gh-tx-3)}
.gh-dir__desc{margin-top:12px;font-size:14.5px;color:var(--gh-tx-2)}
.gh-dir__note{margin-top:34px;padding-top:24px;border-top:1px solid var(--gh-line)}

/* ---- controls ---- */
.gh-dirbar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:18px 0 14px;
  padding:12px 14px;background:var(--gh-card);border-radius:var(--gh-r-lg);box-shadow:var(--gh-sh-1)}
.gh-dirbar select{padding:8px 30px 8px 12px;font-size:13px;font-weight:600;border:1.5px solid var(--gh-line);
  border-radius:var(--gh-pill);background:var(--gh-bg-2);color:var(--gh-tx);outline:none;
  -webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238D96A8' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:14px}
.gh-dirbar select:focus{border-color:var(--gh-gold);box-shadow:0 0 0 3px rgba(232,163,61,.16)}
.gh-dirbar__chk{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;
  color:var(--gh-tx-2);cursor:pointer;padding:7px 13px;border-radius:var(--gh-pill);
  border:1.5px solid var(--gh-line);background:var(--gh-bg-2)}
.gh-dirbar__chk:hover{border-color:var(--gh-line-2)}

/* ---- shop card ---- */
.gh-shops{display:grid;gap:var(--gh-gap)}
/* Column flex so the footer can be pushed down — otherwise a card with no payout
   figure leaves its buttons floating mid-card and the row reads as broken. */
.gh-shop{position:relative;display:flex;flex-direction:column;background:var(--gh-card);
  border-radius:var(--gh-r-xl);padding:var(--gh-pad);box-shadow:var(--gh-sh-1);transition:box-shadow .18s}
.gh-shop:hover{box-shadow:var(--gh-sh-2)}
.gh-shop--ad{border:1.5px solid var(--gh-gold);
  background:linear-gradient(160deg,var(--gh-gold-soft) 0%,var(--gh-card) 42%)}
.gh-shop__adflag{position:absolute;top:0;inset-inline-end:18px;transform:translateY(-50%);
  font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;padding:4px 10px;
  border-radius:var(--gh-pill);background:var(--gh-gold);color:#fff}
/* No wrap: a long shop name should take two lines beside the payout, not push it
   onto its own row where text-align:end reads as accidentally centred. */
.gh-shop__head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.gh-shop__t{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.3;min-width:0}
.gh-shop__t a:hover{color:var(--gh-gold-2)}
.gh-shop__foot{display:flex;gap:8px;margin-top:auto;padding-top:14px;flex-wrap:wrap}
.gh-shop__call{font-variant-numeric:tabular-nums}

/* ---- licence badge ---- */
.gh-lic{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:11px 13px;
  border-radius:var(--gh-r-md);background:var(--gh-bg-2);font-size:13px}
.gh-lic__dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0;background:var(--gh-tx-3)}
.gh-lic__body{min-width:0}
.gh-lic__body strong{display:block;font-weight:700;color:var(--gh-tx)}
.gh-lic__no{display:block;font-size:12px;color:var(--gh-tx-2);margin-top:3px}
.gh-lic__no code{background:#fff;border:1px solid var(--gh-line);border-radius:5px;padding:1px 6px;
  font-family:ui-monospace,monospace;font-size:11.5px}
.gh-lic__no a{color:var(--gh-info);text-decoration:underline;text-underline-offset:2px}
.gh-lic__on{display:block;font-size:11.5px;color:var(--gh-tx-3);margin-top:3px;font-weight:600}
.gh-lic--ok{background:var(--gh-up-soft)}   .gh-lic--ok .gh-lic__dot{background:var(--gh-up)}
.gh-lic--ok strong{color:var(--gh-up)}
.gh-lic--bad{background:var(--gh-down-soft)} .gh-lic--bad .gh-lic__dot{background:var(--gh-down)}
.gh-lic--bad strong{color:var(--gh-down)}
.gh-lic--warn{background:var(--gh-gold-soft)} .gh-lic--warn .gh-lic__dot{background:var(--gh-gold)}
.gh-lic--warn strong{color:var(--gh-gold-2)}

/* ---- payout ---- */
.gh-payout{text-align:end;flex-shrink:0;min-width:74px}
.gh-payout__n{display:block;font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--gh-up)}
.gh-payout__l{display:block;font-size:11px;font-weight:700;color:var(--gh-tx-3);margin-top:3px}
.gh-payout__d{display:block;font-size:10.5px;font-weight:600;color:var(--gh-tx-3);opacity:.85;margin-top:2px}

/* ---- meta + chips ---- */
.gh-meta{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12.5px;color:var(--gh-tx-2)}
.gh-meta--lg{font-size:13.5px;margin-top:14px}
.gh-meta__i b{font-weight:700;color:var(--gh-tx-3);font-size:11px;text-transform:uppercase;
  letter-spacing:.05em;margin-inline-end:4px}
.gh-meta__i--warn{color:var(--gh-gold-2);font-weight:700}
.gh-buys{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.gh-buys__c{font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:var(--gh-pill);
  background:var(--gh-t5-s);color:var(--gh-t5)}

/* ---- metro + state grids ---- */
.gh-metros{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--gh-gap)}
.gh-metro{padding:14px;background:var(--gh-card);border-radius:var(--gh-r-lg);box-shadow:var(--gh-sh-1);
  transition:.18s}
.gh-metro:hover{transform:translateY(-2px);box-shadow:var(--gh-sh-2)}
.gh-metro__n{display:block;font-size:14px;font-weight:700;letter-spacing:-.01em}
.gh-metro__c{display:block;font-size:11.5px;font-weight:600;color:var(--gh-tx-3);margin-top:3px}
.gh-states{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--gh-line);
  border-radius:var(--gh-r-lg);overflow:hidden;box-shadow:var(--gh-sh-1)}
.gh-state{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;
  background:var(--gh-card);font-size:13.5px;transition:background .15s}
.gh-state:hover{background:var(--gh-bg-2)}
.gh-state__n{font-weight:600}
.gh-state__c{font-size:11.5px;font-weight:700;color:var(--gh-tx-3);
  background:var(--gh-bg-2);border-radius:var(--gh-pill);padding:2px 9px;min-width:26px;text-align:center}
.gh-state.is-empty{opacity:.45}

/* ---- empty state ---- */
.gh-empty{text-align:start}
.gh-empty__t{font-size:19px;font-weight:800;letter-spacing:-.02em;margin-bottom:10px}
.gh-empty p{font-size:14.5px;line-height:1.7}
.gh-empty__h{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--gh-tx-3);margin:18px 0 10px}

/* ---- single shop ---- */
.gh-shopx{max-width:960px;margin-inline:auto}
.gh-shopx__head{margin-bottom:18px}
.gh-shopx__ad{margin-top:10px;font-size:12.5px;color:var(--gh-gold-2);font-weight:600;
  background:var(--gh-gold-soft);border-radius:var(--gh-r-md);padding:10px 14px}
.gh-shopx__grid{display:grid;gap:var(--gh-gap)}
.gh-shopx__h{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--gh-tx-3);margin:20px 0 10px}
.gh-shopx__h3{font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  color:var(--gh-tx-3);margin:18px 0 8px}
.gh-shopx__addr{font-style:normal;font-size:14.5px;line-height:1.6;color:var(--gh-tx)}
.gh-hours{font-size:13.5px}
.gh-hours li{display:flex;justify-content:space-between;padding:6px 0;
  border-bottom:1px solid var(--gh-line);color:var(--gh-tx-2)}
.gh-hours li:last-child{border-bottom:none}
.gh-hours li.is-today{font-weight:800;color:var(--gh-tx)}
.gh-shopx__back{display:block;text-align:center}
.gh-shopx__back-l{display:block;font-size:11.5px;font-weight:700;color:var(--gh-tx-3)}
.gh-shopx__back-n{display:block;font-size:17px;font-weight:800;letter-spacing:-.02em;margin-top:3px}
.gh-shopx__back-c{display:block;font-size:12px;font-weight:600;color:var(--gh-tx-3);margin-top:2px}
.gh-shopx__disc{margin-top:26px;padding-top:18px;border-top:1px solid var(--gh-line);
  font-size:12px;line-height:1.7;color:var(--gh-tx-3)}

@media(min-width:700px){
  .gh-shops{grid-template-columns:repeat(2,1fr)}
  .gh-metros{grid-template-columns:repeat(3,1fr)}
  .gh-states{grid-template-columns:repeat(4,1fr)}
}
@media(min-width:900px){
  .gh-shopx__grid{grid-template-columns:1.7fr 1fr;align-items:start}
  .gh-shopx__side{position:sticky;top:86px}
  .gh-metros{grid-template-columns:repeat(4,1fr)}
}
