/* 1. Fonts -------------------------------------------------- */
@font-face {
  font-display: swap;
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 400;
  src: url('/fonts/playfair-display-v40-latin-regular-8a53e5ecdbffafb4aaa40a23fdece238.woff2') format('woff2');
}

@font-face {
  font-display: swap;
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  src: url('/fonts/playfair-display-v40-latin-600-53169c2447b2fdcb3c8fe02d7252365e.woff2') format('woff2');
}

:root {
	/* ColorLab's Brass Nostalgia */
	--color-metallic-gold: #D4AF37;
	--color-snapshot: #2C3E50;
	--color-ragtime-blues: #4A5E6B;
	--color-roasted-pistachio: #C9B27D;
	--color-canyon-verde: #8B7D5B;

	/* Derivatives */
	--color-ragtime-darker: #3A4E5B;
	--color-pistachio-light: #e9d29D;

	--surface: #ECE9E2;
	--surface-2: color-mix(in srgb, var(--surface) 85%, white);
	--surface-3: color-mix(in srgb, var(--surface) 30%, white);
	--surface-darker: color-mix(in srgb, var(--surface) 90%, black);

	--ink: var(--color-snapshot);
	--ink-on-dark: #ECE9E2;

	--border-color: color-mix(in srgb, var(--ink) 20%, white);
	--aspect-tint: var(--color-ragtime-blues);
	--aspect-tint-rgb: 74, 94, 107;

	--link: var(--color-snapshot);
	--link-hover: var(--color-ragtime-blues);
	--link-visited: var(--color-ragtime-blues);
	--link-underline: var(--color-roasted-pistachio);
	--link-underline-hover: var(--color-metallic-gold);
	--link-underline-thickness: 2px;
	--link-underline-offset: 2px;

	--muted: color-mix(in srgb, var(--ink) 60%, transparent);
	--border: color-mix(in srgb, var(--ink) 15%, transparent);
	--border-hover: color-mix(in srgb, var(--ink) 25%, transparent);
	--shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 4px 10px rgba(0, 0, 0, .06);

	/* fonts */
	--font-heading: "Playfair Display", Georgia, serif;
    --font-body: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
	--font-sans: var(--font-body);
    --font-serif: Georgia, "Times New Roman", serif;

  /* Modular scale (≈1.2 minor third) */
  --step--2: clamp(.78rem, .70rem + .2vw, .84rem);
  --step--1: clamp(.88rem, .82rem + .2vw, .94rem);
  --step-0:  clamp(1rem, .95rem + .2vw, 1.06rem);
  --step-1:  clamp(1.2rem, 1.1rem + .5vw, 1.35rem);
  --step-2:  clamp(1.44rem, 1.28rem + .8vw, 1.62rem);
  --step-3:  clamp(1.73rem, 1.5rem + 1vw, 1.94rem);
  --step-4:  clamp(2.07rem, 1.8rem + 1.3vw, 2.38rem);
  --step-5:  clamp(2.49rem, 2.1rem + 1.8vw, 2.9rem);

	/* One scale for all pages (bump with --h-scale if needed) */
	--h-scale: 1.0;
	--h1-scale: 1.5;

	--h1-size: clamp(calc(2rem * var(--h-scale) * var(--h1-scale)),
			calc(2.5vw * var(--h-scale) * var(--h1-scale)),
			calc(3rem * var(--h-scale) * var(--h1-scale)));

	--h2-size: clamp(calc(2.0rem * var(--h-scale)), calc(2.5vw * var(--h-scale)), calc(3.0rem * var(--h-scale)));
	--h3-size: clamp(calc(1.35rem * var(--h-scale)), calc(1.8vw * var(--h-scale)), calc(1.8rem * var(--h-scale)));
	--lead-size: 1.125rem;

	/* Bootstrap runtime vars */
	--bs-font-sans-serif: var(--font-sans);
	--bs-body-font-family: var(--bs-font-sans-serif);
	--bs-primary: var(--color-ragtime-blues);
	--bs-secondary: var(--color-snapshot);
	--bs-warning: var(--color-metallic-gold);
	--bs-border-radius: var(--radius);

	--page-max: 1400px;
	--page-margin: 30px;
	--gutter: 15px;
	--card-gap: 15px;
	--radius: 1.5rem;
	--line: color-mix(in oklab, #000 10%, transparent);
}


@media (width <=750px) {
	:root {
		--gutter: 10px;
		--page-margin: 10px;
	}
}

html,
body {
	background: var(--surface);
	color: var(--ink);
		  width: 100%;
          overflow-x: hidden; /* stop page-wide side-scroll */
}

html {
	font-size: 18px;
}

body {
	font-family: var(--font-body);
    font-size: var(--step-0);
    line-height: 1.6;
    font-feature-settings: "kern","liga","clig","calt";
    font-kerning: normal;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
	margin: 0px;
	padding: 0px;
}

/* Headings */
h1,h2,h3,h4,h5,h6{
  font-family: var(--font-heading);
  font-weight: 600;
  letter-spacing: -0.005em;
  line-height: 1.2;
  margin: 1.2em 0 .5em;
  text-wrap: balance;
}
h1{ font-size: var(--step-5); }
h2{ font-size: var(--step-3); }
h3{ font-size: var(--step-1); }
h4{ font-size: var(--step-0); }
h5{ font-size: var(--step--1); }
h6{ font-size: var(--step--2); text-transform: uppercase; letter-spacing: .06em; font-weight: 400; }


/* Body text */
p, ul, ol, dl{ margin: 0 0 1rem 0; }
small, .caption{ font-size: var(--step--1); line-height: 1.4; color: var(--muted); }
.lede{ font-size: var(--step-1); line-height: 1.65; }

/* Eyebrow utility for product cards/articles */
.eyebrow{
  font: 600 var(--step--1)/1 var(--font-body);
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted);
}

