/* ThuisVers Tech — hand-written stylesheet. Tokens first, then base, then components in page order.
   Grid: 4px. Radius: 4px, only on buttons, inputs and image wells. Rules: 1px at 12% ink. */

/* ---------- self-hosted fonts (OFL) ---------- */
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/fonts/tv-outfit-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Outfit'; font-style: normal; font-weight: 100 900; font-display: swap; src: url('/fonts/tv-outfit-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 300 900; font-display: swap; src: url('/fonts/tv-figtree-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Figtree'; font-style: normal; font-weight: 300 900; font-display: swap; src: url('/fonts/tv-figtree-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- tokens ---------- */
:root {
  --tv-bg: #F6F2E9;
  --tv-ink: #292823;
  --tv-clay: #B96645;
  --tv-clay-deep: #A85A3B;
  --tv-clay-text: #8F4A2E;
  --tv-sage: #788573;
  --tv-well: #EFEADF;
  --tv-paper: #FBF9F4;
  --tv-muted: #625F57;
  --tv-rule: rgba(41, 40, 35, 0.12);
  --tv-rule-strong: rgba(41, 40, 35, 0.32);
  --tv-sage-tint: rgba(120, 133, 115, 0.18);
  --tv-clay-tint: rgba(185, 102, 69, 0.14);
  --tv-font-head: 'Outfit', sans-serif;
  --tv-font-body: 'Figtree', sans-serif;
  --tv-radius: 4px;
  --tv-gutter: 20px;
  --tv-max: 1200px;
  --tv-fast: 150ms;
  --tv-med: 250ms;
}
@media (min-width: 900px) { :root { --tv-gutter: 40px; } }

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--tv-bg); color: var(--tv-ink); font-family: var(--tv-font-body); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; font-size: 1rem; line-height: 1.6; }
@media (min-width: 900px) { body { font-size: 1.0625rem; } }
img, svg { display: block; max-width: 100%; height: auto; }
h1, h2, h3 { font-family: var(--tv-font-head); font-weight: 500; line-height: 1.12; letter-spacing: -0.012em; margin: 0 0 0.5em; text-align: left; overflow-wrap: anywhere; }
h1 { font-size: clamp(2.125rem, 1.4rem + 3vw, 3.5rem); }
h2 { font-size: clamp(1.5rem, 1.15rem + 1.4vw, 2.25rem); }
h3 { font-size: 1.25rem; }
p { margin: 0 0 1em; }
a { color: inherit; text-decoration-thickness: 1px; text-decoration-color: rgba(41, 40, 35, 0.45); text-underline-offset: 0.16em; transition: text-decoration-color var(--tv-fast); }
a:hover { text-decoration-color: currentColor; }
:focus-visible { outline: 2px solid var(--tv-clay); outline-offset: 3px; }
code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 0.9em; background: var(--tv-well); padding: 2px 6px; border-radius: var(--tv-radius); }
.tv-main { flex: 1 0 auto; }
/* Every direct child of <main> is a page-width container (specificity 0,2,0 so component padding/margin shorthands cannot undo it); the opener runs edge to edge. */
.tv-main > :not(.tv-opener) { max-width: var(--tv-max); margin-inline: auto; padding-inline: var(--tv-gutter); }
.tv-main > .tv-opener { max-width: none; padding-inline: 0; }
.tv-main:focus { outline: none; }
.tv-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* ---------- preview notice + skip link ---------- */
.tv-notice { margin: 0; padding: 6px var(--tv-gutter); background: var(--tv-sage-tint); border-bottom: 1px solid var(--tv-rule); font-size: 0.8125rem; line-height: 1.45; }
.tv-skip { position: absolute; left: 16px; top: -120px; z-index: 100; padding: 10px 16px; background: var(--tv-ink); color: var(--tv-bg); border-radius: var(--tv-radius); font-family: var(--tv-font-head); text-decoration: none; }
.tv-skip:focus { top: 12px; }

