/* Tattva website: layout and site components. Kit files (tattva-tokens.css, tattva-components.css) stay unchanged.
   Site classes use the ts- prefix. Mobile first; breakpoints 640, 1024, 1200. Flat: borders and mist, never shadows. */

:root { --header-h: 72px; --dock-h: 64px; }
@media (min-width: 1024px) { :root { --header-h: 88px; } }

/* Base */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; font-size: 17px; line-height: 1.6; overflow-x: hidden; }
body.has-dock { padding-bottom: calc(var(--dock-h) + 24px); }
img { max-width: 100%; height: auto; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure { margin: 0; }
ul[role="list"], .ts-list { list-style: none; padding: 0; }
a { color: var(--accent-ink); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible,
summary:focus-visible, [tabindex]:focus-visible, label:focus-within > .ts-slot__face {
  outline: 3px solid var(--focus); outline-offset: 3px;
}
[tabindex="-1"]:focus { outline: none; }
button { font: inherit; color: inherit; }
svg.ts-i { width: var(--icon-sm); height: var(--icon-sm); fill: currentColor; flex: none; }
.ts-vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
html.is-modal { overflow: hidden; }
html:not(.js) .js-only { display: none !important; }
html.js .no-js-only { display: none !important; }
html.offer-ended .offer-only, html:not(.offer-ended) .after-offer { display: none !important; }
.tv-chip { min-height: 44px; text-decoration: none; }
a.tv-chip:hover { border-color: var(--line-strong); }
.tv-chip:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
[data-theme="dark"] .tv-info svg, [data-theme="dark"] .ts-i--feature { fill: var(--sun); }
[data-theme="dark"] .tv-info { border-color: var(--line); }

/* Layout */
.ts-wrap { width: 100%; max-width: calc(var(--content-max) + 2 * var(--space-4)); margin: 0 auto; padding: 0 var(--space-4); }
.ts-band { padding: var(--space-8) 0; background: var(--surface); color: var(--ink); }
.ts-band--mist { background: var(--surface-muted); }
.ts-band--tight { padding: var(--space-7) 0; }
@media (min-width: 1024px) {
  .ts-wrap { max-width: calc(var(--content-max) + 2 * var(--space-7)); padding: 0 var(--space-7); }
  .ts-band { padding: var(--space-9) 0; }
  .ts-band--tight { padding: var(--space-8) 0; }
}
.ts-measure { max-width: var(--measure); }
.ts-stack > * + * { margin-top: var(--space-4); }
.ts-btns { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.ts-fine { font-size: 13px; line-height: 1.45; font-weight: 500; color: var(--ink-muted); }
.ts-link { font-family: var(--font-body); font-weight: 700; font-size: 15px; color: var(--accent-ink); text-decoration: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.ts-link:hover { text-decoration: underline; }
[data-theme="dark"] .ts-link { color: var(--accent-ink); }
.ts-muted { color: var(--ink-muted); }

/* Section head */
.ts-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-6); }
.ts-head__text { max-width: var(--measure); }
.ts-head__text > * + * { margin-top: var(--space-3); }
.ts-head h2 { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.ts-suntag { display: inline-block; padding: 4px 10px; border-radius: var(--radius-sm); background: var(--sun); color: var(--on-sun); font-family: var(--font-display); font-weight: 800; font-size: 14px; line-height: 1.2; letter-spacing: 0; transform: rotate(4deg); }
@media (max-width: 639px) { .ts-head .heading-2, .ts-hero__title, .ts-pagehead h1 { font-size: 30px; } }

/* Header */
.ts-skip { position: absolute; left: var(--space-4); top: -100px; z-index: 100; }
.ts-skip:focus { top: var(--space-3); }
.ts-header { position: sticky; top: 0; z-index: 40; background: var(--surface); border-bottom: 1.5px solid transparent; transition: border-color .15s ease; }
.ts-header.is-condensed { border-bottom-color: var(--line); }
.ts-header__bar { display: flex; align-items: center; gap: var(--space-3); height: var(--header-h); transition: height .15s ease; }
.ts-header.is-condensed .ts-header__bar { height: 60px; }
.ts-logo { display: inline-flex; margin-right: auto; }
.ts-logo img { height: 36px; width: auto; display: block; transition: height .15s ease; }
.ts-header.is-condensed .ts-logo img { height: 30px; }
.ts-nav, .ts-header .ts-searchpill--sm, .ts-header .ts-locchip, .ts-header__wa { display: none; }
.ts-iconbtn { display: inline-grid; place-items: center; width: 44px; height: 44px; border-radius: var(--radius-pill); border: 1.5px solid var(--line-strong); background: transparent; color: var(--ink); cursor: pointer; padding: 0; }
.ts-iconbtn:hover { border-color: var(--ink); }
.ts-iconbtn svg { width: var(--icon-sm); height: var(--icon-sm); fill: currentColor; }
html.has-hero-search:not(.is-docked) .ts-header [data-search-open] { visibility: hidden; }
@media (min-width: 1024px) {
  .ts-logo img { height: var(--logo-header); }
  .ts-header.is-condensed .ts-header__bar { height: 64px; }
  .ts-header.is-condensed .ts-logo img { height: 32px; }
  .ts-menubtn { display: none; }
  .ts-nav { display: flex; gap: var(--space-5); margin-right: var(--space-3); }
  .ts-nav a { display: inline-flex; align-items: center; min-height: 44px; font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--ink); text-decoration: none; border-bottom: 2px solid transparent; }
  .ts-nav a:hover { color: var(--accent-ink); }
  .ts-nav a[aria-current="page"] { border-bottom-color: var(--accent-ink); }
  .ts-header__wa { display: inline-flex; }
}
@media (min-width: 1200px) {
  .ts-header .ts-iconbtn[data-search-open] { display: none; }
  .ts-header .ts-searchpill--sm { display: inline-flex; width: 260px; }
  .ts-header .ts-locchip { display: inline-flex; }
}
@media (prefers-reduced-motion: reduce) { .ts-header, .ts-header__bar, .ts-logo img { transition: none; } }

/* Phone menu */
.ts-menu { position: absolute; left: 0; right: 0; top: 100%; background: var(--surface); border-bottom: 1.5px solid var(--line); padding: var(--space-2) 0 var(--space-5); max-height: calc(100vh - var(--header-h)); overflow: auto; }
.ts-menu[hidden] { display: none; }
.ts-menu ul { list-style: none; margin: 0 0 var(--space-5); padding: 0; }
.ts-menu li a { display: flex; align-items: center; min-height: 56px; border-bottom: 1.5px solid var(--line); font-family: var(--font-display); font-weight: 700; font-size: 20px; color: var(--ink); text-decoration: none; }
.ts-menu li a[aria-current="page"] { color: var(--accent-ink); }
.ts-menu .ts-fine { margin-top: var(--space-4); }
@media (min-width: 1024px) { .ts-menu { display: none !important; } }

/* Search pill */
.ts-searchpill { display: flex; align-items: center; gap: var(--space-3); width: 100%; min-height: 56px; padding: 0 var(--space-5); border: 1.5px solid var(--line-strong); border-radius: var(--radius-pill); background: var(--white); color: var(--ink-muted); font-family: var(--font-body); font-size: 17px; text-align: left; cursor: text; }
.ts-searchpill:hover { border-color: var(--ink); }
.ts-searchpill svg { width: var(--icon-sm); height: var(--icon-sm); fill: var(--accent-ink); flex: none; }
.ts-searchpill__text { flex: 1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.ts-searchpill__word { color: var(--accent-ink); font-weight: 700; display: inline-block; transition: opacity .2s ease; }
.ts-searchpill__word.is-out { opacity: 0; }
.ts-searchpill__query { color: var(--navy); }
.ts-searchpill--sm { min-height: 44px; padding: 0 var(--space-4); font-size: 15px; }
[data-theme="dark"] .ts-searchpill { background: var(--white); border-color: var(--white); color: #3f5e7a; }
[data-theme="dark"] .ts-searchpill svg, [data-theme="dark"] .ts-searchpill__word { color: #087a82; fill: #087a82; }
@media (min-width: 1024px) { .ts-searchpill--lg { min-height: 64px; font-size: 18px; } }
@media (prefers-reduced-motion: reduce) { .ts-searchpill__word { transition: none; } }

/* Dialog base (search, sheet, drawer) */
.ts-dialog { padding: 0; border: 0; max-width: none; max-height: none; color: var(--ink); background: var(--surface); }
.ts-dialog::backdrop { background: rgb(11 47 83 / .56); }

/* Search overlay */
.ts-search { width: 100%; height: 100%; margin: 0; }
.ts-search[open] { display: flex; flex-direction: column; }
.ts-search__top { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-3) var(--space-4); border-bottom: 1.5px solid var(--line); }
.ts-search__field { flex: 1; display: flex; align-items: center; gap: var(--space-2); min-height: 48px; padding: 0 var(--space-2) 0 var(--space-4); border: 1.5px solid var(--line-strong); border-radius: var(--radius-pill); }
.ts-search__field:focus-within { outline: 3px solid var(--focus); outline-offset: 2px; }
.ts-search__field svg { width: var(--icon-sm); height: var(--icon-sm); fill: var(--accent-ink); flex: none; }
.ts-search__input { flex: 1; min-width: 0; border: 0; background: none; font: 500 17px/1.4 var(--font-body); color: var(--ink); padding: 10px 0; outline: none; }
.ts-search__input::-webkit-search-cancel-button { display: none; }
.ts-search__clear { width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--surface-muted); font-size: 20px; line-height: 1; cursor: pointer; }
.ts-search__clear[hidden] { display: none; }
.ts-search__back { border: 0; font-size: 28px; line-height: 1; }
.ts-search__body { flex: 1; overflow: auto; padding: var(--space-4); overscroll-behavior: contain; }
.ts-search__body > * + * { margin-top: var(--space-4); }
.ts-search .ts-dock { position: sticky; bottom: 0; margin: 0; }
.ts-search__insight { font-size: 15px; color: var(--ink-muted); min-height: 1.5em; }
.ts-search__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@media (min-width: 1024px) {
  .ts-search { width: min(720px, calc(100vw - 64px)); height: auto; max-height: 80vh; margin: calc(var(--header-h) + 8px) auto auto; border-radius: var(--radius-xl); overflow: hidden; }
  .ts-search__body { padding: var(--space-5); }
}

/* Empty / status blocks */
.ts-empty { padding: var(--space-6) 0; }
.ts-empty > * + * { margin-top: var(--space-3); }
.ts-empty .ts-btns { margin-top: var(--space-4); }
.ts-skeleton { height: 120px; border-radius: var(--radius-lg); background: var(--surface-muted); }

/* Segmented control */
.ts-seg { display: flex; gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--surface-muted); width: 100%; }
.ts-seg label { flex: 1; position: relative; }
.ts-seg input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ts-seg__face { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; padding: 0 var(--space-3); border: 1.5px solid transparent; border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--ink-muted); white-space: nowrap; }
.ts-seg__count { font-family: var(--font-mono); font-weight: 500; font-size: 12px; letter-spacing: .04em; }
.ts-seg input:checked + .ts-seg__face { background: var(--white); border-color: var(--line); color: var(--ink); }
.ts-seg input:focus-visible + .ts-seg__face { outline: 3px solid var(--focus); outline-offset: 2px; }
.ts-seg input:disabled + .ts-seg__face { opacity: .5; }
@media (min-width: 640px) { .ts-seg--fit { width: 380px; } }

/* Category shortcuts */
.ts-shortcuts { display: flex; gap: var(--space-3); overflow-x: auto; scroll-snap-type: x proximity; padding: var(--space-2) var(--space-4) var(--space-3); margin: 0 calc(-1 * var(--space-4)); scrollbar-width: none; }
.ts-shortcuts::-webkit-scrollbar { display: none; }
.ts-shortcut { flex: none; width: 84px; display: flex; flex-direction: column; align-items: center; gap: var(--space-2); text-decoration: none; color: var(--ink); scroll-snap-align: start; border-radius: var(--radius-md); }
.ts-shortcut__disc { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--white); border: 1.5px solid var(--line); font-family: var(--font-display); font-weight: 800; font-size: 19px; letter-spacing: -.02em; color: var(--accent-ink); }
.ts-shortcut__disc svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); }
.ts-shortcut__label { font-family: var(--font-body); font-weight: 700; font-size: 13px; line-height: 1.3; text-align: center; }
.ts-shortcut:hover .ts-shortcut__disc { border-color: var(--line-strong); }
.ts-shortcut[aria-current="true"] .ts-shortcut__disc { background: var(--navy); border-color: var(--navy); color: var(--white); }
.ts-shortcut[aria-current="true"] .ts-shortcut__disc svg { fill: var(--white); }
.ts-band--mist .ts-shortcut__disc { border-color: transparent; }
@media (min-width: 1024px) {
  .ts-shortcuts { margin: 0; padding: var(--space-2) 0 var(--space-3); flex-wrap: wrap; overflow: visible; }
  .ts-shortcut { width: 96px; }
  .ts-shortcut__disc { width: 72px; height: 72px; font-size: 21px; }
}