/* Links (keep your underline styling, add focus clarity) */
a{ text-underline-offset: 2px; }
a:focus-visible{
  outline: 0;
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--link) 30%, transparent);
  border-radius: .2rem;
}

/* ===== PROSE MODE (for articles & long reviews) ===== */
.prose{
  font-family: var(--font-serif);       /* move to comfortable serif */
  max-width: 72ch;                      /* readable measure */
  line-height: 1.4;
  font-size: clamp(1.02rem, 1rem + .3vw, 1.125rem);
  hanging-punctuation: first;
  hyphens: auto;
}
.prose p{ margin: 0 0 1em; }
.prose h1{ font-size: var(--step-5); margin-top: 0; }
.prose h2{ font-size: var(--step-3); }
.prose h3{ font-size: var(--step-2); }
.prose h4{ font-size: var(--step-1); }
.prose img, .prose figure{ margin: 1.25rem 0; }
.prose blockquote{
  margin: 1.25rem 0; padding: .75rem 1rem;
  border-left: 3px solid var(--color-roasted-pistachio);
  color: color-mix(in srgb, var(--ink) 85%, transparent);
  font-style: italic;
}
.prose li{ margin: .3em 0; }
.prose hr{ border: 0; height: 1px; background: var(--border); margin: 2rem 0; }


/* 1) Prose container refinements (build on your existing .prose rules) */
.prose {
  /* already serif + measure set in site.css; keep consistent */
  hanging-punctuation: first;
  hyphens: auto;
}
.prose > *:first-child { margin-top: 0; }
.prose > *:last-child  { margin-bottom: 0; }

