/* ==========================================================================
   BONHAM BRANDS — GLOBAL STYLESHEET
   --------------------------------------------------------------------------
   Single source of truth for the site's design system. Every page links this
   one file instead of inlining its own CSS, so the look stays identical across
   the whole site and a single edit here updates every page at once.

   CANONICAL DECISIONS (these resolve the prior page-to-page drift):
     - Color tokens: the 9 official Bonham tokens. The stray "--brown-light",
       which had appeared on a single page only, has been dropped.
     - Site chrome: the "main" design — a FIXED top nav with the image logo and
       a Shop dropdown, plus the dark footer. The older textile-page chrome
       (text logo, sticky nav, brown footer) is being retired onto this one.

   COVERAGE — PHASE 1: shared chrome (nav, footer, buttons, mobile menu) + all
   product-page components. Blog-post, home, and shop component styles are
   appended in later phases as those page types are migrated.
   ========================================================================== */

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

/* ---------- Design tokens ---------- */
:root {
  --cream:      #f5f0e8;
  --cream-dark: #ede6d6;
  --gold:       #b8973a;
  --gold-light: #c9a84c;
  --gold-dark:  #8a6e28;
  --brown:      #3b2f1e;
  --white:      #fdfaf4;
  --text:       #2c2215;
  --text-muted: #6b5a3e;
  /* surface tones used in a few sections */
  --footer-bg:  #1e160d;
  --band-brown: #4a3020;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: 'Josefin Sans', sans-serif;
  background: var(--cream);
  color: var(--text);
  overflow-x: hidden;
}
h1, h2, h3, h4 { font-family: 'Cormorant Garamond', serif; color: var(--brown); }

/* ---------- Accessibility helpers ---------- */
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; left: 8px; top: -48px; z-index: 2000;
  background: var(--gold-dark); color: var(--white); padding: 10px 18px;
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; text-decoration: none; transition: top 0.2s;
}
.skip-link:focus { top: 8px; }
a:focus-visible, button:focus-visible, .thumb:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid var(--gold-dark); outline-offset: 3px; border-radius: 2px;
}
.thumb:focus-visible { border-color: var(--gold); }

/* ==========================================================================
   NAVIGATION (canonical)
   --------------------------------------------------------------------------
   Scoped to `.site-nav` so these chrome rules never leak onto the page's other
   <nav> elements — the breadcrumb (<nav class="breadcrumb">) and the mobile
   drawer (<nav class="mobile-nav-drawer">). The primary nav carries class
   "site-nav".
   ========================================================================== */
.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: var(--cream); border-bottom: 1px solid rgba(184,151,58,0.3);
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 48px; height: 72px; box-shadow: 0 2px 20px rgba(59,47,30,0.08);
}
.nav-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav-logo img { height: 48px; width: 48px; object-fit: contain; }
.nav-logo-text {
  font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; font-weight: 600;
  letter-spacing: 0.15em; color: var(--brown); text-transform: uppercase;
}
.nav-links { display: flex; align-items: center; list-style: none; }
.nav-links > li { position: relative; }
.nav-links > li > a {
  display: block; padding: 0 16px; height: 72px; line-height: 72px;
  font-size: 1.02rem; font-weight: 600; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--brown); text-decoration: none;
  transition: color 0.2s; white-space: nowrap;
}
.nav-links > li > a:hover, .nav-links > li > a.active { color: var(--gold); }
.has-dropdown:hover .dropdown { display: block; }
.dropdown {
  display: none; position: absolute; top: 72px; left: 0; background: var(--white);
  border: 1px solid rgba(184,151,58,0.2); border-top: 2px solid var(--gold);
  min-width: 200px; box-shadow: 0 8px 32px rgba(59,47,30,0.12);
}
.dropdown a {
  display: block; padding: 12px 20px; font-size: 1.0rem; font-weight: 400;
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--brown);
  text-decoration: none; transition: background 0.15s, color 0.15s;
  border-bottom: 1px solid rgba(184,151,58,0.1);
}
.dropdown a:last-child { border-bottom: none; }
.dropdown a:hover { background: var(--cream); color: var(--gold); }
.nav-x {
  display: flex; align-items: center; gap: 8px; padding: 8px 18px;
  border: 1px solid var(--gold); color: var(--gold); text-decoration: none;
  font-size: 0.98rem; font-weight: 600; letter-spacing: 0.1em;
  text-transform: uppercase; transition: background 0.2s, color 0.2s;
}
.nav-x:hover { background: var(--gold); color: var(--white); }

/* ---------- Mobile navigation (hamburger + slide-in drawer) ---------- */
.nav-hamburger {
  display: none; flex-direction: column; justify-content: center; align-items: center;
  gap: 5px; width: 44px; height: 44px; background: none; border: none;
  cursor: pointer; padding: 4px; z-index: 1100; flex-shrink: 0;
}
.nav-hamburger span {
  display: block; width: 24px; height: 2px; background: var(--brown);
  transition: transform 0.3s, opacity 0.3s; transform-origin: center;
}
.nav-hamburger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-hamburger.open span:nth-child(2) { opacity: 0; }
.nav-hamburger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.mobile-menu-overlay { display: none; position: fixed; inset: 0; z-index: 900; background: rgba(44,34,21,0.45); }
.mobile-menu-overlay.open { display: block; }
.mobile-nav-drawer {
  display: none; position: fixed; top: 64px; right: 0; width: min(320px, 88vw);
  height: calc(100dvh - 64px); background: var(--white);
  border-left: 2px solid rgba(184,151,58,0.25); z-index: 1000; overflow-y: auto;
  padding: 0 0 40px; box-shadow: -8px 0 32px rgba(59,47,30,0.15);
}
.mobile-nav-drawer.open { display: block; }
.mobile-nav-drawer a, .mobile-nav-drawer .mobile-nav-section-label {
  display: block; padding: 14px 24px; font-family: 'Josefin Sans', sans-serif;
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase;
  color: var(--brown); text-decoration: none; border-bottom: 1px solid rgba(184,151,58,0.12);
  transition: background 0.15s, color 0.15s;
}
.mobile-nav-drawer a:hover { background: var(--cream); color: var(--gold); }
.mobile-nav-drawer .mobile-nav-section-label {
  color: var(--gold); font-size: 0.82rem; letter-spacing: 0.28em;
  padding-top: 20px; padding-bottom: 8px; background: var(--cream-dark); border-bottom: none;
}
.mobile-nav-drawer .mobile-nav-x-link {
  margin: 20px 24px 0; display: block; border: 1px solid var(--gold);
  color: var(--gold) !important; text-align: center;
  padding: 12px 18px !important; font-size: 0.9rem !important;
}
.mobile-nav-drawer .mobile-nav-x-link:hover { background: var(--gold); color: var(--white) !important; }