/* Price */
.ts-price { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font-variant-numeric: tabular-nums; }
.ts-price__top { display: flex; align-items: center; gap: var(--space-2); }
.ts-price__was { font-size: 15px; color: var(--ink-muted); text-decoration: line-through; }
.ts-off { display: inline-block; padding: 2px 8px; border: 1.5px solid var(--accent-ink); border-radius: var(--radius-pill); font-family: var(--font-mono); font-weight: 500; font-size: 12px; line-height: 1.3; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-ink); white-space: nowrap; }
.ts-price__now { font-family: var(--font-display); font-weight: 800; font-size: 26px; line-height: 1.1; letter-spacing: -.03em; color: var(--accent); }
.ts-price--lg .ts-price__now { font-size: 44px; line-height: 1; }
.ts-price--sm .ts-price__now { font-size: 22px; }
.ts-price--end { align-items: flex-end; }
html.offer-ended .ts-price__now { color: var(--ink); }

/* Add toggle */
.ts-add { position: relative; z-index: 2; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; min-width: 92px; padding: 0 18px; border: 2px solid var(--accent-ink); border-radius: var(--radius-pill); background: transparent; color: var(--accent-ink); font-family: var(--font-display); font-weight: 700; font-size: 15px; line-height: 1; cursor: pointer; white-space: nowrap; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.ts-add:hover { border-color: var(--ink); }
.ts-add svg { width: 18px; height: 18px; fill: currentColor; display: none; }
.ts-add[aria-pressed="true"] { background: var(--accent-ink); color: var(--white); }
.ts-add[aria-pressed="true"]:hover { border-color: var(--accent-ink); background: var(--ink); }
.ts-add[aria-pressed="true"] svg { display: block; }
.ts-add[aria-pressed="true"] .ts-add__plus { display: none; }
.ts-add__on { display: none; }
.ts-add[aria-pressed="true"] .ts-add__on { display: inline-flex; align-items: center; gap: 6px; }
.ts-add[aria-pressed="true"] .ts-add__off { display: none; }
.ts-add[aria-disabled="true"] { opacity: .55; }
[data-theme="dark"] .ts-add { border-color: var(--accent-ink); color: var(--accent-ink); }
[data-theme="dark"] .ts-add[aria-pressed="true"] { background: var(--accent-ink); color: var(--navy); }
@media (prefers-reduced-motion: reduce) { .ts-add { transition: none; } }

/* Fact slots */
.ts-facts { display: flex; gap: var(--space-4); }
.ts-fact { display: flex; gap: var(--space-2); align-items: flex-start; min-width: 0; }
.ts-fact + .ts-fact { padding-left: var(--space-4); border-left: 1.5px solid var(--line); }
.ts-fact svg { width: var(--icon-sm); height: var(--icon-sm); fill: var(--accent); flex: none; margin-top: 2px; }
.ts-fact__label { display: block; font-family: var(--font-mono); font-weight: 500; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.ts-fact__value { display: block; font-weight: 700; font-size: 15px; line-height: 1.35; color: var(--ink); }

/* Popular test card */
.ts-grid { display: grid; gap: var(--space-5); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ts-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .ts-grid--3 { grid-template-columns: repeat(3, 1fr); } }
.ts-card { position: relative; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface-card); border: 1.5px solid var(--line); }
.ts-band--mist .ts-card { border-color: transparent; }
.ts-card:hover { border-color: var(--line-strong); }
.ts-card__title { font-family: var(--font-display); font-weight: 700; font-size: 24px; line-height: 1.15; letter-spacing: -.02em; }
.ts-card__title a, .ts-row__title a { color: var(--ink); text-decoration: none; }
.ts-card__title a::after, .ts-row__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ts-card__title a:focus-visible, .ts-row__title a:focus-visible { outline: none; }
.ts-card:focus-within:has(.ts-card__title a:focus-visible), .ts-row:focus-within:has(.ts-row__title a:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.ts-card__formal { font-size: 15px; line-height: 1.4; color: var(--ink-muted); margin-top: -6px; }
.ts-card__checks { font-size: 15px; line-height: 1.5; }
.ts-card__buy { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--surface-muted); }
.ts-band--mist .ts-card__buy { background: var(--surface-muted); border: 1.5px solid var(--line); }

/* Result row */
.ts-rows { display: grid; gap: var(--space-4); grid-template-columns: 1fr; }
@media (min-width: 640px) { .ts-rows--2 { grid-template-columns: repeat(2, 1fr); gap: var(--space-5); } }
.ts-row { position: relative; display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4) var(--space-4) var(--space-3); border: 1.5px solid var(--line); border-radius: var(--radius-lg); background: var(--surface-card); }
.ts-row:hover { border-color: var(--line-strong); }
.ts-row__kind { font-family: var(--font-mono); font-weight: 500; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.ts-row__main { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.ts-row__title { font-family: var(--font-body); font-weight: 700; font-size: 17px; line-height: 1.4; overflow-wrap: anywhere; }
.ts-row__formal { font-size: 15px; color: var(--ink-muted); }
.ts-row__meta { font-size: 15px; color: var(--ink-muted); }
.ts-row__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-3); margin-top: var(--space-2); padding-top: var(--space-3); border-top: 1.5px dashed var(--line); }
.ts-row__more { font-weight: 700; font-size: 15px; color: var(--accent-ink); }
.ts-row--search .ts-row__title { font-weight: 500; }
.ts-hit { font-weight: 700; }

