/*
 * Salvo — main stylesheet.
 * Design tokens use space-separated "R G B" triples. Always consume them
 * with the modern `rgb(var(--x) / alpha)` slash syntax — the old comma-style
 * alpha function (with an "a" suffix) is invalid here, missing the required
 * comma-separated channels, and gets silently dropped by the browser.
 *
 * Palette: deep night-sky dark ground, warm "spark" gold as the primary
 * accent, plus two firework-chemistry-grounded secondary accents used
 * sparingly — strontium-red rose and copper blue-green teal. See
 * inc/star-chemistry.php for the full color-chemistry reference these are
 * drawn from.
 */

:root {
	--sv-bg: 7 10 20;
	--sv-bg-2: 13 18 32;
	--sv-bg-3: 20 26 44;
	--sv-ink: 230 228 224;
	--sv-ink-dim: 158 166 184;
	--sv-line: 230 228 224;

	--sv-accent: 212 162 78;
	--sv-accent-ink: 20 14 4;
	--sv-rose: 216 62 90;
	--sv-teal: 56 176 168;

	--font-serif: 'Fraunces', Georgia, serif;
	--font-sans: 'Inter', system-ui, sans-serif;
	--font-mono: 'JetBrains Mono', ui-monospace, monospace;

	--radius: 6px;

	--sp-1: 8px;
	--sp-2: 12px;
	--sp-3: 20px;
	--sp-4: 32px;
	--sp-5: 56px;
	--sp-6: 96px;

	--fs-1: .82rem;
	--fs-2: 1rem;
	--fs-3: 1.3rem;
	--fs-4: 1.85rem;
	--fs-5: 2.6rem;
	--fs-6: 3.6rem;

	--rail-w: 64px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	background: rgb(var(--sv-bg));
	color: rgb(var(--sv-ink));
	font-family: var(--font-sans);
	font-size: var(--fs-2);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
input, select, textarea { font: inherit; }
ul, ol.process-list { list-style: none; margin: 0; padding: 0; }
h1, h2, h3, h4 { font-family: var(--font-serif); font-weight: 500; line-height: 1.15; margin: 0 0 var(--sp-2); color: rgb(var(--sv-ink)); }
p { margin: 0 0 var(--sp-2); color: rgb(var(--sv-ink) / .92); }
.mono { font-family: var(--font-mono); }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}
.skip-link {
	z-index: 1000;
	position: absolute;
	top: -100px;
	left: var(--sp-2);
	background: rgb(var(--sv-accent));
	color: rgb(var(--sv-accent-ink));
	padding: var(--sp-1) var(--sp-2);
	border-radius: var(--radius);
}
.skip-link:focus { top: var(--sp-2); }

/* ---------- Persistent GPU background ---------- */
.sv-scene {
	position: fixed;
	inset: 0;
	z-index: 0;
	width: 100%;
	height: 100%;
	display: block;
	background: radial-gradient(ellipse at 50% 20%, rgb(var(--sv-bg-2)) 0%, rgb(var(--sv-bg)) 65%);
}

/* ---------- Header ---------- */
.site-header {
	position: relative;
	z-index: 5;
	background: rgb(var(--sv-bg) / .78);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border-bottom: 1px solid rgb(var(--sv-line) / .1);
}
.site-header__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: var(--sp-2) var(--sp-4);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-3);
}
.site-title {
	font-family: var(--font-serif);
	font-weight: 500;
	font-size: var(--fs-3);
	letter-spacing: .01em;
	color: rgb(var(--sv-ink));
}
.main-navigation .nav__list {
	display: flex;
	gap: var(--sp-4);
	align-items: center;
}
.main-navigation a {
	font-size: var(--fs-1);
	text-transform: uppercase;
	letter-spacing: .08em;
	font-weight: 600;
	color: rgb(var(--sv-ink) / .82);
}
.main-navigation a:hover { color: rgb(var(--sv-accent)); }
.menu-toggle {
	display: none;
	background: none;
	border: none;
	padding: var(--sp-1);
	flex-direction: column;
	gap: 5px;
}
.menu-toggle__bar {
	display: block;
	width: 22px;
	height: 2px;
	background: rgb(var(--sv-ink));
}