/* ==========================================================================
   BREADCRUMB
   ========================================================================== */
.breadcrumb {
  margin-top: 72px; padding: 16px 48px; background: var(--white);
  border-bottom: 1px solid rgba(184,151,58,0.15);
}
.breadcrumb-inner {
  max-width: 1200px; margin: 0 auto; display: flex; align-items: center;
  gap: 8px; flex-wrap: wrap; row-gap: 4px;
}
.breadcrumb a {
  font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--text-muted); text-decoration: none; transition: color 0.2s;
}
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span { font-size: 0.95rem; color: var(--text-muted); }
.breadcrumb-current {
  font-size: 0.95rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--gold-dark); white-space: normal; word-break: break-word;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.btn-primary, .btn-outline, .btn-outline-dark {
  padding: 14px 36px; font-family: 'Josefin Sans', sans-serif; font-size: 1.02rem;
  font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  text-decoration: none; display: inline-block; cursor: pointer;
  transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}
.btn-primary { background: var(--gold); color: var(--white); border: none; }
.btn-primary:hover { background: var(--gold-dark); transform: translateY(-2px); }
.btn-outline { background: transparent; color: var(--white); border: 1px solid rgba(253,250,244,0.6); }
.btn-outline:hover { border-color: var(--gold-light); color: var(--gold-light); transform: translateY(-2px); }
.btn-outline-dark { background: transparent; color: var(--brown); border: 1px solid var(--gold); }
.btn-outline-dark:hover { background: var(--gold); color: var(--white); }

/* ==========================================================================
   PRODUCT HERO  (two-column: image gallery + info sidebar)
   ========================================================================== */
.product-hero { padding: 64px 48px; background: var(--cream); }
.product-hero-inner {
  max-width: 1200px; margin: 0 auto; display: grid;
  grid-template-columns: 1fr 1fr; gap: 80px; align-items: start;
}

/* Image gallery */
.gallery { position: sticky; top: 92px; }
.gallery-main {
  width: 100%; aspect-ratio: 1; overflow: hidden; background: var(--white);
  border: 1px solid rgba(184,151,58,0.2); margin-bottom: 12px;
  display: flex; align-items: center; justify-content: center; cursor: zoom-in;
}
.gallery-main img { width: 100%; height: 100%; object-fit: contain; transition: transform 0.3s; }
.gallery-main:hover img { transform: scale(1.05); }
.gallery-thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.thumb {
  aspect-ratio: 1; overflow: hidden; background: var(--white);
  border: 1px solid rgba(184,151,58,0.15); cursor: pointer;
  display: flex; align-items: center; justify-content: center; transition: border-color 0.2s;
}
.thumb:hover, .thumb.active { border-color: var(--gold); }
.thumb img { width: 100%; height: 100%; object-fit: contain; }

/* Product info sidebar */
.product-info { min-width: 0; }
.product-category-tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.cat-tag {
  font-size: 0.9rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold-dark); background: var(--cream-dark); padding: 4px 10px;
  border: 1px solid rgba(184,151,58,0.25);
}
.product-name {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem);
  font-weight: 400; color: var(--brown); line-height: 1.2; margin-bottom: 8px;
}
.product-brand {
  font-size: 1.02rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--text-muted); margin-bottom: 32px;
}
.gold-divider { width: 48px; height: 2px; background: var(--gold); margin-bottom: 32px; }

/* Buy buttons (outbound "where to buy" links — never a cart) */
.btn-buy {
  display: block; width: 100%; padding: 18px; background: var(--gold); color: var(--white);
  font-family: 'Josefin Sans', sans-serif; font-size: 1.1rem; font-weight: 600;
  letter-spacing: 0.25em; text-transform: uppercase; text-decoration: none;
  text-align: center; transition: background 0.2s, transform 0.2s; margin-bottom: 16px;
  border: none; cursor: pointer;
}
.btn-buy:hover { background: var(--gold-dark); transform: translateY(-2px); }
.btn-buy-outline {
  display: block; width: 100%; padding: 16px; background: transparent; color: var(--gold-dark);
  font-family: 'Josefin Sans', sans-serif; font-size: 1.05rem; font-weight: 600;
  letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none;
  text-align: center; border: 1px solid var(--gold); transition: background 0.2s, color 0.2s;
  margin-bottom: 32px;
}
.btn-buy-outline:hover { background: var(--gold); color: var(--white); }

/* Size picker used by the multi-size skillet family */
.size-switch { display: flex; gap: 10px; margin: 18px 0 22px; flex-wrap: wrap; }
.size-switch a { display: inline-block; padding: 10px 22px; border: 1px solid var(--gold); font-family: 'Josefin Sans', sans-serif; font-size: 0.85rem; letter-spacing: 0.12em; text-decoration: none; color: var(--gold-dark); background: transparent; transition: all 0.2s; }
.size-switch a:hover { background: var(--cream-dark); }
.size-switch a.active { background: var(--gold); color: var(--white); cursor: default; }

/* Quick-facts panel */
.quick-facts { background: var(--white); border: 1px solid rgba(184,151,58,0.2); padding: 24px; margin-bottom: 32px; }
.quick-facts-title {
  font-size: 0.92rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 16px;
}
.fact-list { list-style: none; }
.fact-list li {
  font-size: 1.08rem; font-weight: 300; color: var(--text); line-height: 1.7;
  padding: 6px 0; border-bottom: 1px solid rgba(184,151,58,0.1);
  display: flex; align-items: flex-start; gap: 10px;
}
.fact-list li:last-child { border-bottom: none; }
.fact-list li::before { content: '\2713'; color: var(--gold); font-size: 1.0rem; margin-top: 2px; flex-shrink: 0; }

/* ---------- Cross-link block (unified "More from this maker / Gold Label family") ----------
   Replaces three earlier one-off versions (.cross-links, .cross-link-block, and an
   inline-styled variant). Use this single component everywhere a product links to its
   siblings (e.g. "More Sertodo Copper", co-pick almonds, the coffees). */
.cross-links { background: var(--cream-dark); border: 1px solid rgba(184,151,58,0.2); padding: 24px; margin-bottom: 8px; }
.cross-links-title {
  font-size: 0.92rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 12px;
}
.cross-links a {
  display: block; font-size: 1.0rem; font-weight: 600; letter-spacing: 0.08em;
  color: var(--gold-dark); text-decoration: none; padding: 8px 0;
  border-bottom: 1px solid rgba(184,151,58,0.15); transition: color 0.15s;
}
.cross-links a:last-child { border-bottom: none; }
.cross-links a:hover { color: var(--gold); }
.cross-links-desc { font-size: 0.95rem; font-weight: 300; color: var(--text-muted); line-height: 1.6; margin-bottom: 12px; }
.cross-links a .cl-weave { display: block; font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 2px; }
.cross-links a .cl-name { display: block; font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; color: var(--brown); transition: color 0.15s; }
.cross-links a:hover .cl-name { color: var(--gold); }

