/* Goldman & Sons — D5 design system. Never pair Schibsted Grotesk with tabular-nums. */
:root {
  --gold: #BE9359; --gold-ink: #8a6a1f; --black: #131108; --black-soft: #1d1a12;
  --ink: #26221a; --bg: #ffffff; --muted: #6d675c; --line: #eae5da;
  --max: 1240px; --gutter: 5vw;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink);
  font: 16px/1.6 "Schibsted Grotesk", system-ui, sans-serif; }
img { max-width: 100%; height: auto; }
a { color: var(--gold-ink); }
[hidden] { display: none !important; }

/* ---------- header ---------- */
.site-header { background: var(--black); display: flex; align-items: center;
  justify-content: space-between; padding: 14px var(--gutter); gap: 20px; }
.logo-link { display: inline-flex; }
.logo { height: 56px; width: auto; }
.site-nav .nav-list, .mobile-nav .nav-list { list-style: none; margin: 0; padding: 0;
  display: flex; gap: 26px; font-size: 0.98rem; font-weight: 600; align-items: center; }
.site-nav a, .mobile-nav a { color: #e6dfd0; text-decoration: none; }
.site-nav a:hover { color: var(--gold); }
.nav-tools { display: flex; align-items: center; gap: 18px; }
.gms-cart { position: relative; display: inline-flex; color: var(--gold); }
.gms-cart svg { width: 24px; height: 24px; stroke: var(--gold); fill: none;
  stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.gms-cart .count { position: absolute; top: -7px; right: -9px; background: var(--gold);
  color: var(--black); font-size: 0.68rem; font-weight: 700; border-radius: 999px;
  min-width: 16px; height: 16px; display: grid; place-items: center; padding: 0 3px; }
.lang-switch { position: relative; }
.lang { display: inline-flex; align-items: center; gap: 7px; color: #e6dfd0; background: none;
  border: 0; padding: 0; font: inherit; font-size: 0.9rem; font-weight: 600; cursor: pointer; }
.lang svg, .lang-menu svg { width: 20px; height: 14px; border-radius: 2px; }
.lang-menu { position: absolute; right: 0; top: calc(100% + 10px); background: var(--black-soft);
  border: 1px solid #37332b; list-style: none; margin: 0; padding: 6px 0; min-width: 140px; z-index: 20; }
.lang-menu a { display: flex; align-items: center; gap: 8px; padding: 8px 14px; color: #e6dfd0;
  text-decoration: none; font-size: 0.9rem; }
.lang-menu a:hover { background: #2a2620; }
.burger { display: none; width: 26px; height: 20px; flex-direction: column;
  justify-content: space-between; background: none; border: 0; padding: 0; cursor: pointer; }
.burger i { display: block; height: 2px; background: #e6dfd0; }
.mobile-nav { background: var(--black-soft); padding: 8px var(--gutter) 18px; }
.mobile-nav .nav-list { flex-direction: column; gap: 0; }
.mobile-nav a { display: block; padding: 12px 0; border-bottom: 1px solid #2a2620; font-size: 1.05rem; }

/* ---------- hero ---------- */
.hero { background: var(--black);
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='900' height='600'%3E%3Cg fill='%23BE9359'%3E%3Ccircle cx='40' cy='60' r='1.1' opacity='.7'/%3E%3Ccircle cx='120' cy='180' r='.8' opacity='.4'/%3E%3Ccircle cx='210' cy='90' r='1.4' opacity='.6'/%3E%3Ccircle cx='320' cy='240' r='.7' opacity='.35'/%3E%3Ccircle cx='430' cy='50' r='1' opacity='.5'/%3E%3Ccircle cx='60' cy='340' r='.9' opacity='.45'/%3E%3Ccircle cx='170' cy='430' r='1.2' opacity='.55'/%3E%3Ccircle cx='300' cy='520' r='.8' opacity='.4'/%3E%3Ccircle cx='520' cy='150' r='.9' opacity='.4'/%3E%3Ccircle cx='610' cy='330' r='.7' opacity='.3'/%3E%3Ccircle cx='700' cy='80' r='1.1' opacity='.45'/%3E%3Ccircle cx='790' cy='210' r='.8' opacity='.35'/%3E%3Ccircle cx='860' cy='420' r='1' opacity='.4'/%3E%3Ccircle cx='480' cy='470' r='.9' opacity='.35'/%3E%3Ccircle cx='580' cy='560' r='1.1' opacity='.4'/%3E%3Cpath d='M250 320l2.2 5.6 5.6 2.2-5.6 2.2-2.2 5.6-2.2-5.6-5.6-2.2 5.6-2.2z' opacity='.55'/%3E%3Cpath d='M90 480l1.8 4.6 4.6 1.8-4.6 1.8-1.8 4.6-1.8-4.6-4.6-1.8 4.6-1.8z' opacity='.4'/%3E%3Cpath d='M660 240l1.8 4.6 4.6 1.8-4.6 1.8-1.8 4.6-1.8-4.6-4.6-1.8 4.6-1.8z' opacity='.45'/%3E%3Cpath d='M820 540l2 5 5 2-5 2-2 5-2-5-5-2 5-2z' opacity='.4'/%3E%3Cpath d='M380 140l1.6 4 4 1.6-4 1.6-1.6 4-1.6-4-4-1.6 4-1.6z' opacity='.5'/%3E%3C/g%3E%3C/svg%3E"),
    radial-gradient(ellipse 60% 80% at 72% 45%, #2a2415 0%, var(--black) 70%);
  color: #efe9da; padding: 44px var(--gutter) 64px; }
.hero-inner { max-width: var(--max); margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr;
  align-items: center; gap: 4vw; }
.hero-coin { justify-self: center; width: min(32vw, 410px); height: auto; aspect-ratio: 1;
  border-radius: 50%; box-shadow: 0 30px 80px rgba(0,0,0,0.55); }
.hero h1 { font-family: Besley, serif; font-weight: 600;
  font-size: clamp(2rem, 3.8vw, 3.2rem); line-height: 1.12; margin: 0 0 18px;
  text-wrap: balance; color: #efe9da; }
.hero h1 em { font-style: italic; color: var(--gold); }
.hero p { color: #b9b09a; max-width: 44ch; margin: 0 0 28px; }
.btn { display: inline-block; border: 1px solid var(--gold); color: var(--gold);
  padding: 13px 28px; text-decoration: none; font-size: 0.95rem; letter-spacing: 0.03em; }
.btn.solid { background: var(--gold); color: var(--black); font-weight: 500; }
.cta { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- category tiles ---------- */
.cats { max-width: var(--max); margin: 0 auto; padding: 40px var(--gutter) 0;
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.cats a { display: grid; grid-template-columns: 76px 1fr auto; align-items: center;
  gap: 16px; border: 1px solid var(--black); background: var(--bg); color: var(--black);
  text-decoration: none; padding: 12px 18px 12px 12px; }
.cats a:hover { background: #faf7f1; }
.cats img { width: 76px; height: 76px; object-fit: contain; }
.cats b { font-weight: 700; font-size: 1rem; line-height: 1.25; }
.cats small { display: block; color: var(--muted); font-weight: 400; font-size: 0.8rem; margin-top: 2px; }
.cats .arr { color: var(--gold-ink); font-weight: 700; }

/* ---------- sections + heads ---------- */
.section { max-width: var(--max); margin: 0 auto; padding: 48px var(--gutter) 64px; }
h2 { font-weight: 700; font-size: 2rem; letter-spacing: -0.01em; line-height: 1.1; margin: 0; color: var(--ink); }
.shead { display: grid; grid-template-columns: 1fr auto; align-items: baseline;
  gap: 4px 20px; margin: 0 0 30px; }
.shead h2 { text-align: left; margin: 0; }
.shead p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 0.95rem; }
.shead .more { color: var(--gold-ink); text-decoration: none; font-weight: 700;
  font-size: 0.95rem; white-space: nowrap; padding-bottom: 3px; }

/* ---------- product cards ---------- */
.grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 28px; }
.prod { display: flex; flex-direction: column; }
.prod .img-wrap { position: relative; display: block; }
.prod .badge { position: absolute; top: 6px; left: 0; background: var(--black); z-index: 1;
  color: #fff; font-size: 0.72rem; letter-spacing: 0.06em; padding: 4px 10px; }
.prod img { width: 100%; aspect-ratio: 1; object-fit: contain; display: block; }
.prod.oos img { opacity: 0.55; }
.prod h3 { font-size: 1.02rem; font-weight: 700; margin: 14px 0 2px; line-height: 1.3; min-height: 2.6em; }
.prod h3 a { color: var(--ink); text-decoration: none; }
.prod .cat { color: var(--muted); font-size: 0.82rem; margin-bottom: 12px; }
.rowline { display: grid; grid-template-columns: 1fr auto; align-items: center;
  gap: 10px; padding: 9px 0; border-top: 1px solid var(--line); }
.rowline .lbl { font-size: 0.75rem; letter-spacing: 0.08em; color: var(--muted); }
.rowline .val { font-weight: 700; white-space: nowrap; }
.rowline .val .woocommerce-Price-currencySymbol { font-weight: 700; }
.rowline .act { grid-column: 1 / -1; }
.abtn { display: block; text-align: center; background: var(--gold); color: var(--black);
  text-decoration: none; font-weight: 500; font-size: 0.9rem; padding: 10px 0; margin-top: 2px;
  border: 1px solid var(--gold); line-height: 1.4; cursor: pointer; }
.abtn.dark { background: var(--black); color: var(--gold); border-color: var(--black); }
.abtn.closed { background: var(--bg); color: var(--ink); border-color: var(--line); cursor: default; }
.abtn.loading { opacity: 0.6; }
.abtn.added::after { content: " ✓"; }
.added_to_cart { display: block; text-align: center; font-size: 0.85rem; margin-top: 6px; }
.avail { margin-top: 10px; font-size: 0.8rem; color: var(--muted); }
.avail .ok { color: #2e7d32; }
.avail a { color: var(--gold-ink); }

/* ---------- posts ---------- */
.posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post { display: block; color: var(--ink); text-decoration: none; }
.post img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.post .kind { display: inline-block; margin-top: 14px; font-size: 0.72rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--gold-ink); font-weight: 700; }
.post h3 { font-size: 1.05rem; font-weight: 700; line-height: 1.3; margin: 6px 0 6px; }
.post .date { color: var(--muted); font-size: 0.82rem; }
.section-posts { padding-top: 0; }

/* ---------- market band ---------- */
.market { background: var(--black); color: #efe9da; padding: 56px var(--gutter) 60px; }
.market-inner { max-width: var(--max); margin: 0 auto; }
.market h2 { color: #efe9da; }
.market .shead p { color: #948d7c; }
.market .shead .more { color: var(--gold); }
.mrow { display: grid; grid-template-columns: 2.2fr 1fr 1fr; gap: 16px;
  align-items: baseline; padding: 14px 0; border-top: 1px solid #37332b; }
.mrow.head { border-top: 0; color: #948d7c; font-size: 0.78rem;
  text-transform: uppercase; letter-spacing: 0.07em; padding-bottom: 2px; }
.mrow span:nth-child(n+2) { text-align: right; white-space: nowrap; }
.mrow .v { font-size: 1.15rem; font-weight: 700; }
.mrow .v.gold { color: var(--gold); }
.market .note { color: #948d7c; margin-top: 24px; max-width: 62ch; font-size: 0.92rem; }
.market .note a { color: var(--gold); }

/* ---------- footer ---------- */
.site-footer { background: var(--bg); border-top: 1px solid var(--line); color: var(--muted);
  padding: 36px var(--gutter); font-size: 0.9rem; text-align: center; }
.site-footer p { margin: 0 0 8px; }
.footer-links a { color: var(--muted); margin: 0 10px; text-decoration: none; }
.footer-links a:hover { color: var(--gold-ink); }
.footer-copy { font-size: 0.82rem; }

/* ---------- prose (pages, posts) ---------- */
.prose { max-width: 760px; }
.prose h1 { font-size: 2.2rem; line-height: 1.15; margin: 0 0 20px; letter-spacing: -0.01em; }
.prose h2 { font-size: 1.5rem; margin: 36px 0 12px; }
.prose h3 { font-size: 1.15rem; margin: 28px 0 8px; }
.prose p, .prose ul, .prose ol { margin: 0 0 18px; }
.prose img { display: block; }
.post-single .date { color: var(--muted); font-size: 0.85rem; margin: 0 0 8px; }
.post-hero img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.post-hero { margin: 0 0 28px; }

/* ---------- WooCommerce defaults inside our wrapper (temporary, per-view rounds replace) ---------- */
.wc-wrap .woocommerce-products-header h1 { font-size: 2rem; margin: 0 0 20px; }
.wc-wrap ul.products { list-style: none; padding: 0; margin: 0; display: grid;
  grid-template-columns: repeat(4, 1fr); gap: 40px 28px; }
.wc-wrap ul.products li.product { margin: 0; }
.wc-wrap .woocommerce-result-count, .wc-wrap .woocommerce-ordering { font-size: 0.9rem; color: var(--muted); }

/* ---------- mobile ---------- */
@media (max-width: 900px) {
  .site-nav { display: none; }
  .nav-tools { gap: 28px; }
  .burger { display: flex; }
  .hero-inner { grid-template-columns: 1fr; }
  .hero-coin { width: 44vw; order: -1; }
  .cats { grid-template-columns: 1fr 1fr; gap: 10px; padding-top: 28px; }
  .cats a { grid-template-columns: 56px 1fr; gap: 10px; padding: 10px; }
  .cats img { width: 56px; height: 56px; }
  .cats b { font-size: 0.9rem; }
  .cats .arr { display: none; }
  h2 { font-size: 1.7rem; }
  .grid, .wc-wrap ul.products { grid-template-columns: repeat(2, 1fr); gap: 34px 20px; }
  .prod h3 { font-size: 0.92rem; min-height: 3.9em; }
  .posts { grid-template-columns: 1fr; gap: 22px; }
  .post { display: grid; grid-template-columns: 112px 1fr; grid-template-rows: auto auto 1fr;
    gap: 2px 14px; align-items: start; }
  .post img { aspect-ratio: 1; grid-row: 1 / 4; }
  .post .kind { margin-top: 0; }
  .post h3 { font-size: 0.95rem; }
  .mrow { grid-template-columns: 1.8fr 1fr 1fr; }
}
@media (min-width: 901px) { .mobile-nav { display: none !important; } }

/* ---------- footer (D5 language, replaces the placeholder) ---------- */
.site-footer { background: var(--black); color: #b9b09a; border-top: 0; padding: 56px var(--gutter) 28px; text-align: left; }
.footer-inner { max-width: var(--max); margin: 0 auto; }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; }
.footer-logo { height: 64px; width: auto; margin-bottom: 16px; display: block; }
.footer-brand p { margin: 0 0 14px; font-size: 0.92rem; max-width: 40ch; }
.footer-hours strong { color: #efe9da; font-weight: 600; }
.footer-col h4 { color: #efe9da; font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; margin: 6px 0 14px; font-weight: 700; }
.footer-col a { display: block; color: #d8d0bd; text-decoration: none; padding: 5px 0; font-size: 0.95rem; }
.footer-col a:hover { color: var(--gold); }
.footer-legal { font-size: 0.85rem; margin: 14px 0 0; line-height: 1.6; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap;
  border-top: 1px solid #2c2820; margin-top: 44px; padding-top: 20px; font-size: 0.82rem; }
.footer-bottom p { margin: 0; }
.footer-links a { color: #948d7c; margin: 0 14px 0 0; text-decoration: none; }
.footer-links a:hover { color: var(--gold); }

/* ---------- crumbs, eyebrows, misc ---------- */
.crumbs ol { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 0.82rem; color: var(--muted); }
.crumbs li + li::before { content: "›"; margin-right: 6px; color: #b9b09a; }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--gold-ink); }
.eyebrow { font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-ink); font-weight: 700; margin: 0 0 8px; }
.eyebrow a { color: inherit; text-decoration: none; }
.as-h2 { font-size: 2rem; letter-spacing: -0.01em; line-height: 1.1; margin: 0; }
.btn.outline { border-color: var(--black); color: var(--black); }
.pagination { display: flex; justify-content: center; gap: 6px; margin-top: 40px; flex-wrap: wrap; }
.pagination .page-numbers, .woocommerce-pagination .page-numbers { display: inline-block; padding: 8px 14px; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-size: 0.9rem; }
.pagination .page-numbers.current, .woocommerce-pagination .page-numbers.current { background: var(--black); color: var(--gold); border-color: var(--black); }
.woocommerce-pagination ul { list-style: none; display: flex; justify-content: center; gap: 6px; padding: 0; margin: 40px 0 0; }

/* ---------- archive (shop / category) ---------- */
.archive-head { margin: 0 0 26px; max-width: 70ch; }
.archive-head h1 { font-size: 2.4rem; letter-spacing: -0.01em; line-height: 1.1; margin: 0 0 10px; }
.archive-desc { color: var(--muted); }
.archive-note { font-size: 0.9rem; color: var(--muted); margin: 8px 0 0; }
.archive-note .ok { color: #2e7d32; }
.cats-inline { padding: 0 0 30px; grid-template-columns: repeat(4, 1fr); }
.cats-inline a { grid-template-columns: 1fr auto; padding: 12px 18px; }
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-result-count { float: left; margin: 4px 0 20px; font-size: 0.85rem; color: var(--muted); }
.woocommerce-ordering { float: right; margin: 0 0 20px; }
.woocommerce-ordering select { font: inherit; font-size: 0.85rem; padding: 6px 10px; border: 1px solid var(--line); background: var(--bg); color: var(--ink); }
.archive .grid { clear: both; }
.woocommerce-info, .woocommerce-message, .woocommerce-error { border-top: 3px solid var(--gold); background: #faf7f1; padding: 14px 18px; margin: 0 0 24px; list-style: none; font-size: 0.95rem; }
.woocommerce-error { border-top-color: #b3261e; }
.woocommerce-message a.button, .woocommerce-info a.button { float: right; background: var(--black); color: var(--gold); padding: 6px 14px; text-decoration: none; font-size: 0.85rem; }

/* ---------- single product ---------- */
.product-top { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; margin-bottom: 48px; }
.product-main-img { position: relative; background: var(--bg); }
.product-main-img img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; display: block; }
.product-main-img .badge { position: absolute; top: 8px; left: 0; background: var(--black); color: #fff; font-size: 0.78rem; letter-spacing: 0.06em; padding: 5px 12px; z-index: 1; }
.product-thumbs { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.product-thumbs .thumb { width: 72px; height: 72px; padding: 4px; border: 1px solid var(--line); background: var(--bg); cursor: pointer; }
.product-thumbs .thumb img { width: 100%; height: 100%; object-fit: contain; }
.product-thumbs .thumb.is-active { border-color: var(--black); }
.product-summary h1 { font-size: 2rem; line-height: 1.15; letter-spacing: -0.01em; margin: 0 0 20px; }
.buybox { border-top: 1px solid var(--line); }
.buybox .rowline { padding: 14px 0; grid-template-columns: 1fr auto; }
.buybox .val.big { font-size: 1.6rem; }
.buybox .lbl { font-size: 0.8rem; }
.buybox .abtn { padding: 13px 0; font-size: 1rem; }
.buybox .avail { font-size: 0.88rem; margin: 12px 0 0; }
.buybox form.cart { display: grid; grid-template-columns: 96px 1fr; gap: 10px; margin: 2px 0 0; }
.buybox form.cart .quantity { display: flex; }
.buybox form.cart .quantity input.qty { width: 100%; font: inherit; font-size: 1rem; text-align: center; border: 1px solid var(--line); padding: 10px; margin: 0; }
.buybox form.cart .quantity .screen-reader-text { position: absolute; left: -9999px; }
.buybox form.cart button.single_add_to_cart_button { font: inherit; font-size: 1rem; font-weight: 500; background: var(--gold); color: var(--black); border: 1px solid var(--gold); padding: 12px 0; cursor: pointer; }
.buybox form.cart button.single_add_to_cart_button:hover { background: #b0864d; }
.trust { list-style: none; padding: 0; margin: 26px 0 0; display: grid; gap: 8px; font-size: 0.9rem; color: var(--muted); }
.trust li::before { content: "✓"; color: var(--gold-ink); font-weight: 700; margin-right: 8px; }
.specs { margin-top: 32px; }
.specs h2 { font-size: 1.05rem; letter-spacing: 0.02em; margin: 0 0 10px; }
.specs table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }
.specs th, .specs td { text-align: left; padding: 9px 0; border-top: 1px solid var(--line); vertical-align: top; }
.specs th { color: var(--muted); font-weight: 500; width: 42%; }
.specs td strong, .specs th strong { font-weight: 500; }
.product-desc { max-width: 72ch; margin-bottom: 48px; }
.related { margin-top: 24px; }

/* ---------- blog ---------- */
.post-single .prose { max-width: 720px; }
.post-single .prose h1 { margin-bottom: 24px; }
.post-single .prose img { height: auto; }
.post-single .related { margin-top: 64px; }

/* ---------- cart / checkout / account (WooCommerce defaults, brand-tuned) ---------- */
.wc-page h1 { font-size: 2rem; margin: 0 0 24px; }
.wc-page .woocommerce table.shop_table { border: 0; border-collapse: collapse; border-radius: 0; font-size: 0.95rem; }
.wc-page .woocommerce table.shop_table th, .wc-page .woocommerce table.shop_table td { border-color: var(--line); padding: 14px 10px; }
.wc-page .woocommerce table.shop_table thead th { font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.wc-page .woocommerce a.button, .wc-page .woocommerce button.button, .wc-page .woocommerce .button.alt,
.wc-page .woocommerce button.button.alt, .wc-page .wc-proceed-to-checkout a.checkout-button {
  background: var(--gold); color: var(--black); border-radius: 0; font-weight: 500; font-family: inherit; }
.wc-page .woocommerce a.button:hover, .wc-page .woocommerce button.button:hover, .wc-page .wc-proceed-to-checkout a.checkout-button:hover { background: #b0864d; color: var(--black); }
.wc-page .woocommerce .cart_totals h2, .wc-page .woocommerce .cross-sells h2 { font-size: 1.15rem; }
.wc-page .woocommerce .cart_totals { width: 100%; max-width: 420px; float: none; margin-left: auto; }
.wc-page .woocommerce input.input-text, .wc-page .woocommerce input.qty { font: inherit; border: 1px solid var(--line); padding: 8px; }
.wc-page .woocommerce .coupon input.input-text { width: 160px; }
.wc-page .wp-block-woocommerce-checkout { --wc-primary: var(--gold-ink); }
.wc-page .wc-block-components-button { background: var(--gold); color: var(--black); border-radius: 0; }

@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .product-top { grid-template-columns: 1fr; gap: 28px; }
  .archive-head h1 { font-size: 1.9rem; }
  .cats-inline { grid-template-columns: 1fr 1fr; }
  .woocommerce-result-count { display: none; }
  .woocommerce-ordering { float: none; margin-bottom: 16px; }
  .buybox form.cart { grid-template-columns: 80px 1fr; }
}

/* WooCommerce's ".woocommerce-page img { height:auto }" outranks .logo on shop pages. */
.site-header img.logo { height: 56px; width: auto; }
.buybox .act .stock { display: none; }

/* ---------- content pages: kokkuost + info ---------- */
.lead { font-size: 1.15rem; color: var(--muted); max-width: 60ch; margin: 0 0 24px; }
.muted { color: var(--muted); }
.page-kokkuost h1, .page-info h1 { font-size: 2.6rem; line-height: 1.08; letter-spacing: -0.015em; margin: 0 0 16px; max-width: 18ch; }
.page-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 48px; align-items: center; margin-bottom: 56px; }
.page-hero-img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; }
.block { margin: 0 0 56px; }
.block .shead { margin-bottom: 22px; }
.shead .more.muted { color: var(--muted); font-weight: 500; }
.buy-table { width: 100%; border-collapse: collapse; }
.buy-table th { text-align: left; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); font-weight: 500; padding: 0 0 10px; border-bottom: 1px solid var(--ink); }
.buy-table td { padding: 14px 0; border-bottom: 1px solid var(--line); vertical-align: middle; }
.buy-table .bt-name a { color: var(--ink); text-decoration: none; font-weight: 700; }
.buy-table .bt-name .badge { display: inline-block; background: var(--black); color: #fff; font-size: 0.7rem; letter-spacing: 0.06em; padding: 3px 8px; margin-right: 10px; vertical-align: 1px; }
.buy-table .bt-price { font-weight: 700; font-size: 1.15rem; white-space: nowrap; text-align: right; }
.buy-table th:nth-child(2) { text-align: right; }
.buy-table .bt-link { text-align: right; width: 1%; white-space: nowrap; }
.buy-table .bt-link a { color: var(--gold-ink); text-decoration: none; font-weight: 600; font-size: 0.9rem; }
.fineprint { color: var(--muted); font-size: 0.82rem; margin: 16px 0 0; max-width: 72ch; }
.mints { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px 20px; }
.mints li { padding: 12px 0; border-top: 1px solid var(--line); font-weight: 500; }
.mints li::before { content: "✓"; color: var(--gold-ink); font-weight: 700; margin-right: 10px; }
.steps { list-style: none; counter-reset: step; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.steps li { counter-increment: step; border-top: 2px solid var(--black); padding-top: 16px; }
.steps li::before { content: counter(step); display: block; font-family: Besley, serif; font-size: 2rem; color: var(--gold); line-height: 1; margin-bottom: 10px; }
.steps b { display: block; font-size: 1.05rem; margin-bottom: 6px; }
.steps span { color: var(--muted); font-size: 0.95rem; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.note-box, .contact-box { padding: 28px; margin: 0; }
.note-box { background: #faf7f1; }
.note-box h2, .contact-box h2 { font-size: 1.2rem; margin: 0 0 10px; }
.note-box p { margin: 0; color: var(--muted); font-size: 0.95rem; }
.contact-box { background: var(--black); color: #efe9da; }
.contact-box p { margin: 0 0 12px; line-height: 1.5; }
.contact-box a { color: var(--gold); text-decoration: none; font-weight: 700; font-size: 1.15rem; }
.contact-box small { color: #948d7c; }
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin: 32px 0 56px; }
.ccard { border: 1px solid var(--black); padding: 24px; }
.ccard h2 { font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gold-ink); margin: 0 0 14px; }
.ccard p { margin: 0 0 12px; line-height: 1.5; }
.ccard a { color: var(--ink); text-decoration: none; font-weight: 600; }
.ccard a.big { font-size: 1.15rem; }
.ccard a:hover { color: var(--gold-ink); }
.quote-block blockquote { margin: 0; padding: 36px 40px; background: var(--black); color: #efe9da; }
.quote-block p { font-family: Besley, serif; font-size: 1.25rem; line-height: 1.5; margin: 0 0 16px; max-width: 62ch; }
.quote-block footer { color: var(--gold); font-size: 0.95rem; }
.team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 28px; }
.tcard { text-align: left; }
.tphoto { width: 100%; aspect-ratio: 1; overflow: hidden; background: #f1ede4; margin-bottom: 16px; }
.tphoto img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.tcard h3 { font-size: 1.15rem; margin: 0 0 2px; }
.trole { color: var(--gold-ink); font-size: 0.78rem; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; margin: 0 0 4px; }
.tedu { color: var(--muted); font-size: 0.82rem; margin: 0 0 10px; }
.ttext { font-size: 0.92rem; color: var(--ink); margin: 0 0 8px; }
.ttel a { color: var(--ink); text-decoration: none; font-weight: 600; font-size: 0.92rem; }

@media (max-width: 900px) {
  .page-hero { grid-template-columns: 1fr; gap: 24px; }
  .page-hero-img { order: -1; }
  .page-kokkuost h1, .page-info h1 { font-size: 1.9rem; }
  .mints { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: 1fr; gap: 18px; }
  .two-col, .contact-grid { grid-template-columns: 1fr; }
  .team { grid-template-columns: 1fr 1fr; gap: 24px 16px; }
  .buy-table .bt-link { display: none; }
  .quote-block blockquote { padding: 24px; }
  .quote-block p { font-size: 1.05rem; }
}

/* kokkuost/info polish (2026-09-09) */
.buy-table .bt-price { padding-right: 28px; }
.buy-table th:nth-child(2) { padding-right: 28px; }
.buy-table .bt-link { width: 120px; }
.contact-box h2 { color: #efe9da; }
@media (max-width: 900px) {
  .shead .more.muted { grid-column: 1 / -1; grid-row: 2; font-size: 0.85rem; }
  .shead p { grid-row: 3; }
}

/* ---------- a11y ---------- */
.skip { position: absolute; left: -9999px; top: 8px; background: var(--gold); color: var(--black); padding: 8px 14px; z-index: 100; }
.skip:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 2px; }

/* ---------- KKK accordion ---------- */
.faq { max-width: 820px; margin: 0 0 48px; border-top: 1px solid var(--ink); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { cursor: pointer; list-style: none; font-weight: 700; font-size: 1.05rem; padding: 18px 40px 18px 0; position: relative; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 1.5rem; color: var(--gold-ink); font-weight: 400; line-height: 1; }
.faq-item[open] summary::after { content: "–"; }
.faq-a { padding: 0 0 20px; color: var(--ink); max-width: 70ch; }
.faq-a p { margin: 0 0 12px; }

/* ---------- price hub ---------- */
.price-hero { display: grid; grid-template-columns: 1.2fr 1fr; gap: 48px; align-items: start; margin-bottom: 48px; }
.page-price h1 { font-size: 2.6rem; line-height: 1.08; letter-spacing: -0.015em; margin: 0 0 16px; }
.spot-card { background: var(--black); color: #efe9da; padding: 28px 30px; }
.spot-lbl { display: block; font-size: 0.75rem; letter-spacing: 0.1em; text-transform: uppercase; color: #948d7c; }
.spot-big { display: block; font-size: 2.6rem; font-weight: 700; color: var(--gold); line-height: 1.1; margin: 6px 0 4px; }
.spot-chg { font-weight: 700; }
.spot-chg.up { color: #7fbf7f; } .spot-chg.down { color: #e08a8a; }
.spot-chg small { color: #948d7c; font-weight: 400; margin-left: 4px; }
.spot-units { width: 100%; border-collapse: collapse; margin-top: 18px; }
.spot-units th { text-align: left; font-weight: 400; color: #948d7c; padding: 8px 0; border-top: 1px solid #37332b; font-size: 0.9rem; }
.spot-units td { text-align: right; font-weight: 700; padding: 8px 0; border-top: 1px solid #37332b; }
.pchart { width: 100%; height: auto; display: block; }
.pchart .grid { stroke: var(--line); stroke-width: 1; }
.pchart .tick { fill: var(--muted); font-size: 12px; font-family: inherit; }
.pchart .line { fill: none; stroke: var(--gold-ink); stroke-width: 2.2; stroke-linejoin: round; }
.pchart .area { fill: rgba(190,147,89,0.12); }
.pchart .dot { fill: var(--gold-ink); }
.premium-table th, .premium-table td.num { text-align: right; white-space: nowrap; }
.premium-table th:first-child { text-align: left; }
.premium-table td.num { padding-left: 20px; }
.premium-table td.strong { font-weight: 700; }
.explain-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 40px; }
.explain-grid h3 { font-size: 1.05rem; margin: 0 0 6px; }
.explain-grid p { margin: 0; color: var(--muted); font-size: 0.95rem; }
@media (max-width: 900px) {
  .price-hero { grid-template-columns: 1fr; gap: 24px; }
  .page-price h1 { font-size: 1.9rem; }
  .spot-big { font-size: 2.1rem; }
  .explain-grid { grid-template-columns: 1fr; }
  .premium-table td.num { padding-left: 10px; font-size: 0.9rem; }
  .premium-table th:nth-child(2), .premium-table td:nth-child(2) { display: none; }
}

/* ---------- v3: family products (weight swatches), pillars, premium line ---------- */
.swatches { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.swatch { font: inherit; display: grid; gap: 2px; min-width: 88px; padding: 10px 12px; text-align: left;
  background: #fff; border: 1px solid var(--line); cursor: pointer; color: var(--ink); }
.swatch b { font-size: 1rem; }
.swatch small { color: var(--muted); font-size: 0.78rem; white-space: nowrap; }
.swatch small .woocommerce-Price-currencySymbol { font-weight: 400; }
.swatch:hover { border-color: var(--black); }
.swatch.is-active { border-color: var(--black); box-shadow: inset 0 0 0 1px var(--black); background: var(--bg); }
.swatch.oos { color: var(--muted); }
.swatch.oos b { text-decoration: line-through; text-decoration-color: var(--line); }
.years { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: -4px 0 16px; }
.years .lbl { font-size: 0.75rem; letter-spacing: 0.08em; color: var(--muted); margin-right: 4px; text-transform: uppercase; }
.years .year { font: inherit; font-size: 0.85rem; padding: 5px 12px; border: 1px solid var(--line); background: #fff; cursor: pointer; border-radius: 999px; color: var(--ink); }
.years .year.is-active { background: var(--black); color: #fff; border-color: var(--black); }
.years .year.oos { color: var(--muted); text-decoration: line-through; }
.premium { margin: -4px 0 12px; font-size: 0.85rem; color: var(--muted); }
.premium b { color: var(--ink); font-weight: 600; }
.premium a { color: var(--gold-ink); }
.prod .val small { font-weight: 400; color: var(--muted); font-size: 0.75rem; }
/* WooCommerce's own variation form: keep the button, hide its selects and price */
.buybox form.variations_form { display: block; }
.buybox form.variations_form table.variations, .buybox form.variations_form .woocommerce-variation, .buybox .reset_variations { display: none !important; }
.buybox form.variations_form .woocommerce-variation-add-to-cart { display: grid; grid-template-columns: 96px 1fr; gap: 10px; }
.buybox form.variations_form .woocommerce-variation-add-to-cart-disabled { opacity: 0.5; pointer-events: none; }
.buybox .single_variation_wrap { display: block; }
/* pillar category page */
.pillar-top { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; margin: 0 0 28px; }
.pillar-intro { max-width: 62ch; }
.pillar-intro p:first-child { font-size: 1.12rem; color: var(--ink); }
.spot-strip { display: grid; gap: 4px; padding: 20px 22px; background: var(--black); color: #fff; text-decoration: none; }
.spot-strip .spot-lbl { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: #c9bfa8; }
.spot-strip .spot-big { font-family: Besley, Georgia, serif; font-size: 1.9rem; line-height: 1.1; }
.spot-strip .spot-chg { font-size: 0.9rem; color: #9ad39a; } .spot-strip .spot-chg.down { color: #f0a4a4; }
.spot-strip .spot-more { color: var(--gold); font-size: 0.88rem; margin-top: 6px; }
.cats-pillar { grid-template-columns: repeat(2, 1fr); }
.cats-pillar a { grid-template-columns: 64px 1fr auto; }
.cats-pillar img { width: 64px; height: 64px; object-fit: contain; }
.archive.pillar .archive-head { margin-bottom: 18px; }
@media (max-width: 800px) {
  .pillar-top { grid-template-columns: 1fr; gap: 20px; }
  .cats-pillar { grid-template-columns: 1fr; }
  .swatch { min-width: calc(33.33% - 6px); }
}
/* card: reference-unit price (1 oz / 100 g) with the cheapest weight underneath */
.prod .val { display: grid; justify-items: end; line-height: 1.2; }
.prod .val .from { font-weight: 400; font-size: 0.75rem; color: var(--muted); white-space: nowrap; }
.prod .val .from .woocommerce-Price-currencySymbol { font-weight: 400; }
/* quote request (closed gold / FI contact) */
.quote { margin-top: 10px; }
.quote summary { list-style: none; cursor: pointer; }
.quote summary::-webkit-details-marker { display: none; }
.quote[open] summary { background: var(--ink); }
.quote-form { border: 1px solid var(--line); border-top: 0; padding: 16px; display: grid; gap: 12px; background: #fff; }
.quote-intro { margin: 0; font-size: 0.92rem; color: var(--muted); }
.quote-form label { display: grid; gap: 4px; font-size: 0.8rem; color: var(--muted); }
.quote-form input:not([type=hidden]):not(.hp), .quote-form textarea { font: inherit; font-size: 0.95rem; padding: 9px 10px; border: 1px solid var(--line); color: var(--ink); width: 100%; box-sizing: border-box; }
.quote-form .qrow { display: grid; grid-template-columns: 80px 1fr 1fr; gap: 10px; }
.quote-form .hp { position: absolute; left: -9999px; }
.quote-form button.abtn { font: inherit; border: 1px solid var(--gold); cursor: pointer; }
.quote-msg { margin: 0; font-size: 0.9rem; min-height: 1.2em; color: var(--gold-ink); }
.quote-fine { margin: 0; font-size: 0.75rem; color: var(--muted); }
@media (max-width: 600px) { .quote-form .qrow { grid-template-columns: 1fr; } }
/* buyback calculator + intake */
.buy-table .bt-qty { width: 96px; text-align: right; }
.buy-table .bt-qty input { width: 84px; font: inherit; font-size: 1rem; text-align: right; padding: 8px 10px; border: 1px solid var(--line); }
.buy-table .bt-qty-h, .buy-table .bt-total-h { text-align: right; }
.buy-table .bt-total { text-align: right; font-weight: 700; white-space: nowrap; width: 120px; }
.calc-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 16px; padding: 18px 22px; background: var(--black); color: #fff; }
.calc-bar .calc-lbl { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: #c9bfa8; }
.calc-bar .calc-total { font-family: Besley, Georgia, serif; font-size: 1.8rem; line-height: 1.1; }
.calc-bar .calc-n { margin-left: 10px; color: #c9bfa8; }
.calc-bar .abtn { display: inline-block; padding: 12px 22px; text-decoration: none; }
.calc-fine { font-size: 0.85rem; color: var(--muted); margin: 12px 0 0; }
.cond-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 24px; }
.cond-grid h3 { font-size: 1rem; margin: 0 0 6px; }
.cond-grid p { margin: 0; font-size: 0.92rem; color: var(--muted); }
.sell-block .quote-form { max-width: 720px; }
.quote-form .qrow-3 { grid-template-columns: 1fr 1fr 1fr; }
.quote-form .file-lbl input { padding: 8px 0; border: 0; }
@media (max-width: 800px) { .cond-grid { grid-template-columns: 1fr; } .calc-bar { flex-direction: column; align-items: stretch; text-align: center; } .buy-table .bt-total { display: none; } .buy-table .bt-total-h { display: none; } .quote-form .qrow-3 { grid-template-columns: 1fr; } }
.pchart .grid.v { stroke-dasharray: 2 4; }
.pchart .endval { fill: var(--ink); font-size: 13px; font-weight: 700; font-family: inherit; }
.pchart .minmax { fill: var(--muted); font-size: 11px; font-family: inherit; }