/* Hero (Home) */
.ts-hero { padding: var(--space-5) 0 var(--space-7); }
.ts-hero__grid { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr); }
.ts-hero__grid > *, .ts-split > * { min-width: 0; }
.ts-hero__search > * + * { margin-top: var(--space-4); }
.ts-hero__loc { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; font-size: 15px; font-weight: 500; color: var(--ink-muted); text-decoration: none; }
.ts-hero__loc svg { width: 18px; height: 18px; fill: var(--accent); }
.ts-offerline { display: inline-block; font-weight: 700; font-size: 17px; }
.ts-offerline__mark { position: relative; white-space: nowrap; }
.ts-offerline__mark svg { position: absolute; left: 0; right: 0; bottom: -10px; width: 100%; height: 10px; }
.ts-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); }
.ts-tile { display: flex; align-items: center; gap: var(--space-3); min-height: 88px; padding: var(--space-3) var(--space-4); border-radius: var(--radius-lg); background: var(--white); color: var(--ink); text-decoration: none; }
.ts-tile:hover { outline: 1.5px solid var(--line-strong); }
.ts-tile svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); flex: none; }
.ts-tile__title { display: block; font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.2; }
.ts-tile__sub { display: block; font-size: 13px; color: var(--ink-muted); font-weight: 500; }
.ts-actions { display: flex; gap: var(--space-2); overflow-x: auto; margin: 0 calc(-1 * var(--space-4)); padding: 4px var(--space-4); scrollbar-width: none; }
.ts-actions::-webkit-scrollbar { display: none; }
.ts-actions > * { flex: none; }
.ts-rail { display: flex; gap: var(--space-4); overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 calc(-1 * var(--space-4)); padding: var(--space-5) var(--space-4); scroll-padding: 0 var(--space-4); scrollbar-width: none; }
.ts-rail::-webkit-scrollbar { display: none; }
.ts-promo { position: relative; flex: none; width: 82%; max-width: 360px; scroll-snap-align: start; display: flex; flex-direction: column; border-radius: var(--radius-xl); background: var(--white); color: var(--ink); }
.ts-promo__media { position: relative; }
.ts-promo__media img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.ts-promo--arch .ts-promo__media { padding: var(--space-4) var(--space-4) 0; }
.ts-promo--arch .ts-promo__media img { aspect-ratio: 4/4.2; object-position: 50% 75%; border-radius: 50% 50% var(--radius-lg) var(--radius-lg) / 40% 40% var(--radius-lg) var(--radius-lg); }
.ts-promo .tv-sticker { position: absolute; top: -14px; right: -6px; --size: 112px; }
.ts-promo .tv-sticker small { display: block; font-size: 13px; font-weight: 700; letter-spacing: 0; }
.ts-promo__body { padding: var(--space-4) var(--space-5) var(--space-5); }
.ts-promo__body > * + * { margin-top: var(--space-2); }
.ts-promo__title { font-family: var(--font-display); font-weight: 800; font-size: 24px; line-height: 1.1; letter-spacing: -.02em; }
.ts-promo__lead { font-size: 15px; color: var(--ink-muted); }
.ts-promo a.ts-link::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ts-promo:has(a.ts-link:focus-visible) { outline: 3px solid var(--focus); outline-offset: 3px; }
.ts-promo a.ts-link:focus-visible { outline: none; }
@media (min-width: 1024px) {
  .ts-hero { padding: var(--space-7) 0 var(--space-8); }
  .ts-hero__grid { grid-template-columns: repeat(12, 1fr); column-gap: var(--space-5); row-gap: var(--space-6); align-items: center; }
  .ts-hero__search { grid-column: 1 / 8; grid-row: 1; }
  .ts-rail { display: contents; }
  .ts-promo { width: auto; max-width: none; }
  .ts-promo--arch { grid-column: 8 / 13; grid-row: 1; justify-self: end; width: 100%; max-width: 400px; }
  .ts-promo--arch .tv-sticker { --size: 132px; top: -24px; right: -18px; }
  .ts-promo--wide { grid-row: 2; flex-direction: row; align-items: stretch; }
  .ts-promo--wide:nth-child(2) { grid-column: 1 / 7; }
  .ts-promo--wide:nth-child(3) { grid-column: 7 / 13; }
  .ts-promo--wide .ts-promo__media { flex: 0 0 42%; }
  .ts-promo--wide .ts-promo__media img { height: 100%; aspect-ratio: auto; min-height: 200px; border-radius: var(--radius-xl) 0 0 var(--radius-xl); }
  .ts-promo--wide .ts-promo__body { align-self: center; padding: var(--space-5) var(--space-6); }
  .ts-actions { margin: 0; padding: 4px 0; flex-wrap: wrap; overflow: visible; }
}