/* Second cross-link variant used by the almond/coffee/peanut families.
   TODO (polish): unify with .cross-links above into one component. */
.cross-link-block { background: var(--cream-dark); border: 1px solid rgba(184,151,58,0.25); padding: 20px 24px; margin-bottom: 32px; }
.cross-link-title { font-size: 0.88rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 12px; }
.cross-link-list { list-style: none; }
.cross-link-list li { padding: 5px 0; border-bottom: 1px solid rgba(184,151,58,0.1); }
.cross-link-list li:last-child { border-bottom: none; }
.cross-link-list a { font-size: 1.0rem; font-weight: 400; color: var(--brown); text-decoration: none; transition: color 0.2s; }
.cross-link-list a:hover { color: var(--gold); }
.cross-link-list a::after { content: ' →'; color: var(--gold); }

/* ==========================================================================
   "OUR EVALUATION" SECTION
   ========================================================================== */
.evaluation-section { padding: 80px 48px; background: var(--white); border-top: 3px solid var(--gold); }
.evaluation-inner { max-width: 860px; margin: 0 auto; }
.section-eyebrow {
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 12px;
}
.section-title {
  font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 2.5vw, 2.2rem);
  font-weight: 400; color: var(--brown); line-height: 1.25; margin-bottom: 24px;
}
.eval-body { font-size: 1.18rem; font-weight: 300; line-height: 2; color: var(--text); margin-bottom: 32px; }
.eval-body p { margin-bottom: 20px; }
.source-block { background: var(--cream); border-left: 3px solid var(--gold); padding: 24px 28px; margin-bottom: 24px; }
.source-label {
  font-size: 0.9rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase;
  color: var(--gold-dark); margin-bottom: 12px;
}
.source-label a { color: var(--gold-dark); text-decoration: none; border-bottom: 1px solid rgba(184,151,58,0.4); transition: color 0.2s; }
.source-label a:hover { color: var(--gold); }
.source-list { list-style: none; }
.source-list li {
  font-size: 1.12rem; font-weight: 300; color: var(--text); line-height: 1.8;
  padding: 5px 0; display: flex; align-items: flex-start; gap: 10px;
}
.source-list li::before { content: '\2014'; color: var(--gold); flex-shrink: 0; }
.cert-link {
  display: inline-flex; align-items: center; gap: 6px; font-size: 0.95rem; font-weight: 600;
  letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-dark);
  text-decoration: none; border-bottom: 1px solid rgba(184,151,58,0.4); padding-bottom: 2px;
  transition: color 0.2s; margin-top: 12px; margin-right: 16px;
}
.cert-link:hover { color: var(--gold); }
.disclosure { margin: 40px 0 0; padding: 20px 24px; background: var(--cream-dark); border-left: 3px solid var(--gold); }
.disclosure-label {
  font-size: 0.9rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold-dark); margin-bottom: 6px;
}
.disclosure-text { font-size: 1.02rem; font-weight: 300; color: var(--text-muted); line-height: 1.7; font-style: italic; }

/* ==========================================================================
   PURITY PROFILE / RADAR  (Chart.js radar + written pillar breakdown)
   ========================================================================== */
.radar-section { padding: 80px 48px; background: var(--cream-dark); }
.radar-inner { max-width: 1000px; margin: 0 auto; }
.radar-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
.radar-chart { background: var(--white); border: 1px solid rgba(184,151,58,0.2); padding: 30px; }
.pillar-item { padding: 16px 0; border-bottom: 1px solid rgba(184,151,58,0.15); }
.pillar-item:last-child { border-bottom: none; }
.pillar-name {
  font-size: 0.95rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold-dark); margin-bottom: 6px; display: flex; align-items: center; gap: 8px;
}
.pillar-score { font-size: 0.9rem; font-weight: 600; padding: 2px 8px; background: var(--gold); color: var(--white); }
.pillar-score.mid { background: transparent; color: var(--gold-dark); border: 1px solid var(--gold); }
.pillar-score.low { background: var(--gold-dark); }
.pillar-score.na { background: var(--cream-dark); color: var(--text-muted); border: 1px solid rgba(184,151,58,0.2); }
.pillar-desc { font-size: 1.08rem; font-weight: 300; color: var(--text); line-height: 1.7; }

/* ==========================================================================
   CONTAMINANT STATUS GRID  (dark band, two columns)
   ========================================================================== */
.contaminant-section { padding: 80px 48px; background: var(--band-brown); }
.contaminant-inner { max-width: 860px; margin: 0 auto; }
.contaminant-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; background: rgba(184,151,58,0.15); margin-top: 40px; }
.contaminant-item { padding: 24px; background: rgba(255,255,255,0.03); }
.contaminant-name {
  font-size: 0.92rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 8px;
}
.contaminant-status { font-size: 1.08rem; font-weight: 300; color: rgba(253,250,244,0.8); line-height: 1.7; }
/* The contaminant band has a dark background, so its heading needs light text */
.contaminant-section .section-eyebrow { color: var(--gold-light); }
.contaminant-section .section-title { color: var(--white); }

/* ==========================================================================
   FEATURE GRID  (used in place of the radar for non-food hardware items:
   copper, cast iron, glass — anything where a contaminant scorecard doesn't fit)
   ========================================================================== */
.feature-section { padding: 80px 48px; background: var(--cream-dark); }
.feature-inner { max-width: 1000px; margin: 0 auto; }
.feature-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px; }
.feature-card { background: var(--white); border: 1px solid rgba(184,151,58,0.2); border-top: 3px solid var(--gold); padding: 28px 24px; }
.feature-card-title { font-family: 'Cormorant Garamond', serif; font-size: 1.4rem; font-weight: 600; color: var(--brown); margin-bottom: 12px; line-height: 1.25; }
.feature-card-desc { font-size: 1.05rem; font-weight: 300; color: var(--text); line-height: 1.7; }

/* ==========================================================================
   BUY CTA  (centered closing call-to-action)
   ========================================================================== */
