/* ============================================================
 * Tower Speakers · polish.css
 * Mobile rhythm tightening, premium card depth, today-on-the-audio polish.
 * ============================================================ */

@media (max-width: 720px) {
	.tsp-hero { padding: 60px 0 100px; }
	.tsp-hero__title { font-size: clamp(2rem, 8vw, 2.8rem); }
	.tsp-hero__sub { font-size: 16px; }
	.tsp-hero__chips { display: none; }
	.tsp-hero__card { padding: 20px; }
	.tsp-hero__stats { grid-template-columns: 1fr 1fr; }
	.tsp-hero__ticker-track { animation-duration: 28s; }
	.tsp-hero__ticker-item { font-size: 12px; }

	.tsp-section-h { margin-bottom: 24px; }
	.tsp-section-h__title { font-size: clamp(1.4rem, 6vw, 2rem); }
	.tsp-section-h__lede { font-size: 14px; }

	.tsp-quick { padding: 30px 0 20px; }
	.tsp-eeat { padding: 36px 0; }
	.tsp-eeat__pillar { padding: 18px; }
	.tsp-faq { padding: 36px 0; }
	.tsp-faq__item summary { padding: 14px 16px; font-size: 1rem; }
	.tsp-news { padding: 36px 0; }
	.tsp-news__card { padding: 20px; gap: 18px; }

	.tsp-roomcalc, .tsp-place, .tsp-gear, .tsp-compare, .tsp-db, .tsp-kits, .tsp-build, .tsp-picks, .tsp-quiz { padding: 36px 0; }

	.tsp-roomcalc__inputs, .tsp-roomcalc__output, .tsp-place__readout, .tsp-quiz__shell, .tsp-place__stage { padding: 18px; }
	.tsp-roomcalc__stats, .tsp-place__readout dl, .tsp-roomcalc__stats { grid-template-columns: 1fr 1fr; }

	.tsp-gear__tabs { padding: 6px; flex-wrap: wrap; }
	.tsp-gear__tab { padding: 8px 12px; font-size: 13px; }

	.tsp-compare__rail { display: none !important; }

	.tsp-pbox { padding: 18px; }
	.tsp-pbox__head { gap: 14px; }
	.tsp-pbox__specs { grid-template-columns: 1fr 1fr; }

	.tsp-build__inner { padding: 0 24px; }
	.tsp-build__stages { gap: 14px; grid-template-columns: 1fr !important; }

	.tsp-sticky-cta__inner { padding: 10px 14px; }

	.tsp-footer { padding: 36px 0 100px; }
}

/* Touch-friendly tap targets on mobile */
@media (hover: none) and (pointer: coarse) {
	.tsp-btn, .tsp-link, .tsp-quick__card, .tsp-gear__tab, .tsp-compare__tab { min-height: 44px; }
	.tsp-totop, .tsp-quick-dock a { min-width: 44px; min-height: 44px; }
}

/* Premium accent hover for cards */
.tsp-pcard:hover, .tsp-kit:hover, .tsp-quick__card:hover, .tsp-eeat__pillar:hover {
	background: rgba(212,175,55,0.04);
}

/* Refined gold accent on rule lines */
hr { border: 0; height: 1px; background: linear-gradient(90deg, transparent, var(--tsp-c-line), transparent); margin: 30px 0; }

/* ============================================================
 * MOBILE UX REFINEMENT (audiophile audience runs older too)
 * ============================================================ */