/* Trust card */
.ts-trust { display: grid; gap: var(--space-4); padding: var(--space-5); border: 1.5px solid var(--line); border-radius: var(--radius-lg); }
.ts-trust__badges { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.ts-badge { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); text-align: center; font-weight: 700; font-size: 13px; line-height: 1.35; }
.ts-badge svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); }
.ts-trust .tv-supported { justify-content: center; }
.ts-trust .tv-supported__logo { border: 1.5px solid var(--line); }
@media (min-width: 1024px) {
  .ts-trust { grid-template-columns: auto 1fr; align-items: center; padding: var(--space-4) var(--space-6); }
  .ts-trust__badges { gap: 0; }
  .ts-badge { flex-direction: row; justify-content: center; font-size: 15px; padding: var(--space-3) var(--space-4); border-left: 1.5px solid var(--line); text-align: left; }
  .ts-trust .tv-supported { padding-right: var(--space-5); }
}

/* Navy page heads and offer band */
.ts-pagehead { padding: var(--space-7) 0 var(--space-8); }
.ts-pagehead > .ts-wrap > * + *, .ts-pagehead__text > * + * { margin-top: var(--space-4); }
.ts-pagehead .lead { color: var(--ink-muted); }
.ts-split { display: grid; gap: var(--space-6); align-items: center; }
.ts-split__media img { display: block; width: 100%; }
.ts-fade { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; border-radius: var(--radius-xl); }
@media (min-width: 1024px) {
  .ts-pagehead { padding: var(--space-8) 0 var(--space-9); }
  .ts-split { grid-template-columns: 7fr 5fr; gap: var(--space-7); }
  .ts-split--even { grid-template-columns: 1fr 1fr; }
  .ts-fade { aspect-ratio: 4/3; border-radius: 0; -webkit-mask-image: linear-gradient(to right, transparent, #000 35%); mask-image: linear-gradient(to right, transparent, #000 35%); }
}
.ts-archwrap { max-width: 400px; margin: 0 auto; width: 70%; }
@media (min-width: 1024px) { .ts-archwrap { width: 100%; margin: 0 0 0 auto; } }

/* Steps */
.ts-steps { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-6); counter-reset: none; }
.ts-steps .tv-step__num { background: var(--accent); color: var(--on-accent); }
.ts-steps .tv-step { align-items: start; }
.ts-steps .tv-step svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); margin-bottom: var(--space-2); }
@media (min-width: 1024px) {
  .ts-steps { grid-template-columns: repeat(4, 1fr); gap: var(--space-5); }
  .ts-steps .tv-step { grid-template-columns: 1fr; position: relative; }
  .ts-steps li:not(:last-child) .tv-step__num::after { content: ""; position: absolute; left: 80px; right: 0; top: 32px; border-top: 2px dashed var(--line); }
}
.ts-steps--mini { grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.ts-mini { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); border: 1.5px solid var(--line); border-radius: var(--radius-lg); }
.ts-mini__top { display: flex; align-items: center; justify-content: space-between; }
.ts-mini__num { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: var(--on-accent); font-family: var(--font-display); font-weight: 800; font-size: 20px; }
.ts-mini svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); }
.ts-mini__title { font-family: var(--font-display); font-weight: 700; font-size: 19px; line-height: 1.2; letter-spacing: -.01em; }
.ts-band--mist .ts-mini { border-color: transparent; background: var(--white); }
@media (min-width: 1024px) { .ts-steps--mini { grid-template-columns: repeat(4, 1fr); gap: var(--space-5); } }
.ts-callout { display: flex; gap: var(--space-4); align-items: flex-start; margin-top: var(--space-7); padding: var(--space-5); border: 1.5px solid var(--line); border-radius: var(--radius-lg); max-width: var(--measure); }
.ts-callout svg { width: var(--icon-md); height: var(--icon-md); fill: var(--accent); flex: none; }