.buy-cta { padding: 80px 48px; background: var(--cream); text-align: center; }
.buy-cta-inner { max-width: 560px; margin: 0 auto; }
.buy-cta-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 400; color: var(--brown); margin-bottom: 12px; }
.buy-cta-sub { font-size: 1.08rem; font-weight: 300; color: var(--text-muted); margin-bottom: 32px; line-height: 1.8; }
.btn-buy-large {
  display: inline-block; padding: 18px 56px; background: var(--gold); color: var(--white);
  font-family: 'Josefin Sans', sans-serif; font-size: 1.1rem; font-weight: 600;
  letter-spacing: 0.25em; text-transform: uppercase; text-decoration: none;
  transition: background 0.2s, transform 0.2s;
}
.btn-buy-large:hover { background: var(--gold-dark); transform: translateY(-2px); }

/* ==========================================================================
   RELATED POSTS  (3-card grid of blog links)
   ========================================================================== */
.related-section { padding: 80px 48px; background: var(--cream-dark); }
.related-inner { max-width: 1200px; margin: 0 auto; }
.related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; margin-top: 40px; }
.blog-card { background: var(--white); text-decoration: none; display: block; transition: transform 0.2s, box-shadow 0.2s; border-bottom: 2px solid transparent; }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(59,47,30,0.1); border-bottom-color: var(--gold); }
.blog-card-img { width: 100%; aspect-ratio: 16/9; overflow: hidden; background: var(--cream-dark); display: flex; align-items: center; justify-content: center; }
.blog-card-img img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-body { padding: 24px 20px; }
.blog-tag { font-size: 0.88rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 10px; }
.blog-card-title { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 600; color: var(--brown); line-height: 1.3; margin-bottom: 10px; }
.blog-card-meta { font-size: 0.9rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-muted); padding-top: 14px; border-top: 1px solid var(--cream-dark); }

/* ==========================================================================
   "FOLLOW ON X" BANNER  (light band used on some product pages)
   ========================================================================== */
.x-banner { background: var(--white); border-top: 1px solid var(--cream-dark); text-align: center; padding: 44px 24px; }
.x-banner p { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; color: var(--brown); margin-bottom: 16px; }
.x-banner a {
  display: inline-flex; align-items: center; gap: 10px; padding: 14px 34px;
  border: 1px solid var(--gold); color: var(--gold-dark); font-size: 0.85rem;
  font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  text-decoration: none; transition: background 0.25s, color 0.25s;
}
.x-banner a:hover { background: var(--gold); color: var(--white); }
.x-banner img { height: 15px; width: auto; }

/* ==========================================================================
   FOOTER (canonical, dark)
   ========================================================================== */
footer { background: var(--footer-bg); padding: 60px 48px 32px; }
.footer-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 48px; padding-bottom: 48px; border-bottom: 1px solid rgba(184,151,58,0.15); }
.footer-brand img { height: 56px; margin-bottom: 16px; }
.footer-tagline { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-style: italic; color: rgba(253,250,244,0.5); line-height: 1.6; }
.footer-heading { font-size: 0.92rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; }
.footer-links { list-style: none; }
.footer-links li { margin-bottom: 10px; }
.footer-links a { font-size: 1.08rem; font-weight: 300; letter-spacing: 0.08em; color: rgba(253,250,244,0.5); text-decoration: none; transition: color 0.2s; }
.footer-links a:hover { color: var(--gold-light); }
.footer-bottom { max-width: 1200px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; padding-top: 28px; }
.footer-copy { font-size: 0.95rem; letter-spacing: 0.1em; color: rgba(253,250,244,0.3); }
.footer-disclosure { font-size: 0.92rem; color: rgba(253,250,244,0.25); max-width: 480px; text-align: right; font-style: italic; line-height: 1.6; }