/* 2) Images & figures (Markdown: ![alt](src)) */
.prose img {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  background: #fff;
  /* “small, wide border” look = soft frame + hairline stroke */
  border: 6px solid var(--surface-2);
  outline: 1px solid var(--border);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.prose figure {
  margin: 1.25rem 0;
}
.prose figure > img {
  margin: 0; /* image already framed */
}
.prose figcaption {
  margin-top: .5rem;
  text-align: center;
  color: var(--muted);
  font-size: var(--step--1);
}

/* 3) Tables (Toast UI / GFM) */
.prose table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.25rem 0;
  font-size: .95em;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  overflow: hidden;           /* clip rounded corners */
}
.prose thead th {
  text-align: left;
  background: var(--surface-3);
  color: inherit;
}
.prose th,
.prose td {
  padding: .6rem .75rem;
  border-top: 1px solid var(--border);
}
.prose tr:nth-child(even) td { background: color-mix(in srgb, var(--surface) 60%, #fff); }

/* Make wide tables usable on phones without breaking layout */
@media (max-width: 700px) {
  .prose table { display: block; overflow-x: auto; }
  .prose thead, .prose tbody, .prose tr { width: max-content; }
}

/* 4) Blockquotes (augment your existing style slightly) */
.prose blockquote {
  border-left: 4px solid var(--color-roasted-pistachio);
  padding: .75rem 1rem;
  background: color-mix(in srgb, var(--surface) 40%, transparent);
  color: color-mix(in srgb, var(--ink) 85%, transparent);
  font-style: italic;
}

/* 5) Code (inline & fenced) */
.prose :not(pre) > code {
  background: var(--surface-2);
  border: 1px solid var(--border);
  padding: .1em .35em;
  border-radius: .35rem;
  font-size: .95em;
}
.prose pre {
  margin: 1rem 0;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .85rem 1rem;
  overflow: auto;
  line-height: 1.5;
}
.prose pre code {
  background: transparent;
  border: 0;
  padding: 0;
  font-size: .95em;
  color: var(--color-ragtime-blues);
}

/* 6) Lists (including GFM task lists) */
.prose ul, .prose ol { padding-left: 1.25rem; }
.prose li { margin: .3em 0; }
.prose ul.task-list { list-style: none; padding-left: 0; }
.prose .task-list-item { display: flex; align-items: flex-start; gap: .5rem; }
.prose .task-list-item input[type="checkbox"] {
  margin-top: .2rem;
  accent-color: var(--color-ragtime-blues); /* matches your brand */
}

/* 7) Horizontal rules and separators */
.prose hr {
  border: 0;
  height: 1px;
  background: var(--border);
  margin: 2rem 0;
}

/* 8) Footnotes (Flexmark FootnoteExtension output) */
.prose sup.footnote-ref a {
  text-decoration: none;
  border-bottom: 1px dotted var(--border);
}
.prose .footnotes {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 3px double var(--border); /* decorative rule above references */
  color: var(--muted);
  font-size: var(--step--1);
}
.prose .footnotes ol { padding-left: 1.25rem; }
.prose .footnote-backref {
  text-decoration: none;
  margin-left: .25rem;
}

/* 9) Links inside prose inherit global link styling; just ensure focus visible */
.prose a:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--link) 30%, transparent);
  border-radius: .2rem;
}

.article-wrap { max-width: 1000px; margin-inline: auto; }




/* ===== COMMERCE MODE (default pages, grids, cards) ===== */
.commerce{
  font-family: var(--font-body);        /* sans for UI clarity */
  line-height: 1.55;                    /* tighter for cards/lists */
}
.commerce .h1, .commerce h1{ font-size: var(--step-4); }
.commerce .h2, .commerce h2{ font-size: var(--step-3); }
.commerce .h3, .commerce h3{ font-size: var(--step-2); }

/* Tighten product card titles without yelling */
.product-card__title{
  font-family: var(--font-body);
  font-weight: 600;
  text-transform: none;                 /* avoid all-caps for scan speed */
  letter-spacing: .01em;
  line-height: 1.2;
  font-size: clamp(1rem, .9rem + 1.5cqi, 1.25rem);
}
.product-card__brand{ font-size: clamp(.78rem, .72rem + 1cqi, .95rem); }

/* Optional: numerical emphasis (prices, ratings) */
.num{ font-variant-numeric: tabular-nums; }



em {
	font-style: italic;
}

pre,
code,
kbd,
samp {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
	font-size: .95em;
}


a {
	color: var(--link);
	text-decoration-color: var(--link-underline);
	text-decoration-thickness: var(--link-underline-thickness);
	text-underline-offset: var(--link-underline-offset);
	text-decoration-skip-ink: auto;
}

a:hover {
	color: var(--link-hover);
	text-decoration-color: var(--link-underline-hover);
}

a:visited {
	color: var(--link-visited);
	text-decoration-style: dotted;
}


/* 1) Inline code (e.g., inside paragraphs, lists, headings) */
:not(pre) code {
	color: var(--color-ragtime-blues);
	background: transparent;
	/* keep your page background */
}

/* 2) Code blocks */
pre code,
pre {
	color: var(--color-ragtime-blues);
}

/* 3) (Optional) If you use a highlighter (Prism/HLJS), nudge it too */
[class*="language-"] code,
.token,
.hljs {
	color: var(--color-ragtime-blues) !important;
}

/* (Optional) add a subtle style for inline code chips */
:not(pre) code {
	padding: 0 .25em;
	border-radius: .25rem;
}


/* LAYOUTS */