/* ---------- Buttons ---------- */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--sp-1);
	padding: .85em 1.6em;
	border-radius: 999px;
	font-size: var(--fs-1);
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	border: 1px solid transparent;
	transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
}
.btn--accent {
	background: rgb(var(--sv-accent));
	color: rgb(var(--sv-accent-ink));
	box-shadow: 0 0 0 0 rgb(var(--sv-accent) / .5);
}
.btn--accent:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 28px -6px rgb(var(--sv-accent) / .55);
}
.btn--ghost {
	background: transparent;
	color: rgb(var(--sv-ink));
	border-color: rgb(var(--sv-line) / .3);
}
.btn--ghost:hover {
	border-color: rgb(var(--sv-accent) / .7);
	color: rgb(var(--sv-accent));
}

/* ---------- Hero ---------- */
.hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: var(--sp-6) var(--sp-4);
	z-index: 1;
}
.hero__inner { max-width: 880px; }
.hero__kicker {
	font-family: var(--font-mono);
	font-size: var(--fs-1);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgb(var(--sv-accent));
	margin-bottom: var(--sp-3);
}
.hero__headline {
	font-size: clamp(2.4rem, 5.4vw, var(--fs-6));
	font-weight: 500;
	letter-spacing: -.01em;
	margin-bottom: var(--sp-3);
}
.hero__subhead {
	font-size: var(--fs-3);
	color: rgb(var(--sv-ink) / .82);
	max-width: 680px;
	margin: 0 auto var(--sp-4);
}
.hero__actions {
	display: flex;
	gap: var(--sp-2);
	justify-content: center;
	flex-wrap: wrap;
}
.hero__scroll-cue {
	position: absolute;
	bottom: var(--sp-4);
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--sp-1);
	font-size: var(--fs-1);
	color: rgb(var(--sv-ink) / .55);
	max-width: 280px;
	text-align: center;
}
.hero__scroll-cue span {
	width: 1px;
	height: 34px;
	background: linear-gradient(180deg, rgb(var(--sv-accent)), transparent);
	animation: sv-scroll-cue 1.8s ease-in-out infinite;
}
@keyframes sv-scroll-cue {
	0%, 100% { opacity: .3; transform: scaleY(.7); }
	50% { opacity: 1; transform: scaleY(1); }
}

/* ---------- Stat band ---------- */
.stat-band {
	position: relative;
	z-index: 1;
	border-top: 1px solid rgb(var(--sv-line) / .1);
	border-bottom: 1px solid rgb(var(--sv-line) / .1);
	background: rgb(var(--sv-bg-2) / .55);
	backdrop-filter: blur(8px);
}
.stat-band__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: var(--sp-5) var(--sp-4);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-3);
	text-align: center;
}
.stat__value {
	display: block;
	font-family: var(--font-serif);
	font-size: var(--fs-5);
	color: rgb(var(--sv-accent));
	line-height: 1;
	margin-bottom: var(--sp-1);
}
.stat__label {
	font-size: var(--fs-1);
	color: rgb(var(--sv-ink-dim));
	text-transform: uppercase;
	letter-spacing: .06em;
}

/* ---------- Tool sections (shared) ---------- */
.tool-section {
	position: relative;
	z-index: 1;
	padding: var(--sp-6) var(--sp-4);
}
.tool-section--alt { background: rgb(var(--sv-bg-2) / .4); }
.tool-section__inner { max-width: 1100px; margin: 0 auto; }
.tool-section__intro { max-width: 720px; margin-bottom: var(--sp-4); }
.tool-section__eyebrow {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: var(--fs-1);
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgb(var(--sv-teal));
	margin-bottom: var(--sp-2);
}
.tool-section__intro h2 { font-size: var(--fs-5); }
.tool-section__disclaimer {
	font-size: var(--fs-1);
	color: rgb(var(--sv-ink-dim));
	border-left: 2px solid rgb(var(--sv-rose) / .6);
	padding-left: var(--sp-2);
}
.tool-section__source {
	font-size: var(--fs-1);
	color: rgb(var(--sv-ink-dim));
	margin-top: var(--sp-2);
}

