.ts-hub { padding-bottom: 28px; }
.ts-hub-hero {
  display: flex; justify-content: space-between; align-items: end; gap: 24px;
  padding: clamp(24px, 5vw, 58px); border-radius: 24px;
  background: radial-gradient(ellipse at 92% 18%, #692444, transparent 62%), #171a2a;
  color: #fff;
}
.cx .ts-hub-hero h1 { margin: 0; color: #fff; font-size: clamp(30px, 5vw, 56px); line-height: 1.05; }
.cx .ts-hub-hero p { margin: 14px 0 0; max-width: 53ch; color: #f4e9f1; }
.ts-hub-hero button, .ts-hub-dock button {
  flex: none; border: 0; border-radius: 12px; min-height: 48px; padding: 10px 18px;
  color: #fff; background: #b60055; font-weight: 800;
}
.ts-hub-hero button b, .ts-hub-dock button b { margin-left: 8px; }
.ts-hub-filters {
  display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 14px; padding: 16px;
  border: 1px solid #e1e5ed; border-radius: 16px; background: #fff;
}
.ts-hub-filters label { display: grid; gap: 5px; font-weight: 750; min-width: 0; }
.ts-hub-filters input, .ts-hub-filters select {
  width: 100%; min-height: 46px; padding: 8px 12px; border: 1px solid #cdd3df;
  border-radius: 10px; background: #fff; color: #182233;
}
.ts-hub-count { font-weight: 750; margin: 18px 0 10px; }
.ts-hub-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
.ts-hub-card {
  display: flex; flex-direction: column; gap: 9px; padding: 15px; background: #fff;
  border: 1px solid #dee3eb; border-radius: 15px; box-shadow: 0 4px 12px #1c16320c;
}
.ts-hub-card:has(input:checked) { border-color: #b60055; background: #fff5fa; }
.ts-hub-card-meta, .ts-hub-card-actions { display: flex; align-items: center; flex-wrap: wrap; justify-content: space-between; gap: 4px 9px; }
.ts-hub-card-meta strong { color: #a7004e; }
.ts-hub-card-meta span { font-size: 13px; color: #526074; }
.ts-hub-card h2 { margin: 0; font-size: 17px; line-height: 1.4; overflow-wrap: anywhere; }
.ts-hub-card-actions { margin-top: auto; }
.ts-hub-card-actions label { display: flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 750; cursor: pointer; }
.ts-hub-card-actions input { width: 20px; height: 20px; accent-color: #b60055; }
.ts-hub-card-actions a, .ts-hub-coverage a { text-decoration: underline; text-underline-offset: 3px; }
.ts-hub-coverage { margin-top: 26px; }
.ts-hub-coverage ul { padding-left: 0; list-style: none; display: grid; gap: 8px; }
.ts-hub-coverage li { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.ts-hub-dock { display: none; }
@media (max-width: 980px) { .ts-hub-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) {
  .ts-hub-hero { flex-wrap: wrap; gap: 16px; }
  .ts-hub-filters { grid-template-columns: 1fr 1fr; gap: 8px; }
  .ts-hub-filters label:first-child { grid-column: 1 / -1; }
  .ts-hub-grid { grid-template-columns: minmax(0,1fr); }
  .ts-hub-dock { display: flex; position: sticky; bottom: 0; z-index: 5; justify-content: center; padding: 8px 0 max(8px,env(safe-area-inset-bottom)); background: #f7f7fa; }
  .ts-hub-dock button { width: 100%; }
}

.ts-hub-more { display: flex; justify-content: center; margin: 18px 0; }
.ts-hub-more button {
  background: #b60055; color: white; min-height: 46px; padding: 10px 18px;
  border: 0; border-radius: 10px; font-weight: 800;
}
.ts-hub-more:has(button[hidden]) { display: none; }

.ts-hub-hero {position:relative;overflow:hidden;align-items:center;min-height:180px;padding:clamp(22px,4vw,42px)}
.ts-hub-hero-copy {position:relative;z-index:1;min-width:0}
.cx .ts-hub-hero h1 {font-size:clamp(28px,4vw,47px);max-width:18ch}
.cx .ts-hub-hero p {margin:8px 0 14px}
.ts-hub-hero-art {flex:0 0 250px;display:flex;justify-content:center;align-items:center;padding:12px 0}
.ts-hub-hero-art img {display:block;width:92px;height:117px;object-fit:cover;object-position:top;border:3px solid #fff;border-radius:8px;box-shadow:0 10px 24px #0006}
.ts-hub-hero-art img:first-child {transform:rotate(-10deg) translateX(12px)}
.ts-hub-hero-art img:nth-child(2) {z-index:1;transform:translateY(-8px)}
.ts-hub-hero-art img:nth-child(3) {transform:rotate(10deg) translateX(-12px)}
.ts-hub-filters {grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:12px}
.ts-hub-brands {display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 22px}
.ts-hub-brands button {display:flex;align-items:center;gap:7px;border:1px solid #dce2eb;border-radius:12px;background:#fff;color:#192337;min-height:46px;padding:6px 11px;font-weight:750}
.ts-hub-brands button[aria-pressed=true] {border-color:#b60055;background:#fff0f7;color:#a5004c}
.ts-hub-brands .cx-logo,.ts-hub-card-meta .cx-logo,.ts-hub-coverage .cx-logo {width:42px;height:26px;object-fit:contain;background:#fff;border-radius:4px}
.ts-hub-results {display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px}
.ts-hub-dates {font-size:13px;color:#526074}
.ts-hub-dates span {margin-left:3px}
.cx .ts-hub-count {margin:5px 0 12px;color:#526074;font-size:14px}
.ts-hub-card {padding:13px 15px;gap:5px}
.ts-hub-card-meta>div {display:flex;align-items:center;gap:8px}
.ts-hub-card-meta strong {color:#526074;font-size:13px}
.cx .ts-hub-card h2 {font-size:17px;font-weight:680;letter-spacing:-.012em}
.ts-hub-card-actions a {font-size:13px;color:#526074}
.ts-hub-coverage {margin-top:30px}
.ts-hub-coverage ul {grid-template-columns:repeat(auto-fit,minmax(130px,1fr));margin:14px 0;gap:10px}
.ts-hub-coverage li {display:block}
.cx .ts-hub-coverage a {display:grid;gap:6px;background:white;border:1px solid #dce2eb;border-radius:12px;padding:10px;text-decoration:none}
.ts-hub-coverage .ts-hub-cover {width:100%;height:116px;object-fit:contain;object-position:center;display:block}
.ts-hub-coverage a>span {display:grid;justify-items:center;text-align:center;gap:3px}
.ts-hub-coverage small {font-size:11px;color:#526074}
@media(max-width:600px) {
 .ts-hub-hero {display:block;padding:20px;min-height:0}
 .cx .ts-hub-hero h1 {max-width:15ch}
 .ts-hub-hero-art {position:absolute;right:-32px;bottom:8px;opacity:.18;pointer-events:none}
 .ts-hub-hero-art img {width:72px;height:100px}
 .ts-hub-filters {grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);padding:10px}
 .ts-hub-filters label:first-child {grid-column:auto}
 .ts-hub-filters input,.ts-hub-filters select {font-size:16px;padding:7px}
 .ts-hub-brands {flex-wrap:nowrap;overflow-x:auto;padding:2px 0 7px;margin:9px 0 14px;scrollbar-width:thin}
 .ts-hub-brands button {flex:none;white-space:nowrap}
 .ts-hub-card {gap:4px}
}

.cx .ts-hub-dock {
 display:flex;justify-content:space-between;gap:8px;position:sticky;top:var(--cx-header-offset,0px);
 z-index:5;padding:8px;margin:0 0 10px;border:1px solid #dce2eb;border-radius:12px;background:#fff;
}
.cx .ts-hub-dock button {width:auto;font-size:15px;min-height:44px;padding:6px 12px}
.cx .ts-hub-dock #ts-hub-select-all {background:#f2f4f9;color:#192337;border:1px solid #d7dce6}
.cx .ts-hub-dock button:disabled {opacity:.55;cursor:default}
@media(max-width:600px) {
 .cx .ts-hub-dock {position:sticky;top:auto;bottom:0;justify-content:stretch}
 .cx .ts-hub-dock button {flex:1;padding-inline:5px}
}
@media(min-width:601px) {.cx .ts-hub-dock {top:auto;bottom:0}}
.cx .ts-hub-dock {
 position:fixed;top:auto;bottom:max(8px,env(safe-area-inset-bottom));
 left:50%;transform:translateX(-50%);width:min(560px,calc(100% - 24px));margin:0;
 z-index:60;box-shadow:0 6px 25px #141c2c33;
}
.ts-hub {padding-bottom:82px}
.cx .ts-hub-compare {margin:0 0 16px;background:#fff;border:1px solid #dce2eb;border-radius:12px;padding:0 14px 8px}
.cx .ts-hub-compare summary {min-height:44px;padding:12px 0 5px;color:#8e0042;font-weight:800;cursor:pointer}
.cx .ts-hub-compare p {margin:4px 0 12px;color:#455267}
.cx .ts-hub-compare h3 {margin:10px 0 6px;font-size:18px}
.ts-hub-compare ul {margin:0;padding:0;list-style:none}
.ts-hub-compare li {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:8px 0;border-top:1px solid #e2e6ec}
.ts-hub-compare li > div {display:grid;align-content:center;gap:2px}
.ts-hub-compare li > div:last-child {text-align:right}
.ts-hub-compare li small {color:#455267}
.cx .ts-hub-compare li button {background:#fff0f7;border:1px solid #bc0060;border-radius:8px;color:#890040;min-height:44px;padding:4px 10px;font-weight:700}