/* Low-specificity primitives */
.track {
	max-width: var(--page-max);
	margin-inline: auto;
	padding-inline: max(var(--page-margin), env(safe-area-inset-left));
	padding-inline-end: max(var(--page-margin), env(safe-area-inset-right));
}

.section {
	padding-block: var(--gutter);
}

.section+.section {
	padding-top: 0;
}

/* Collapse the gap when a .section follows </main> */
main+footer.section {
	padding-top: 0;
}

main+.section {
	padding-top: 0;
}

.content {
	padding-block: var(--gutter);
}

.content> :first-child {
	margin-top: 0;
}

.content> :last-child {
	margin-bottom: 0;
}

/* Common layout patterns */
.stack {
	display: flex;
	flex-direction: column;
	gap: var(--gutter);
}
/* vertical flow */
.cluster {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
}

.grid {
	--grid-min: 450px;
	/* default min width per card */
	--grid-gap: var(--card-gap, 1rem);
	display: grid;
	gap: var(--grid-gap);
    grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--grid-min)), 1fr));
}

.grid--xs {
	--grid-min: 240px;
}
.grid--sm {
	--grid-min: 300px;
}
.grid--md {
	--grid-min: 360px;
}
.grid--lg {
	--grid-min: 450px;
}
.grid--xl {
	--grid-min: 560px;
}
/* Helpful guard so cards can actually shrink inside grid tracks */
.grid>* {
	min-width: 0;
}

.card {
	border: 1px solid var(--line);
	overflow: clip;
	background: #fff;
}

.card>.card-body {
	padding: calc(var(--gutter)*.6);
}

/* Bootstrap integration: point its gutters at your tokens */
.row.layout-gutters {
	--bs-gutter-x: var(--card-gap);
	--bs-gutter-y: var(--card-gap);
}


/* Two-thirds / one-third layout */
.grid--two-thirds {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: var(--card-gap, 1.5rem);
  align-items: start; /* keeps the top edges aligned */
}

/* Optional responsive stacking */
@media (max-width: 900px) {
  .grid--two-thirds {
    grid-template-columns: 1fr;
  }
  .grid--two-thirds .side {
    order: -1; /* move sidebar above or below if you want */
  }
}

/* Optional styling to match your pattern */
.side.card {
  background: var(--card-bg, #fff);
  padding: var(--pad, 1rem);
  box-shadow: var(--shadow, 0 2px 6px rgba(0,0,0,0.1));
}


/* BACKGROUND IMAGE & OVERLAY */

.card--cover {
	position: relative;
	background-image: var(--card-image, none);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	color: #fff;
}

.card--cover::before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--card-overlay, none);
	/* e.g. rgba(0,0,0,.4) */
	z-index: 0;
}

.card--cover>* {
	position: relative;
	z-index: 1;
}

.card-dark {
    background: var(--color-snapshot);
    color: var(--ink-on-dark);
}

a.dark {
  color: var(--color-metallic-gold);
  text-decoration: underline;
}
a.dark:hover,
a.dark:focus {
  color: #fff;
}
a.dark:visited {
  color: var(--color-metallic-gold);
}

.card--lighter {
  background-color: rgba(255, 255, 255, 0.5);
}


/* MEDIA CARD */

.card--media {
	border: 1px solid var(--line);
	overflow: clip;
	/* nicer than hidden when supported */
}

.media {
	position: relative;
	inline-size: 100%;
	block-size: clamp(280px, 30svh, 520px);
	background: #000;
	container-type: inline-size;
}

.media__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(.95) contrast(1.05);
}