/* ---------- Spec tables ---------- */
.spec-table-wrap { overflow-x: auto; }
.spec-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: var(--sp-3);
	font-size: var(--fs-1);
}
.spec-table th, .spec-table td {
	text-align: left;
	padding: var(--sp-2);
	border-bottom: 1px solid rgb(var(--sv-line) / .12);
}
.spec-table th {
	color: rgb(var(--sv-ink-dim));
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: .72rem;
	font-weight: 600;
}
.spec-table tbody tr:hover { background: rgb(var(--sv-bg-3) / .5); }

/* ---------- NFPA calculator ---------- */
.nfpa-calc {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: var(--sp-4);
	background: rgb(var(--sv-bg-2) / .6);
	border: 1px solid rgb(var(--sv-line) / .1);
	border-radius: var(--radius);
	padding: var(--sp-4);
	align-items: center;
}
.tool-form__row { display: flex; flex-direction: column; gap: var(--sp-1); margin-bottom: var(--sp-2); }
.tool-form__row label { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); text-transform: uppercase; letter-spacing: .05em; }
.tool-form select,
.tool-form input[type="number"],
.tool-form input[type="range"],
.tool-form input[type="text"],
.tool-form input[type="date"] {
	background: rgb(var(--sv-bg));
	border: 1px solid rgb(var(--sv-line) / .2);
	color: rgb(var(--sv-ink));
	padding: var(--sp-1) var(--sp-2);
	border-radius: var(--radius);
}
.nfpa-result { display: flex; align-items: center; gap: var(--sp-4); flex-wrap: wrap; }
.nfpa-result__diagram { width: 200px; flex: none; }
.nfpa-diagram__ring { fill: rgb(var(--sv-rose) / .08); stroke: rgb(var(--sv-rose) / .65); stroke-width: 1.5; stroke-dasharray: 4 4; }
.nfpa-diagram__mortar { fill: rgb(var(--sv-accent)); }
.nfpa-diagram__radius-line { stroke: rgb(var(--sv-ink) / .35); stroke-width: 1; }
.nfpa-diagram__label { fill: rgb(var(--sv-ink-dim)); font-size: 11px; }
.nfpa-result__figures { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2) var(--sp-4); flex: 1; }
.nfpa-result__figures dt { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 2px; }
.nfpa-result__figures dd { margin: 0; font-size: var(--fs-3); color: rgb(var(--sv-accent)); }

/* ---------- Shows grid / cards ---------- */
.shows-section, .content-layout { position: relative; z-index: 1; }
.shows-section { padding: var(--sp-6) var(--sp-4); }
.shows-section__inner { max-width: 1320px; margin: 0 auto; }
.shows-section__intro { margin-bottom: var(--sp-4); }
.shows-section__more { text-align: center; margin-top: var(--sp-4); }
.show-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: var(--sp-3);
}
.show-card {
	background: rgb(var(--sv-bg-2) / .5);
	border: 1px solid rgb(var(--sv-line) / .1);
	border-radius: var(--radius);
	overflow: hidden;
	transition: transform .2s ease, border-color .2s ease;
}
.show-card:hover { transform: translateY(-3px); border-color: rgb(var(--sv-accent) / .5); }
.show-card__media { aspect-ratio: 3/2; background: rgb(var(--sv-bg-3)); overflow: hidden; }
.show-card__media img { width: 100%; height: 100%; object-fit: cover; }
.show-card__media-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, rgb(var(--sv-bg-3)), rgb(var(--sv-bg-2))); }
.show-card__body { padding: var(--sp-3); }
.show-card__type {
	display: inline-block;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: rgb(var(--sv-teal));
	margin-bottom: var(--sp-1);
}
.show-card__title { font-size: var(--fs-3); margin-bottom: var(--sp-1); }
.show-card__meta { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); margin: 0; font-family: var(--font-mono); }

.show-badges { display: flex; gap: var(--sp-1); flex-wrap: wrap; margin-bottom: var(--sp-2); }
.show-badge {
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	padding: 4px 10px;
	border: 1px solid rgb(var(--sv-teal) / .4);
	color: rgb(var(--sv-teal));
	border-radius: 999px;
}