/* ---------- masthead ---------- */
.tv-masthead { position: relative; border-bottom: 1px solid var(--tv-rule); }
.tv-masthead__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 64px; max-width: var(--tv-max); margin-inline: auto; padding-inline: var(--tv-gutter); }
.tv-wordmark { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; text-decoration: none; font-family: var(--tv-font-head); font-weight: 700; font-size: 1.25rem; letter-spacing: -0.01em; }
.tv-wordmark__mark { width: 28px; height: 28px; color: var(--tv-ink); }
.tv-wordmark__suffix { color: var(--tv-clay); margin-left: 0.3em; }
.tv-menu-toggle, .tv-drawer__close { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; min-width: 44px; padding: 8px 4px; background: none; border: 0; color: inherit; font-family: var(--tv-font-head); font-size: 1rem; font-weight: 500; cursor: pointer; }
.tv-menu-toggle svg, .tv-drawer__close svg { width: 24px; height: 24px; }
.tv-drawer__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; }
.tv-drawer__list a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; font-family: var(--tv-font-head); font-weight: 500; text-decoration: none; }
.tv-drawer__list a::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: 8px; height: 1.5px; background: var(--tv-clay); transform: scaleX(0); transform-origin: left; transition: transform var(--tv-med); }
.tv-drawer__list a:hover::after, .tv-drawer__list a[aria-current]::after, .tv-drawer__list a.is-section::after { transform: scaleX(1); }
.tv-nojs-nav { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; flex-basis: 100%; }
.tv-nojs-nav a { display: inline-block; padding: 8px 0; font-family: var(--tv-font-head); }
@media (min-width: 900px) {
  .tv-menu-toggle, .tv-drawer__close, .tv-nojs-nav, .tv-scrim { display: none; }
}
@media (max-width: 899.98px) {
  .tv-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 60; width: min(320px, 86vw); padding: 12px 20px 32px; display: flex; flex-direction: column; gap: 8px; background: var(--tv-bg); border-left: 1px solid var(--tv-rule); overflow-y: auto; transform: translateX(100%); visibility: hidden; transition: transform var(--tv-med) ease, visibility 0s linear var(--tv-med); }
  .tv-drawer.is-open { transform: none; visibility: visible; transition: transform var(--tv-med) ease; }
  .tv-drawer__close { align-self: flex-end; }
  .tv-drawer__list { flex-direction: column; gap: 0; border-top: 1px solid var(--tv-rule); }
  .tv-drawer__list li { border-bottom: 1px solid var(--tv-rule); }
  .tv-drawer__list a { width: 100%; min-height: 52px; padding: 0 4px; font-size: 1.125rem; }
  .tv-drawer__list a::after { left: 4px; right: auto; width: 24px; bottom: 12px; }
  .tv-scrim { position: fixed; inset: 0; z-index: 50; background: rgba(41, 40, 35, 0.35); }
  .tv-scrim[hidden] { display: none; }
  html.tv-drawer-open { overflow: hidden; }
}

/* ---------- buttons + links ---------- */
.tv-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 10px 22px; border: 1.5px solid transparent; border-radius: var(--tv-radius); font-family: var(--tv-font-head); font-size: 1.1875rem; font-weight: 700; letter-spacing: 0.005em; line-height: 1.2; text-decoration: none; cursor: pointer; transition: background-color var(--tv-fast), color var(--tv-fast), border-color var(--tv-fast); }
.tv-button--clay { background: var(--tv-clay); border-color: var(--tv-clay); color: #FFFFFF; }
.tv-button--clay:hover { background: var(--tv-clay-deep); border-color: var(--tv-clay-deep); }
.tv-button--line { background: transparent; border-color: var(--tv-ink); color: var(--tv-ink); }
.tv-button--line:hover { background: rgba(41, 40, 35, 0.06); }
.tv-button:disabled { opacity: 0.6; cursor: progress; }
.tv-arrow-link { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-family: var(--tv-font-head); font-weight: 500; text-decoration: none; white-space: nowrap; }
.tv-arrow-link svg { width: 20px; height: 20px; transition: transform var(--tv-fast); }
.tv-arrow-link:hover { text-decoration: underline; }
.tv-arrow-link:hover svg { transform: translateX(3px); }
.tv-eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-family: var(--tv-font-head); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.tv-eyebrow::before { content: ''; width: 24px; height: 2px; background: var(--tv-sage); flex: none; }
.tv-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid var(--tv-sage); background: var(--tv-sage); flex: none; }
.tv-dot--very-good { background: rgba(120, 133, 115, 0.45); }
.tv-dot--good { background: transparent; }