/* Help card and find us */
.ts-help { display: grid; gap: var(--space-4); padding: var(--space-6) var(--space-5); border-radius: var(--radius-lg); background: var(--white); }
.ts-help > * { max-width: var(--measure); }
@media (min-width: 1024px) { .ts-help { grid-template-columns: 1fr auto; align-items: center; padding: var(--space-7); } .ts-help .ts-help__text > * + * { margin-top: var(--space-3); } }
.ts-help__text > * + * { margin-top: var(--space-3); }
.ts-findus { text-align: center; }
.ts-findus > * + * { margin-top: var(--space-4); }
.ts-findus > svg { width: var(--icon-lg); height: var(--icon-lg); fill: var(--accent); }
.ts-findus .lead { margin-left: auto; margin-right: auto; max-width: var(--measure); }
.ts-findus .ts-btns { justify-content: center; }
.ts-findus img { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; object-position: 50% 72%; border-radius: var(--radius-xl); margin-top: var(--space-6); }
@media (min-width: 1024px) { .ts-findus img { aspect-ratio: 21/9; } }
.ts-map { position: relative; display: grid; place-items: center; align-content: center; gap: var(--space-3); aspect-ratio: 4/3; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--white); text-align: center; overflow: hidden; }
.ts-map > svg { width: var(--icon-lg); height: var(--icon-lg); fill: var(--accent); }
.ts-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* Chat example */
.ts-chatcard { padding: var(--space-5); border-radius: var(--radius-lg); background: var(--white); }
.ts-chatcard .tv-bubble--in { background: var(--surface-muted); }