/* ---------- Cue timeline ---------- */
.cue-timeline {
	position: relative;
	height: 160px;
	background: rgb(var(--sv-bg-2) / .6);
	border: 1px solid rgb(var(--sv-line) / .1);
	border-radius: var(--radius);
	margin-bottom: var(--sp-4);
	padding: var(--sp-3) var(--sp-2) var(--sp-2);
	overflow: hidden;
}
.cue-timeline__markers { position: relative; height: 34px; }
.cue-timeline__marker {
	position: absolute;
	top: 0;
	width: 1px;
	height: 100%;
	background: rgb(var(--sv-ink) / .18);
}
.cue-timeline__marker span {
	position: absolute;
	top: -2px;
	left: 4px;
	font-size: .64rem;
	white-space: nowrap;
	color: rgb(var(--sv-ink-dim));
	font-family: var(--font-mono);
}
.cue-timeline__track {
	position: relative;
	height: 90px;
	margin-top: var(--sp-1);
	border-top: 1px dashed rgb(var(--sv-line) / .12);
}
.cue-timeline__bar {
	position: absolute;
	bottom: 0;
	min-width: 2px;
	height: calc(10px + var(--cue-count, 1) * 4px);
	max-height: 88px;
	border-radius: 2px 2px 0 0;
	background: rgb(var(--sv-accent) / .75);
}
.cue-timeline__bar--opening { background: rgb(var(--sv-accent) / .85); }
.cue-timeline__bar--build_a { background: rgb(var(--sv-teal) / .65); }
.cue-timeline__bar--build_b { background: rgb(var(--sv-teal) / .8); }
.cue-timeline__bar--interlude { background: rgb(var(--sv-ink) / .35); }
.cue-timeline__bar--build_c { background: rgb(var(--sv-rose) / .7); }
.cue-timeline__bar--finale { background: rgb(var(--sv-rose) / .95); }

.cue-table { font-size: .78rem; }
.cue-table-wrap { max-height: 420px; overflow-y: auto; border: 1px solid rgb(var(--sv-line) / .1); border-radius: var(--radius); }
.cue-table thead th { position: sticky; top: 0; background: rgb(var(--sv-bg-2)); }
.cue-row--finale td:first-child { color: rgb(var(--sv-rose)); }

/* ---------- Star chemistry ---------- */
.chem-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: var(--sp-2);
	margin-bottom: var(--sp-3);
}
.chem-swatch {
	background: rgb(var(--sv-bg-2) / .6);
	border: 1px solid rgb(var(--sv-line) / .12);
	border-radius: var(--radius);
	padding: var(--sp-2);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	text-align: left;
	transition: border-color .18s ease, transform .18s ease;
}
.chem-swatch:hover { transform: translateY(-2px); }
.chem-swatch.is-active { border-color: var(--chem-color); box-shadow: 0 0 0 1px var(--chem-color) inset; }
.chem-swatch__dot {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--chem-color);
	box-shadow: 0 0 16px 2px var(--chem-color);
}
.chem-swatch__name { font-weight: 600; font-size: var(--fs-1); }
.chem-swatch__element { font-size: .72rem; color: rgb(var(--sv-ink-dim)); }
.chem-detail {
	background: rgb(var(--sv-bg-2) / .6);
	border: 1px solid rgb(var(--sv-line) / .1);
	border-radius: var(--radius);
	padding: var(--sp-3);
}
.chem-detail__compound { color: rgb(var(--sv-accent)); font-size: var(--fs-2); margin-bottom: 4px; }
.chem-detail__temp { color: rgb(var(--sv-ink-dim)); font-size: var(--fs-1); margin-bottom: var(--sp-2); }
.chem-detail__note { margin: 0; }

/* ---------- Process ---------- */
.process-section { padding: var(--sp-6) var(--sp-4); position: relative; z-index: 1; }
.process-section__inner { max-width: 1100px; margin: 0 auto; }
.process-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: var(--sp-3);
	margin-top: var(--sp-4);
	counter-reset: none;
}
.process-step {
	border-top: 2px solid rgb(var(--sv-accent) / .5);
	padding-top: var(--sp-2);
}
.process-step__num {
	display: block;
	font-family: var(--font-mono);
	color: rgb(var(--sv-accent));
	font-size: var(--fs-1);
	margin-bottom: var(--sp-1);
}
.process-step h3 { font-size: var(--fs-3); }
.process-step p { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); }