/* ---------- home: opener ---------- */
.tv-opener__scene { margin: 0; aspect-ratio: 4 / 5; max-height: 70vh; overflow: hidden; background: var(--tv-well); }
.tv-opener__scene img { width: 100%; height: 100%; object-fit: cover; }
.tv-opener__copy { max-width: var(--tv-max); margin-inline: auto; padding: 36px var(--tv-gutter) 56px; }
.tv-opener__title { max-width: 14ch; margin-bottom: 16px; }
.tv-opener__lede { max-width: 44ch; margin-bottom: 28px; font-size: 1.125rem; color: var(--tv-muted); }
.tv-opener__actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (min-width: 900px) {
  .tv-opener__scene { aspect-ratio: 16 / 7; max-height: 78vh; }
  .tv-opener__copy { padding-block: 56px 80px; }
  .tv-opener__lede { font-size: 1.25rem; }
}

/* ---------- generic blocks ---------- */
.tv-block { padding-block: 48px; border-top: 1px solid var(--tv-rule); }
.tv-block__head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 8px 24px; margin-bottom: 28px; }
.tv-block__head h2 { margin: 0; }
.tv-block__head .tv-eyebrow { margin-bottom: 8px; }
.tv-block__lede { max-width: 62ch; }
.tv-block__foot { max-width: 70ch; margin: 24px 0 0; font-size: 0.9375rem; color: var(--tv-muted); }
.tv-block--contact, .tv-block--next { padding-bottom: 72px; }
@media (min-width: 900px) { .tv-block { padding-block: 72px; } .tv-block--contact, .tv-block--next { padding-bottom: 96px; } }