/* --- Footer "Stay Informed": Follow-on-X + email signup (centered, top of footer) --- */
.footer-cta { max-width: 620px; margin: 0 auto 44px; padding-bottom: 40px; border-bottom: 1px solid rgba(184,151,58,0.15); text-align: center; }
.footer-cta-eyebrow { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
.footer-cta-divider { width: 40px; height: 1px; background: var(--gold); margin: 0 auto 24px; }
.footer-cta-x { font-family: 'Josefin Sans', sans-serif; font-size: 0.88rem; font-weight: 400; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(253,250,244,0.7); margin-bottom: 26px; }
.footer-cta-x a { color: var(--gold-light); text-decoration: none; border-bottom: 1px solid rgba(184,151,58,0.4); transition: color 0.2s; }
.footer-cta-x a:hover { color: var(--gold); }
.footer-cta-lead { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 400; color: rgba(253,250,244,0.82); line-height: 1.4; margin-bottom: 18px; }
.footer-signup { max-width: 460px; margin: 0 auto; }
.footer-signup-row { display: flex; gap: 10px; }
.footer-signup input[type="email"] { flex: 1; padding: 14px 18px; background: rgba(255,255,255,0.07); border: 1px solid rgba(184,151,58,0.35); color: var(--white); font-family: 'Josefin Sans', sans-serif; font-size: 1.05rem; letter-spacing: 0.03em; outline: none; transition: border-color 0.2s, background 0.2s; }
.footer-signup input[type="email"]::placeholder { color: rgba(253,250,244,0.4); }
.footer-signup input[type="email"]:focus { border-color: var(--gold); background: rgba(255,255,255,0.1); }
.footer-signup button { padding: 14px 30px; background: var(--gold); border: none; color: var(--white); font-family: 'Josefin Sans', sans-serif; font-size: 0.9rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; cursor: pointer; white-space: nowrap; transition: background 0.2s, transform 0.2s; }
.footer-signup button:hover { background: var(--gold-dark); transform: translateY(-1px); }
.footer-signup-note { font-size: 0.82rem; color: rgba(253,250,244,0.35); letter-spacing: 0.02em; margin-top: 10px; }
.footer-signup-msg { font-size: 0.95rem; color: var(--gold-light); letter-spacing: 0.03em; margin-top: 6px; min-height: 1.1em; }
.footer-honey { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   RESPONSIVE  (Phase 1: chrome + product pages)
   ========================================================================== */
@media (max-width: 768px) {
  .site-nav { padding: 0 20px; height: 64px; }
  .nav-logo-text { font-size: 1.15rem; letter-spacing: 0.1em; }
  .nav-logo img  { height: 38px; width: 38px; }
  .nav-links     { display: none !important; }
  .nav-hamburger { display: flex; }

  .breadcrumb { padding: 14px 20px; }

  .product-hero { padding: 40px 20px; }
  .product-hero-inner { grid-template-columns: 1fr; gap: 36px; }
  .gallery { position: static; }

  .evaluation-section { padding: 48px 20px; }
  .radar-section { padding: 48px 20px; }
  .radar-layout { grid-template-columns: 1fr; gap: 32px; }
  .contaminant-section { padding: 48px 20px; }
  .contaminant-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .feature-section { padding: 48px 20px; }
  .feature-grid { grid-template-columns: 1fr; gap: 16px; }
  .buy-cta { padding: 48px 20px; }
  .btn-buy-large { width: 100%; text-align: center; }
  .related-section { padding: 48px 20px; }
  .related-grid { grid-template-columns: 1fr 1fr; gap: 16px; }

  footer { padding: 48px 20px 24px; }
  .footer-inner { grid-template-columns: 1fr; gap: 36px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
  .footer-disclosure { text-align: left; max-width: 100%; }
  .footer-signup-row { flex-direction: column; }
  .footer-signup button { width: 100%; }
}

@media (max-width: 480px) {
  .contaminant-grid { grid-template-columns: 1fr; }
  .related-grid { grid-template-columns: 1fr; }
  .site-nav { height: 60px; }
  .mobile-nav-drawer { top: 60px; height: calc(100dvh - 60px); }
}

/* ==========================================================================
   BLOG POST  (article hero, body sections, certification blocks, CTAs, buy band)
   ========================================================================== */
.post-hero { padding: 80px 48px 64px; background: var(--white); border-top: 3px solid var(--gold); }
.post-hero-inner { max-width: 860px; margin: 0 auto; }
.post-meta { display: flex; align-items: center; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.post-tag { font-size: 0.6rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-dark); background: var(--cream-dark); padding: 4px 10px; border: 1px solid rgba(184,151,58,0.25); }
.post-date { font-size: 0.65rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); }
.post-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(2rem, 4vw, 3.2rem); font-weight: 400; color: var(--brown); line-height: 1.2; margin-bottom: 24px; }
.post-subtitle { font-size: 1rem; font-weight: 300; color: var(--text-muted); line-height: 1.8; margin-bottom: 40px; }
.post-hero-img { width: 100%; max-width: 560px; object-fit: contain; display: block; margin: 0 auto; }
.post-body { padding: 80px 48px; background: var(--cream); }
.post-body-inner { max-width: 860px; margin: 0 auto; }
.post-section { margin-bottom: 64px; }
.post-section-label { font-size: 0.62rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
.post-section h2 { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.4rem, 2.5vw, 1.9rem); font-weight: 400; color: var(--brown); line-height: 1.3; margin-bottom: 20px; }
.post-section p { font-size: 0.92rem; font-weight: 300; color: var(--text); line-height: 2; margin-bottom: 18px; }
.post-section ul { list-style: none; margin-bottom: 18px; }
.post-section ul li { font-size: 0.88rem; font-weight: 300; color: var(--text); line-height: 1.8; padding: 10px 0; border-bottom: 1px solid rgba(184,151,58,0.1); display: flex; align-items: flex-start; gap: 12px; }
.post-section ul li:last-child { border-bottom: none; }
.post-section ul li::before { content: '—'; color: var(--gold); flex-shrink: 0; margin-top: 2px; }
.cert-item { padding: 20px 24px; background: var(--white); border-left: 3px solid var(--gold); margin-bottom: 12px; }
.cert-name { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 8px; }
.cert-desc { font-size: 0.85rem; font-weight: 300; color: var(--text); line-height: 1.8; }
.highlight-block { background: var(--white); border-left: 3px solid var(--gold); padding: 28px 32px; margin: 32px 0; }
.highlight-block p { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; font-weight: 400; color: var(--brown); line-height: 1.7; font-style: italic; margin: 0; }
.source-note { font-size: 0.72rem; font-weight: 300; color: var(--text-muted); line-height: 1.7; font-style: italic; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(184,151,58,0.15); }
a.cite { color: var(--gold-dark); text-decoration: none; border-bottom: 1px solid rgba(184,151,58,0.4); font-weight: 600; }
a.cite:hover { color: var(--gold); }
.btn-product { display: block; text-align: center; margin: 0 0 64px; }
.btn-product a { display: inline-block; padding: 14px 40px; background: transparent; border: 1px solid var(--gold); color: var(--gold-dark); font-family: 'Josefin Sans', sans-serif; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; text-decoration: none; transition: background 0.2s, color 0.2s; }
.btn-product a:hover { background: var(--gold); color: var(--white); }
.post-buy { padding: 64px 48px; background: var(--brown); text-align: center; }
.post-buy-inner { max-width: 560px; margin: 0 auto; }
.post-buy-eyebrow { font-size: 0.65rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; }
.post-buy-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 400; color: var(--white); margin-bottom: 16px; }
.post-buy-sub { font-size: 0.82rem; font-weight: 300; color: rgba(253,250,244,0.65); margin-bottom: 32px; line-height: 1.8; }

/* ==========================================================================
   HOME PAGE
   ========================================================================== */