/* ---------- Testimonials ---------- */
.testimonials { padding: var(--sp-6) var(--sp-4); position: relative; z-index: 1; background: rgb(var(--sv-bg-2) / .4); }
.testimonials__inner { max-width: 1100px; margin: 0 auto; }
.testimonial-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: var(--sp-3);
	margin-top: var(--sp-3);
}
.testimonial {
	margin: 0;
	padding: var(--sp-3);
	border-left: 2px solid rgb(var(--sv-accent) / .5);
}
.testimonial p { font-family: var(--font-serif); font-size: var(--fs-3); font-style: italic; color: rgb(var(--sv-ink)); }
.testimonial footer { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); margin-top: var(--sp-1); }
.testimonial footer cite { font-style: normal; }

/* ---------- Contact CTA / form ---------- */
.contact-cta { padding: var(--sp-6) var(--sp-4); position: relative; z-index: 1; }
.contact-cta__inner {
	max-width: 1100px;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--sp-5);
	align-items: start;
}
.contact-cta__phone { font-size: var(--fs-4); color: rgb(var(--sv-accent)); }
.contact-form { background: rgb(var(--sv-bg-2) / .6); border: 1px solid rgb(var(--sv-line) / .1); border-radius: var(--radius); padding: var(--sp-4); }
.contact-form__row { margin-bottom: var(--sp-2); display: flex; flex-direction: column; gap: 4px; }
.contact-form__row--split { flex-direction: row; gap: var(--sp-2); }
.contact-form__row--split > div { flex: 1; display: flex; flex-direction: column; gap: 4px; }
.contact-form label { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); text-transform: uppercase; letter-spacing: .04em; }
.contact-form input, .contact-form select, .contact-form textarea {
	background: rgb(var(--sv-bg));
	border: 1px solid rgb(var(--sv-line) / .2);
	color: rgb(var(--sv-ink));
	padding: var(--sp-1) var(--sp-2);
	border-radius: var(--radius);
	width: 100%;
}
.contact-form textarea { resize: vertical; }
.contact-form__hp { position: absolute; left: -9999px; }
.contact-form__status { font-size: var(--fs-1); min-height: 1.4em; margin-top: var(--sp-1); }
.contact-form__status.is-success { color: rgb(var(--sv-teal)); }
.contact-form__status.is-error { color: rgb(var(--sv-rose)); }

/* ---------- Footer ---------- */
.site-footer {
	position: relative;
	z-index: 1;
	border-top: 1px solid rgb(var(--sv-line) / .1);
	background: rgb(var(--sv-bg-2) / .6);
}
.site-footer__inner {
	max-width: 1320px;
	margin: 0 auto;
	padding: var(--sp-5) var(--sp-4);
	display: grid;
	gap: var(--sp-2);
}
.site-footer__name { font-family: var(--font-serif); font-size: var(--fs-3); margin: 0; }
.site-footer__tagline { color: rgb(var(--sv-ink-dim)); margin: 0 0 var(--sp-2); }
.site-footer__contact { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.site-footer__link { color: rgb(var(--sv-accent)); }
.site-footer__address { color: rgb(var(--sv-ink-dim)); margin: 0; }
.site-footer__social { display: flex; gap: var(--sp-2); }
.site-footer__social-link { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); text-transform: uppercase; letter-spacing: .05em; }
.site-footer__menu .site-footer__list { display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.site-footer__menu a { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim)); }
.site-footer__compliance { font-size: .78rem; color: rgb(var(--sv-ink-dim) / .8); max-width: 760px; }
.site-footer__legal { font-size: var(--fs-1); color: rgb(var(--sv-ink-dim) / .7); margin: 0; }

/* ---------- Content layout (page/single/archive) ---------- */
.content-layout {
	display: grid;
	grid-template-columns: var(--rail-w) 1fr;
	max-width: 1320px;
	margin: 0 auto;
	padding: var(--sp-5) var(--sp-4);
	gap: var(--sp-4);
}
.manifest-rail { position: sticky; top: var(--sp-4); align-self: start; height: 300px; }
.manifest-rail__inner {
	writing-mode: vertical-rl;
	transform: rotate(180deg);
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-left: 1px dashed rgb(var(--sv-line) / .2);
	padding-left: var(--sp-1);
}
.manifest-rail__title {
	font-family: var(--font-mono);
	font-size: .72rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: rgb(var(--sv-ink-dim));
}
.manifest-rail__date {
	font-family: var(--font-mono);
	font-size: .68rem;
	color: rgb(var(--sv-accent) / .8);
}
.content-column { min-width: 0; }