.media__content {
	position: absolute;
	inset: 0;
	z-index: 1;
	color: var(--surface, #F9F7F2);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: clamp(8px, 1.2cqw, 14px);
	padding: clamp(16px, 4cqw, 32px);
	text-align: center;
}

.media__title {
	margin: 0;
	font-weight: 600;
	line-height: 1.05;
	font-size: clamp(1.75rem, 4.2cqw, 3rem);
	color: inherit;
}

.media__tagline {
	margin: 0;
	font-size: clamp(1rem, 2cqw, 1.125rem);
	color: color-mix(in srgb, currentColor 88%, transparent);
}

.media__caption {
	position: absolute;
	z-index: 1;
	right: 12px;
	bottom: 8px;
	font-size: .8rem;
	color: rgba(249, 247, 242, .85);
	background: rgba(0, 0, 0, .4);
	padding: 2px 6px;
	border-radius: 4px;
}

@supports(padding:max(0px)) {
	.media__content {
		padding-left: max(16px, 4cqw, env(safe-area-inset-left));
		padding-right: max(16px, 4cqw, env(safe-area-inset-right));
	}
}


/* ===========================
   BUTTONS — Base + Modifiers + States
   =========================== */

.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .5rem 1rem;
	border: 1px solid var(--color-ragtime-blues);
	border-radius: 1.5rem;
	font: 400 .9rem/1.2 var(--font-body);
	text-transform: uppercase;
	text-decoration: none;
	background-color: #fff;
	color: #000;
	cursor: pointer;
	vertical-align: middle;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:visited {
	color: #000;
}

/* Sizes */
.btn--sm {
	padding: .3rem .7rem;
	font-size: .7rem;
}
.btn--lg {
	padding: .75rem 1.25rem;
	font-size: 1rem;
}
.btn--block {
	inline-size: 100%;
	display: inline-flex;
}

.btn--primary {
	background-color: var(--color-metallic-gold);
}
.btn--primary,
.btn--primary:visited,
.btn--primary:active,
.btn--primary:focus,
.btn--primary:focus-visible {
	color: #fff;
}
.btn--primary:hover {
	background-color: color-mix(in srgb, var(--color-metallic-gold) 70%, #000);
}
.btn:focus,
.btn:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--color-metallic-gold) 35%, transparent);
}
.btn[disabled],
.btn:disabled,
.btn.is-disabled {
	opacity: .6;
	pointer-events: none;
}

.btn--secondary {
	background-color: #fff;
}
.btn--secondary,
.btn--secondary:visited,
.btn--secondary:active,
.btn--secondary:focus-visible {
	color: var(--color-snapshot);
}
.btn--secondary:hover {
	background-color: color-mix(in srgb, #fff 70%, #000);
}

.btn--ghost {
	background-color: transparent;
	border-color: currentColor;
}
.btn--ghost:hover {
	background-color: color-mix(in srgb, currentColor 10%, transparent);
}


/* Surface/context modifiers (use with any kind) */
.btn--on-white {
	/* default already assumes white; keeps for clarity */
}
.btn--on-dark {
	color: #fff;
	border-color: rgba(255, 255, 255, .3);
}
.btn--on-dark.btn--ghost {
	color: #fff;
}

/* Icon-only (perfect circle) */
.btn--icon {
	inline-size: 3rem;
	block-size: 3rem;
	padding: 0;
	border-radius: 50%;
	font-size: 1.1rem;
	/* icon size */
}



/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	.btn {
		transition: none;
	}
}


/* Circle button utility */
.btn-circle {
	--btn-circle-size: 50px;
	width: var(--btn-circle-size);
	height: var(--btn-circle-size);
	border-radius: 50%;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* Icon sizing inside the circle */
.btn-circle .bi,
.btn-circle svg {
	font-size: calc(var(--btn-circle-size) * 0.70);
	width: 1em;
	height: 1em;
	line-height: 1;
}


/* FORMS */
.form-control.is-invalid,
.was-validated .form-control:invalid,
.form-select.is-invalid,
.was-validated .form-select:invalid {
	border-color: var(--color-metallic-gold);
	color: inherit;
	background-image: none;
}

.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus,
.form-select.is-invalid:focus,
.was-validated .form-select:invalid:focus {
	border-color: var(--color-metallic-gold);
	box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-ragtime-blues) 25%, transparent);
}

.invalid-feedback {
	color: var(--color-metallic-gold);
}

/* Alerts aligned with scheme */
.alert-danger {
	color: color-mix(in srgb, var(--color-ragtime-blues) 80%, black 20%);
	background-color: color-mix(in srgb, var(--color-ragtime-blues) 12%, var(--surface) 88%);
	border-color: color-mix(in srgb, var(--color-ragtime-blues) 35%, transparent);
}

.alert-success {
	color: color-mix(in srgb, var(--ink) 85%, var(--color-metallic-gold) 15%);
	background-color: color-mix(in srgb, var(--color-metallic-gold) 12%, var(--surface) 88%);
	border-color: color-mix(in srgb, var(--color-metallic-gold) 35%, transparent);
}

/* Smooth but respectful transitions (optional) */
@media (prefers-reduced-motion: no-preference) {

	.btn,
	.form-control {
		transition: background-color .18s, border-color .18s, color .18s, box-shadow .18s;
	}
}