@keyframes fadeUp { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.hero { margin-top: 72px; position: relative; height: calc(100dvh - 72px); min-height: 560px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.hero-bg { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(20,15,8,0.6) 0%, rgba(20,15,8,0.5) 50%, rgba(20,15,8,0.75) 100%), url('https://images.unsplash.com/photo-1560493676-04071c5f467b?w=1600&q=80') center/cover no-repeat; }
.hero-content { position: relative; z-index: 1; text-align: center; padding: 0 24px; max-width: 860px; }
.hero-eyebrow { font-size: 1.02rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 24px; opacity: 0; animation: fadeUp 0.8s 0.2s forwards; }
.hero-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.8rem, 6vw, 5.5rem); font-weight: 300; line-height: 1.1; color: var(--white); letter-spacing: 0.02em; margin-bottom: 28px; opacity: 0; animation: fadeUp 0.8s 0.4s forwards; }
.hero-title em { font-style: italic; color: var(--gold-light); }
.hero-sub { font-size: 1.15rem; font-weight: 300; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(253,250,244,0.85); margin-bottom: 48px; opacity: 0; animation: fadeUp 0.8s 0.6s forwards; }
.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; opacity: 0; animation: fadeUp 0.8s 0.8s forwards; }
.gold-label { background: var(--cream-dark); padding: 96px 48px; text-align: center; border-top: 3px solid var(--gold); }
.gold-label-inner { max-width: 860px; margin: 0 auto; }
.gold-label-inner .gold-divider, .section-header .gold-divider { margin-left: auto; margin-right: auto; }
.section-title-dark { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3.5vw, 2.8rem); font-weight: 400; color: var(--brown); margin-bottom: 24px; line-height: 1.25; }
.section-body { font-size: 1.18rem; font-weight: 300; line-height: 1.9; color: var(--text-muted); letter-spacing: 0.03em; margin-bottom: 56px; }
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid rgba(184,151,58,0.35); margin-top: 8px; }
.pillar { padding: 36px 20px; background: var(--white); border-right: 1px solid rgba(184,151,58,0.2); border-bottom: 1px solid rgba(184,151,58,0.2); transition: background 0.2s; }
.pillar:nth-child(3n) { border-right: none; }
.pillar:nth-child(n+7) { border-bottom: none; }
.pillar:hover { background: var(--cream); }
.pillar-icon { font-size: 2.1rem; margin-bottom: 14px; }
.pillar-title { font-size: 0.95rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 10px; }
.pillar-text { font-size: 1.06rem; font-weight: 300; color: var(--text-muted); line-height: 1.7; }
.categories { padding: 96px 48px; background: var(--cream); }
.categories-inner { max-width: 1200px; margin: 0 auto; }
.section-header { text-align: center; margin-bottom: 56px; }
.category-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.category-card { position: relative; overflow: hidden; aspect-ratio: 3/4; text-decoration: none; display: block; }
.category-card-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform 0.5s ease; filter: brightness(0.75); }
.category-card:hover .category-card-bg { transform: scale(1.05); filter: brightness(0.65); }
.category-card-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(44,34,21,0.85) 0%, transparent 60%); }
.category-card-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 24px 20px; }
.category-card-title { font-family: 'Cormorant Garamond', serif; font-size: 1.45rem; font-weight: 600; color: var(--white); letter-spacing: 0.05em; margin-bottom: 4px; }
.category-card-sub { font-size: 0.9rem; font-weight: 400; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-light); }
.category-card-arrow { display: inline-block; margin-top: 10px; font-size: 0.92rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--white); opacity: 0; transition: opacity 0.2s, transform 0.2s; }
.category-card:hover .category-card-arrow { opacity: 1; transform: translateX(4px); }
.blog-section { padding: 96px 48px; background: var(--cream-dark); }
.blog-inner { max-width: 1200px; margin: 0 auto; }
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 56px; }
.blog-card-excerpt { font-size: 1.08rem; font-weight: 300; color: var(--text-muted); line-height: 1.8; margin-bottom: 20px; }
.view-all { text-align: center; margin-top: 48px; }
@media (max-width: 768px) {
  .hero { min-height: 480px; }
  .hero-buttons { flex-direction: column; align-items: center; }
  .hero-buttons .btn-primary, .hero-buttons .btn-outline { width: 100%; max-width: 300px; text-align: center; }
  .gold-label, .categories, .blog-section { padding: 64px 20px; }
  .pillars { grid-template-columns: 1fr 1fr; }
  .pillar:nth-child(3n) { border-right: 1px solid rgba(184,151,58,0.2); }
  .pillar:nth-child(2n) { border-right: none; }
  .category-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
  .blog-grid { grid-template-columns: 1fr; gap: 24px; }
}
@media (max-width: 480px) {
  .pillars { grid-template-columns: 1fr; }
  .pillar { border-right: none !important; }
  .category-grid { grid-template-columns: 1fr; }
  .hero-title { font-size: 2.4rem; }
}

/* ==========================================================================
   ABOUT PAGE
   ========================================================================== */