/* ---------- product strip + tiles ---------- */
.tv-strip { list-style: none; margin: 0; padding: 0 0 8px; display: grid; grid-auto-flow: column; grid-auto-columns: 76%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.tv-strip__item { scroll-snap-align: start; }
@media (min-width: 640px) { .tv-strip { grid-auto-columns: 44%; } }
@media (min-width: 900px) {
  .tv-strip { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: repeat(3, 1fr); gap: 32px; overflow: visible; padding-bottom: 0; }
  .tv-strip--four { grid-template-columns: repeat(4, 1fr); gap: 24px; }
}
.tv-tile__link { display: block; color: inherit; text-decoration: none; }
.tv-tile__well { display: block; aspect-ratio: 1; padding: 10%; background: var(--tv-well); border-radius: var(--tv-radius); overflow: hidden; }
.tv-tile__well img { width: 100%; height: 100%; object-fit: contain; }
.tv-tile__lines { display: grid; gap: 2px; padding-top: 12px; }
.tv-tile__model { font-family: var(--tv-font-head); font-weight: 500; font-size: 1.125rem; }
.tv-tile__link:hover .tv-tile__model { text-decoration: underline; text-underline-offset: 0.16em; }
.tv-tile__spec { color: var(--tv-muted); font-size: 0.9375rem; }
.tv-tile__grade { display: flex; align-items: center; gap: 8px; font-size: 0.9375rem; }
.tv-tile__price { margin-top: 4px; font-family: var(--tv-font-head); font-weight: 600; }
.tv-tile__price small { font-family: var(--tv-font-body); font-weight: 400; font-size: 0.8125rem; color: var(--tv-muted); }
.tv-tile--acc .tv-tile__grade { color: var(--tv-muted); }

/* ---------- grade band ---------- */
.tv-grade-band { list-style: none; margin: 0 0 28px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.tv-grade-band__bar { display: block; height: 8px; margin-bottom: 12px; background: var(--tv-sage); }
.tv-grade-band__step--very-good .tv-grade-band__bar { background: rgba(120, 133, 115, 0.55); }
.tv-grade-band__step--good .tv-grade-band__bar { background: rgba(120, 133, 115, 0.25); }
.tv-grade-band__name { display: block; font-family: var(--tv-font-head); font-weight: 600; font-size: 1.0625rem; }
.tv-grade-band__short { display: block; font-size: 0.875rem; color: var(--tv-muted); }
@media (min-width: 900px) { .tv-grade-band { gap: 24px; max-width: 900px; } .tv-grade-band__name { font-size: 1.125rem; } .tv-grade-band__short { font-size: 0.9375rem; } }

/* ---------- accessories row ---------- */
.tv-minis { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 12px; }
.tv-minis__link { display: block; text-decoration: none; }
.tv-minis__well { display: block; aspect-ratio: 1; padding: 12%; background: var(--tv-well); border-radius: var(--tv-radius); }
.tv-minis__name { display: block; padding-top: 8px; font-size: 0.9375rem; line-height: 1.35; }
.tv-minis__link:hover .tv-minis__name { text-decoration: underline; }
@media (min-width: 900px) { .tv-minis { grid-template-columns: repeat(6, 1fr); gap: 24px; } }

/* ---------- about split + registration list ---------- */
.tv-about-split { display: grid; gap: 32px; }
.tv-about-split__side h2 { font-size: 1.25rem; }
@media (min-width: 900px) { .tv-about-split { grid-template-columns: 7fr 5fr; gap: 64px; align-items: start; } }
.tv-register { margin: 0; border-top: 1px solid var(--tv-rule); }
.tv-register > div { display: grid; grid-template-columns: 9rem 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--tv-rule); }
.tv-register dt { font-family: var(--tv-font-head); font-weight: 500; font-size: 0.9375rem; }
.tv-register dd { margin: 0; }
.tv-register--tight > div { grid-template-columns: 8rem 1fr; padding: 8px 0; font-size: 0.9375rem; }
@media (max-width: 479.98px) { .tv-register > div { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- colophon ---------- */
.tv-colophon { margin-top: auto; border-top: 1px solid var(--tv-rule); padding-block: 40px 28px; }
.tv-colophon__columns { display: grid; gap: 32px; max-width: var(--tv-max); margin-inline: auto; padding-inline: var(--tv-gutter); }
.tv-colophon__heading { margin: 0 0 12px; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.tv-colophon__legal { margin: 0 0 8px; font-family: var(--tv-font-head); font-weight: 600; font-size: 1.125rem; }
.tv-colophon__facts { margin: 0; font-size: 0.9375rem; }
.tv-colophon__facts > div { display: grid; grid-template-columns: 9rem 1fr; gap: 8px; padding: 4px 0; }
.tv-colophon__facts dt { color: var(--tv-muted); }
.tv-colophon__facts dd { margin: 0; }
.tv-colophon__note { margin: 8px 0 0; font-size: 0.875rem; color: var(--tv-muted); }
.tv-colophon__links { list-style: none; margin: 0; padding: 0; }
.tv-colophon__links a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: none; }
.tv-colophon__links a:hover { text-decoration: underline; }
.tv-colophon__base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; max-width: var(--tv-max); margin: 28px auto 0; padding: 16px var(--tv-gutter) 0; border-top: 1px solid var(--tv-rule); font-size: 0.875rem; color: var(--tv-muted); }
.tv-colophon__base p { margin: 0; }
@media (min-width: 720px) { .tv-colophon__columns { grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; } }
@media (max-width: 479.98px) { .tv-colophon__facts > div { grid-template-columns: 1fr; gap: 0; padding: 6px 0; } }

/* ---------- page heads + flags ---------- */
.tv-pagehead { padding-block: 40px 24px; }
.tv-pagehead h1 { max-width: 20ch; }
.tv-pagehead__lede { max-width: 62ch; font-size: 1.125rem; color: var(--tv-muted); }
.tv-sample-flag { max-width: 70ch; margin: 16px 0 0; padding: 12px 16px; background: var(--tv-clay-tint); font-size: 0.9375rem; }
@media (min-width: 900px) { .tv-pagehead { padding-block: 64px 32px; } }

/* ---------- catalogue filters + grid ---------- */
.tv-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: end; padding: 20px 0; border-top: 1px solid var(--tv-rule); border-bottom: 1px solid var(--tv-rule); }
.tv-filters__field { display: grid; gap: 6px; }
.tv-filters__field label, .tv-form label { font-family: var(--tv-font-head); font-weight: 500; font-size: 0.9375rem; }
.tv-filters select, .tv-form select, .tv-form input, .tv-form textarea { width: 100%; min-height: 48px; padding: 10px 12px; font: inherit; color: inherit; background: var(--tv-paper); border: 1px solid var(--tv-rule-strong); border-radius: var(--tv-radius); }
.tv-filters select, .tv-form select { appearance: none; -webkit-appearance: none; padding-right: 40px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 8l5 5 5-5' fill='none' stroke='%23292823' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; background-size: 20px; }
.tv-filters__reset { grid-column: 1 / -1; justify-self: start; font-size: 1rem; font-weight: 600; min-height: 44px; }
.tv-filters__nojs { grid-column: 1 / -1; margin: 0; font-size: 0.9375rem; color: var(--tv-muted); }
.tv-results { margin: 16px 0; font-size: 0.9375rem; color: var(--tv-muted); }
.tv-grid { list-style: none; margin: 0 0 40px; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
.tv-grid[hidden] { display: none; }
.tv-grid__cell[hidden] { display: none; }
.tv-empty { padding: 24px 0 48px; }
.tv-empty > * { max-width: 46ch; }
.tv-empty[hidden] { display: none; }
.tv-empty__mark { width: 64px; height: 64px; margin-bottom: 16px; color: var(--tv-sage); }
.tv-aside { padding: 32px 0 56px; border-top: 1px solid var(--tv-rule); }
.tv-aside > * { max-width: 62ch; }
.tv-aside h2 { font-size: 1.25rem; }
@media (min-width: 640px) { .tv-grid { grid-template-columns: repeat(3, 1fr); gap: 36px 24px; } }
@media (min-width: 900px) { .tv-filters { grid-template-columns: repeat(4, 1fr) auto; gap: 16px; } .tv-filters__reset { grid-column: auto; } }
@media (min-width: 1024px) { .tv-grid { grid-template-columns: repeat(4, 1fr); } .tv-grid--acc { grid-template-columns: repeat(3, 1fr); } }

/* ---------- breadcrumbs ---------- */
.tv-crumbs { padding-top: 16px; font-size: 0.875rem; }
.tv-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0 6px; }
.tv-crumbs li + li::before { content: '/'; margin-right: 6px; color: var(--tv-sage); }
.tv-crumbs a, .tv-crumbs [aria-current] { display: inline-block; padding: 12px 0; }
.tv-crumbs [aria-current] { color: var(--tv-muted); }

/* ---------- product detail ---------- */
.tv-product { display: grid; gap: 32px; padding-block: 12px 48px; }
.tv-views { list-style: none; margin: 0; padding: 0 0 6px; display: grid; grid-auto-flow: column; grid-auto-columns: 72%; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.tv-views__item { scroll-snap-align: start; }
.tv-views figure { margin: 0; }
.tv-views img { width: 100%; aspect-ratio: 1; padding: 8%; object-fit: contain; background: var(--tv-well); border-radius: var(--tv-radius); }
.tv-views figcaption { padding-top: 6px; font-size: 0.875rem; color: var(--tv-muted); }
.tv-views--single { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr; overflow: visible; }
.tv-product--acc .tv-product__views { max-width: 560px; }
.tv-views__note { margin: 12px 0 0; font-size: 0.875rem; color: var(--tv-muted); }
.tv-product__title { margin-bottom: 8px; }
.tv-product__variant { display: block; margin-top: 4px; font-size: 0.55em; font-weight: 400; letter-spacing: 0; color: var(--tv-muted); }
.tv-product__price { margin: 0 0 20px; font-family: var(--tv-font-head); font-size: 1.75rem; font-weight: 600; }
.tv-product__price small { display: block; font-family: var(--tv-font-body); font-size: 0.875rem; font-weight: 400; color: var(--tv-muted); }
.tv-facts { margin: 0 0 24px; border-top: 1px solid var(--tv-rule); }
.tv-facts > div { display: grid; grid-template-columns: 8.5rem 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--tv-rule); font-size: 0.9375rem; }
.tv-facts dt { font-family: var(--tv-font-head); font-weight: 500; }
.tv-facts dd { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin: 0; }
.tv-swatch { width: 16px; height: 16px; }
.tv-product__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 32px; }
.tv-product__section h2 { margin-top: 8px; font-size: 1.25rem; }
.tv-plain-list { margin: 0 0 1em; padding-left: 1.2em; }
.tv-plain-list li { margin-bottom: 0.4em; }
@media (min-width: 640px) {
  .tv-views { grid-auto-flow: row; grid-auto-columns: auto; grid-template-columns: 1fr 1fr; gap: 16px; overflow: visible; padding-bottom: 0; }
  .tv-views--single { grid-template-columns: 1fr; }
  .tv-views__item--front { grid-column: 1 / -1; }
}
@media (min-width: 900px) { .tv-product { grid-template-columns: 7fr 5fr; gap: 56px; align-items: start; padding-block: 16px 72px; } }

/* ---------- tables (grading matrix, fit table) ---------- */
.tv-table-wrap { overflow-x: auto; margin-bottom: 20px; scrollbar-width: thin; }
table { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
/* Comparison tables keep their columns readable and scroll sideways inside the wrapper on narrow screens */
.tv-matrix { min-width: 640px; }
.tv-fit { min-width: 620px; }
caption { padding-bottom: 12px; text-align: left; font-family: var(--tv-font-head); font-weight: 500; }
th, td { padding: 12px 12px 12px 0; text-align: left; vertical-align: top; border-bottom: 1px solid var(--tv-rule); }
thead th { font-family: var(--tv-font-head); font-weight: 600; border-bottom: 1.5px solid var(--tv-rule-strong); }
tbody th { font-family: var(--tv-font-head); font-weight: 500; min-width: 8rem; }
.tv-fit__cell { text-align: center; }
.tv-fit__yes { width: 22px; height: 22px; margin: 0 auto; color: var(--tv-sage); }
.tv-fit__no { color: var(--tv-muted); }

/* ---------- grading page ---------- */
.tv-columns { display: grid; gap: 24px; }
.tv-columns h3 { margin-bottom: 8px; }
.tv-grade-detail { display: grid; gap: 28px; scroll-margin-top: 24px; }
.tv-grade-detail .tv-eyebrow::before { display: none; }
.tv-closeups { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tv-closeups li:first-child { grid-column: 1 / -1; }
.tv-closeups figure { margin: 0; }
.tv-closeups img { width: 100%; border-radius: var(--tv-radius); }
.tv-closeups figcaption { padding-top: 6px; font-size: 0.875rem; color: var(--tv-muted); }
.tv-range-card h3 { margin-bottom: 8px; }
@media (min-width: 720px) { .tv-columns { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; } .tv-closeups { grid-template-columns: repeat(3, 1fr); } .tv-closeups li:first-child { grid-column: auto; } }
@media (min-width: 900px) { .tv-grade-detail { grid-template-columns: 5fr 7fr; gap: 56px; } }

/* ---------- contact ---------- */
.tv-contact { display: grid; gap: 40px; padding-block: 8px 64px; }
.tv-form__row { display: grid; gap: 6px; margin-bottom: 20px; }
.tv-form__req { color: var(--tv-clay-text); }
.tv-form__opt { font-weight: 400; font-size: 0.875rem; color: var(--tv-muted); }
.tv-form__hint { margin: 0; font-size: 0.875rem; color: var(--tv-muted); }
.tv-form textarea { min-height: 160px; resize: vertical; }
.tv-form [aria-invalid="true"] { border-color: var(--tv-clay); box-shadow: inset 0 0 0 1px var(--tv-clay); }
.tv-form__row--trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.tv-form__actions { margin: 8px 0 16px; }
.tv-form__status { padding: 14px 16px; border: 1px solid transparent; border-radius: var(--tv-radius); font-size: 0.9375rem; }
.tv-form__status[hidden] { display: none; }
.tv-form__status--ok { background: var(--tv-sage-tint); border-color: rgba(120, 133, 115, 0.5); }
.tv-form__status--fail { background: var(--tv-clay-tint); border-color: rgba(185, 102, 69, 0.5); }
.tv-form__status--busy { background: var(--tv-well); }
.tv-contact__side h2 { margin-top: 8px; font-size: 1.25rem; }
.tv-contact__pending { padding: 12px 16px; background: var(--tv-well); }
.tv-contact__address { line-height: 1.5; }
@media (min-width: 900px) { .tv-contact { grid-template-columns: 7fr 5fr; gap: 64px; align-items: start; } }

/* ---------- policies ---------- */
.tv-policy { padding-bottom: 64px; }
.tv-policy > * { max-width: 72ch; }
.tv-policy .tv-pagehead { padding-bottom: 16px; }
.tv-policy__status { margin-bottom: 28px; padding: 14px 16px; background: var(--tv-clay-tint); font-size: 0.9375rem; }
.tv-policy__status p { margin: 0; }
.tv-policy__toc ol { margin: 0 0 32px; padding-left: 1.4em; font-size: 0.9375rem; }
.tv-policy__toc li { padding: 4px 0; }
.tv-policy__section { padding: 24px 0; border-top: 1px solid var(--tv-rule); scroll-margin-top: 24px; }
.tv-policy__section h2 { font-size: 1.375rem; }
.tv-policy__tbc { display: inline-flex; align-items: center; gap: 8px; margin: 0; font-family: var(--tv-font-head); font-size: 0.875rem; font-weight: 500; }
.tv-policy__tbc::before { content: ''; width: 8px; height: 8px; background: var(--tv-clay); flex: none; }
.tv-policy__foot { padding-top: 20px; border-top: 1px solid var(--tv-rule); font-size: 0.9375rem; color: var(--tv-muted); }
@media (min-width: 640px) { .tv-policy__toc ol { columns: 2; column-gap: 32px; } .tv-policy__toc li { break-inside: avoid; } }

/* ---------- 404 ---------- */
.tv-missing { padding-block: 48px 80px; }
.tv-missing > * { max-width: 60ch; }
.tv-missing__art { width: 240px; margin-bottom: 24px; }
.tv-missing__lede { color: var(--tv-muted); }
.tv-missing__links { list-style: none; margin: 24px 0 32px; padding: 0; border-top: 1px solid var(--tv-rule); }
.tv-missing__links li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; padding: 8px 0; border-bottom: 1px solid var(--tv-rule); }
.tv-missing__links a { display: inline-block; min-width: 9rem; padding: 8px 0; font-family: var(--tv-font-head); font-weight: 500; }
.tv-missing__links span { font-size: 0.9375rem; color: var(--tv-muted); }

/* ---------- motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