/* Brand focus ring for all common controls */
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
	border-color: var(--color-ragtime-blues) !important;
	box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--color-ragtime-blues) 25%, transparent) !important;
	outline: none;
}

/* Make checkbox/radio checkmark on-brand (Chrome/Safari/Firefox support) */
.form-check-input {
	accent-color: var(--color-ragtime-blues);
}


/* accordion component default */

.accordion-item {
	border-radius: 1rem;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .06);
	box-shadow: 0 6px 18px rgba(0, 0, 0, .06);
}

.accordion-button {
	color: var(--color-ragtime-blues);
	background: linear-gradient(0deg, var(--surface) 0%, var(--color-red-gold) 100%);
	padding: 1rem 1.25rem;
}

.accordion-button::after {
	/* Chevron tint */
	filter: hue-rotate(16deg) saturate(1.2);
	opacity: .9;
}

.accordion-button:not(.collapsed) {
	color: var(--color-snapshot);
	background: linear-gradient(0deg, var(--color-red-gold) 0%, var(--surface) 100%);
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .05);
	border-bottom: 1px solid rgba(0, 0, 0, .06);
}

.accordion-button:hover {
	background: linear-gradient(0deg, var(--surface) 0%, var(--color-red-gold) 100%);
}

/* Brass focus ring (keyboard friendly) */
.accordion-button:focus {
	box-shadow: 0 0 0 .25rem rgba(201, 178, 125, .35);
	border-color: rgba(201, 178, 125, .8);
	outline: none;
}

/* Body copy tone inside accordion */
.accordion-body {
	background: #fff;
	color: var(--ink);
}

.accordion .accordion-button {
	color: var(--color-snapshot);
}


/* PAGE BACKGROUND */
body::after {
	content: "";
	position: fixed;
	top: 0;
	right: 0;
	/* lock to right edge of viewport */
	bottom: 0;
	/* extend full height */
	width: 1000px;
	/* stripe width */

	background-image: image-set(url("/images/pixels1-a35b64565d33001c45ce886b62aaa779.webp") 1x,
			url("/images/pixels2-0c71b76f09424113b98f17d01a6229d1.webp") 2x);

	background-repeat: repeat-y;
	background-position: right top;
	background-size: auto 400px;
	/* tile height */
	image-rendering: pixelated;
	image-rendering: -webkit-optimize-contrast;

	opacity: 0.2;
	pointer-events: none;
	z-index: 0;
}

/* keep page content above it */
body>* {
	position: relative;
	z-index: 1;
}


/* REDDIT POST MASONRY layout using CSS columns */
.reddit-masonry {
	/* up to 4 columns; each at least ~320px wide */
	columns: 4 320px;
	column-gap: var(--gutter);
}

/* Each item is a “brick” */
.reddit-masonry .reddit-item {
	break-inside: avoid;
	display: block;
	margin: 0 0 var(--gutter);
}

/* Smooth initial render to reduce CLS before iframe loads */
.reddit-item>.reddit-embed-bq {
	display: block;
	width: 100%;
	min-height: 240px;
	/* tune per your typical heights */
}

/* If your .section__track has container-type: inline-size, you can do container queries */
@container (max-width: 1200px) {
	.reddit-masonry {
		columns: 3 300px;
	}
}

@container (max-width: 900px) {
	.reddit-masonry {
		columns: 2 280px;
	}
}

@container (max-width: 600px) {
	.reddit-masonry {
		columns: 1 100%;
	}
}


/* HEADER */

.site-header {
	padding: 0;
	margin: 0;
	font-size: 0.9rem;

	border-radius: var(--radius);
    background: linear-gradient(to right,
        rgba(255,255,255,0) 0%,    /* fully transparent */
        rgba(255,255,255,0.8) 50%, /* semi-transparent */
        rgba(255,255,255,1) 100%   /* solid white */
    );
}

/* Base layout */
.navbar .section__content {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	width: 100%;
}

.navbar-toggler {
	margin-left: auto;
	z-index: 2;
}

/* hamburger pinned right */
#mainNav {
	flex-basis: 100%;
	width: 100%;
}

/* Mobile (collapsed) — right-align stacked items */
@media (max-width: 991.98px) {
  #mainNav .navbar-nav {
    margin-left: auto;
    align-items: flex-end;fheader
  }

  #mainNav .nav-link {
    text-align: right;
  }
}