.page-hero { margin-top: 72px; height: 320px; position: relative; display: flex; align-items: center; justify-content: center; background: linear-gradient(to bottom, rgba(20,15,8,0.6) 0%, rgba(20,15,8,0.5) 100%), url('https://images.unsplash.com/photo-1500651230702-0e2d8a49d4ad?w=1600&q=80') center/cover no-repeat; }
.page-hero-content { text-align: center; position: relative; z-index: 1; }
.page-hero-eyebrow { font-size: 0.98rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 16px; }
.page-hero-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(2.5rem, 5vw, 4rem); font-weight: 300; color: var(--white); letter-spacing: 0.05em; }
.story-section { padding: 96px 48px; background: var(--cream); }
.story-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.story-inner .gold-divider, .values-header .gold-divider, .gold-label-header .gold-divider, .transparency-inner .gold-divider { margin-left: auto; margin-right: auto; }
.story-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--brown); line-height: 1.25; margin-bottom: 32px; }
.story-body { font-size: 1.18rem; font-weight: 300; line-height: 2; color: var(--text-muted); letter-spacing: 0.03em; }
.story-body p { margin-bottom: 20px; }
.story-body p:last-child { margin-bottom: 0; }
.values-section { padding: 96px 48px; background: var(--band-brown); }
.values-inner { max-width: 1000px; margin: 0 auto; }
.values-header { text-align: center; margin-bottom: 56px; }
.values-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--white); line-height: 1.25; }
.values-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 2px; background: rgba(184,151,58,0.2); }
.value-card { padding: 48px 40px; background: rgba(255,255,255,0.03); transition: background 0.2s; }
.value-card:hover { background: rgba(184,151,58,0.07); }
.value-number { font-family: 'Cormorant Garamond', serif; font-size: 3.3rem; font-weight: 300; color: rgba(184,151,58,0.25); line-height: 1; margin-bottom: 16px; }
.value-title { font-size: 1.0rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold); margin-bottom: 14px; }
.value-body { font-size: 1.14rem; font-weight: 300; color: rgba(253,250,244,0.7); line-height: 1.9; }
.gold-label-section { padding: 96px 48px; background: var(--cream-dark); border-top: 3px solid var(--gold); }
.gold-label-header { text-align: center; margin-bottom: 56px; }
.gold-label-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--brown); line-height: 1.25; }
.gold-label-body { font-size: 1.18rem; font-weight: 300; line-height: 2; color: var(--text-muted); letter-spacing: 0.03em; text-align: center; margin-bottom: 48px; }
.gold-label-body p { margin-bottom: 20px; }
.transparency-section { padding: 96px 48px; background: linear-gradient(to bottom, rgba(20,15,8,0.75) 0%, rgba(20,15,8,0.7) 100%), url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=1600&q=80') center/cover no-repeat; }
.transparency-inner { max-width: 760px; margin: 0 auto; text-align: center; }
.transparency-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--white); line-height: 1.25; margin-bottom: 32px; }
.transparency-body { font-size: 1.18rem; font-weight: 300; line-height: 2; color: rgba(253,250,244,0.75); letter-spacing: 0.03em; }
.transparency-body p { margin-bottom: 20px; }
.cta-section { padding: 80px 48px; background: var(--cream); text-align: center; }
.cta-inner { max-width: 600px; margin: 0 auto; }
.cta-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.6rem, 2.5vw, 2.2rem); font-weight: 400; color: var(--brown); margin-bottom: 40px; line-height: 1.3; }
.cta-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
@media (max-width: 768px) {
  .page-hero { height: 240px; }
  .story-section, .values-section, .gold-label-section, .transparency-section, .cta-section { padding: 64px 20px; }
  .values-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   CONTACT PAGE
   ========================================================================== */
.intro-inner .gold-divider, .form-header .gold-divider { margin-left: auto; margin-right: auto; }
.intro-section { padding: 96px 48px; background: var(--cream); text-align: center; }
.intro-inner { max-width: 720px; margin: 0 auto; }
.intro-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--brown); line-height: 1.25; margin-bottom: 24px; }
.intro-body { font-size: 1.18rem; font-weight: 300; line-height: 2; color: var(--text-muted); letter-spacing: 0.03em; }
.connect-section { padding: 0 48px 96px; background: var(--cream); }
.connect-inner { max-width: 900px; margin: 0 auto; }
.connect-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; max-width: 640px; margin: 0 auto; }
.connect-card { padding: 48px 36px; background: var(--white); border-bottom: 3px solid transparent; text-align: center; transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; text-decoration: none; display: block; }
.connect-card:hover { border-bottom-color: var(--gold); box-shadow: 0 12px 32px rgba(59,47,30,0.08); transform: translateY(-4px); }
.connect-icon { font-size: 2.5rem; margin-bottom: 20px; }
.connect-title { font-size: 0.98rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold-dark); margin-bottom: 14px; }
.connect-body { font-size: 1.1rem; font-weight: 300; color: var(--text-muted); line-height: 1.8; margin-bottom: 24px; }
.connect-link { font-size: 0.98rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold); border-bottom: 1px solid rgba(184,151,58,0.4); padding-bottom: 2px; }
.form-section { padding: 96px 48px; background: var(--band-brown); }
.form-inner { max-width: 680px; margin: 0 auto; }
.form-header { text-align: center; margin-bottom: 56px; }
.form-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.8rem, 3vw, 2.6rem); font-weight: 400; color: var(--white); line-height: 1.25; }
.form-subtitle { font-size: 1.12rem; font-weight: 300; color: rgba(253,250,244,0.6); margin-top: 16px; line-height: 1.8; letter-spacing: 0.03em; }
.form-group { margin-bottom: 20px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.form-group label { display: block; font-size: 0.92rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; }
.form-group input, .form-group select, .form-group textarea { width: 100%; padding: 14px 18px; background: rgba(255,255,255,0.07); border: 1px solid rgba(184,151,58,0.25); color: var(--white); font-family: 'Josefin Sans', sans-serif; font-size: 1.12rem; letter-spacing: 0.03em; outline: none; transition: border-color 0.2s, background 0.2s; }
.form-group input::placeholder, .form-group textarea::placeholder { color: rgba(253,250,244,0.3); }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { border-color: var(--gold); background: rgba(255,255,255,0.1); }
.form-group select { appearance: none; cursor: pointer; }
.form-group select option { background: #4a3020; color: var(--white); }
.form-group textarea { resize: vertical; min-height: 140px; line-height: 1.7; }
.form-submit { width: 100%; padding: 16px; background: var(--gold); border: none; color: var(--white); font-family: 'Josefin Sans', sans-serif; font-size: 1.05rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; cursor: pointer; transition: background 0.2s, transform 0.2s; margin-top: 8px; }
.form-submit:hover { background: var(--gold-dark); transform: translateY(-2px); }
.form-note { font-size: 0.98rem; color: rgba(253,250,244,0.35); text-align: center; margin-top: 16px; line-height: 1.7; font-style: italic; }
@media (max-width: 768px) {
  .intro-section, .form-section { padding: 64px 20px; }
  .connect-grid, .form-row { grid-template-columns: 1fr; }
}

/* ==========================================================================
   BLOG INDEX PAGE  (sidebar + filterable post grid)
   Scoped under .blog-index so its blog-section/inner/grid don't collide with
   the home page's "From the Blog" section, which uses the same class names.
   ========================================================================== */
.blog-index .blog-section { padding: 64px 48px 96px; background: var(--cream); }
.blog-index .blog-inner { display: grid; grid-template-columns: 240px 1fr; gap: 48px; align-items: start; }
.blog-index .blog-grid { grid-template-columns: repeat(2, 1fr); gap: 28px; margin-top: 0; }
.blog-sidebar { position: sticky; top: 92px; background: var(--white); border: 1px solid rgba(184,151,58,0.2); padding: 28px 20px; }
.sidebar-heading { font-size: 0.9rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(184,151,58,0.15); }
.cat-btn { display: block; width: 100%; text-align: left; padding: 9px 10px; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); background: none; border: none; border-left: 2px solid transparent; cursor: pointer; transition: color 0.2s, border-color 0.2s, background 0.2s; }
.cat-btn:hover { color: var(--gold); background: var(--cream); }
.cat-btn.active { color: var(--gold-dark); border-left-color: var(--gold); background: var(--cream); }
.sub-cats { display: none; padding-left: 10px; }
.sub-cats.visible { display: block; }
.sub-btn { display: block; width: 100%; text-align: left; padding: 7px 10px; font-size: 0.9rem; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-muted); background: none; border: none; border-left: 2px solid transparent; cursor: pointer; transition: color 0.2s, border-color 0.2s, background 0.2s; }
.sub-btn:hover { color: var(--gold); background: var(--cream); }
.sub-btn.active { color: var(--gold-dark); border-left-color: var(--gold-light); background: var(--cream); }
.sidebar-divider { height: 1px; background: rgba(184,151,58,0.15); margin: 12px 0; }
.blog-content { min-width: 0; }
.results-count { font-size: 0.95rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 32px; }
.blog-card.hidden { display: none; }
.no-results { grid-column: 1/-1; text-align: center; padding: 80px 0; color: var(--text-muted); font-size: 1.18rem; }
@media (max-width: 768px) {
  .blog-index .blog-section { padding: 32px 20px; }
  .blog-index .blog-inner { grid-template-columns: 1fr; gap: 0; }
  .blog-sidebar { position: static; width: 100%; margin-bottom: 28px; }
  .blog-index .blog-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
}

/* ==========================================================================
   SHOP PAGE  (sidebar + filterable product grid)
   ========================================================================== */