@media (max-width: 720px) {
	/* Disable cinematic effects that hurt mid-range mobile */
	[data-tsp-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
	.tsp-hero__sky, .tsp-hero__aurora, .tsp-hero__ridges-far, .tsp-hero__ridges-mid, .tsp-hero__ridges-near { transform: none !important; }
	.tsp-hero__bars span, .tsp-build__bars span { animation: none !important; opacity: 0.18 !important; }
	.tsp-hero__aurora { animation: none !important; }
	.tsp-build__bar-fill::after { animation: none !important; }
	.tsp-eyebrow--pulse .tsp-eyebrow__dot { animation: none !important; }

	/* Tighter card padding */
	.tsp-pbox, .tsp-pcard__body, .tsp-quick__card, .tsp-eeat__pillar, .tsp-picks__card, .tsp-build__stage, .tsp-kit__body, .tsp-roomcalc__inputs, .tsp-roomcalc__output, .tsp-place__readout, .tsp-news__card, .tsp-quiz__shell, .tsp-faq__item summary { padding: 14px !important; }
	.tsp-news__card { padding: 18px !important; }
	.tsp-build__progress { padding: 10px 16px !important; }

	/* Quiz answers narrower */
	.tsp-quiz__answer { padding: 12px 14px !important; font-size: 14px !important; }

	/* Section header tightening */
	.tsp-section-h { margin-bottom: 18px; }
	.tsp-section-h__title { font-size: clamp(1.3rem, 5.6vw, 1.9rem); }

	/* Newsletter stacks */
	.tsp-news__card { grid-template-columns: 1fr; gap: 14px; }
	.tsp-news__form input { padding: 12px 16px; font-size: 15px; }
}

@media (max-width: 720px) and (prefers-reduced-motion: no-preference) {
	/* Allow only the most essential motion */
	.tsp-build__progress .tsp-build__bar-fill { transition: width .5s; }
}

/* ============================================================
 * PERFORMANCE — light containment only (NO content-visibility)
 * ----
 * content-visibility: auto reserved 600px placeholders that showed up
 * as empty black voids when sections were shorter than the estimate.
 * Removed entirely. The performance win wasn't worth the visual bug.
 * ============================================================ */
.tsp-pbox, .tsp-pcard, .tsp-kit, .tsp-quick__card, .tsp-eeat__pillar,
.tsp-picks__card, .tsp-build__stage, .tsp-faq__item, .tsp-card,
.tsp-roomcalc__inputs, .tsp-roomcalc__output, .tsp-place__readout,
.tsp-quiz__shell, .tsp-news__card, .tsp-pgrid > *, .tsp-profiles__card {
	contain: layout style;
}

/* ============================================================
 * NEW COMPONENTS
 * ============================================================ */

/* Trust markers strip */
.tsp-trust { padding: 26px 0; }
.tsp-trust__strip { list-style: none; padding: 18px 22px; margin: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; background: rgba(255,255,255,0.03); border: 1px solid var(--tsp-c-line); border-radius: 999px; backdrop-filter: blur(10px); }
.tsp-trust__strip li { display: flex; align-items: center; gap: 10px; font-size: 13px; color: var(--tsp-c-ink-2); }
.tsp-trust__strip svg { color: var(--tsp-c-primary); flex-shrink: 0; }
.tsp-trust__strip strong { color: var(--tsp-c-ink); font-weight: 600; }
@media (max-width: 1100px) { .tsp-trust__strip { grid-template-columns: repeat(2, 1fr); border-radius: 18px; } }
@media (max-width: 600px)  { .tsp-trust__strip { grid-template-columns: 1fr; padding: 12px 16px; } }

/* Placement teaser */
.tsp-place-teaser { padding: 50px 0; }
.tsp-place-teaser__card { display: grid; grid-template-columns: 1.1fr 1fr; gap: 30px; padding: 0; overflow: hidden; }
.tsp-place-teaser__art { aspect-ratio: 16/9; min-height: 320px; }
.tsp-place-teaser__copy { padding: 30px; display: grid; gap: 12px; align-content: center; }
.tsp-place-teaser__perks { list-style: none; padding: 0; margin: 4px 0 8px; display: grid; gap: 6px; font-size: 14px; }
.tsp-place-teaser__perks li { display: flex; align-items: center; gap: 8px; color: var(--tsp-c-ink); }
.tsp-place-teaser__perks svg { color: #61c97e; }
.tsp-place-teaser__cta { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
@media (max-width: 800px) { .tsp-place-teaser__card { grid-template-columns: 1fr; } .tsp-place-teaser__copy { padding: 20px; } }

/* Tools page nav strip */
.tsp-tools-nav { display: flex; flex-wrap: wrap; gap: 8px; padding: 18px 0 0; }
.tsp-tools-nav a { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,0.04); border: 1px solid var(--tsp-c-line); color: var(--tsp-c-ink-2); font-size: 13px; font-weight: 500; transition: all .2s; }
.tsp-tools-nav a:hover { background: rgba(212,175,55,0.10); color: var(--tsp-c-primary); border-color: rgba(212,175,55,0.30); }

/* Listening Profiles */
.tsp-profiles { padding: 60px 0; }
.tsp-profiles__grid { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.tsp-profiles__card { width: 100%; padding: 22px; text-align: left; cursor: pointer; transition: all .3s; border: 1px solid var(--tsp-glass-bd); position: relative; }
.tsp-profiles__card:hover { transform: translateY(-3px); border-color: rgba(212,175,55,0.40); }
.tsp-profiles__card.is-selected { border-color: var(--tsp-c-primary); background: rgba(212,175,55,0.08); }
.tsp-profiles__icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: rgba(212,175,55,0.10); color: var(--tsp-c-primary); margin-bottom: 10px; }
.tsp-profiles__label { display: block; font-family: var(--tsp-font-h); font-size: 1.05rem; color: var(--tsp-c-ink); margin-bottom: 4px; }
.tsp-profiles__note { display: block; color: var(--tsp-c-ink-2); font-size: 13px; }
@media (max-width: 1000px) { .tsp-profiles__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px)  { .tsp-profiles__grid { grid-template-columns: 1fr; } }

.tsp-profiles__result { padding: 26px; margin-top: 22px; }
.tsp-profiles__result-empty { display: grid; grid-template-columns: auto 1fr; gap: 16px 22px; align-items: center; }
.tsp-profiles__result-empty .tsp-profiles__empty-icon { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: rgba(212,175,55,0.10); color: var(--tsp-c-primary); grid-row: 1 / span 2; }
.tsp-profiles__result-empty h3 { margin: 0; font-size: 1.15rem; color: var(--tsp-c-ink); }
.tsp-profiles__result-empty p  { margin: 0; color: var(--tsp-c-ink-2); font-size: 14px; grid-column: 2; }
@media (max-width: 600px) { .tsp-profiles__result-empty { grid-template-columns: 1fr; } .tsp-profiles__result-empty .tsp-profiles__empty-icon { grid-row: auto; } .tsp-profiles__result-empty p { grid-column: auto; } }
.tsp-profiles__result-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.tsp-profiles__result-head h3 { color: var(--tsp-c-ink); margin: 4px 0 0; }
.tsp-profiles__table { width: 100%; border-collapse: collapse; font-size: 14px; }
.tsp-profiles__table th, .tsp-profiles__table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--tsp-c-line); }
.tsp-profiles__table th { color: var(--tsp-c-primary); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; }
.tsp-profiles__bar { display: inline-block; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--tsp-c-primary), var(--tsp-c-cta)); }