/* Desktop (lg+) — inline row, right-aligned menu, hide toggler */
@media (min-width: 992px) {
  #mainNav {
    flex-basis: auto;
    width: auto;
  }

  .navbar-collapse {
    justify-content: flex-end;
  }

  .navbar .section__content {
    flex-wrap: nowrap;
  }

  .navbar-toggler {
    display: none;
  }
}
.navbar-nav .nav-item {
	margin-right: 1rem;
}

.navbar-toggler {
	margin-right: 1rem;
	/* pushes it inward from the edge */
}



/* FOOTER */

.site-footer {
   background: var(--color-snapshot);
     color: var(--ink-on-dark);

 /* Local link tokens (scoped) */
 --link:                 var(--surface);
 --link-hover:           var(--ink-light);
 --link-visited:         var(--surface);
 --link-underline:       var(--color-roasted-pistachio);
 --link-underline-hover: var(--color-metallic-gold);
}

.footer-top{
 display: flex;
 flex-wrap: wrap;
 gap: var(--gutter, 1rem);

 /* Stretches smoothly, then goes 2-up, then 1-up when too tight */
 grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
 align-items: start;
 padding-top: 1.5rem;
 margin-left: 1.2rem;
 margin-right: 1.2rem;
}

.footer-logo {  flex: 1 1 250px; margin-bottom: 1rem; }
.footer-nav  {  flex: 1 1 140px; margin-bottom: 1rem; }
.footer-about{  flex: 2 1 320px; margin-bottom: 1rem; }

.site-footer > .footer-top,
.site-footer > .footer-cta{  padding: 20px;}

/* If you want the CTAs to visually separate from top row a bit more */
.footer-cta{
   border-top: 1px dashed var(--color-metallic-gold);
   border-bottom: 1px dashed var(--color-metallic-gold);
}

/* Respect your existing color system if present */
.site-footer__about{ max-width: 50ch; }

/* Second row: 3 equal-ish panels that also stretch before wrapping */
.footer-cta{
 display: grid;
 gap: 25px;
 grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
 align-items: start;
 background: var(--color-ragtime-blues);
}

/* Bottom bar keeps nice alignment but collapses to column on narrow */
.footer-bottom{
 display: flex;
 flex-wrap: wrap;
 gap: .75rem;
 justify-content: space-between;
 align-items: flex-end;
 padding-top: 1.25rem;
 margin: 1.25rem;
}
/* Full-bleed footer background */
.footer--bleed {
  background: var(--color-snapshot); /* your dark brand color */
  color: rgba(255, 255, 255, 0.85); /* default light text */
}

/* Remove card box styling */
.footer--bleed .card {
  background: transparent;
  border: 0;
  box-shadow: none;
}

.footer--bleed .card-body {
  padding: 0;
}

/* Footer text + link colors */
.footer--bleed .site-footer {
  background: transparent;
  color: inherit;
}

.footer--bleed a,
.footer--bleed .site-footer__foot-link {
  color: rgba(255, 255, 255, 0.85);
  text-decoration: none;
  transition: color 0.15s ease-in-out;
}

.footer--bleed a:hover,
.footer--bleed .site-footer__foot-link:hover {
  color: #fff;
  text-decoration: underline;
}

/* Small print and muted sections */
.footer--bleed .opacity-75 {
  color: rgba(255, 255, 255, 0.65) !important;
}

