/* Tinker Signal: "Studio" look. theme.json holds colors, type and spacing; this file adds what it can't. */

:root {
	--ts-radius-lg: 24px;
	--ts-radius-md: 14px;
	--ts-ink: var(--wp--preset--color--ink);
	--ts-cobalt: var(--wp--preset--color--cobalt);
	--ts-line: var(--wp--preset--color--line);
	--ts-soft: var(--wp--preset--color--soft);
	--ts-muted: var(--wp--preset--color--muted);
	--ts-mono: var(--wp--preset--font-family--mono);
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	white-space: nowrap;
}

/* ---------- Accessibility ---------- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--ts-cobalt);
	outline-offset: 2px;
	border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Links inside running text are underlined so they don't rely on color alone. */
:where(.wp-block-post-content, .ts-empty, main) :where(p, li, dd, td) a:not(.wp-element-button) {
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-thickness: 1px;
}

/* ---------- Header ---------- */
.ts-header {
	position: sticky;
	top: 0;
	z-index: 100;
}
/* The blur lives on a background layer, not the header itself, so the phone menu can open full-screen. */
.ts-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid transparent;
}
.admin-bar .ts-header { top: 32px; }
.ts-header__bar { padding-block: 12px; gap: 16px; }

.ts-brand {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--ts-ink) !important;
	text-decoration: none !important;
}
.ts-brand__mark { width: 36px; height: auto; display: block; }
.ts-brand__word { font-weight: 800; font-size: 21px; letter-spacing: -0.035em; white-space: nowrap; }

.ts-nav .wp-block-navigation__container {
	gap: 4px;
	padding: 6px;
	border-radius: 999px;
	background: var(--ts-soft);
}
.ts-nav .wp-block-navigation-item__content {
	display: block;
	padding: 9px 15px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 500;
	color: var(--ts-ink);
	text-decoration: none !important;
	transition: background-color .15s ease;
}
.ts-nav .wp-block-navigation-item__content:hover,
.ts-nav .current-menu-item > .wp-block-navigation-item__content { background: #fff; }
@media (max-width: 781px) {
	.ts-nav .wp-block-navigation__container { background: none; padding: 0; }
}

.ts-header__actions { gap: 10px; }
.ts-search .wp-block-search__button {
	width: 44px; height: 44px;
	margin: 0; padding: 0;
	border: none;
	border-radius: 999px;
	background: var(--ts-soft);
	color: var(--ts-ink);
	display: flex;
	align-items: center;
	justify-content: center;
}
.ts-search .wp-block-search__button svg { width: 20px; height: 20px; min-width: 20px; margin: 0; }
.ts-search .wp-block-search__inside-wrapper { border: none; padding: 0; }
@media (max-width: 600px) { .ts-header__actions .wp-block-buttons, .ts-header__cta { display: none !important; } }
/* Tablets and small laptops (audit, Oct 21 2026): keep the menu on one line. Tighter items below 1180px,
   and the newsletter button steps aside between the phone layout and 1024px (signups are on every page). */
.ts-nav .wp-block-navigation-item__content, .ts-header__cta .wp-block-button__link { white-space: nowrap; }
@media (min-width: 782px) and (max-width: 1179px) {
	.ts-header__bar { gap: 10px; }
	.ts-nav .wp-block-navigation__container { gap: 0; padding: 4px; }
	.ts-nav .wp-block-navigation-item__content { padding: 8px 10px; font-size: 13.5px; }
	.ts-header__actions { gap: 6px; }
}
@media (min-width: 782px) and (max-width: 1023px) {
	.ts-header__actions .wp-block-buttons, .ts-header__cta { display: none !important; }
	.ts-brand__word { font-size: 19px; }
}
@media (min-width: 782px) and (max-width: 899px) {
	.ts-brand__word { display: none; }
	.ts-nav .wp-block-navigation-item__content { padding: 8px 9px; font-size: 13px; }
}

/* ---------- Shared bits ---------- */
.ts-home { padding-top: 12px; }
.ts-home > * + * { margin-top: clamp(2rem, 4vw, 3rem); }

.ts-kicker, .ts-kicker a {
	color: var(--ts-cobalt) !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
}

.ts-pill a {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.16);
	color: #fff !important;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none !important;
}
.ts-pill--solid a { background: var(--ts-cobalt); }
.ts-pill .wp-block-post-terms__separator { display: none; }
.ts-pill { display: flex; gap: 8px; flex-wrap: wrap; }

.ts-section-head {
	padding-bottom: 14px;
	margin-bottom: 4px;
}
.ts-section-head h2 { margin: 0; }
.ts-more { margin: 0; font-size: 14px; font-weight: 600; }

.ts-empty {
	padding: 48px 32px;
	border: 1px dashed var(--ts-line);
	border-radius: var(--ts-radius-lg);
	color: var(--ts-muted);
	text-align: center;
}

.ts-panel {
	border-radius: var(--ts-radius-lg);
	background: #fff;
	border: 1px solid var(--ts-line);
}