/* Sound Signature — embedded in product boxes */
.tsp-pbox__signature { margin: 18px 0; padding: 16px; background: rgba(0,0,0,0.20); border-radius: 12px; border: 1px solid var(--tsp-c-line); }
.tsp-pbox__signature h4 { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--tsp-c-primary); margin: 0 0 10px; }
.tsp-pbox__signature ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.tsp-pbox__signature li { display: grid; grid-template-columns: 130px 1fr 50px; gap: 10px; align-items: center; font-size: 13px; }
.tsp-pbox__signature .lab { color: var(--tsp-c-ink-2); }
.tsp-pbox__signature .bar { height: 6px; background: rgba(255,255,255,0.06); border-radius: 999px; overflow: hidden; }
.tsp-pbox__signature .bar > span { display: block; height: 100%; background: linear-gradient(90deg, var(--tsp-c-primary), var(--tsp-c-cta)); }
.tsp-pbox__signature .val { text-align: right; color: var(--tsp-c-primary); font-weight: 700; }

/* Best-For badges (gold accent variants) */
.tsp-bestfor { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.tsp-bestfor span { padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; background: var(--tsp-grad-gold); color: #0a0a0d; }
.tsp-bestfor span.is-blue { background: linear-gradient(135deg, var(--tsp-c-accent), #0a0a0d); color: #fff; }
.tsp-bestfor span.is-orange { background: linear-gradient(135deg, var(--tsp-c-cta), #0a0a0d); color: #fff; }

/* Recommendation graph (review pages) */
.tsp-recograph { margin: 50px 0; padding: 26px; background: rgba(255,255,255,0.03); border: 1px solid var(--tsp-c-line); border-radius: var(--tsp-radius); }
.tsp-recograph h3 { font-size: 1.2rem; margin: 0 0 16px; }
.tsp-recograph__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.tsp-recograph__cell { padding: 16px; background: rgba(0,0,0,0.20); border-radius: 12px; border: 1px solid var(--tsp-c-line); }
.tsp-recograph__cell h4 { font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--tsp-c-primary); margin: 0 0 6px; }
.tsp-recograph__cell p { font-size: 14px; margin: 0 0 8px; color: var(--tsp-c-ink); }
.tsp-recograph__cell a { font-size: 13px; color: var(--tsp-c-primary); }
@media (max-width: 800px) { .tsp-recograph__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 500px) { .tsp-recograph__grid { grid-template-columns: 1fr; } }

/* Best-for / matchup hero */
.tsp-best-hero, .tsp-matchup-hero { padding: 80px 0 30px; }
.tsp-best-hero h1, .tsp-matchup-hero h1 { font-size: clamp(2rem, 4.5vw, 3.4rem); }
.tsp-best-hero__sub, .tsp-matchup-hero__sub { color: var(--tsp-c-ink-2); font-size: 18px; max-width: 760px; margin-top: 10px; }
.tsp-matchup-grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 30px; align-items: stretch; padding: 30px 0; }
.tsp-matchup-grid > .tsp-pbox { margin: 0; }
.tsp-matchup-vs { display: grid; place-items: center; font-family: var(--tsp-font-h); font-size: 2.4rem; color: var(--tsp-c-primary); padding: 0 12px; }
@media (max-width: 900px) { .tsp-matchup-grid { grid-template-columns: 1fr; } .tsp-matchup-vs { padding: 12px 0; } }