/* Headings within footer */
.footer--bleed h3 {
  color: #fff;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

/* Social buttons or icons */
.footer--bleed .site-footer__social-btn {
  color: rgba(255, 255, 255, 0.85);
  background: transparent;
  border: none;
  font-size: 1.25rem;
  transition: color 0.15s ease-in-out;
}

.footer--bleed .site-footer__social-btn:hover {
  color: #fff;
}

/* Utilities */
.stack.gap-sm{ gap: .5rem; }

.footer-logo{ inline-size: clamp(160px, 10vw, 280px); }  /* the box the logo sits in */
.site-footer__logo{
 display:block;
 max-inline-size: 100%;     /* fills the box width */
 block-size: auto;      /* keep aspect ratio */
 height: auto;          /* override any HTML attr just in case */
 opacity: .6;
}


/* Newsletter inline form */
.newsletter-inline{
 display: grid;
 grid-template-columns: 1fr auto; /* input grows, button hugs */
 gap: .5rem;
 max-width: 420px;
 width: 100%;
}
.newsletter-inline .nl-fixed{ min-width: 0; } /* allow shrink in grid */

/* Links & social */
.site-footer__foot-link{
	text-decoration-color: var(--color-metallic-gold);
	text-decoration-thickness: var(--link-underline-thickness);
	text-underline-offset: var(--link-underline-offset);
	text-decoration-skip-ink: auto;
}
.site-footer__foot-link:hover{
 text-decoration: underline;
}
.site-footer__social-btn{
 display: inline-flex;
 align-items: center;
 justify-content: center;
 font-size: 1.25rem;
 line-height: 1;
 width: 2rem; height: 2rem;
}


@media (max-width: 480px){
 /* A little breathing room for very small screens */
 .newsletter-inline{ grid-template-columns: 1fr auto; }
}



/* GROUP CARDS */

/* Make tile a container so cqw units (if you use them) behave */
.group-card {
	position: relative;
	aspect-ratio: 16 / 9;
	display: block;
	/* simple block; no grid needed */
	container-type: inline-size;
}

/* Padded content box that aligns to the bottom */
.group-card__inner {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: clamp(1rem, 3.5cqw, 1.5rem);
	gap: .45rem;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, .35);
	z-index: 2;
	/* above overlay + stretched link */
}

/* Keep overlay under everything else — you already have this */
.card--cover::before {
	z-index: 0;
}

/* source defined in your CSS :contentReference[oaicite:0]{index=0} */

/* Ensure the stretched link sits below text but covers the tile */
.group-card .stretched-link {
	position: absolute;
	inset: 0;
	z-index: 1;
	color: inherit;
	text-decoration: none;
}

/* Headings inherit white even with global h3 color elsewhere */
.group-card__title {
	margin: 0 0 .35rem 0;
	font: 700 var(--h3-size)/1.2 var(--font-heading);
	color: inherit;
	/* beats global h3 color by cascade */
}

/* Optional: if a global h3 color still wins by order, bump specificity */
.group-card h3.group-card__title {
	color: inherit;
}

/* Keep your eyebrow/blurb styles if desired */
.group-card__eyebrow {
	font-size: .8rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	opacity: .9;
	margin-bottom: .25rem;
}

.group-card__blurb {
	font-size: .95rem;
	line-height: 1.4;
	margin: 0 0 .8rem 0;
	max-width: 60ch;
}

/* Fallback for no-image tiles */
.group-card--noimage {
	background: #fff;
	color: var(--ink);
}

.group-card--noimage .group-card__inner {
	text-shadow: none;
}


/* PRODUCT CARDS */

.grid--products {
	grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
	justify-content: stretch;
}

.product-card {
	display: flex;
	flex-direction: column;
	max-width: none;
	margin-inline: 0;
	padding: 15px;
	container-type: inline-size;
}

.product-card__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: #f2f2f2;
	overflow: hidden;
}

.product-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}

.product-card__badge {
	position: absolute;
	top: .5rem;
	left: .5rem;
	z-index: 2;
	padding: .25rem .5rem;
	font-size: .75rem;
	line-height: 1;
	color: #fff;
	border-radius: .4rem;
	background: rgba(0, 0, 0, .55);
}

.product-card__brand {
	margin: .15rem 0 .5rem;
	font-size: .8rem;
	/* fallback */
	font-size: clamp(0.8rem, 3cqi, 1rem);
	font-weight: 400;
	line-height: 1.2;
	color: #333;
	letter-spacing: .03em;
	overflow: hidden;
	white-space: nowrap;
}

.product-card__title {
	margin: .15rem 0 .5rem;
	font-size: 1.2rem;
	/* fallback */
	font-size: clamp(0.8rem, 5cqi, 2rem);
	font-weight: 600;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .03em;
	/* ellipsis requirements */
	overflow: hidden;
	white-space: nowrap;
}

/* Make the link consume the row so ellipsis can apply */
.product-card__title a {
	display: block;
	/* critical for ellipsis */
	color: inherit;
	text-decoration: none;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.product-card__title a:hover {
	text-decoration: none;
}

.product-card__meta {
	margin-top: 1rem;
	padding-top: .4rem;
	border-top: 2px dashed #ccc;
	font-size: clamp(0.5rem, 4cqi, 1rem);
    opacity: .9;
}