.archive-header { margin-bottom: var(--sp-4); }
.archive-header__title { font-size: var(--fs-5); }
.archive-header__desc { color: rgb(var(--sv-ink-dim)); max-width: 640px; }

.show-filters { display: flex; gap: var(--sp-1); flex-wrap: wrap; margin-bottom: var(--sp-4); }
.show-filters__link {
	font-size: var(--fs-1);
	padding: 6px 14px;
	border: 1px solid rgb(var(--sv-line) / .18);
	border-radius: 999px;
	color: rgb(var(--sv-ink-dim));
}
.show-filters__link.is-active, .show-filters__link:hover {
	border-color: rgb(var(--sv-accent));
	color: rgb(var(--sv-accent));
}
.show-grid__empty { color: rgb(var(--sv-ink-dim)); }

.page-article__title, .show-article__title { font-size: var(--fs-5); }
.page-article__thumb, .show-article__hero { margin: var(--sp-3) 0; border-radius: var(--radius); overflow: hidden; }
.entry-content { max-width: 720px; }
.entry-content p { color: rgb(var(--sv-ink) / .9); }

.show-article__layout { display: grid; grid-template-columns: 1fr 280px; gap: var(--sp-4); align-items: start; }
.show-article__spec { position: sticky; top: var(--sp-4); background: rgb(var(--sv-bg-2) / .6); border: 1px solid rgb(var(--sv-line) / .1); border-radius: var(--radius); padding: var(--sp-3); }
.show-article__spec-title { font-size: var(--fs-2); margin-bottom: var(--sp-2); }
.show-spec { margin: 0; }
.show-spec__row { display: flex; justify-content: space-between; gap: var(--sp-2); padding: var(--sp-1) 0; border-bottom: 1px solid rgb(var(--sv-line) / .08); font-size: var(--fs-1); }
.show-spec__row dt { color: rgb(var(--sv-ink-dim)); }
.show-spec__row dd { margin: 0; text-align: right; }
.show-article__gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--sp-2); margin-top: var(--sp-3); }
.show-article__gallery-item { margin: 0; border-radius: var(--radius); overflow: hidden; }
.show-article__back { margin-top: var(--sp-4); }
.show-article__back a { color: rgb(var(--sv-accent)); }

.search-results { display: grid; gap: var(--sp-3); }
.search-result__title a { color: rgb(var(--sv-accent)); }

.error-404 { text-align: left; max-width: 560px; }

.search-form { display: flex; gap: var(--sp-1); }
.search-form__field {
	flex: 1;
	background: rgb(var(--sv-bg-2));
	border: 1px solid rgb(var(--sv-line) / .2);
	color: rgb(var(--sv-ink));
	padding: var(--sp-1) var(--sp-2);
	border-radius: var(--radius);
}
.search-form__submit {
	background: rgb(var(--sv-accent));
	color: rgb(var(--sv-accent-ink));
	border: none;
	padding: var(--sp-1) var(--sp-3);
	border-radius: var(--radius);
	font-weight: 700;
}

.comments-area { margin-top: var(--sp-5); max-width: 720px; }
.comment-list { display: grid; gap: var(--sp-3); }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.content-layout { grid-template-columns: 1fr; }
	.manifest-rail { display: none; }
	.stat-band__inner { grid-template-columns: repeat(2, 1fr); }
	.nfpa-calc { grid-template-columns: 1fr; }
	.contact-cta__inner { grid-template-columns: 1fr; }
	.show-article__layout { grid-template-columns: 1fr; }
	.show-article__spec { position: static; }
	.main-navigation .nav__list { display: none; }
	.main-navigation.is-open .nav__list {
		display: flex;
		flex-direction: column;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: rgb(var(--sv-bg));
		padding: var(--sp-3);
		border-bottom: 1px solid rgb(var(--sv-line) / .1);
	}
	.menu-toggle { display: flex; }
}