.shop-section { padding: 56px 48px 96px; }
.shop-inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 220px 1fr; gap: 48px; align-items: start; }
.shop-sidebar { position: sticky; top: 92px; background: var(--white); border: 1px solid rgba(184,151,58,0.2); padding: 28px 20px; }
.shop-content { min-width: 0; }
.results-bar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 32px; }
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.product-card { background: var(--white); text-decoration: none; display: block; transition: transform 0.2s, box-shadow 0.2s; border-bottom: 2px solid transparent; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 16px 40px rgba(59,47,30,0.1); border-bottom-color: var(--gold); }
.product-card.hidden { display: none; }
.product-card-img { width: 100%; aspect-ratio: 1; overflow: hidden; background: var(--cream-dark); display: flex; align-items: center; justify-content: center; }
.product-card-img img { width: 100%; height: 100%; object-fit: contain; padding: 16px; transition: transform 0.3s; }
.product-card:hover .product-card-img img { transform: scale(1.05); }
.product-card-body { padding: 20px 16px; }
.product-card-tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.product-tag { font-size: 0.85rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--gold-dark); background: var(--cream-dark); padding: 3px 7px; }
.product-card-name { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; font-weight: 600; color: var(--brown); line-height: 1.3; margin-bottom: 6px; }
.product-card-brand { font-size: 0.9rem; font-weight: 400; letter-spacing: 0.1em; text-transform: uppercase; color: var(--text-muted); }
@media (max-width: 768px) {
  .shop-section { padding: 32px 20px; }
  .shop-inner { grid-template-columns: 1fr; gap: 0; }
  .shop-sidebar { position: static; width: 100%; margin-bottom: 28px; }
  .product-grid { grid-template-columns: 1fr 1fr; gap: 16px; }
}
@media (max-width: 480px) { .product-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   TOUCH & DEVICE REFINEMENTS  (devices with no hover get tap-friendly UI)
   ========================================================================== */
@media (hover: none), (max-width: 768px) {
  /* Hover-revealed affordances must be visible without a hover (touch + small screens) */
  .category-card-arrow { opacity: 1; transform: none; }
  /* Tap targets >= 44px (Apple HIG / Material) for the filter rails */
  .cat-btn, .sub-btn { min-height: 44px; display: flex; align-items: center; }
}

/* ==========================================================================
   TABLET TIER  (769–1024px — the iPad-landscape band. Desktop rules put a
   sidebar next to a 3-col grid here, which gets cramped. Scoped to this band
   only, so it never touches the mobile (<=768) or desktop (>1024) layouts.)
   ========================================================================== */
@media (min-width: 769px) and (max-width: 1024px) {
  /* give the content column more room, then drop the grids to 2 across */
  .shop-inner, .blog-index .blog-inner { grid-template-columns: 190px 1fr; gap: 32px; }
  .shop-section { padding: 48px 32px 80px; }
  .blog-index .blog-section { padding: 48px 32px 80px; }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .blog-index .blog-grid { grid-template-columns: repeat(2, 1fr); }
  /* trim the generous 48px side gutters so full-width sections breathe */
  .gold-label, .categories, .blog-section, .story-section, .values-section,
  .gold-label-section, .transparency-section, .cta-section,
  .intro-section, .connect-section, .form-section { padding-left: 36px; padding-right: 36px; }
}

/* ==========================================================================
   IMAGE PERFORMANCE — serve smaller hero/banner backgrounds on phones.
   These full-bleed Unsplash images are the largest paint on their pages;
   1600px is wasteful on a phone, so request ~800px @ q70 instead (Unsplash
   resizes on its CDN — no local files needed). Position/size inherit from the
   base rule; only the image layer is swapped.
   ========================================================================== */
@media (max-width: 768px) {
  .hero-bg { background-image: linear-gradient(to bottom, rgba(20,15,8,0.6) 0%, rgba(20,15,8,0.5) 50%, rgba(20,15,8,0.75) 100%), url('https://images.unsplash.com/photo-1560493676-04071c5f467b?w=800&q=70'); }
  .page-hero { background-image: linear-gradient(to bottom, rgba(20,15,8,0.6) 0%, rgba(20,15,8,0.5) 100%), url('https://images.unsplash.com/photo-1500651230702-0e2d8a49d4ad?w=800&q=70'); }
  .transparency-section { background-image: linear-gradient(to bottom, rgba(20,15,8,0.75) 0%, rgba(20,15,8,0.7) 100%), url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?w=800&q=70'); }
}

/* ==========================================================================
   ACCESSIBILITY & DEVICE POLISH  (Tier 3)
   ========================================================================== */
/* Respect users who ask their OS for reduced motion — kill animations/transitions */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* Clear keyboard-focus ring — shows for keyboard users only, not on mouse click */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible,
textarea:focus-visible, [tabindex]:focus-visible, .thumb:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}
/* On touch, don't let decorative hover-lifts "stick" after a tap */
@media (hover: none) {
  .product-card:hover, .connect-card:hover, .value-card:hover, .pillar:hover {
    transform: none; box-shadow: none;
  }
  .product-card:hover .product-card-img img { transform: none; }
}

/* ==========================================================================
   INTRO POST  (one-off: full-image hero + simple prose body)
   Scoped under .intro-post so .post-hero / .post-meta / .post-content don't
   collide with the rich blog-post template.
   ========================================================================== */
.intro-post .post-hero { margin-top: 72px; min-height: 420px; position: relative; display: flex; align-items: flex-end; padding: 64px 48px; border-top: 0; background: linear-gradient(to bottom, rgba(20,15,8,0.4) 0%, rgba(20,15,8,0.92) 100%), url('https://images.unsplash.com/photo-1493770348161-369560ae357d?w=1600&q=80') center/cover no-repeat; }
.intro-post .post-hero-inner, .intro-post .post-hero-content { position: relative; z-index: 1; max-width: 760px; }
.intro-post .back-link { display: inline-flex; align-items: center; gap: 8px; font-size: 0.95rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(253,250,244,0.7); text-decoration: none; margin-bottom: 24px; transition: color 0.2s; }
.intro-post .back-link:hover { color: var(--gold-light); }
.intro-post .post-category { font-size: 0.95rem; font-weight: 600; letter-spacing: 0.25em; text-transform: uppercase; color: var(--gold-light); margin-bottom: 16px; }
.intro-post .post-title { color: var(--white); }
.intro-post .post-meta { display: block; font-size: 0.95rem; letter-spacing: 0.15em; text-transform: uppercase; color: rgba(253,250,244,0.6); }
.intro-post .post-body-section { padding: 80px 48px; background: var(--cream); }
.intro-post .post-body-inner { max-width: 760px; margin: 0 auto; }
.intro-post .post-content h2 { font-family: 'Cormorant Garamond', serif; font-size: 2.1rem; font-weight: 600; color: var(--brown); margin: 48px 0 20px; line-height: 1.2; }
.intro-post .post-content p { font-size: 1.22rem; font-weight: 300; line-height: 2; color: var(--text-muted); margin-bottom: 24px; letter-spacing: 0.02em; }
.intro-post .post-content p:last-child { margin-bottom: 0; }
.intro-post .post-tags { margin-top: 40px; display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.intro-post .tag-label { font-size: 0.92rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--text-muted); }
.intro-post .tag { padding: 5px 12px; background: var(--white); border: 1px solid rgba(184,151,58,0.25); font-size: 0.9rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-dark); text-decoration: none; transition: background 0.15s; }
.intro-post .tag:hover { background: var(--cream-dark); }