/* FAQ */
.ts-faq { display: grid; gap: var(--space-6); }
.ts-faq__intro > * + * { margin-top: var(--space-3); }
.ts-faq__list { border-top: 1.5px solid var(--line); }
.ts-faq details { border-bottom: 1.5px solid var(--line); }
.ts-faq summary { display: flex; align-items: baseline; gap: var(--space-3); min-height: 56px; padding: var(--space-4) 0; cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: 700; font-size: 20px; line-height: 1.25; letter-spacing: -.01em; }
.ts-faq summary::-webkit-details-marker { display: none; }
.ts-faq summary::before { content: "Q."; color: var(--accent); font-weight: 800; flex: none; }
.ts-faq summary::after { content: "›"; margin-left: auto; padding-left: var(--space-3); font-size: 26px; line-height: 1; color: var(--accent-ink); transition: transform .15s ease; }
.ts-faq details[open] summary::after { transform: rotate(90deg); }
.ts-faq__a { padding: 0 0 var(--space-5) 36px; color: var(--ink-muted); max-width: var(--measure); }
@media (min-width: 1024px) {
  .ts-faq { grid-template-columns: 4fr 8fr; gap: var(--space-7); align-items: start; }
  .ts-faq__intro { position: sticky; top: calc(var(--header-h) + var(--space-5)); }
}
@media (prefers-reduced-motion: reduce) { .ts-faq summary::after { transition: none; } }

/* Status line (Tests) */
.ts-controls { display: grid; gap: var(--space-4); }
.ts-status { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); min-height: 44px; font-weight: 700; }
.ts-status button.tv-chip { cursor: pointer; }
.ts-textbtn { border: 0; background: none; padding: 0 4px; min-height: 44px; font-family: var(--font-body); font-weight: 700; font-size: 15px; color: var(--accent-ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.ts-more { width: 100%; margin-top: var(--space-6); }

/* Detail sheet */
.ts-sheet { width: 100%; height: 100%; margin: 0; background: var(--surface); }
.ts-sheet[open] { display: flex; flex-direction: column; }
.ts-sheet__scroll { flex: 1; overflow: auto; overscroll-behavior: contain; }
.ts-sheet__hero { padding: var(--space-4) var(--space-4) calc(var(--space-6) + 32px); }
.ts-sheet__hero > * + * { margin-top: var(--space-4); }
.ts-sheet__top { display: flex; justify-content: space-between; gap: var(--space-3); }
.ts-sheet__top .tv-btn--ghost { color: var(--ink); }
.ts-sheet__tag { font-family: var(--font-mono); font-weight: 500; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-muted); }
.ts-sheet__title { font-family: var(--font-display); font-weight: 800; font-size: 36px; line-height: 1.02; letter-spacing: -.03em; overflow-wrap: anywhere; }
.ts-sheet__title--long { font-size: 26px; line-height: 1.15; font-weight: 700; }
.ts-sheet__facts { display: flex; gap: var(--space-4); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--surface-card); }
.ts-sheet__facts .ts-fact + .ts-fact { border-left-color: var(--line); }
.ts-sheet__facts .ts-fact svg { fill: var(--sun); width: var(--icon-md); height: var(--icon-md); }
.ts-sheet__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ts-sheet__chips .tv-chip { color: var(--ink); min-height: 36px; font-size: 13px; }
.ts-sheet__body { position: relative; margin-top: -32px; padding: var(--space-6) var(--space-4) var(--space-6); border-radius: var(--radius-xl) var(--radius-xl) 0 0; background: var(--surface); }
.ts-sheet__body > section + section { margin-top: var(--space-6); padding-top: var(--space-6); border-top: 1.5px solid var(--line); }
.ts-sheet__body h3 { margin-bottom: var(--space-3); }
.ts-sheet__body p + p { margin-top: var(--space-3); }
.ts-sheet__bar { border-top: 1.5px solid var(--line); background: var(--surface); }
.ts-sheet__promo { display: flex; align-items: center; gap: var(--space-2); min-height: 32px; padding: 4px var(--space-4); background: var(--surface-muted); font-size: 13px; font-weight: 500; }
.ts-sheet__promo svg { width: 16px; height: 16px; fill: var(--accent); flex: none; }
.ts-sheet__row { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4) max(var(--space-3), env(safe-area-inset-bottom)); }
.ts-sheet__row .ts-price { margin-right: auto; }
.ts-sheet__row .ts-price__now { font-size: 28px; }
.ts-sheet .ts-steps--mini .ts-mini { padding: var(--space-3); }
.ts-pillnote { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px; border-radius: var(--radius-pill); border: 1.5px solid var(--accent-ink); color: var(--accent-ink); font-weight: 700; font-size: 13px; }
.ts-book-short { display: none; }
@media (max-width: 479px) {
  .ts-sheet__row { gap: var(--space-2); }
  .ts-sheet__row .ts-price__top { display: none; }
  .ts-sheet__row .ts-price__now { font-size: 24px; }
  .ts-sheet__row .tv-btn { padding: 0 14px; }
  .ts-sheet__row .ts-add { min-width: 0; padding: 0 14px; }
  .ts-book-long { display: none; }
  .ts-book-short { display: inline; }
}
@media (min-width: 1024px) {
  .ts-sheet { width: min(760px, calc(100vw - 64px)); height: min(92vh, 900px); margin: auto; border-radius: var(--radius-xl); overflow: hidden; }
  .ts-sheet__hero { padding: var(--space-5) var(--space-6) calc(var(--space-6) + 32px); }
  .ts-sheet__title { font-size: 48px; }
  .ts-sheet__title--long { font-size: 26px; }
  .ts-sheet__body { padding: var(--space-6); }
  .ts-sheet__row { padding: var(--space-3) var(--space-6); }
}