/* ---------- Top story ---------- */
.ts-hero .wp-block-post-template { margin: 0; }
.ts-hero__card {
	border-radius: var(--ts-radius-lg);
	overflow: hidden;
	padding: clamp(24px, 4vw, 44px) !important;
}
@media (max-width: 781px) { .ts-hero__card { min-height: 340px !important; } }
.ts-hero__card .wp-block-cover__inner-container { max-width: 700px; display: flex; flex-direction: column; gap: 12px; }
.ts-hero__title { margin: 0; color: #fff; line-height: 0.98; letter-spacing: -0.045em; }
.ts-hero__title a { color: #fff !important; text-decoration: none !important; }
.ts-hero__dek p { margin: 0; font-size: 17px; line-height: 1.5; color: var(--wp--preset--color--ink-soft); max-width: 620px; }
.ts-hero__meta { gap: 10px; font-size: 14px; color: #A8A8A8; }
.ts-hero__meta .wp-block-post-date { color: #A8A8A8; font-size: 14px; }
.ts-hero__meta > * + *::before { content: "·"; margin-right: 10px; }

/* ---------- Side cards ---------- */
.ts-side, .ts-side .wp-block-post-template { height: 100%; }
.ts-side__list { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.ts-side__list > li { flex: 1; }
.ts-side .ts-card {
	height: 100%;
	box-sizing: border-box;
	padding: 16px;
	border-radius: var(--ts-radius-lg);
	background: #fff;
	border: 1px solid var(--ts-line);
}

/* ---------- Cards ---------- */
.ts-card { display: flex; flex-direction: column; gap: 10px; }
.ts-card > * { margin: 0 !important; }
.ts-card__img img, .ts-card__img { border-radius: var(--ts-radius-md); overflow: hidden; }
.ts-card__img img { transition: transform .35s ease; }
.ts-card:hover .ts-card__img img { transform: scale(1.03); }
.ts-card__title { margin: 0; line-height: 1.15; letter-spacing: -0.02em; }
.ts-card__title a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-card:hover .ts-card__title a { color: var(--ts-cobalt) !important; }

.ts-card--boxed {
	height: 100%;
	gap: 0;
	border-radius: var(--ts-radius-lg);
	background: #fff;
	border: 1px solid var(--ts-line);
	overflow: hidden;
}
.ts-card--boxed .ts-card__img, .ts-card--boxed .ts-card__img img { border-radius: 0; }
.ts-card__body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 8px; }
.ts-card__body > * { margin: 0 !important; }

/* ---------- Latest list ---------- */
.ts-latest__list { margin: 0; }
.ts-latest__list > li { margin: 0 !important; }
.ts-latest__item { gap: 16px; padding: 12px 0; border-top: 1px solid var(--ts-line); }
.ts-latest__img { flex-shrink: 0; margin: 0; }
.ts-latest__img img { width: 96px; height: 64px; object-fit: cover; border-radius: 12px; }
.ts-latest__text { gap: 6px; }
.ts-latest__title { margin: 0; font-size: 17px; line-height: 1.2; letter-spacing: -0.015em; }
.ts-latest__title a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-latest__title a:hover { color: var(--ts-cobalt) !important; }
.ts-latest__meta { gap: 8px; font-size: 13px; color: var(--ts-muted); }
.ts-latest__meta .wp-block-post-terms a { color: var(--ts-muted); text-decoration: none; }
.ts-latest__meta > * + *::before { content: "·"; margin-right: 8px; }

/* ---------- Price tracker panel ---------- */
.ts-tracker { padding: 22px; }
.ts-tracker__head { display: flex; justify-content: space-between; align-items: center; padding-bottom: 12px; }
.ts-tracker__title { margin: 0; font-size: 24px; }
.ts-chip {
	font-family: var(--ts-mono);
	font-size: 11px;
	color: var(--ts-muted);
	background: var(--ts-soft);
	padding: 4px 8px;
	border-radius: 6px;
}
.ts-tracker__list { list-style: none; margin: 0; padding: 0; }
.ts-tracker__row { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid var(--ts-soft); }
.ts-tracker__name { display: flex; flex-direction: column; gap: 3px; flex: 1; min-width: 0; }
.ts-tracker__name strong { font-weight: 600; font-size: 15px; }
.ts-tracker__name small { font-size: 12px; color: var(--ts-muted); }
.ts-tracker__spark { width: 84px; height: 28px; color: var(--ts-cobalt); flex-shrink: 0; }
.ts-tracker__price { font-family: var(--ts-mono); font-size: 15px; font-weight: 500; min-width: 76px; text-align: right; }
.ts-tracker__cta {
	display: flex; align-items: center; justify-content: center;
	margin-top: 10px; height: 44px;
	border-radius: 12px;
	background: var(--ts-ink);
	color: #fff !important;
	font-weight: 600; font-size: 14px;
	text-decoration: none !important;
}

/* ---------- Newsletter ---------- */
.ts-newsletter {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 32px;
	padding: clamp(28px, 4vw, 48px) clamp(24px, 4vw, 56px);
	border-radius: var(--ts-radius-lg);
	background: var(--ts-ink);
	color: #fff;
}
.ts-newsletter__copy { max-width: 600px; }
.ts-newsletter h2 { margin: 0 0 10px; color: #fff; font-size: clamp(28px, 3.2vw, 38px); line-height: 1.05; letter-spacing: -0.035em; }
.ts-newsletter p { margin: 0; color: #D0D0D0; font-size: 16px; }
.ts-newsletter__form { display: flex; gap: 8px; padding: 6px; border-radius: 16px; background: #fff; flex: 0 1 440px; }
.ts-newsletter__form input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: none; font: inherit; font-size: 16px; color: var(--ts-ink); background: transparent; }
.ts-newsletter__form button { height: 48px; padding: 0 22px; border: none; border-radius: 12px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; }

/* ---------- Footer ---------- */
.ts-footer { margin-top: clamp(3rem, 6vw, 5rem); padding-block: 32px; border-top: 1px solid var(--ts-line); }
.ts-footer .ts-brand__mark { width: 26px; }
.ts-footer .ts-brand__word { font-size: 17px; }
.ts-footer__links { gap: 28px; font-size: 14px; }
.ts-footer__links p { margin: 0; }
.ts-footer__links a { color: var(--ts-muted); text-decoration: none; }
.ts-footer__links a:hover { color: var(--ts-ink); }

/* ---------- Price tracker page ---------- */
.ts-page-head { padding-top: 16px; }
.ts-page-head h1 { margin: 0; }
.ts-pt { display: flex; flex-direction: column; gap: 24px; }
.ts-pt__lede { margin: 0; font-size: 19px; line-height: 1.5; color: var(--ts-muted); max-width: 720px; }
.ts-pt__tagline { margin: 0 0 6px; font-size: 1.25rem; font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; color: var(--ts-ink); max-width: 720px; }
.ts-pt__meta { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 12px 0 0; font-size: 13px; color: var(--ts-muted); }

.ts-pt__table {
	border-radius: var(--ts-radius-lg);
	background: #fff;
	border: 1px solid var(--ts-line);
	overflow: hidden;
}
.ts-pt__row {
	display: grid;
	grid-template-columns: minmax(180px, 1.6fr) minmax(110px, 0.9fr) 110px minmax(100px, 0.9fr) minmax(120px, 1fr) minmax(110px, 0.9fr);
	gap: 16px;
	align-items: center;
	padding: 18px 24px;
}
.ts-pt__row--head {
	padding-block: 12px;
	font-family: var(--ts-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ts-muted);
	background: var(--ts-soft);
}
.ts-pt__item { border-top: 1px solid var(--ts-line); }
.ts-pt__item > summary { cursor: pointer; list-style: none; transition: background-color .15s ease; }
.ts-pt__item > summary::-webkit-details-marker { display: none; }
.ts-pt__item > summary:hover { background: #F7F7F7; }
.ts-pt__item > summary:focus-visible { outline: 2px solid var(--ts-cobalt); outline-offset: -2px; }
.ts-pt__item[open] > summary { background: #F7F7F7; }

.ts-pt__name { display: flex; flex-direction: column; gap: 2px; }
.ts-pt__name strong { font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.ts-pt__name strong::after { content: "›"; display: inline-block; margin-left: 8px; color: var(--ts-muted); transition: transform .2s ease; }
.ts-pt__item[open] .ts-pt__name strong::after { transform: rotate(90deg); }
.ts-pt__name small, .ts-pt__low small { font-size: 12px; color: var(--ts-muted); }
.ts-pt__trend .ts-tracker__spark { width: 100%; height: 30px; color: var(--ts-cobalt); display: block; }
.ts-pt__now { display: flex; flex-direction: column; gap: 2px; font-family: var(--ts-mono); font-size: 20px; font-weight: 500; }
.ts-pt__now small { font-family: var(--wp--preset--font-family--sans); font-size: 11px; font-weight: 400; color: var(--ts-muted); }
.ts-pt__released { font-size: 14px; color: var(--ts-ink); }
.ts-pt__launch { display: flex; flex-direction: column; gap: 2px; font-family: var(--ts-mono); font-size: 15px; color: var(--ts-muted); }
.ts-pt__launch small { font-size: 11px; }
.ts-pt__note { margin: 14px 0 0; padding: 14px 18px; max-width: 820px; border-radius: var(--ts-radius-md); background: var(--wp--preset--color--cobalt-soft, #D0D0D0); color: var(--ts-ink); font-size: 15px; line-height: 1.5; }
.ts-pt__chart.ts-pt__chart--empty { display: flex; align-items: center; justify-content: center; min-height: 180px; padding: 24px; box-sizing: border-box; text-align: center; font-size: 14px; color: var(--ts-muted); }
.ts-pt__low { display: flex; flex-direction: column; gap: 2px; font-family: var(--ts-mono); font-size: 15px; }
.ts-pt__delta { font-family: var(--ts-mono); font-size: 13px; font-weight: 500; justify-self: start; padding: 4px 8px; border-radius: 6px; }
.ts-pt__delta--down { color: #11663F; background: #E3F4EA; }
.ts-pt__delta--up { color: #9A2B12; background: #FBE7E1; }
.ts-pt__delta--flat, .ts-pt__delta--none { color: var(--ts-muted); background: var(--ts-soft); }
.ts-pt__delta--none { font-family: var(--wp--preset--font-family--sans); font-weight: 400; font-size: 12px; }

.ts-pt__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-pt__tabs a {
	display: inline-flex; align-items: center; gap: 6px;
	min-height: 40px; padding: 0 16px;
	border-radius: 999px;
	background: var(--ts-soft);
	color: var(--ts-ink) !important;
	font-size: 14px; font-weight: 600;
	text-decoration: none !important;
}
.ts-pt__tabs a span { font-family: var(--ts-mono); font-size: 11px; font-weight: 500; color: var(--ts-muted); }
.ts-pt__tabs a:hover { background: #E4E4DE; }
.ts-pt__tabs a[aria-current="page"] { background: var(--ts-ink); color: #fff !important; }
.ts-pt__tabs a[aria-current="page"] span { color: #A8A8A8; }
.ts-pt__brand { display: flex; flex-direction: column; gap: 14px; scroll-margin-top: 90px; }
.ts-pt__brandname { margin: 12px 0 0; font-size: 28px; letter-spacing: -0.03em; }
.ts-pt__tabs--types a { min-height: 44px; font-size: 15px; }
/* Brand menu (replaced 25 brand tabs, Oct 22 2026) */
.ts-pt__brandpick { display: flex; align-items: center; gap: 10px; margin: 0; }
.ts-pt__brandpick label { font-weight: 700; }
.ts-pt__brandpick select { min-height: 44px; min-width: 220px; padding: 0 40px 0 14px; border: 1px solid var(--ts-line-strong, #B5B5B0); border-radius: 999px; background: var(--ts-field, #fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23666' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 16px center; color: var(--ts-ink); font: inherit; font-size: 15px; -webkit-appearance: none; appearance: none; }
.ts-pt__brandpick button { min-height: 44px; padding: 0 16px; border-radius: 999px; }
/* Previous price column */
.ts-pt__prev { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.ts-pt__prevprice { font-family: var(--ts-mono); font-size: 15px; }
.ts-pt__was { display: none; font-family: var(--wp--preset--font-family--sans); font-size: 11px; color: var(--ts-muted); }
/* Tracker filters (laser type, size): shown once a product type is picked */
.ts-pt [hidden], .ts-ptf[hidden] { display: none !important; }
.ts-ptf { display: flex; flex-direction: column; gap: 16px; padding: 20px 24px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-lg); background: #fff; }
.ts-ptf__toggle { display: none; }
.ts-ptf__body { display: flex; flex-direction: column; gap: 16px; }
.ts-ptf__group { display: grid; grid-template-columns: 120px 1fr; gap: 6px 16px; align-items: start; }
.ts-ptf__label { padding-top: 10px; font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ts-muted); }
.ts-ptf__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-ptf__opt {
	display: inline-flex; align-items: center; gap: 6px;
	min-height: 40px; padding: 0 16px;
	border: 0; border-radius: 999px;
	background: var(--ts-soft); color: var(--ts-ink);
	font: inherit; font-size: 14px; font-weight: 600; cursor: pointer;
}
.ts-ptf__opt small { font-size: 12px; font-weight: 400; color: var(--ts-muted); }
.ts-ptf__n { font-family: var(--ts-mono); font-size: 11px; font-weight: 500; color: var(--ts-muted); }
.ts-ptf__n:empty { display: none; }
.ts-ptf__opt:hover { background: #E4E4DE; }
.ts-ptf__opt:focus-visible { outline: 2px solid var(--ts-cobalt); outline-offset: 2px; }
.ts-ptf__opt[aria-pressed="true"] { background: var(--ts-ink); color: #fff; }
.ts-ptf__opt[aria-pressed="true"] small, .ts-ptf__opt[aria-pressed="true"] .ts-ptf__n { color: #A8A8A8; }
.ts-ptf__opt:disabled { opacity: .45; cursor: default; }
.ts-ptf__opt:disabled:hover { background: var(--ts-soft); }
.ts-ptf__price { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.ts-ptf__price label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--ts-muted); }
.ts-ptf__money { position: relative; display: block; }
.ts-ptf__money > span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-family: var(--ts-mono); font-size: 15px; color: var(--ts-muted); pointer-events: none; }
.ts-ptf__money input {
	box-sizing: border-box; width: 130px; height: 44px; padding: 0 12px 0 28px;
	border: 1px solid var(--ts-line); border-radius: 12px; background: #fff;
	font-family: var(--ts-mono); font-size: 16px; color: var(--ts-ink);
}
.ts-ptf__money input:focus { outline: 2px solid var(--ts-cobalt); outline-offset: 1px; border-color: transparent; }
.ts-ptf__to { padding-bottom: 12px; font-size: 14px; color: var(--ts-muted); }
.ts-ptf__help { grid-column: 2; margin: 0; font-size: 12px; color: var(--ts-muted); }
.ts-ptf__status { margin: 0; padding-top: 14px; border-top: 1px solid var(--ts-line); font-size: 14px; color: var(--ts-muted); }
.ts-ptf__clear { margin-left: 6px; padding: 0; border: 0; background: none; color: var(--ts-cobalt); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
.ts-ptf__none { margin: 0; padding: 28px 24px; border: 1px dashed var(--ts-line); border-radius: var(--ts-radius-lg); text-align: center; color: var(--ts-muted); }
@media (max-width: 700px) {
	.ts-ptf { padding: 16px; }
	.ts-ptf__group { grid-template-columns: 1fr; }
	.ts-ptf__label { padding-top: 0; }
	.ts-ptf__help { grid-column: 1; }
	.ts-ptf__toggle {
		display: inline-flex; align-items: center; gap: 6px; align-self: flex-start;
		min-height: 44px; padding: 0 18px; border: 0; border-radius: 999px;
		background: var(--ts-ink); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer;
	}
	.ts-ptf__toggle::after { content: "›"; display: inline-block; margin-left: 2px; transform: rotate(90deg); transition: transform .2s ease; }
	.ts-ptf.is-open .ts-ptf__toggle::after { transform: rotate(-90deg); }
	.ts-ptf:not(.is-open) .ts-ptf__body { display: none; }
	.ts-ptf__status { padding-top: 0; border-top: 0; }
	.ts-ptf.is-open .ts-ptf__status { padding-top: 14px; border-top: 1px solid var(--ts-line); }
}
.ts-pt__catname { margin: 28px 0 0; padding-bottom: 10px; border-bottom: 2px solid currentColor; font-size: clamp(30px, 4vw, 38px); letter-spacing: -0.03em; scroll-margin-top: 90px; }

.ts-pt__detail {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
	gap: 28px;
	padding: 8px 24px 28px;
	background: #F7F7F7;
}
.ts-pt__chart { width: 100%; height: auto; display: block; background: #fff; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); }
.ts-pt__grid { stroke: #EEEEEE; stroke-width: 1; }
.ts-pt__grid--year { stroke: #E2E2E2; stroke-dasharray: 3 4; }
.ts-pt__ylabel, .ts-pt__xlabel { font-family: var(--ts-mono); font-size: 12px; fill: #6B7280; }
.ts-pt__line { fill: none; stroke: var(--ts-cobalt); stroke-width: 2.5; stroke-linejoin: round; }
.ts-pt__dot { stroke: #fff; stroke-width: 2; fill: var(--ts-cobalt); }
.ts-pt__dot--launch { fill: var(--ts-ink); }
.ts-pt__dot--sale { fill: #1F9D5B; }
.ts-pt__dot--store { fill: #F29E1B; }
.ts-pt__legend { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin: 10px 0 0; font-size: 12px; color: var(--ts-muted); }
.ts-pt__key { display: inline-block; width: 10px; height: 10px; border-radius: 5px; margin-right: -8px; background: var(--ts-cobalt); vertical-align: middle; }
.ts-pt__key--launch { background: var(--ts-ink); }
.ts-pt__key--sale { background: #1F9D5B; }
.ts-pt__key--store { background: #F29E1B; }

.ts-pt__events { display: flex; flex-direction: column; gap: 14px; }
.ts-pt__summary { margin: 0; font-size: 15px; color: var(--ts-ink); }
.ts-pt__timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ts-pt__timeline li { display: grid; grid-template-columns: 96px 1fr auto; gap: 10px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--ts-line); font-size: 14px; }
.ts-pt__when { font-family: var(--ts-mono); font-size: 12px; color: var(--ts-muted); }
.ts-pt__what strong { font-family: var(--ts-mono); font-weight: 500; margin-right: 4px; }
.ts-pt__src { font-size: 12px; font-weight: 600; }
.ts-pt__buy {
	align-self: flex-start;
	display: inline-flex; align-items: center; height: 44px; padding: 0 20px;
	border-radius: 999px; background: var(--ts-ink); color: #fff !important;
	font-weight: 600; font-size: 14px; text-decoration: none !important;
}
.ts-pt__fine { margin: 0; font-size: 13px; color: var(--ts-muted); max-width: 820px; }

@media (max-width: 900px) {
	.ts-pt__row { grid-template-columns: 1fr auto; gap: 6px 16px; padding: 16px 18px; }
	.ts-pt__row--head { display: none; }
	.ts-pt__trend, .ts-pt__launch { display: none; }
	.ts-pt__released { grid-column: 1; font-size: 12px; color: var(--ts-muted); }
	.ts-pt__released::before { content: "Released "; }
	.ts-pt__now { grid-column: 2; grid-row: 1; text-align: right; }
	.ts-pt__prev { grid-column: 1; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 6px; }
	.ts-pt__was { display: inline; }
	.ts-pt__prevprice { font-size: 13px; }
	.ts-pt__low { grid-column: 2; grid-row: 2; text-align: right; align-items: flex-end; }
	.ts-pt__low::before { content: "Low "; font-size: 11px; color: var(--ts-muted); }
	.ts-pt__detail { grid-template-columns: 1fr; padding: 4px 16px 22px; }
}
@media (max-width: 600px) {
	.ts-pt__ylabel, .ts-pt__xlabel { font-size: 24px; }
	.ts-pt__timeline li { grid-template-columns: 1fr auto; }
	.ts-pt__when { grid-column: 1 / -1; }
}
.ts-pt__dot--archive { fill: #F29E1B; }

/* ---------- Ads ---------- */
/* Space is reserved up front so the page doesn't jump when an ad loads. */
.ts-ad-slot:empty, .ts-ad-slot:not(:has(.ts-ad)) { display: none; }
.ts-ad { margin: 0 auto; max-width: 970px; text-align: center; }
.ts-ad__label { margin: 0 0 6px; font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-ad ins.adsbygoogle { min-height: 250px; }
.ts-ad--in-article, .ts-ad--article-end { margin: 2rem auto; max-width: 728px; }
.ts-ad--in-article ins.adsbygoogle { min-height: 280px; }
.ts-ad:has(ins[data-ad-status="unfilled"]) { display: none; }
.ts-ad__box { display: flex; align-items: center; justify-content: center; min-height: 250px; border: 1px dashed #B9BDC6; border-radius: var(--ts-radius-md); background: repeating-linear-gradient(45deg, #F3F3EF, #F3F3EF 10px, #EDEDE8 10px, #EDEDE8 20px); color: #4A5160; font-size: 13px; font-weight: 600; }
.ts-ad--in-article .ts-ad__box { min-height: 280px; }
@media (min-width: 782px) { .ts-ad--home-mid .ts-ad__box, .ts-ad--home-lower .ts-ad__box, .ts-ad--archive .ts-ad__box, .ts-ad--tracker .ts-ad__box { min-height: 120px; } .ts-ad--home-mid ins.adsbygoogle, .ts-ad--home-lower ins.adsbygoogle, .ts-ad--archive ins.adsbygoogle, .ts-ad--tracker ins.adsbygoogle { min-height: 120px; } }

/* Slimmer homepage */
.ts-card__title--sm { font-size: 19px; line-height: 1.2; }
.ts-reviews .ts-card__body { padding: 16px 18px 20px; }
.ts-tracker__row { padding: 11px 0; }
.ts-hero__card { padding: clamp(20px, 3vw, 36px) !important; }
.ts-card__title--md { font-size: 22px; line-height: 1.2; }
/* Top story stretches to match the two side cards, so there's no gap. */
@media (min-width: 782px) {
	.ts-top > .wp-block-column { display: flex; flex-direction: column; }
	.ts-hero, .ts-hero .wp-block-post-template, .ts-hero .wp-block-post-template > li, .ts-hero__card { flex: 1; height: 100%; }
	.ts-hero .wp-block-post-template { display: flex; flex-direction: column; }
}

/* ---------- Articles ---------- */
.ts-lede { font-size: 1.25rem; line-height: 1.55; color: #2B3340; }
.wp-block-post-content h2 { margin-top: 2.5rem; font-size: clamp(1.5rem, 2.4vw, 1.875rem); }
.wp-block-post-content h3 { margin-top: 1.75rem; font-size: 1.3rem; letter-spacing: -0.02em; }
.ts-spec-table { margin: 1.5rem 0; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.ts-spec-table table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: 14px; line-height: 1.4; background: #fff; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); }
.ts-spec-table thead th { background: var(--ts-soft); font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; color: #3C4450; text-align: left; }
.ts-spec-table th, .ts-spec-table td { padding: 10px 12px; border: 0; border-bottom: 1px solid var(--ts-line); vertical-align: top; text-align: left; }
.ts-spec-table tbody th { font-weight: 700; white-space: nowrap; }
.ts-spec-table tbody tr:last-child > * { border-bottom: 0; }
.ts-spec-table figcaption { margin-top: 8px; font-size: 13px; color: var(--ts-muted); text-align: left; }
.ts-hero__card { background-color: var(--ts-ink); }
.ts-spec-table:focus-visible { outline: 3px solid var(--ts-cobalt); outline-offset: 2px; }
.ts-spec-table td { white-space: normal; }
.ts-spec-table td:nth-child(3), .ts-spec-table td:nth-child(4) { white-space: nowrap; }
.ts-callout { padding: 14px 18px; border-radius: var(--ts-radius-md); background: #F2F2F2; border-left: 0; }
.ts-callout--warn { background: #FFF4E5; color: #3D2A0A; }
.ts-callout--warn strong { color: #8A4B00; }

/* ---------- Phone menu (full screen) ---------- */
.ts-nav .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed;
	inset: 0;
	z-index: 1000;
	padding: 20px clamp(18px, 5vw, 32px) calc(24px + env(safe-area-inset-bottom));
	background: var(--wp--preset--color--paper) !important;
	color: var(--ts-ink) !important;
	overflow-y: auto;
}
.ts-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	padding-top: 56px;
	align-items: stretch;
}
.ts-nav .is-menu-open .wp-block-navigation__container {
	display: flex;
	flex-direction: column;
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
	padding: 0;
	background: none;
}
.ts-nav .is-menu-open .wp-block-navigation-item { width: 100%; border-bottom: 1px solid var(--ts-line); }
.ts-nav .is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	align-items: center;
	min-height: 60px;
	padding: 0 4px !important;
	border-radius: 0 !important;
	background: none !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	letter-spacing: -0.02em;
}
.ts-nav .is-menu-open .current-menu-item > .wp-block-navigation-item__content,
.ts-nav .is-menu-open .wp-block-navigation-item__content[aria-current="page"] { color: var(--ts-cobalt) !important; }
.ts-nav .wp-block-navigation__responsive-container-close {
	top: 16px !important;
	right: 16px !important;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--ts-soft) !important;
}
/* Menu button on phones and small tablets, up to where the tab bar stops (781px). Between 600 and 781px core would show
   the full menu inline, which didn't fit and stacked down the right side (found Oct 22 2026), so it stays folded there too. */
@media (min-width: 782px) {
	.ts-nav .wp-block-navigation__responsive-container-open { display: none !important; }
}
@media (min-width: 600px) and (max-width: 781px) {
	.ts-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.ts-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
}
.ts-nav .wp-block-navigation__responsive-container-open {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: var(--ts-soft);
}

/* ---------- Phone tab bar ---------- */
.ts-tabbar { display: none; }
@media (max-width: 781px) {
	.ts-tabbar {
		display: grid;
		grid-template-columns: repeat(5, minmax(0, 1fr));
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 90;
		padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
		background: rgba(255, 255, 255, 0.95);
		backdrop-filter: saturate(160%) blur(12px);
		-webkit-backdrop-filter: saturate(160%) blur(12px);
		border-top: 1px solid var(--ts-line);
	}
	.ts-tabbar a {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 3px;
		min-height: 52px;
		border-radius: 12px;
		color: #4A5160 !important;
		font-size: 11px;
		font-weight: 600;
		text-decoration: none !important;
	}
	.ts-tabbar a svg { width: 22px; height: 22px; }
	.ts-tabbar a[aria-current="page"] { color: #B81E17 !important; background: var(--wp--preset--color--cobalt-soft); }
	body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
	.ts-landing { padding-bottom: 0 !important; }
}

/* ---------- Smooth page changes (browsers that support it) ---------- */
@media (prefers-reduced-motion: no-preference) {
	@view-transition { navigation: auto; }
	::view-transition-old(root), ::view-transition-new(root) { animation-duration: 180ms; }
	.ts-header { view-transition-name: ts-header; }
	.ts-tabbar { view-transition-name: ts-tabbar; }
}
@media (max-width: 781px) {
	.ts-header__bar > .ts-nav { order: 3; margin-left: 0; }
	.ts-header__bar > .ts-brand, .ts-header__bar > a.ts-brand { margin-right: auto; }
	.ts-header__bar { justify-content: flex-start !important; gap: 8px; }
	.ts-header__actions { margin-left: auto; }
}
.ts-nav .is-menu-open .wp-block-navigation__responsive-container-content,
.ts-nav .is-menu-open .wp-block-navigation__container,
.ts-nav .is-menu-open .wp-block-navigation-item { align-items: stretch !important; text-align: left; }
.ts-nav .is-menu-open .wp-block-navigation-item__content { justify-content: flex-start; width: 100%; }
.ts-oos { font-size: 0.85em; color: var(--ts-muted); white-space: nowrap; }

/* Newsletter signup status + band on inner pages */
.ts-newsletter__signup { flex: 0 1 440px; min-width: 0; max-width: 100%; }
.ts-newsletter__signup .ts-newsletter__form { flex: none; width: 100%; box-sizing: border-box; }
.ts-newsletter__form input { width: 100%; }
.ts-newsletter__form button { flex: none; white-space: nowrap; }
.ts-newsletter__copy { min-width: 0; }
@media (max-width: 600px) {
	.ts-newsletter { gap: 20px; }
	.ts-newsletter__signup { flex: 1 1 100%; }
	.ts-newsletter__form button { padding: 0 16px; }
}
.ts-newsletter__status { margin: 10px 4px 0 !important; color: #fff !important; font-size: 15px; font-weight: 500; min-height: 1em; }
.ts-newsletter:focus { outline: none; }
.ts-newsletter:focus-visible { outline: 3px solid var(--ts-cobalt); outline-offset: 4px; }
.ts-newsletter-wrap { margin-top: clamp(40px, 6vw, 72px); margin-bottom: clamp(40px, 6vw, 72px); }

/* Newsletter slide-in card */
.ts-nudge {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 95;
	width: min(400px, calc(100vw - 32px));
	padding: 22px 22px 14px;
	border-radius: 20px;
	background: var(--ts-ink);
	color: #fff;
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.25);
	transform: translateY(24px);
	opacity: 0;
	transition: transform 0.25s ease, opacity 0.25s ease;
}
.ts-nudge.is-open { transform: none; opacity: 1; }
.ts-nudge[hidden] { display: none; }
.ts-nudge__kicker { margin: 0 0 6px; font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #D0D0D0; }
.ts-nudge__title { margin: 0 36px 6px 0; font-size: 22px; line-height: 1.15; letter-spacing: -0.02em; color: #fff; }
.ts-nudge__text { margin: 0 0 14px; font-size: 15px; color: #D0D0D0; }
.ts-nudge .ts-newsletter__form { display: flex; gap: 6px; padding: 5px; border-radius: 14px; background: #fff; }
.ts-nudge .ts-newsletter__form input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 0; font: inherit; font-size: 16px; color: var(--ts-ink); background: transparent; }
.ts-nudge .ts-newsletter__form button { height: 44px; padding: 0 16px; border: 0; border-radius: 10px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 600; font-size: 15px; cursor: pointer; }
.ts-nudge__close { position: absolute; top: 12px; right: 12px; width: 36px; height: 36px; display: grid; place-items: center; border: 0; border-radius: 999px; background: rgba(255,255,255,0.14); color: #fff; cursor: pointer; }
.ts-nudge__close:hover { background: rgba(255,255,255,0.24); }
.ts-nudge__later { display: block; margin: 8px auto 0; min-height: 36px; padding: 0 10px; border: 0; background: none; color: #D0D0D0; font: inherit; font-size: 14px; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.ts-nudge :focus-visible { outline-color: #fff !important; }
@media (max-width: 781px) {
	.ts-nudge { left: 12px; right: 12px; width: auto; bottom: calc(80px + env(safe-area-inset-bottom)); padding: 18px 16px 10px; }
	.ts-nudge__title { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) { .ts-nudge { transition: none; } }
.ts-nudge .ts-newsletter__status:empty { display: none; }
.ts-nudge__later { margin-top: 6px; }
@media (max-width: 781px) {
	.ts-nudge__text { display: none; }
	.ts-nudge__title { margin-bottom: 12px; }
}
.ts-page-newsletter-confirmed .ts-newsletter-wrap { display: none; }

/* Footer social links */
.ts-footer__brand { gap: 20px; }
.ts-social { gap: 6px !important; margin: 0; }
.ts-social .wp-social-link { color: var(--ts-ink) !important; background: none !important; }
.ts-social .wp-social-link a { display: grid; place-items: center; width: 40px; height: 40px; padding: 0 !important; border-radius: 999px; }
.ts-social .wp-social-link a:hover { background: var(--ts-soft); }
.ts-social .wp-social-link svg { width: 20px; height: 20px; }

.ts-tracker-next { margin-top: 24px; padding: 14px 18px; border-radius: 14px; background: var(--ts-soft); font-size: 0.9375rem; }

/* ---------- Homepage, layout C "Signal Band" ---------- */
.ts-home--signal { padding-top: 0; }
.ts-home--signal > * + * { margin-top: clamp(2.5rem, 5vw, 3.5rem); }
.ts-band { background: var(--ts-ink); color: #EDEDED; }
.ts-band--top { padding-block: clamp(32px, 5vw, 64px); }
.ts-band--prices { padding-block: clamp(32px, 4vw, 48px); background: var(--ts-soft); color: var(--ts-ink); }

/* Lead story */
.ts-lead .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.ts-lead__item { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 48px); align-items: center; }
.ts-lead__text { display: flex; flex-direction: column; gap: 18px; }
.ts-lead__kicker { margin: 0; font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #FF6A60; }
.ts-lead__kicker a { color: #FF6A60 !important; text-decoration: none !important; }
.ts-lead__title { margin: 0; font-size: clamp(2.1rem, 4.2vw, 3.4rem); line-height: 1.04; letter-spacing: -0.04em; }
.ts-lead__title a { color: #fff !important; text-decoration: none !important; }
.ts-lead__title a:hover { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 6px; }
.ts-lead__dek p { margin: 0; font-size: 18px; line-height: 1.6; color: var(--wp--preset--color--ink-soft); }
.ts-lead__meta { gap: 10px; font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: #A8A8A8; }
.ts-lead__meta .wp-block-post-date, .ts-lead__meta .wp-block-post-author-name { color: #A8A8A8; font-size: 12px; }
.ts-lead__meta > * + *::before { content: "·"; margin-right: 10px; }
.ts-lead__img { margin: 0; border-radius: 16px; overflow: hidden; border: 1px solid rgba(255,255,255,0.1); }
.ts-lead__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ts-band .ts-empty { color: #EDEDED; background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); }
@media (max-width: 860px) {
	.ts-lead__item { grid-template-columns: 1fr; }
	.ts-lead__img { order: -1; }
}

/* Four-story row */
.ts-four__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; padding: 0; list-style: none; }
.ts-four__item { display: flex; flex-direction: column; gap: 10px; }
.ts-four__img { margin: 0 0 4px; border-radius: 12px; overflow: hidden; background: var(--ts-soft); }
.ts-four__img img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ts-four__item:hover .ts-four__img img { transform: scale(1.03); }
.ts-four__kicker { margin: 0; font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.ts-four__kicker a { color: var(--ts-cobalt) !important; text-decoration: none !important; }
.ts-four__title { margin: 0; font-size: 19px; line-height: 1.25; letter-spacing: -0.015em; }
.ts-four__title a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-four__title a:hover { color: var(--ts-cobalt) !important; }
.ts-four__date { font-size: 13px; color: var(--ts-muted); }
@media (max-width: 1000px) { .ts-four__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .ts-four__list { grid-template-columns: 1fr; } }

/* Price tracker band */
.ts-pband { display: flex; flex-direction: column; gap: 24px; margin-inline: auto; width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); }
.ts-pband__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 8px 24px; }
.ts-pband__title { display: flex; align-items: center; gap: 12px; margin: 0; font-size: clamp(1.5rem, 2.4vw, 1.75rem); letter-spacing: -0.02em; }
.ts-pband__title a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pband__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ts-cobalt); }
.ts-pband__note { margin: 0; font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.04em; color: var(--ts-muted); }
.ts-pband__note a { color: var(--ts-cobalt) !important; }
.ts-pband__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.ts-pband__card { display: flex; flex-direction: column; gap: 10px; height: 100%; box-sizing: border-box; padding: 20px; border-radius: 14px; border: 1px solid var(--ts-line); background: #fff; color: var(--ts-ink) !important; text-decoration: none !important; transition: border-color .2s ease, box-shadow .2s ease; }
.ts-pband__card:hover { border-color: var(--ts-cobalt); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); }
.ts-pband__brand { font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-pband__name { font-weight: 600; font-size: 17px; color: var(--ts-ink); }
.ts-pband .ts-tracker__spark { width: 100%; height: 44px; color: var(--ts-cobalt); display: block; }
.ts-pband__foot { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-top: auto; }
.ts-pband__price { font-size: 24px; font-weight: 600; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; color: var(--ts-ink); }
.ts-pband__rel { font-size: 12px; color: var(--ts-muted); text-align: right; }
.ts-pband__empty { margin: 0; color: var(--ts-muted); }
.ts-pband__empty a { color: var(--ts-cobalt) !important; }
@media (max-width: 1000px) { .ts-pband__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) {
	.ts-pband__grid { gap: 10px; }
	.ts-pband__card { padding: 14px; gap: 6px; }
	.ts-pband .ts-tracker__spark { height: 28px; }
	.ts-pband__foot { flex-direction: column; align-items: flex-start; gap: 2px; }
	.ts-pband__price { font-size: 20px; }
	.ts-pband__rel { text-align: left; }
}

/* Latest + sidebar */
.ts-section-head--rule { border-bottom: 2px solid var(--ts-ink); margin-bottom: 0; padding-bottom: 12px; }
.ts-section-head--rule + .ts-latest .ts-latest__list > li:first-child .ts-latest__item { border-top: none; }
.ts-home-side { display: flex; flex-direction: column; gap: 20px; }
.ts-home-side .ts-newsletter { flex-direction: column; align-items: stretch; gap: 18px; padding: 28px; background: #fff; color: var(--ts-ink); border: 1px solid var(--ts-line); }
.ts-home-side .ts-newsletter__copy { max-width: none; }
.ts-home-side .ts-newsletter h2 { color: var(--ts-ink); font-size: 26px; line-height: 1.15; letter-spacing: -0.02em; }
.ts-home-side .ts-newsletter p { color: var(--ts-muted); font-size: 15px; line-height: 1.5; }
.ts-home-side .ts-newsletter__signup { flex: none; }
.ts-home-side .ts-newsletter__form { flex: none; padding: 0; gap: 10px; flex-direction: column; background: none; }
.ts-home-side .ts-newsletter__form input { flex: none; width: 100%; box-sizing: border-box; height: 48px; border: 1px solid #C9C9C9; border-radius: 12px; background: #fff; }
.ts-home-side .ts-newsletter__form button { width: 100%; }
.ts-home-side .ts-newsletter__status { color: var(--ts-ink); }
.ts-live-card { display: flex; flex-direction: column; gap: 8px; padding: 24px; border-radius: var(--ts-radius-lg); border: 1px solid var(--ts-line); color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-live-card:hover { border-color: var(--ts-cobalt); }
.ts-live-card__kicker { display: flex; align-items: center; gap: 8px; font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ts-cobalt); }
.ts-live-card__dot { width: 8px; height: 8px; border-radius: 50%; background: #D93025; }
.ts-live-card__title { font-weight: 600; font-size: 19px; }
.ts-live-card__text { font-size: 14px; color: var(--ts-muted); }
.ts-lead__list > li, .ts-four__list > li { margin: 0 !important; }
.ts-lead__text > *, .ts-four__item > * { margin: 0 !important; }
.ts-four__img { margin-bottom: 4px !important; }
.ts-about-photo img { border-radius: var(--ts-radius-lg); width: 100%; height: auto; }

/* ---------- Article extras: byline, contents box, author box, related ---------- */
.ts-byline { gap: 6px 10px; font-size: 14px; color: var(--ts-muted); }
.ts-byline > * + *::before { content: "·"; margin-right: 10px; }
.ts-byline a { color: var(--ts-ink); font-weight: 600; text-decoration: none; }
.ts-byline a:hover { text-decoration: underline; }
.ts-updated { font-size: 14px; color: var(--ts-muted); }

.ts-toc { box-sizing: border-box; margin: 0 0 2rem; padding: 18px 22px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; }
.ts-toc summary { cursor: pointer; font-weight: 700; font-size: 16px; }
.ts-toc ol { margin: 12px 0 0; padding-left: 1.4em; columns: 2 280px; column-gap: 32px; font-size: 15px; line-height: 1.45; }
.ts-toc li { margin: 0 0 6px; break-inside: avoid; }
.ts-toc a { color: var(--ts-ink); text-decoration: none; }
.ts-toc a:hover { color: var(--ts-cobalt); text-decoration: underline; }

.ts-author { display: flex; gap: 20px; align-items: flex-start; margin-top: 3rem; padding: 24px; border-top: 1px solid var(--ts-line); border-bottom: 1px solid var(--ts-line); }
.ts-author__photo { width: 88px; height: 88px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.ts-author__text { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ts-author__name { margin: 0; font-size: 20px; }
.ts-author__name a { color: var(--ts-ink); text-decoration: none; }
.ts-author__bio { margin: 0; font-size: 16px; line-height: 1.55; color: #3A4250; }
.ts-author__links { display: flex; gap: 18px; margin: 4px 0 0; font-size: 14px; font-weight: 600; }
.ts-author-page .ts-author { margin-top: 0; border-top: none; padding-left: 0; }
.ts-author-page h1.ts-author__name { font-size: clamp(2rem, 4vw, 2.75rem); }
@media (max-width: 520px) { .ts-author { flex-direction: column; padding-inline: 0; } }

.ts-related { margin-top: 3rem; }
.ts-related__title { margin: 0 0 16px; font-size: 24px; }
.ts-related__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ts-related__item a { display: flex; flex-direction: column; gap: 8px; color: var(--ts-ink); text-decoration: none; }
.ts-related__img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ts-radius-md); }
.ts-related__cat { font-size: 13px; font-weight: 600; color: var(--ts-cobalt); }
.ts-related__name { font-size: 17px; font-weight: 600; line-height: 1.3; }
.ts-related__item a:hover .ts-related__name { color: var(--ts-cobalt); }
@media (max-width: 760px) { .ts-related__list { grid-template-columns: 1fr; } }

/* Brand guide: official links and "coming soon" per brand */
.ts-brand-links { font-size: 15px; color: var(--ts-muted); }
.ts-upb { box-sizing: border-box; margin: 1.5rem 0 0; padding: 18px 22px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; }
.ts-upb__title { margin: 0 0 10px; font-size: 18px; }
.ts-upb__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.ts-upb__list li { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid var(--ts-soft); }
.ts-upb__list li:first-child { border-top: none; padding-top: 0; }
.ts-upb__list a { font-weight: 600; }
.ts-upb__meta { font-size: 14px; color: var(--ts-muted); }
.ts-upb__when { font-size: 14px; }
.ts-upb__more { margin: 10px 0 0; font-size: 14px; color: var(--ts-muted); }

/* ---------- Homepage, tool-first (Oct 4 2026) ---------- */
.ts-hero2 { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 72px); align-items: center; margin-inline: auto; width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); }
.ts-hero2__copy { display: flex; flex-direction: column; gap: 18px; }
.ts-hero2__kicker { margin: 0; font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: #FF6A60; }
.ts-hero2__title { margin: 0; color: #fff; font-size: clamp(2.5rem, 5.4vw, 4.25rem); line-height: 0.98; letter-spacing: -0.045em; }
.ts-hero2__dek { margin: 0; max-width: 560px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--wp--preset--color--ink-soft); }
.ts-hero2__signup { flex: none; margin-top: 6px; max-width: 560px; }
.ts-hero2__signup .ts-newsletter__status:empty { display: none; }
.ts-hero2__signup .ts-newsletter__form { display: flex; gap: 8px; padding: 6px; border-radius: 16px; background: #fff; }
.ts-hero2__signup .ts-newsletter__form input { flex: 1; min-width: 0; width: 100%; box-sizing: border-box; height: 52px; padding: 0 14px; border: none; font: inherit; font-size: 16px; color: var(--ts-ink); background: transparent; }
.ts-hero2__signup .ts-newsletter__form button { height: 52px; padding: 0 22px; border: none; border-radius: 12px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; white-space: nowrap; }
.ts-hero2__signup .ts-newsletter__status { margin: 8px 0 0; color: #fff; }
.ts-hero2__proof { margin: 0; font-size: 14px; color: #A8A8A8; }
.ts-hero2__proof a { color: #fff !important; text-decoration: underline !important; text-underline-offset: 3px; }
.ts-hero2__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 0; }
.ts-hero2__stats > div { display: flex; flex-direction: column-reverse; gap: 4px; padding: 20px 22px; border-radius: 16px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); }
.ts-hero2__stats dt { font-size: 14px; color: #A8A8A8; }
.ts-hero2__stats dd { margin: 0; font-size: clamp(2rem, 3.4vw, 2.75rem); font-weight: 800; letter-spacing: -0.03em; line-height: 1; color: #fff; }
.ts-hero2__stats dd a { color: #fff !important; text-decoration: none !important; }
.ts-hero2__stats dd a:hover { color: #FF6A60 !important; }
@media (max-width: 860px) {
	.ts-hero2 { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
	.ts-hero2__signup .ts-newsletter__form { flex-direction: column; background: none; padding: 0; gap: 10px; }
	.ts-hero2__signup .ts-newsletter__form input { flex: none; height: 52px; background: #fff; border-radius: 12px; }
	.ts-hero2__stats > div { padding: 16px; }
}

.ts-hup { margin-inline: auto; width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); }
.ts-hup__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 20px; }
.ts-hup__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); }
.ts-hup__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ts-hup__card { display: flex; flex-direction: column; gap: 8px; height: 100%; box-sizing: border-box; padding: 20px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; color: var(--ts-ink) !important; text-decoration: none !important; transition: border-color .2s ease, box-shadow .2s ease; }
.ts-hup__card:hover { border-color: var(--ts-cobalt); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06); }
.ts-hup__top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.ts-hup__brand { font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-hup__name { font-size: 20px; font-weight: 700; letter-spacing: -0.015em; }
.ts-hup__sum { font-size: 15px; line-height: 1.45; color: #3A3A3A; }
.ts-hup__when { margin-top: auto; padding-top: 6px; font-size: 13px; color: var(--ts-muted); }
@media (max-width: 1000px) { .ts-hup__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ts-hup__grid { grid-template-columns: 1fr; } }

.ts-feature__label { margin: 0 0 4px; font-size: 22px; }
.ts-feature .wp-block-post-template { margin: 0; padding: 0; list-style: none; }
.ts-feature__card { display: flex; flex-direction: column; gap: 10px; }
.ts-feature__card > * { margin: 0 !important; }
.ts-feature__img { border-radius: var(--ts-radius-md); overflow: hidden; }
.ts-feature__img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ts-feature__title { font-size: 21px; line-height: 1.2; letter-spacing: -0.015em; }
.ts-feature__title a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-feature__title a:hover { color: var(--ts-cobalt) !important; }
.ts-feature__dek p { margin: 0; font-size: 15px; line-height: 1.5; color: #3A3A3A; }
.ts-home-news .ts-newsletter { margin: 0; }

/* Newsletter box inside articles */
.ts-midcta { box-sizing: border-box; margin: 2rem 0; padding: 22px 24px; border-radius: var(--ts-radius-md); background: var(--ts-soft); border: 1px solid var(--ts-line); }
.ts-midcta__title { margin: 0 0 6px !important; font-size: 19px; font-weight: 800; letter-spacing: -0.015em; }
.ts-midcta__text { margin: 0 0 14px !important; font-size: 15px; line-height: 1.5; color: #3A3A3A; }
.ts-midcta .ts-newsletter__signup { flex: none; }
.ts-midcta .ts-newsletter__form { display: flex; gap: 8px; padding: 0; background: none; }
.ts-midcta .ts-newsletter__form input { flex: 1; min-width: 0; height: 48px; padding: 0 14px; border: 1px solid #C9C9C9; border-radius: 12px; background: #fff; font: inherit; font-size: 16px; }
.ts-midcta .ts-newsletter__form button { height: 48px; padding: 0 20px; border: none; border-radius: 12px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.ts-midcta .ts-newsletter__status { color: var(--ts-ink) !important; margin: 8px 0 0 !important; }
.ts-midcta .ts-newsletter__status:empty { display: none; }
@media (max-width: 520px) {
	.ts-midcta .ts-newsletter__form { flex-direction: column; }
	.ts-midcta .ts-newsletter__form input { flex: none; }
}

/* Newsletter page */
.ts-page-newsletter .wp-block-post-content > .ts-newsletter__signup { flex: none; margin: 1.5rem 0 0.5rem; max-width: 560px; }
.ts-page-newsletter .wp-block-post-content .ts-newsletter__form { display: flex; gap: 8px; padding: 6px; border: 1px solid var(--ts-line); border-radius: 16px; background: #fff; }
.ts-page-newsletter .wp-block-post-content .ts-newsletter__form input { flex: 1; min-width: 0; height: 52px; padding: 0 14px; border: none; font: inherit; font-size: 16px; background: transparent; }
.ts-page-newsletter .wp-block-post-content .ts-newsletter__form button { height: 52px; padding: 0 22px; border: none; border-radius: 12px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.ts-page-newsletter .wp-block-post-content .ts-newsletter__status { color: var(--ts-ink) !important; }
.ts-page-newsletter .wp-block-post-content .ts-newsletter__status:empty { display: none; }
.ts-nl-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.ts-nl-list li { padding: 18px 20px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; line-height: 1.5; }
.ts-nl-list li strong { display: block; margin-bottom: 4px; font-size: 18px; }
@media (max-width: 600px) {
	.ts-nl-list { grid-template-columns: 1fr; }
	.ts-page-newsletter .wp-block-post-content .ts-newsletter__form { flex-direction: column; padding: 0; border: none; background: none; gap: 10px; }
	.ts-page-newsletter .wp-block-post-content .ts-newsletter__form input { flex: none; border: 1px solid #C9C9C9; border-radius: 12px; background: #fff; width: 100%; box-sizing: border-box; }
}

/* ------------------------------------------------------------------ */
/* Product price pages (/price-tracker/<brand>/<product>/)             */
/* ------------------------------------------------------------------ */
.ts-pt__more { align-self: flex-start; font-weight: 600; font-size: 14px; color: var(--ts-cobalt); }
.ts-pp { display: flex; flex-direction: column; gap: 36px; }
.ts-pp h2 { margin: 0 0 14px; font-size: 22px; letter-spacing: -0.01em; }
.ts-pp__crumbs { font-size: 14px; color: var(--ts-muted); display: flex; flex-wrap: wrap; gap: 6px; }
.ts-pp__crumbs a { color: var(--ts-muted); }
.ts-pp__summary { margin: -18px 0 0; font-size: 18px; line-height: 1.5; max-width: 760px; color: #3A3A3A; }
.ts-pp__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 20px; }
.ts-pp__now { padding: 24px; border-radius: var(--ts-radius-md); background: var(--ts-ink); color: #fff; display: flex; flex-direction: column; gap: 8px; }
.ts-pp__now p { margin: 0; }
.ts-pp__label { font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #D0D0D0; }
.ts-pp__price { font-size: 48px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.ts-pp__stock { font-size: 15px; color: #D0D0D0; }
.ts-pp__buy { align-self: flex-start; margin-top: 8px; display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px; border-radius: 999px; background: var(--ts-cobalt); color: #fff !important; font-weight: 700; text-decoration: none !important; }
.ts-pp__buy:hover { background: #B81E17; }
.ts-pp__verified { font-size: 13px; color: #B5B5B5; }
.ts-pp__facts { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--ts-line); border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); overflow: hidden; }
.ts-pp__facts > div { background: #fff; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.ts-pp__facts dt { font-size: 13px; color: var(--ts-muted); }
.ts-pp__facts dd { margin: 0; font-size: 22px; font-weight: 700; display: flex; flex-direction: column; gap: 2px; }
.ts-pp__facts small { font-size: 13px; font-weight: 400; color: var(--ts-muted); }
.ts-pp__empty { margin: 0 0 12px; padding: 20px; border: 1px dashed var(--ts-line); border-radius: var(--ts-radius-md); color: var(--ts-muted); }
.ts-pp__alert { padding: 24px; border-radius: var(--ts-radius-md); background: var(--wp--preset--color--cobalt-soft, #FDE8E7); }
.ts-pp__alert p { margin: 0 0 14px; max-width: 640px; }
.ts-pp__alert .ts-newsletter__status { margin: 8px 0 0; }
.ts-pp__related ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.ts-pp__related a { display: flex; flex-direction: column; gap: 4px; height: 100%; box-sizing: border-box; padding: 16px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pp__related a:hover { border-color: var(--ts-cobalt); }
/* News about the product (Oct 22 2026) */
.ts-pp__news ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ts-line); }
.ts-pp__news li { margin: 0; border-bottom: 1px solid var(--ts-line); }
.ts-pp__news a { display: flex; align-items: baseline; gap: 12px; padding: 14px 2px; color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pp__news a:hover .ts-pp__ntitle { text-decoration: underline; }
.ts-pp__ntitle { flex: 1; font-weight: 600; }
.ts-pp__news time { flex: none; font-family: var(--ts-mono); font-size: 12px; color: var(--ts-muted); }
.ts-pp__ntag { flex: none; padding: 2px 8px; border-radius: 999px; background: var(--wp--preset--color--accent, #D7261E); color: #fff; font-size: 11px; font-weight: 700; }
.ts-pp__rbrand { font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-pp__rname { font-weight: 700; }
.ts-pp__rprice { margin-top: auto; font-family: var(--ts-mono); }
@media (max-width: 900px) {
	.ts-pp__top { grid-template-columns: 1fr; }
	.ts-pp__related ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
	.ts-pp__price { font-size: 40px; }
	.ts-pp__facts dd { font-size: 19px; }
}

/* Price tracker overview sections */
.ts-pth { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 8px 0 28px; }
.ts-pth__set { border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); padding: 18px 18px 8px; background: #fff; }
.ts-pth h2.ts-pth__title { margin: 0 0 8px !important; font-size: 17px !important; line-height: 1.3; letter-spacing: 0; }
.ts-pth__list { list-style: none; margin: 0; padding: 0; }
.ts-pth__list a { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; padding: 10px 0; border-top: 1px solid var(--ts-line); color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pth__list a:hover .ts-pth__name { color: var(--ts-cobalt); }
.ts-pth__name { font-weight: 600; font-size: 15px; }
.ts-pth__price { font-family: var(--ts-mono); font-size: 14px; }
.ts-pth__note { grid-column: 1 / -1; font-size: 13px; color: var(--ts-muted); }
.ts-pth__note-empty { grid-column: 1 / -1; margin: 0; padding: 16px 18px; border: 1px dashed var(--ts-line); border-radius: var(--ts-radius-md); color: var(--ts-muted); font-size: 15px; }
/* Rearranged Oct 22 2026: one strip above the list (biggest drops), the other sets below it */
.ts-pth--top { display: block; margin: 0; }
.ts-pth--top .ts-pth__set { padding: 14px 16px 6px; }
.ts-pth--top .ts-pth__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 18px; }
.ts-pth--top .ts-pth__list li { min-width: 0; }
.ts-pth--rest { margin: 40px 0 28px; }
.ts-pth--rest h2.ts-pth__head { grid-column: 1 / -1; margin: 0 !important; font-size: 22px !important; }
@media (max-width: 900px) {
	.ts-pth--top .ts-pth__list { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding-bottom: 6px; }
	.ts-pth--top .ts-pth__list li { flex: 0 0 72%; scroll-snap-align: start; }
}
.ts-pt__about { margin: 8px 0 18px; }
.ts-pt__cmpbtn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-left: auto; padding: 0 18px; border-radius: 999px; background: var(--ts-ink); color: var(--ts-surface, #fff) !important; font-weight: 700; font-size: 14px; text-decoration: none !important; white-space: nowrap; }
.ts-pt__cmpbtn:hover { background: var(--wp--preset--color--accent, #D7261E); color: #fff !important; }
.ts-pt__brandpick { flex-wrap: wrap; }
/* Compare bar on Buyer Signal (Oct 22 2026): slim, but it should stand out */
.ts-pt__cmpbar { display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 12px; border: 2px solid var(--ts-ink); border-radius: var(--ts-radius-md); background: var(--ts-surface, #fff); color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pt__cmpbar:hover { border-color: var(--wp--preset--color--accent, #D7261E); }
.ts-pt__cmpbar:focus-visible { outline: 3px solid var(--wp--preset--color--accent, #D7261E); outline-offset: 2px; }
.ts-pt__cmpicon { flex: none; display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--wp--preset--color--accent, #D7261E); color: #fff; }
.ts-pt__cmptext { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ts-pt__cmptext strong { font-size: 17px; }
.ts-pt__cmptext span { font-size: 14px; color: var(--ts-muted); }
.ts-pt__cmpgo { flex: none; margin-left: auto; padding: 10px 16px; border-radius: 999px; background: var(--ts-red-bg, #D7261E); color: #fff; font-size: 14px; font-weight: 700; white-space: nowrap; }
.ts-pt__more--cmp { margin-left: 14px; }
@media (max-width: 600px) {
	.ts-pt__cmpbar { flex-wrap: wrap; }
	.ts-pt__cmptext { flex: 1 1 200px; }
	.ts-pt__cmpgo { box-sizing: border-box; width: 100%; margin-left: 0; text-align: center; }
	.ts-pt__cmptext span { font-size: 13px; }
	.ts-pt__more--cmp { margin-left: 0; display: inline-block; margin-top: 8px; }
}
@media (max-width: 600px) {
	/* Phones: product types and sort scroll sideways on one line, and the tagline is smaller, so prices come sooner */
	.ts-pt__tabs--types { flex-wrap: nowrap; overflow-x: auto; margin-inline: -16px; padding: 0 16px 4px; scrollbar-width: none; }
	.ts-pt__tabs--types a { flex: none; }
	.ts-pt .ts-pt__sort { flex-wrap: nowrap; }
	.ts-pt .ts-pt__sort-label { display: none; }
	.ts-pt .ts-pt__sort [role="group"] { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; }
	.ts-pt .ts-pt__sort button { flex: none; }
	.ts-pt__tagline { font-size: 1.05rem; }
	.ts-pt__brandpick select { min-width: 0; flex: 1; }
	.ts-pt__cmpbtn { margin-left: 0; width: 100%; justify-content: center; }
}
@media (max-width: 1000px) { .ts-pth { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ts-pth { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ */
/* Homepage v3 (Oct 4): hero with two actions + Friday Signal card,    */
/* stats strip, Coming Soon with Notify me, Prices moving, guides row  */
/* ------------------------------------------------------------------ */
.ts-hero2__ctas { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; }
.ts-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 26px; border-radius: 999px; font-weight: 700; font-size: 16px; text-decoration: none !important; transition: background .15s ease, border-color .15s ease; }
.ts-btn--primary { background: var(--ts-cobalt); color: #fff !important; }
.ts-btn--primary:hover { background: #B81E17; }
.ts-btn--ghost { border: 1.5px solid rgba(255, 255, 255, 0.45); color: #fff !important; }
.ts-btn--ghost:hover { border-color: #fff; }
.ts-hero2__nl { display: flex; flex-direction: column; gap: 10px; padding: 26px; border-radius: 20px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); }
.ts-hero2__nl p { margin: 0; }
.ts-hero2__nltitle { font-size: 22px; font-weight: 800; letter-spacing: -0.02em; color: #fff; }
.ts-hero2__nltitle::before { content: ""; display: inline-block; width: 9px; height: 9px; margin: 0 10px 2px 0; border-radius: 50%; background: #FF6A60; box-shadow: 0 0 0 4px rgba(255, 106, 96, 0.2); }
.ts-hero2__nltext { font-size: 15px; line-height: 1.5; color: var(--wp--preset--color--ink-soft); }
.ts-hero2__nl .ts-hero2__signup { margin-top: 4px; max-width: none; }

.ts-stats { list-style: none; margin: clamp(28px, 4vw, 44px) auto 0; padding: 18px 0 0; display: flex; flex-wrap: wrap; gap: 10px 36px; width: 100%; max-width: var(--wp--style--global--wide-size, 1200px); border-top: 1px solid rgba(255, 255, 255, 0.14); }
.ts-stats li { font-size: 15px; color: #A8A8A8; }
.ts-stats a { color: inherit !important; text-decoration: none !important; }
.ts-stats a:hover strong { color: #FF6A60; }
.ts-stats strong { margin-right: 4px; font-size: 20px; font-weight: 800; color: #fff; letter-spacing: -0.02em; }

/* Coming Soon cards: name is the link (whole card clickable), Notify me sits on top */
.ts-hup__grid > li.ts-hup__card { position: relative; }
.ts-hup__card h3.ts-hup__name { margin: 0; font-size: 20px; line-height: 1.2; }
.ts-hup__name a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-hup__name a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ts-hup__card p { margin: 0; }
.ts-hup__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: auto !important; padding-top: 6px; font-size: 13px; color: var(--ts-muted); }
.ts-hup__alert { position: relative; z-index: 1; }

/* Alert toggle + form (price alerts and Notify me) */
.ts-alert { margin: 0; }
.ts-alert__toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1.5px solid var(--ts-ink); border-radius: 999px; font-size: 14px; font-weight: 700; color: var(--ts-ink); cursor: pointer; list-style: none; user-select: none; }
.ts-alert__toggle::-webkit-details-marker { display: none; }
.ts-alert__toggle::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 1 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8a6 6 0 1 1 12 0c0 7 3 9 3 9H3s3-2 3-9'/%3E%3Cpath d='M10.3 21a1.94 1.94 0 0 0 3.4 0'/%3E%3C/svg%3E") center / contain no-repeat; }
.ts-alert__toggle:hover, .ts-alert[open] > .ts-alert__toggle { background: var(--ts-ink); color: #fff; }
.ts-alert__form, .ts-alert__done { margin-top: 12px; padding: 16px; border-radius: 12px; background: var(--ts-soft); }
.ts-alert__form p, .ts-alert__done p { margin: 0; }
.ts-alert__title { font-size: 14px; font-weight: 700; margin-bottom: 10px !important; }
.ts-alert__fields { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-alert__fields input { height: 46px; box-sizing: border-box; padding: 0 12px; border: 1px solid #C9C9C9; border-radius: 10px; font: inherit; font-size: 16px; background: #fff; color: var(--ts-ink); }
.ts-alert__email { flex: 1 1 200px; min-width: 0; }
.ts-alert__price { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; font-weight: 700; }
.ts-alert__price input { width: 110px; }
.ts-alert__fields button { height: 46px; padding: 0 18px; border: none; border-radius: 10px; background: var(--ts-cobalt); color: #fff; font: inherit; font-weight: 700; font-size: 15px; cursor: pointer; }
.ts-alert__optin { display: flex; gap: 8px; align-items: flex-start; margin-top: 10px; font-size: 14px; line-height: 1.4; cursor: pointer; }
.ts-alert__optin input { width: 18px; height: 18px; margin: 1px 0 0; flex: none; accent-color: var(--ts-cobalt); }
.ts-alert__fine { margin-top: 8px !important; font-size: 12px; color: var(--ts-muted); }
.ts-alert__err { margin-top: 8px !important; font-size: 14px; color: #B81E17; font-weight: 600; }
.ts-alert__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ts-alert__ok { font-weight: 800; font-size: 16px; outline: none; }
.ts-alert__ok::before { content: "✓ "; color: #087443; }
.ts-alert__upsell { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--ts-line); }
.ts-alert__upsell > p { font-size: 14px; margin-bottom: 8px !important; }
.ts-alert__upsell .ts-newsletter__signup { flex: none; }
.ts-alert__upsell .ts-newsletter__form { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-alert__upsell .ts-newsletter__form input { flex: 1 1 200px; min-width: 0; height: 46px; box-sizing: border-box; padding: 0 12px; border: 1px solid #C9C9C9; border-radius: 10px; font: inherit; font-size: 16px; }
.ts-alert__upsell .ts-newsletter__form button { height: 46px; padding: 0 18px; border: none; border-radius: 10px; background: var(--ts-ink); color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ts-alert__upsell .ts-newsletter__status { color: var(--ts-ink) !important; font-size: 14px; }
.ts-alert__upsell .ts-newsletter__status:empty { display: none; }
.ts-alert--inline > .ts-alert__toggle { display: none; }
.ts-alert--inline .ts-alert__form, .ts-alert--inline .ts-alert__done { margin-top: 0; background: #fff; }
.ts-pp__alert .ts-alert__title { font-size: 16px; }
.ts-alert-flash { margin: 16px auto; max-width: var(--wp--style--global--wide-size, 1200px); padding: 12px 16px; border-radius: 12px; background: #DCFAE6; color: #05603A; font-weight: 600; }
.ts-pt__events .ts-alert { align-self: flex-start; }

/* Prices moving */
.ts-pmove { margin-top: clamp(40px, 5vw, 64px); }
.ts-pmove__head { margin-bottom: 6px; }
.ts-pmove h2.ts-pmove__title { margin: 0; }
.ts-pmove__note { margin: 0 0 18px; font-size: 14px; color: var(--ts-muted); }
.ts-pmove__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ts-pmove__card { display: flex; flex-direction: column; gap: 6px; padding: 18px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; }
.ts-pmove__card p { margin: 0; }
.ts-pmove__tag { align-self: flex-start; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; background: #DCFAE6; color: #05603A; }
.ts-pmove__card--up .ts-pmove__tag { background: #FFE4E8; color: #A11043; }
.ts-pmove__card--lows .ts-pmove__tag, .ts-pmove__card--low30 .ts-pmove__tag { background: #E0F2FE; color: #075985; }
.ts-pmove__card h3.ts-pmove__name { margin: 4px 0 0; font-size: 17px; line-height: 1.25; }
.ts-pmove__name a { color: var(--ts-ink) !important; text-decoration: none !important; }
.ts-pmove__name a:hover { color: var(--ts-cobalt) !important; }
.ts-pmove__brand { display: block; font-family: var(--ts-mono); font-size: 11px; font-weight: 400; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-pmove__price strong { font-size: 26px; font-weight: 800; letter-spacing: -0.02em; }
.ts-pmove__ref { font-size: 14px; color: var(--ts-muted); text-decoration: line-through; text-decoration-color: rgba(0,0,0,.25); }
.ts-pmove__diff { font-family: var(--ts-mono); font-size: 13px; font-weight: 600; }
.ts-pmove__diff--down { color: #087443; }
.ts-pmove__diff--up { color: #B81E17; }
.ts-pmove__diff span { font-family: inherit; font-weight: 400; color: var(--ts-muted); }
.ts-pmove__links { margin-top: auto !important; padding-top: 6px; font-size: 14px; font-weight: 600; }
.ts-pmove__empty { margin: 0; padding: 18px 20px; border: 1px dashed var(--ts-line); border-radius: var(--ts-radius-md); color: var(--ts-muted); }
@media (max-width: 1000px) { .ts-pmove__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ts-pmove__grid { grid-template-columns: 1fr; } }

/* Featured guides row */
.ts-home-guides { margin-top: clamp(40px, 5vw, 64px); }
.ts-home-guides .ts-guides-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 800px) { .ts-home-guides .ts-guides-grid { grid-template-columns: 1fr; } }

/* Product page: related articles; newsletter page proof */
.ts-pp__reads ul { list-style: none; margin: 0; padding: 0; }
.ts-pp__reads li { padding: 12px 0; border-top: 1px solid var(--ts-line); display: flex; justify-content: space-between; gap: 16px; }
.ts-pp__reads li span { font-size: 13px; color: var(--ts-muted); white-space: nowrap; }
.ts-nl-proof { margin: 0; font-size: 14px; color: var(--ts-muted); }

@media (max-width: 900px) {
	.ts-hero2__nl { padding: 20px; }
}
@media (max-width: 600px) {
	.ts-hero2__ctas .ts-btn { flex: 1 1 auto; }
	.ts-stats { gap: 8px 20px; }
	.ts-stats li { flex: 1 1 40%; }
	.ts-alert__price input { width: 96px; }
	.ts-alert__fields button { flex: 1 1 100%; }
}
/* v3 fixes */
.ts-hup__card > * { margin: 0 !important; }
.ts-hup__card > .ts-hup__meta { margin-top: auto !important; }
.ts-pmove__card > * { margin: 0 !important; }
.ts-pmove__card > .ts-pmove__links { margin-top: auto !important; }
.ts-pmove__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.ts-pmove__ref { margin-left: 6px; }
.ts-home-guides .ts-guides-grid > li { margin: 0 !important; }
.ts-hero2__nl .ts-newsletter__signup, .ts-hero2__nl .ts-newsletter__form { margin-bottom: 0 !important; }
.ts-alert__confirm { margin-top: 8px !important; font-size: 14px; color: var(--ts-muted); }

/* Restored Oct 22 2026 (these lived in the old compare block and are used elsewhere) */
/* The Compare page uses the wide page template (templates/page-compare.html); its text paragraphs stay a readable width. */
.ts-compare-page .wp-block-post-content > p { max-width: 720px; }

/* Affiliate link disclosure next to buy buttons */
.ts-aff-note { display: block; margin-top: .4rem; font-size: .8rem; line-height: 1.4; color: var(--wp--preset--color--muted, #555); }
.ts-aff-note a { color: inherit; }

/* Product page: specs */
.ts-pp__specs { margin-top: 48px; }
.ts-pp__spec-list { margin: 0; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); overflow: hidden; }
.ts-pp__spec-list > div { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: 16px; padding: 12px 18px; background: #fff; }
.ts-pp__spec-list > div + div { border-top: 1px solid var(--ts-line); }
.ts-pp__spec-list > div:nth-child(even) { background: #fafafa; }
.ts-pp__spec-list dt { color: var(--ts-muted); font-size: 15px; }
.ts-pp__spec-list dd { margin: 0; font-weight: 600; display: flex; flex-direction: column; gap: 2px; }
.ts-pp__spec-list dd small { font-weight: 400; font-size: 13px; color: var(--ts-muted); }
.ts-pp__spec-list .is-unlisted dd { font-weight: 400; color: var(--ts-muted); }
.ts-pp__spec-note, .ts-pp__spec-sources { font-size: 14px; color: var(--ts-muted); margin: 12px 0 0; overflow-wrap: anywhere; }
.ts-pp__spec-compare { margin: 14px 0 0; font-weight: 600; }
@media (max-width: 600px) {
	.ts-pp__spec-list > div { grid-template-columns: 1fr; gap: 2px; }
}

/* Price tracker: link to the Compare page (the tool has its own page since Oct 13 2026). */
.ts-cmp-link { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 2px 14px; margin: 0 0 28px; padding: 14px 20px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: #fff; color: var(--ts-ink); text-decoration: none; }
.ts-cmp-link:hover { border-color: #BDBDBD; }
.ts-cmp-link:focus-visible { outline: 3px solid var(--wp--preset--color--accent, #D7261E); outline-offset: 2px; }
.ts-cmp-link__label { font-weight: 700; font-size: 17px; }
.ts-cmp-link__hint { grid-column: 1; color: var(--ts-muted); font-size: 14px; }
.ts-cmp-link__arrow { grid-column: 2; grid-row: 1 / span 2; display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: var(--wp--preset--color--accent, #D7261E); color: #fff; font-size: 18px; }
@media (max-width: 600px) { .ts-cmp-link { padding: 16px; } .ts-cmp-link__label { font-size: 18px; } }

/* "Why only official brand stores" note on the price tracker and product pages */
.ts-pt__why { margin: 12px 0 0; max-width: 820px; font-size: 15px; }
.ts-pt__why > summary { cursor: pointer; font-weight: 600; color: var(--ts-ink); width: max-content; max-width: 100%; }
.ts-pt__why > summary:focus-visible { outline: 3px solid var(--wp--preset--color--accent, #D7261E); outline-offset: 2px; }
.ts-pt__why p { margin: 8px 0 0; color: var(--ts-muted); line-height: 1.55; }
.ts-pp__verified a { color: inherit; text-decoration: underline; }

/* Contrast (WCAG AA 4.5:1): Signal red text on tinted backgrounds uses the darker red. */
.ts-tracker-next a, .ts-callout a, .ts-pt__note a { color: #B81E17; }


/* Coming Soon pictures (press-release / press-kit images and Mike's own photos only) */
.ts-up__media, .ts-hup__media { margin: 0 0 14px; }
.ts-up__media img, .ts-hup__media img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; background: #F4F4F5; border-radius: 12px; }
.ts-up__media figcaption, .ts-hup__media figcaption { margin-top: 6px; font-size: 12px; color: var(--ts-muted); }
.ts-up__media figcaption a, .ts-hup__media figcaption a { color: inherit; }
.ts-up__media--none, .ts-hup__media--none { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; aspect-ratio: 3 / 2; border-radius: 12px; background: #F4F4F5; color: #6B6B6B; text-align: center; margin: 0 0 32px; }
.ts-up__media--none span, .ts-hup__media--none span { font-weight: 700; font-size: 18px; color: #3F3F46; }
.ts-up__media--none small, .ts-hup__media--none small { font-size: 12px; }

/* Price tracker: sort by brand or by latest price change */
.ts-pt__sort { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0; }
.ts-pt__sort + .ts-pt__catname { margin-top: 0; }
.ts-pt__sort-label { font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ts-muted); }
.ts-pt__sort [role="group"] { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 999px; background: var(--ts-soft); }
.ts-pt__sort button { min-height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--ts-ink); font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.ts-pt__sort button[aria-pressed="true"] { background: var(--ts-ink); color: #fff; }
.ts-pt__sort button:focus-visible { outline: 3px solid var(--ts-cobalt); outline-offset: 1px; }
.ts-pt__flatinfo { display: none; }
.ts-pt--flat .ts-pt__flatinfo { display: block; }

/* ---------- Homepage featured slider (hero, right side) ---------- */
.ts-feat { position: relative; min-width: 0; display: flex; flex-direction: column; gap: 14px; padding: 26px; border-radius: 20px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.14); }
.ts-feat__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; outline: none; }
.ts-feat__track::-webkit-scrollbar { display: none; }
.ts-feat__slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; display: flex; flex-direction: column; justify-content: center; }
.ts-feat__slide > * { width: 100%; }
.ts-feat__nl, .ts-feat__tool { display: flex; flex-direction: column; gap: 10px; }
.ts-feat__nl p, .ts-feat__tool p { margin: 0; }
.ts-feat__nl .ts-hero2__signup { margin-top: 4px; max-width: none; }
.ts-feat__kicker { margin: 0; font-family: var(--ts-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #FF6A60; }
.ts-feat__title { display: block; font-size: 22px; font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; color: #fff; }
.ts-feat__tool .ts-btn { margin-top: 6px; }
.ts-feat__post { display: flex; flex-direction: column; gap: 8px; color: #fff !important; text-decoration: none !important; }
.ts-feat__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 12px; margin-bottom: 6px; }
.ts-feat__more { font-size: 14px; font-weight: 600; color: #FF6A60; }
.ts-feat__post:hover .ts-feat__title { text-decoration: underline; text-underline-offset: 4px; }
.ts-feat__post:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 12px; }
.ts-feat__nav { display: flex; align-items: center; gap: 10px; }
.ts-feat__dots { display: flex; gap: 6px; margin-right: auto; order: -1; }
.ts-feat__dot { width: 24px; height: 24px; padding: 0; border: 0; background: none; cursor: pointer; position: relative; }
.ts-feat__dot::before { content: ""; position: absolute; inset: 8px; border-radius: 50%; background: rgba(255, 255, 255, 0.3); transition: background .2s, inset .2s; }
.ts-feat__dot[aria-current="true"]::before { background: #fff; inset: 7px; }
.ts-feat__arrow, .ts-feat__pause { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; padding: 0 0 3px; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 50%; background: rgba(255, 255, 255, 0.06); color: #fff; font: inherit; font-size: 22px; line-height: 1; cursor: pointer; }
.ts-feat__pause { font-size: 11px; letter-spacing: -1px; }
.ts-feat__arrow:hover, .ts-feat__pause:hover { background: rgba(255, 255, 255, 0.14); }
.ts-feat__arrow:focus-visible, .ts-feat__pause:focus-visible, .ts-feat__dot:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.ts-feat:not(.is-ready) .ts-feat__nav { visibility: hidden; }
@media (max-width: 700px) {
	.ts-feat { padding: 20px; }
	.ts-feat__title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	.ts-feat__track { scroll-behavior: auto; }
}

/* Editor's notes inside a draft (staging only): must be resolved and removed before an article goes live. */
.ts-editor-note { padding: 12px 16px; border-radius: 10px; background: #FFF4CC; border: 1px dashed #C99A00; color: #5C4400; font-size: 14px; }
.ts-editor-note::before { content: "Editor's note (remove before publishing): "; font-weight: 700; }

/* ================================================================== */
/* Dark mode (Oct 14 2026)                                             */
/* ================================================================== */
/* <html data-theme="dark"> is set in <head> before the page draws (functions.php), from the visitor's saved
   choice or their device setting. Nothing above this line changed for dark mode, so light mode looks exactly
   as before. Every rule here starts with D = :where(:root[data-theme="dark"]), which adds no specificity:
   each override has the same weight as the rule it replaces and wins because it comes later.
   When you add a component with fixed colors (#fff, #3A3A3A...), add its dark colors here too. */

/* Dark mode toggle in the header (both themes) */
.ts-theme-toggle {
	display: flex; align-items: center; justify-content: center; flex: none;
	width: 44px; height: 44px; margin: 0; padding: 0;
	border: none; border-radius: 999px;
	background: var(--ts-soft); color: var(--ts-ink);
	cursor: pointer;
}
.ts-theme-toggle:hover { background: var(--ts-soft-hover, #E4E4DE); }
.ts-theme-toggle svg { width: 20px; height: 20px; display: block; }
.ts-theme-toggle .ts-theme-toggle__sun, :root[data-theme="dark"] .ts-theme-toggle .ts-theme-toggle__moon { display: none; }
:root[data-theme="dark"] .ts-theme-toggle .ts-theme-toggle__sun { display: block; }
/* While the search box is open it needs the room, so the toggle steps aside. */
.ts-search:not(.wp-block-search__searchfield-hidden) + .ts-theme-toggle { display: none; }

/* Palette. --wp--preset--color--cobalt stays #D7261E: it's the background of the red buttons (white text). */
:root[data-theme="dark"] {
	color-scheme: dark;
	--wp--preset--color--paper: #111113;
	--wp--preset--color--surface: #1A1A1D;
	--wp--preset--color--soft: #26262A;
	--wp--preset--color--line: #2E2E33;
	--wp--preset--color--muted: #A1A1A8;
	--wp--preset--color--ink: #EDEDEF;
	--wp--preset--color--cobalt-soft: #3A1714;
	--ts-cobalt: #FF6A60;         /* red for text, icons, lines and focus rings */
	--ts-link: #FF6A60;           /* links (theme.json) */
	--ts-red-text: #FF8A80;       /* stands in for the darker #B81E17 on tinted backgrounds */
	--ts-red-bg: #D7261E;         /* red buttons with white text */
	--ts-surface: #1A1A1D;        /* cards and panels (#fff in light mode) */
	--ts-surface-2: #222226;      /* hover rows, open rows, picture backgrounds */
	--ts-surface-alt: #1F1F22;    /* striped rows */
	--ts-soft-hover: #313136;
	--ts-raised: #3A3A40;         /* selected item inside a soft pill */
	--ts-field: #232327;          /* text boxes and menus */
	--ts-line-strong: #4A4A52;    /* text box borders */
	--ts-line-hover: #5C5C66;
	--ts-text-2: #C8C8CD;         /* secondary body text (#3A3A3A in light mode) */
	--ts-band: #18181B;           /* the dark bands, a step above the page */
	--ts-solid-bg: #EDEDEF;       /* selected tabs and solid buttons flip to light with dark text */
	--ts-solid-fg: #111113;
	--ts-solid-muted: #55555C;
	--ts-green-text: #74DFA2;
	--ts-green-bg: #0F2A1C;
}

/* Logo mark goes white */
:where(:root[data-theme="dark"]) .ts-brand__mark { filter: brightness(0) invert(1); }

/* Header and phone tab bar */
:where(:root[data-theme="dark"]) .ts-header::before { background: rgba(17, 17, 19, 0.88); }
:where(:root[data-theme="dark"]) .ts-search .wp-block-search__input { background: var(--ts-field); border-color: var(--ts-line-strong); color: var(--ts-ink); }
:where(:root[data-theme="dark"]) .ts-nav .wp-block-navigation-item__content:hover,
:where(:root[data-theme="dark"]) .ts-nav .current-menu-item > .wp-block-navigation-item__content { background: var(--ts-raised); }
:where(:root[data-theme="dark"]) .ts-tabbar { background: rgba(17, 17, 19, 0.94); }
:where(:root[data-theme="dark"]) .ts-tabbar a { color: var(--ts-muted) !important; }
:where(:root[data-theme="dark"]) .ts-tabbar a[aria-current="page"] { color: var(--ts-red-text) !important; }

/* Dark bands keep their look, one step above the page */
:where(:root[data-theme="dark"]) .ts-band,
:where(:root[data-theme="dark"]) .ts-newsletter,
:where(:root[data-theme="dark"]) .ts-nudge,
:where(:root[data-theme="dark"]) .ts-pp__now { background: var(--ts-band); }
:where(:root[data-theme="dark"]) .ts-hero__card { background-color: var(--ts-band); }
:where(:root[data-theme="dark"]) .ts-band--prices { background: var(--ts-soft); }
:where(:root[data-theme="dark"]) .ts-newsletter,
:where(:root[data-theme="dark"]) .ts-pp__now { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.08); }
:where(:root[data-theme="dark"]) .ts-nudge { box-shadow: 0 18px 50px rgba(0, 0, 0, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.1); }

/* Cards and panels */
:where(:root[data-theme="dark"]) .ts-panel,
:where(:root[data-theme="dark"]) .ts-side .ts-card,
:where(:root[data-theme="dark"]) .ts-card--boxed,
:where(:root[data-theme="dark"]) .ts-pt__table,
:where(:root[data-theme="dark"]) .ts-ptf,
:where(:root[data-theme="dark"]) .ts-pt__chart,
:where(:root[data-theme="dark"]) .ts-spec-table table,
:where(:root[data-theme="dark"]) .ts-pband__card,
:where(:root[data-theme="dark"]) .ts-home-side .ts-newsletter,
:where(:root[data-theme="dark"]) .ts-toc,
:where(:root[data-theme="dark"]) .ts-upb,
:where(:root[data-theme="dark"]) .ts-hup__card,
:where(:root[data-theme="dark"]) .ts-nl-list li,
:where(:root[data-theme="dark"]) .ts-pp__facts > div,
:where(:root[data-theme="dark"]) .ts-pth__set,
:where(:root[data-theme="dark"]) .ts-alert--inline .ts-alert__form,
:where(:root[data-theme="dark"]) .ts-alert--inline .ts-alert__done,
:where(:root[data-theme="dark"]) .ts-pmove__card,
:where(:root[data-theme="dark"]) .ts-pp__spec-list > div,
:where(:root[data-theme="dark"]) .ts-cmp > summary.ts-cmp__toggle,
:where(:root[data-theme="dark"]) .ts-cmp-link,
:where(:root[data-theme="dark"]) .ts-cmp__copy,
:where(:root[data-theme="dark"]) .ts-cmp__reset { background: var(--ts-surface); }
:where(:root[data-theme="dark"]) .ts-home-side .ts-newsletter { box-shadow: none; }
:where(:root[data-theme="dark"]) .ts-cmp__copy,
:where(:root[data-theme="dark"]) .ts-cmp-link { color: var(--ts-ink); }
:where(:root[data-theme="dark"]) .ts-pp__spec-list > div:nth-child(even) { background: var(--ts-surface-alt); }
:where(:root[data-theme="dark"]) .ts-pt__item > summary:hover,
:where(:root[data-theme="dark"]) .ts-pt__item[open] > summary,
:where(:root[data-theme="dark"]) .ts-pt__detail { background: var(--ts-surface-2); }
:where(:root[data-theme="dark"]) .ts-cmp > summary.ts-cmp__toggle:hover,
:where(:root[data-theme="dark"]) .ts-cmp-link:hover { border-color: var(--ts-line-hover); }
:where(:root[data-theme="dark"]) .ts-pt__tabs a:hover,
:where(:root[data-theme="dark"]) .ts-ptf__opt:hover { background: var(--ts-soft-hover); }
:where(:root[data-theme="dark"]) .ts-callout { background: var(--ts-soft); }
:where(:root[data-theme="dark"]) .ts-callout--warn { background: #2E2212; color: #F3E2C6; }
:where(:root[data-theme="dark"]) .ts-callout--warn strong { color: #FFB45C; }
:where(:root[data-theme="dark"]) .ts-editor-note { background: #2E2708; border-color: #8A6D00; color: #F2DC8C; }
:where(:root[data-theme="dark"]) .ts-ad__box { border-color: var(--ts-line-strong); background: var(--ts-surface-2); color: var(--ts-muted); }

/* Secondary text */
:where(:root[data-theme="dark"]) .ts-lede,
:where(:root[data-theme="dark"]) .ts-spec-table thead th,
:where(:root[data-theme="dark"]) .ts-author__bio,
:where(:root[data-theme="dark"]) .ts-hup__sum,
:where(:root[data-theme="dark"]) .ts-feature__dek p,
:where(:root[data-theme="dark"]) .ts-midcta__text,
:where(:root[data-theme="dark"]) .ts-pp__summary { color: var(--ts-text-2); }

/* Text boxes and menus */
:where(:root[data-theme="dark"]) .ts-newsletter__form,
:where(:root[data-theme="dark"]) .ts-nudge .ts-newsletter__form,
:where(:root[data-theme="dark"]) .ts-hero2__signup .ts-newsletter__form,
:where(:root[data-theme="dark"]) .ts-page-newsletter .wp-block-post-content .ts-newsletter__form { background: var(--ts-field); }
:where(:root[data-theme="dark"]) .ts-home-side .ts-newsletter__form,
:where(:root[data-theme="dark"]) .ts-midcta .ts-newsletter__form { background: none; }
:where(:root[data-theme="dark"]) .ts-ptf__money input,
:where(:root[data-theme="dark"]) .ts-home-side .ts-newsletter__form input,
:where(:root[data-theme="dark"]) .ts-midcta .ts-newsletter__form input,
:where(:root[data-theme="dark"]) .ts-alert__fields input,
:where(:root[data-theme="dark"]) .ts-alert__upsell .ts-newsletter__form input { background: var(--ts-field); border-color: var(--ts-line-strong); color: var(--ts-ink); }
:where(:root[data-theme="dark"]) .ts-ptf__money input { border-color: var(--ts-line); }
:where(:root[data-theme="dark"]) .ts-ptf__money input:focus { border-color: transparent; }
@media (max-width: 600px) {
	:where(:root[data-theme="dark"]) .ts-page-newsletter .wp-block-post-content .ts-newsletter__form { background: none; }
	:where(:root[data-theme="dark"]) .ts-page-newsletter .wp-block-post-content .ts-newsletter__form input { background: var(--ts-field); border-color: var(--ts-line-strong); }
}
@media (max-width: 520px) {
	:where(:root[data-theme="dark"]) .ts-hero2__signup .ts-newsletter__form { background: none; }
	:where(:root[data-theme="dark"]) .ts-hero2__signup .ts-newsletter__form input { background: var(--ts-field); }
}

/* Red buttons keep the full red (white text on the lighter red would be too faint) */
:where(:root[data-theme="dark"]) .ts-pill--solid a,
:where(:root[data-theme="dark"]) .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-nudge .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-hero2__signup .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-midcta .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-page-newsletter .wp-block-post-content .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-alert__fields button,
:where(:root[data-theme="dark"]) .ts-btn--primary,
:where(:root[data-theme="dark"]) .ts-pp__buy { background: var(--ts-red-bg); }
:where(:root[data-theme="dark"]) .ts-btn--primary:hover,
:where(:root[data-theme="dark"]) .ts-pp__buy:hover { background: #B81E17; }

/* Selected tabs and solid buttons: light with dark text */
:where(:root[data-theme="dark"]) .ts-tracker__cta,
:where(:root[data-theme="dark"]) .ts-pt__tabs a[aria-current="page"],
:where(:root[data-theme="dark"]) .ts-pt__buy { background: var(--ts-solid-bg); color: var(--ts-solid-fg) !important; }
:where(:root[data-theme="dark"]) .ts-pt__tabs a[aria-current="page"] span,
:where(:root[data-theme="dark"]) .ts-ptf__opt[aria-pressed="true"] small,
:where(:root[data-theme="dark"]) .ts-ptf__opt[aria-pressed="true"] .ts-ptf__n { color: var(--ts-solid-muted); }
:where(:root[data-theme="dark"]) .ts-ptf__opt[aria-pressed="true"],
:where(:root[data-theme="dark"]) .ts-ptf__toggle,
:where(:root[data-theme="dark"]) .ts-alert__toggle:hover,
:where(:root[data-theme="dark"]) .ts-alert[open] > .ts-alert__toggle,
:where(:root[data-theme="dark"]) .ts-alert__upsell .ts-newsletter__form button,
:where(:root[data-theme="dark"]) .ts-cmp__copy:hover,
:where(:root[data-theme="dark"]) .ts-pt__sort button[aria-pressed="true"],
:where(:root[data-theme="dark"]) .ts-cmp__reset:hover { background: var(--ts-solid-bg); color: var(--ts-solid-fg); }

/* Red text on tinted backgrounds, and status colors */
:where(:root[data-theme="dark"]) .ts-tracker-next a,
:where(:root[data-theme="dark"]) .ts-callout a,
:where(:root[data-theme="dark"]) .ts-pt__note a,
:where(:root[data-theme="dark"]) .ts-alert__err,
:where(:root[data-theme="dark"]) .ts-pmove__diff--up { color: var(--ts-red-text); }
:where(:root[data-theme="dark"]) .ts-pt__delta--down,
:where(:root[data-theme="dark"]) .ts-pmove__tag,
:where(:root[data-theme="dark"]) .ts-alert-flash { color: var(--ts-green-text); background: var(--ts-green-bg); }
:where(:root[data-theme="dark"]) .ts-pt__delta--up { color: #FFA58C; background: #35170E; }
:where(:root[data-theme="dark"]) .ts-pmove__card--up .ts-pmove__tag { color: #FF9DB5; background: #3A1222; }
:where(:root[data-theme="dark"]) .ts-pmove__card--lows .ts-pmove__tag,
:where(:root[data-theme="dark"]) .ts-pmove__card--low30 .ts-pmove__tag { color: #8CD3FB; background: #0C2A3D; }
:where(:root[data-theme="dark"]) .ts-pmove__diff--down,
:where(:root[data-theme="dark"]) .ts-alert__ok::before,
:where(:root[data-theme="dark"]) .ts-cmp__copied { color: var(--ts-green-text); }
:where(:root[data-theme="dark"]) .ts-pmove__ref { text-decoration-color: rgba(255, 255, 255, 0.35); }

/* Price history chart */
:where(:root[data-theme="dark"]) .ts-pt__grid { stroke: #2A2A2F; }
:where(:root[data-theme="dark"]) .ts-pt__grid--year { stroke: #38383E; }
:where(:root[data-theme="dark"]) .ts-pt__ylabel,
:where(:root[data-theme="dark"]) .ts-pt__xlabel { fill: #A1A1A8; }
:where(:root[data-theme="dark"]) .ts-pt__dot { stroke: var(--ts-surface); }
:where(:root[data-theme="dark"]) .ts-pt__dot--sale { fill: #3CCB82; }
:where(:root[data-theme="dark"]) .ts-pt__key--sale { background: #3CCB82; }

/* Coming Soon pictures: product photos sit on a dark tile */
:where(:root[data-theme="dark"]) .ts-up__media img,
:where(:root[data-theme="dark"]) .ts-hup__media img,
:where(:root[data-theme="dark"]) .ts-up__media--none,
:where(:root[data-theme="dark"]) .ts-hup__media--none { background: var(--ts-surface-2); }
:where(:root[data-theme="dark"]) .ts-up__media--none,
:where(:root[data-theme="dark"]) .ts-hup__media--none { color: var(--ts-muted); }
:where(:root[data-theme="dark"]) .ts-up__media--none span,
:where(:root[data-theme="dark"]) .ts-hup__media--none span { color: var(--ts-text-2); }

/* Price tracker: the store shows no real price (out of stock), so we say that instead of a price (Oct 16 2026). */
.ts-pt__now--oos { font-family: var(--wp--preset--font-family--sans); font-size: 15px; font-weight: 600; }

/* ---------- Stories (Oct 21 2026): our own articles, apart from the automatic News Feed ---------- */
/* The red "Story" tag marks our articles everywhere, so they never look like feed items. */
.ts-story-tag { display: inline-block; padding: 3px 9px; border-radius: 999px; background: #D7261E; color: #fff; font-family: var(--ts-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.1em; line-height: 1.4; text-transform: uppercase; }

/* One card, three sizes: lead, card, row. */
.ts-sc { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ts-sc__media { display: block; overflow: hidden; border-radius: var(--ts-radius-md); background: var(--ts-soft); aspect-ratio: 16 / 9; }
.ts-sc__img, .ts-sc__noimg { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; }
.ts-sc__noimg { background: linear-gradient(135deg, #1C1C1F 0%, #3A1714 100%); }
.ts-sc__media a { display: block; width: 100%; height: 100%; }
.ts-sc__media a:hover .ts-sc__img { transform: scale(1.03); }
.ts-sc__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ts-sc .ts-sc__body > p, .ts-sc .ts-sc__body > :is(h2, h3, h4).ts-sc__title { margin: 0; }
.ts-sc__title { margin: 0; font-size: 1.1875rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.015em; }
.ts-sc__title a { color: var(--ts-ink); text-decoration: none; }
.ts-sc__title a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 2px; }
.ts-sc__dek { font-size: 1.0625rem; line-height: 1.5; color: var(--ts-text-2, #3A3A3A); }
.ts-sc__date { font-size: 13px; color: var(--ts-muted); }
.ts-sc__byline { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ts-muted); }
.ts-sc__photo { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex: none; }

.ts-sc--lead .ts-sc__media { border-radius: 18px; }
.ts-sc--lead .ts-sc__title { font-size: clamp(1.625rem, 2.7vw, 2.375rem); font-weight: 800; line-height: 1.08; letter-spacing: -0.03em; }

.ts-sc--row { display: grid; grid-template-columns: 112px minmax(0, 1fr); align-items: start; align-content: start; gap: 14px; }
.ts-sc--row .ts-sc__media { border-radius: 10px; aspect-ratio: 16 / 9; }
.ts-sc--row .ts-sc__body { gap: 6px; }
.ts-sc--row .ts-sc__title { font-size: 1rem; line-height: 1.3; }
.ts-sc--row .ts-story-tag { font-size: 10px; padding: 2px 7px; }

/* /stories/ */
.ts-stories { display: flex; flex-direction: column; gap: clamp(28px, 4vw, 48px); padding-top: clamp(24px, 4vw, 48px); }
.ts-stories__head { display: flex; flex-direction: column; gap: 10px; }
.ts-stories__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.ts-stories__dek { margin: 0; max-width: 640px; font-size: 1.125rem; line-height: 1.5; color: var(--ts-muted); }
.ts-stories .ts-sc--lead { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: center; gap: clamp(20px, 3.5vw, 44px); padding-bottom: clamp(28px, 4vw, 44px); border-bottom: 2px solid var(--ts-ink); }
.ts-stories__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 40px 28px; }
.ts-stories__pagelist { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.ts-stories__pages .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--ts-line); color: var(--ts-ink); font-weight: 600; text-decoration: none; }
.ts-stories__pages .page-numbers.current { background: var(--ts-ink); border-color: var(--ts-ink); color: var(--wp--preset--color--paper); }
.ts-stories__pages a.page-numbers:hover { border-color: var(--ts-ink); }
@media (max-width: 760px) {
	.ts-stories .ts-sc--lead { grid-template-columns: minmax(0, 1fr); }
}

/* News Feed: the latest stories pinned at the top. */
.ts-pinned { margin: 0 0 28px; padding: clamp(18px, 2.5vw, 26px); border-radius: var(--ts-radius-lg); background: var(--ts-soft); }
.ts-pinned__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 18px; }
.ts-pinned h2.ts-pinned__title { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -0.02em; }
.ts-pinned__title::before { content: ""; display: inline-block; width: 9px; height: 9px; margin: 0 10px 2px 0; border-radius: 50%; background: #D7261E; }
.ts-pinned .ts-pinned__more { margin: 0; font-size: 15px; font-weight: 600; }
.ts-pinned__list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.ts-pinned .ts-sc--row { grid-template-columns: minmax(0, 1fr); gap: 10px; }
.ts-pinned .ts-sc--row .ts-sc__media { border-radius: 12px; }
@media (max-width: 700px) {
	.ts-pinned__list { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.ts-pinned .ts-sc--row { grid-template-columns: 112px minmax(0, 1fr); gap: 14px; }
}
/* Red link text on the grey bar needs the darker red for contrast (accessibility audit, Oct 21 2026). */
.ts-pinned .ts-pinned__more a { color: #B81E17; }
:where(:root[data-theme="dark"]) .ts-pinned .ts-pinned__more a { color: var(--ts-red-text, #FF8A80); }

/* Homepage video (Oct 21 2026): click to play, from data/home-video.json. */
.ts-hvid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); align-items: center; gap: clamp(20px, 4vw, 48px); margin-block: clamp(36px, 5vw, 64px) 0; }
.ts-hvid__copy { display: flex; flex-direction: column; gap: 10px; }
.ts-hvid__copy p { margin: 0; }
.ts-hvid__kicker { font-family: var(--ts-mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ts-red-text, #B81E17); }
.ts-hvid .ts-hvid__title { margin: 0; font-size: var(--wp--preset--font-size--x-large); font-weight: 800; line-height: 1.1; letter-spacing: -0.03em; }
.ts-hvid__text { font-size: 1.0625rem; line-height: 1.5; color: var(--ts-text-2, #3A3A3A); }
.ts-hvid__more { font-weight: 600; }
.ts-hvid__player { position: relative; aspect-ratio: 16 / 9; overflow: hidden; border-radius: 18px; background: #0F0F0F; }
.ts-hvid__player iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ts-hvid__play { position: absolute; inset: 0; display: block; width: 100%; height: 100%; padding: 0; border: 0; background: none; cursor: pointer; }
.ts-hvid__play img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ts-hvid__btn { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: flex; align-items: center; justify-content: center; width: 76px; height: 76px; border-radius: 50%; background: #D7261E; color: #fff; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35); transition: transform .15s ease; }
.ts-hvid__play:hover .ts-hvid__btn, .ts-hvid__play:focus-visible .ts-hvid__btn { transform: translate(-50%, -50%) scale(1.08); }
@media (max-width: 781px) { .ts-hvid { grid-template-columns: minmax(0, 1fr); } }
/* Launch week: the welcome video at the very top of the homepage. */
.ts-home-video-top .ts-hvid { margin-block: clamp(20px, 3vw, 40px) clamp(28px, 4vw, 48px); }

/* Photo credit under a story's featured image (Mike, Oct 22 2026) */
.wp-block-post-content > .ts-image-credit:first-child { margin-top: -0.75rem; }
.ts-image-credit { font-size: 13px; color: var(--ts-muted); }
.ts-image-credit a { color: inherit; text-decoration: underline; }

/* Pictures in guides (Mike, Oct 22 2026): illustrations full width, brand photos smaller and centered */
.ts-guide-figure { margin: 1.5rem 0; }
.ts-guide-figure img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--wp--preset--color--line); }
.ts-guide-figure img[src*="/brand-"] { max-width: 520px; margin: 0 auto; border: 0; }
.ts-guide-figure figcaption { margin-top: 8px; font-size: 13px; color: var(--ts-muted); text-align: center; }
.ts-guide-figure figcaption a { color: inherit; text-decoration: underline; }

/* Stories page 1: news-hub layout (Mike, Oct 22 2026) */
.ts-hub { display: flex; flex-direction: column; gap: 22px; padding-top: clamp(20px, 3vw, 36px); }
.ts-hub__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
.ts-hub__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.ts-hub__dek { margin: 8px 0 0; color: var(--ts-muted); font-size: 1rem; }
.ts-hub__sub { display: flex; align-items: center; gap: 14px; padding: 12px 14px 12px 16px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); background: var(--ts-soft); max-width: 460px; }
.ts-hub__sub p { margin: 0; }
.ts-hub__subtitle { font-weight: 700; font-size: 15px; }
.ts-hub__subtext { font-size: 13px; color: var(--ts-muted); }
.ts-hub__btn { flex: none; padding: 9px 16px; border-radius: 999px; background: var(--ts-cobalt); color: #fff !important; font-weight: 600; font-size: 14px; text-decoration: none !important; }
.ts-hub__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.ts-hub__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ts-hub__chip { padding: 7px 14px; border: 1px solid var(--ts-line); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--ts-ink); text-decoration: none; background: var(--wp--preset--color--paper); }
.ts-hub__chip:hover { border-color: var(--ts-ink); }
.ts-hub__chip.is-current { background: var(--ts-cobalt); border-color: var(--ts-cobalt); color: #fff; }
.ts-hub__search { display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--ts-line); border-radius: 10px; color: var(--ts-muted); min-width: 220px; }
.ts-hub__search input { border: 0; background: transparent; padding: 9px 0; font: inherit; font-size: 14px; color: var(--ts-ink); width: 100%; outline: none; }
.ts-hub__top { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.ts-hub__more-stories { display: flex; flex-direction: column; gap: 18px; }
.ts-hub__sechead { margin: 0; padding-bottom: 8px; border-bottom: 2px solid var(--ts-ink); font-size: 15px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.04em; }
.ts-hub__row--story { grid-template-columns: 168px minmax(0, 1fr); gap: 16px; }
.ts-hub__row--story .ts-hub__thumb { aspect-ratio: 16 / 9; }
.ts-hub__row--story .ts-hub__rowtitle { font-size: 17px; }
.ts-hub__row--story .ts-sc__byline { margin: 0; font-size: 13px; }
.ts-hub__rowtag .ts-story-tag { font-size: 10px; padding: 2px 7px; }
.ts-hub__band { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; margin: 18px 0 0; padding-top: 22px; border-top: 1px solid var(--ts-line); font-size: 24px; font-weight: 800; letter-spacing: -0.02em; }
.ts-hub__band span { font-size: 14px; font-weight: 500; letter-spacing: 0; color: var(--ts-muted); }
.ts-hub__side--wide .ts-hub__numlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 14px 24px; }
.ts-hub__icon--justin { background: #D7261E; }
.ts-hub__lead { display: flex; flex-direction: column; gap: 10px; }
.ts-hub__lead > * { margin: 0; }
.ts-hub__leadmedia { overflow: hidden; border-radius: 18px; aspect-ratio: 16 / 9; background: var(--ts-soft); }
.ts-hub__leadmedia a { display: block; width: 100%; height: 100%; }
.ts-hub__leadimg, .ts-hub__leadmedia img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.3s ease; }
.ts-hub__leadmedia a:hover img { transform: scale(1.03); }
.ts-hub__leadtitle { font-size: clamp(1.4rem, 2.2vw, 1.9rem); font-weight: 800; line-height: 1.12; letter-spacing: -0.025em; }
.ts-hub__leadtitle a { color: var(--ts-ink); text-decoration: none; }
.ts-hub__leadtitle a:hover { text-decoration: underline; text-underline-offset: 3px; }
.ts-hub__leaddek { font-size: 15px; line-height: 1.5; color: var(--ts-muted); }
.ts-hub p:empty, .ts-hub br { display: none; }
.ts-hub__subicon { display: flex; color: var(--ts-cobalt); } .ts-hub__subicon svg { width: 28px; height: 28px; }
.ts-hub__searchicon { display: flex; }
.ts-hub__searchfield { flex: 1; }
.ts-hub__col .ts-hub__thumb .ts-hub__ph { font-size: 10px; word-break: break-word; }
.ts-hub__justin { display: flex; flex-direction: column; gap: 16px; }
.ts-hub__row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 12px; align-items: start; }
.ts-hub__thumb a, .ts-hub__colimg a { display: block; width: 100%; height: 100%; }
.ts-hub__thumb, .ts-hub__colimg { display: block; overflow: hidden; border-radius: 10px; background: var(--ts-soft); aspect-ratio: 1 / 1; }
.ts-hub__colimg { aspect-ratio: 16 / 9; margin-bottom: 10px; }
.ts-hub__thumb img, .ts-hub__colimg img { width: 100%; height: 100%; object-fit: contain; background: #F4F4F5; display: block; }
.ts-hub__thumb img.wp-post-image { object-fit: cover; }
.ts-hub__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 6px; background: linear-gradient(135deg, #1C1C1F 0%, #3A1714 100%); color: #fff; font-weight: 800; font-size: 13px; text-align: center; line-height: 1.15; }
.ts-hub__colimg .ts-hub__ph { font-size: 18px; }
.ts-hub__rowbody { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ts-hub__rowbody > *, .ts-hub__collead > :is(h3, p) { margin: 0; }
.ts-hub__badge { width: fit-content; margin: 0 0 6px !important; align-self: flex-start; padding: 2px 7px; border-radius: 5px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; background: #FDE8E7; color: #A11C15; }
.ts-hub__badge--launch, .ts-hub__badge--store { background: #E5F4E4; color: #1E6B2A; }
.ts-hub__badge--price { background: #E5F4E4; color: #1E6B2A; }
.ts-hub__badge--crowdfunding, .ts-hub__badge--preorder { background: #F9EEDA; color: #7A4B00; }
.ts-hub__badge--software, .ts-hub__badge--company, .ts-hub__badge--press, .ts-hub__badge--post { background: #E7F1FB; color: #1B4F8A; }
.ts-hub__rowtitle, .ts-hub__coltitle { font-size: 15px; font-weight: 700; line-height: 1.3; letter-spacing: -0.01em; }
.ts-hub__coltitle { font-size: 17px; }
.ts-hub__rowtitle a, .ts-hub__coltitle a, .ts-hub__numlist a { color: var(--ts-ink); text-decoration: none; }
.ts-hub__rowtitle a:hover, .ts-hub__coltitle a:hover, .ts-hub__numlist a:hover { text-decoration: underline; }
.ts-hub__sum { font-size: 13px; line-height: 1.45; color: var(--ts-muted); }
.ts-hub__meta { font-size: 12px; color: var(--ts-muted); display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.ts-hub__src { display: inline-flex; color: var(--ts-cobalt); margin-left: 4px; }
.ts-hub__more { margin: 0; font-size: 14px; font-weight: 600; }
.ts-hub__side { padding: 16px; border-radius: var(--ts-radius-md); background: var(--ts-soft); }
.ts-hub__sidehead { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 16px; font-weight: 800; }
.ts-hub__sidehead svg { color: var(--ts-cobalt); }
.ts-hub__numlist { list-style: none; counter-reset: n; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.ts-hub__numlist li { counter-increment: n; display: grid; grid-template-columns: 26px minmax(0, 1fr); column-gap: 8px; font-size: 14px; font-weight: 700; line-height: 1.3; }
.ts-hub__numlist li::before { content: counter(n); grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--wp--preset--color--paper); font-size: 12px; }
.ts-hub__numdate { grid-column: 2; font-size: 12px; font-weight: 500; color: var(--ts-muted); margin-top: 2px; }
.ts-hub__sidenote { margin: 12px 0 0; font-size: 12px; color: var(--ts-muted); }
.ts-hub__cols { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ts-hub__col { display: flex; flex-direction: column; gap: 14px; padding: 16px; border: 1px solid var(--ts-line); border-radius: var(--ts-radius-md); }
.ts-hub__colhead { margin: 0; font-size: 16px; font-weight: 800; }
.ts-hub__colhead a { display: flex; align-items: center; gap: 10px; color: var(--ts-ink); text-decoration: none; }
.ts-hub__chev { margin-left: auto; font-size: 20px; color: var(--ts-muted); }
.ts-hub__icon { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; color: #fff; }
.ts-hub__icon svg { width: 15px; height: 15px; }
.ts-hub__icon--ours { background: #1E6B2A; } .ts-hub__icon--launches { background: #6B4BD8; } .ts-hub__icon--industry { background: #1B4F8A; } .ts-hub__icon--prices { background: #D2601A; }
.ts-hub__col .ts-sc { gap: 10px; }
.ts-hub__col .ts-sc__title { font-size: 17px; }
.ts-hub__col .ts-hub__row { grid-template-columns: 64px minmax(0, 1fr); }
.ts-hub__all { margin: 0; text-align: center; padding: 12px; border-radius: 10px; background: var(--ts-soft); font-weight: 600; }
.ts-hub__all a { color: var(--ts-ink); text-decoration: none; }
@media (max-width: 1100px) {
	.ts-hub__top { grid-template-columns: minmax(0, 1fr); }
	.ts-hub__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
	.ts-hub__top, .ts-hub__cols { grid-template-columns: minmax(0, 1fr); }
	.ts-hub__sub { max-width: none; width: 100%; }
	.ts-hub__search { width: 100%; }
	.ts-hub__chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
	.ts-hub__chip { white-space: nowrap; }
	.ts-hub__row--story { grid-template-columns: 112px minmax(0, 1fr); gap: 12px; }
}
:where(:root[data-theme="dark"]) .ts-hub__badge { filter: saturate(0.9) brightness(0.95); }

/* Stories hub: one category at a time from the chips (Oct 22 2026) */
.ts-hub__view[hidden] { display: none !important; }
.ts-hub__panel { display: flex; flex-direction: column; gap: 0; max-width: 860px; }
.ts-hub__panel .ts-hub__row { padding: 16px 0; border-top: 1px solid var(--ts-line); }
.ts-hub__panel .ts-hub__row:first-of-type { border-top: 0; }
.ts-hub h2.ts-hub__panelhead { display: flex; align-items: center; gap: 10px; margin: 0 0 8px !important; padding-bottom: 12px; border-bottom: 2px solid var(--ts-ink); font-size: clamp(24px, 3vw, 32px) !important; }
.ts-hub__panel .ts-hub__sidenote { margin: 0 0 6px; }
.ts-hub__panel .ts-hub__all, .ts-hub__panel .ts-hub__more { margin-top: 18px; }
.ts-hub__icon--watch { background: #5B5B63; }