/* Booking dock */
.ts-dock { position: fixed; z-index: 30; left: var(--space-3); right: var(--space-3); bottom: max(12px, env(safe-area-inset-bottom)); }
.ts-dock[hidden] { display: none; }
.ts-dock__pill { position: fixed; right: var(--space-4); bottom: max(16px, env(safe-area-inset-bottom)); z-index: 30; border: 2px solid var(--white); }
.ts-dock__bar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); min-height: var(--dock-h); padding: var(--space-2) var(--space-2) var(--space-2) var(--space-4); border: 1.5px solid var(--line-strong); border-radius: var(--radius-lg); background: var(--surface-card); color: var(--ink); font-variant-numeric: tabular-nums; }
.ts-dock__sum { display: flex; flex-direction: column; align-items: flex-start; border: 0; background: none; padding: 4px 8px 4px 0; min-height: 44px; cursor: pointer; text-align: left; }
.ts-dock__count { font-size: 13px; font-weight: 500; color: var(--ink-muted); }
.ts-dock__total { font-family: var(--font-display); font-weight: 800; font-size: 22px; line-height: 1.1; letter-spacing: -.02em; }
.ts-dock.is-bump .ts-dock__count { color: var(--accent-ink); font-weight: 700; }
.ts-search .ts-dock { left: auto; right: auto; padding: var(--space-3) var(--space-4); background: var(--surface); border-top: 1.5px solid var(--line); }
@media (min-width: 1024px) {
  .ts-dock { left: auto; right: var(--space-5); bottom: var(--space-5); width: 400px; }
  .ts-dock__pill { display: none; }
  body.has-dock { padding-bottom: 0; }
  .ts-search .ts-dock { width: auto; }
}
body.dock-off .ts-dock:not(.ts-dock--inner), body.dock-off .ts-dock__pill { display: none; }

/* Drawer */
.ts-drawer { width: 100%; max-height: 85vh; margin: auto 0 0; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
.ts-drawer[open] { display: flex; flex-direction: column; }
.ts-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: var(--space-5) var(--space-5) var(--space-3); }
.ts-drawer__body { overflow: auto; padding: 0 var(--space-5); }
.ts-drawer__item { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1.5px solid var(--line); }
.ts-drawer__name { flex: 1; font-weight: 700; font-size: 15px; line-height: 1.4; }
.ts-drawer__price { font-variant-numeric: tabular-nums; font-weight: 700; }
.ts-drawer__total { display: flex; justify-content: space-between; align-items: baseline; padding: var(--space-4) 0; font-variant-numeric: tabular-nums; }
.ts-drawer__foot { padding: var(--space-4) var(--space-5) max(var(--space-5), env(safe-area-inset-bottom)); display: grid; gap: var(--space-3); }
.ts-drawer__foot .tv-btn { width: 100%; }
.ts-x { display: inline-grid; place-items: center; width: 44px; height: 44px; flex: none; border: 1.5px solid var(--line); border-radius: 50%; background: transparent; font-size: 22px; line-height: 1; cursor: pointer; color: var(--ink); }
.ts-x:hover { border-color: var(--ink); }
@media (min-width: 1024px) { .ts-drawer { width: 420px; margin: auto var(--space-5) var(--space-5) auto; border-radius: var(--radius-xl); max-height: 80vh; } }

/* Form */
.ts-formcard { padding: var(--space-5); border: 1.5px solid var(--line); border-radius: var(--radius-lg); }
@media (min-width: 1024px) { .ts-formcard { padding: var(--space-6); } }
.ts-field + .ts-field { margin-top: var(--space-5); }
.ts-field > label, .ts-field > legend, .ts-field__label { display: block; margin-bottom: var(--space-2); font-weight: 700; font-size: 17px; }
.ts-field fieldset, fieldset.ts-field { border: 0; margin: 0; padding: 0; min-width: 0; }
.ts-input { width: 100%; min-height: 52px; padding: 12px 16px; border: 1.5px solid var(--line-strong); border-radius: var(--radius-md); background: var(--white); font: 400 17px/1.4 var(--font-body); color: var(--ink); }
textarea.ts-input { min-height: 96px; resize: vertical; }
.ts-input:focus { outline: 3px solid var(--focus); outline-offset: 2px; }
.ts-input[aria-invalid="true"] { border-color: var(--danger); }
.ts-error { display: flex; align-items: center; gap: var(--space-2); margin-top: var(--space-2); font-size: 15px; font-weight: 500; color: var(--danger); }
.ts-error[hidden] { display: none; }
.ts-error::before { content: "!"; display: inline-grid; place-items: center; width: 18px; height: 18px; flex: none; border-radius: 50%; background: var(--danger); color: var(--white); font-weight: 700; font-size: 12px; line-height: 1; }
.ts-slots { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ts-slot { position: relative; }
.ts-slot input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ts-slot__face { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 1.5px solid var(--line-strong); border-radius: var(--radius-pill); font-family: var(--font-display); font-weight: 700; font-size: 15px; }
.ts-slot input:checked + .ts-slot__face { background: var(--navy); border-color: var(--navy); color: var(--white); }
.ts-slot input:focus-visible + .ts-slot__face { outline: 3px solid var(--focus); outline-offset: 3px; }
fieldset[aria-invalid="true"] .ts-slot__face { border-color: var(--danger); }
.ts-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ts-chips__item { display: inline-flex; align-items: center; gap: var(--space-2); padding: 4px 4px 4px 14px; border: 1.5px solid var(--line); border-radius: var(--radius-pill); font-weight: 700; font-size: 15px; line-height: 1.3; max-width: 100%; }
.ts-chips__item .ts-x { width: 36px; height: 36px; border: 0; background: var(--surface-muted); }
.ts-chips__item .ts-x::after { content: ""; position: absolute; } /* hit area kept at 44px by padding of the chip */
.ts-done { padding: var(--space-6) var(--space-5); border-radius: var(--radius-lg); background: var(--surface-muted); }
.ts-done > * + * { margin-top: var(--space-3); }
.ts-sidecol > * + * { margin-top: var(--space-5); }

/* Toast and live region */
.ts-toast { position: fixed; z-index: 60; left: 50%; bottom: calc(var(--dock-h) + 32px); transform: translateX(-50%); max-width: calc(100vw - 32px); padding: 12px 18px; border-radius: var(--radius-md); background: var(--navy); color: var(--white); font-weight: 500; font-size: 15px; }
.ts-toast[hidden] { display: none; }

/* Footer */
.ts-footer { padding: var(--space-8) 0 calc(var(--space-8) + 72px); }
.ts-footer__card { display: grid; gap: var(--space-6); padding: var(--space-5); border-radius: var(--radius-lg); background: var(--surface-card); }
.ts-footer__card h2 { margin-bottom: var(--space-3); color: var(--ink-muted); }
.ts-footer__card ul { list-style: none; padding: 0; margin: 0; }
.ts-footer__card li a { display: inline-flex; align-items: center; min-height: 40px; color: var(--ink); text-decoration: none; font-weight: 500; }
.ts-footer__card li a:hover { text-decoration: underline; color: var(--accent-ink); }
.ts-footer .tv-info { padding: var(--space-3) 0; }
.ts-footer .tv-info:first-of-type { border-top: 0; padding-top: 0; }
.ts-footer .tv-info a { color: var(--ink); }
.ts-footer__sign { display: grid; gap: var(--space-5); margin-top: var(--space-7); }
.ts-footer__sign img.ts-footer__logo { height: 44px; width: auto; }
.ts-footer__sign .ts-fine { color: var(--ink-muted); }
@media (min-width: 768px) { .ts-footer__card { grid-template-columns: repeat(3, 1fr); padding: var(--space-6); } }
@media (min-width: 1024px) {
  .ts-footer { padding: var(--space-9) 0 var(--space-8); }
  .ts-footer__sign { grid-template-columns: 1fr auto; align-items: end; }
  .ts-footer__sign img.ts-footer__logo { height: 64px; }
}

/* Small additions */
.ts-hide-phone { display: none; }
@media (min-width: 1024px) { .ts-hide-phone { display: block; } }
.ts-rows > .ts-empty, .ts-rows > .ts-skeleton:only-child { grid-column: 1 / -1; }
.ts-sheet__hero[data-theme="dark"], .ts-band[data-theme="dark"] { background: var(--surface); color: var(--ink); }
.ts-promo .tv-sticker { font-size: calc(var(--size) * .26); }
html:not(.js) .ts-menu[hidden] { display: block; position: static; border: 0; }
@media (min-width: 1024px) { html:not(.js) .ts-menu[hidden] { display: none; } }
.ts-searchpill.no-js-only { text-decoration: none; }

/* Category icons in the shortcut discs */
.ts-shortcut__disc svg { width: 34px; height: 34px; }
@media (min-width: 1024px) { .ts-shortcut__disc svg { width: 38px; height: 38px; } }
.ts-search__chips .tv-chip svg { width: 20px; height: 20px; }

/* Category intro (Tests page) */
.ts-catintro { display: flex; gap: var(--space-4); align-items: flex-start; padding: var(--space-4) var(--space-5); border-radius: var(--radius-lg); background: var(--surface-muted); }
.ts-catintro[hidden] { display: none; }
.ts-catintro > svg { width: var(--icon-lg); height: var(--icon-lg); fill: var(--accent); flex: none; }
.ts-catintro__text > * + * { margin-top: var(--space-2); }
.ts-catintro .ts-btns { margin-top: var(--space-3); }

/* Savings line */
.ts-save { display: inline-block; margin-top: var(--space-2); font-weight: 700; font-size: 15px; color: var(--accent-ink); }
[data-theme="dark"] .ts-save { color: var(--accent-ink); }
.ts-drawer__save { margin-top: -8px; padding-bottom: var(--space-3); text-align: right; font-weight: 700; font-size: 15px; color: var(--accent-ink); }

/* Health packages on Home */
.ts-grid--pkg { grid-template-columns: 1fr; }
@media (min-width: 640px) { .ts-grid--pkg { grid-template-columns: repeat(2, 1fr); } }
.ts-card--pkg .ts-card__info { display: flex; flex-direction: column; gap: var(--space-3); }
.ts-card--pkg .ts-card__title { font-size: 22px; }
@media (min-width: 1024px) {
  .ts-card--pkg { flex-direction: row; align-items: stretch; gap: var(--space-5); }
  .ts-card--pkg .ts-card__info { flex: 1; min-width: 0; }
  .ts-card--pkg .ts-card__buy { flex-direction: column; align-items: flex-start; justify-content: space-between; margin-top: 0; min-width: 170px; }
}

/* Help card on white */
.ts-help--bordered { border: 1.5px solid var(--line); }

/* Brand photo band */
.ts-story__grid { display: grid; gap: var(--space-6); align-items: center; }
.ts-story__text > * + * { margin-top: var(--space-4); }
.ts-story__text .ts-btns { margin-top: var(--space-5); }
.ts-story__photos { display: grid; grid-template-columns: 3fr 2fr; grid-template-rows: 1fr 1fr; gap: var(--space-3); }
.ts-story__photos img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-xl); }
.ts-story__a { grid-row: 1 / 3; aspect-ratio: 4 / 5; }
.ts-story__b, .ts-story__c { aspect-ratio: 1; }
@media (min-width: 1024px) {
  .ts-story__grid { grid-template-columns: 5fr 7fr; gap: var(--space-8); }
  .ts-story__photos { gap: var(--space-4); }
}

/* Gentle reveal on scroll (added by JS; off under reduced motion) */
.ts-reveal { opacity: 0; transform: translateY(16px); transition: opacity .5s ease, transform .5s ease; transition-delay: var(--reveal-delay, 0s); }
.ts-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ts-reveal { opacity: 1; transform: none; transition: none; } }
