/* ═══════════════════════════════════════════════════════════════════════
   AnyTrain Design System
   ═══════════════════════════════════════════════════════════════════════

   ЩО ЦЕ
   Єдиний словник компонентів продукту. Не «стилі сторінки» — саме система:
   один Button на весь сайт, один Input, одна Card. Сторінка збирається з
   них, а не малюється щоразу заново.

   ГОЛОВНЕ ПРАВИЛО — ЧОМУ ФАЙЛ ВЗАГАЛІ З'ЯВИВСЯ
   Хвости у верстці брались НЕ з того, що легасі «сильніше». premium.css
   підключений ПІСЛЯ style-desktop.css і за рівної ваги виграє. Хвости
   брались із того, що редизайн ПЕРЕВИКОРИСТОВУВАВ ЛЕГАСІ-ІМЕНА класів
   (.search-item, .form-control, .block-form). Поки розмітка зветься так,
   легасі в неї потрапляє й дозаповнює властивості, яких ми не оголосили —
   і кожен екран доводиться глушити !important-ами. Заміряно в браузері:
   на / — 7 таких протічок, на /raspisanie — 65.

   Тому:
     • розмітка носить ЛИШЕ два види класів:
         at-*   — цей дизайн-система (наше);
         ctl-*  — контракт із JS (search.js / scheme.js / purchase.js /
                  cart.js). 320 хуків. Їх НЕ чіпати: це грошовий шлях.
     • жодного легасі-імені в новій розмітці. Тоді легасі-селекторам
       НЕМА ЩО матчити — війни специфічності не існує, !important не
       потрібен, хвости зникають як клас проблеми.
     • .ctl-* — тільки хук. Ніколи не стилізувати по .ctl-*: інакше
       контракт JS зростеться зі стилями і його не можна буде рухати.

   ПЕРЕВІРКА
   Дивитись у браузері, не грепом. getComputedStyle до/після.

   ─────────────────────────────────────────────────────────────────────── */

/* ═══ 1. ТОКЕНИ ══════════════════════════════════════════════════════════
   Джерело — хендофф дизайнера. Єдина точка правди для кольору, тіні,
   радіуса, кроку сітки. Нових значень «на око» у компонентах не буває:
   якщо треба відтінок — він з'являється тут. */
:root{
	/* Фірмові */
	--at-blue:#3B6FD9;
	--at-blue-d:#2F59B0;
	--at-amber:#FFB800;
	--at-amber-d:#E9A800;
	--at-amber-ink:#1A1200;

	/* Нейтральні: ink -> txt3 (від чорного тексту до підпису) */
	--at-ink:#0F1729;
	--at-txt2:#39435A;
	--at-txt3:#8A93A8;
	--at-bg:#EAEDF4;
	--at-surface:#F7F9FC;
	--at-line:#E4E9F1;
	--at-line-2:#C6D2E8;
	--at-white:#fff;

	/* Navy — hero й «темні» зони */
	--at-navy1:#16234A;
	--at-navy2:#0B1226;
	--at-navy-grad:linear-gradient(155deg,var(--at-navy1) 0%,var(--at-navy2) 62%);

	/* Семантичні */
	--at-ok:#0E8A5F;
	--at-ok-bg:#E6F5EF;
	--at-warn:#B26A00;
	--at-warn-bg:#FFF4E0;
	--at-err:#C7362F;
	--at-err-bg:#FDECEB;
	--at-live:#34D399;

	/* Класи вагонів — один колір на клас по всьому продукту */
	--at-cls-lux:#7C5CE6;
	--at-cls-soft:#C08A1E;
	--at-cls-coupe:#3B6FD9;
	--at-cls-plaz:#0E8A5F;
	--at-cls-sit:#0FA0B8;
	--at-cls-common:#8A93A8;

	/* Типографіка */
	--at-fh:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;
	--at-fb:'Source Sans 3',system-ui,-apple-system,'Segoe UI',sans-serif;

	/* Крок сітки: 4px. Усі відступи — кратні. */
	--at-1:4px; --at-2:8px; --at-3:12px; --at-4:16px; --at-5:20px;
	--at-6:24px; --at-8:32px; --at-10:40px; --at-12:48px; --at-16:64px;

	/* Радіуси */
	--at-r-chip:999px;
	--at-r-field:12px;
	--at-r-card:18px;
	--at-r-lg:22px;

	/* Тіні */
	--at-sh-1:0 2px 8px rgba(15,23,41,.05);
	--at-sh-2:0 8px 22px rgba(15,23,41,.06);
	--at-sh-3:0 14px 34px rgba(15,23,41,.10);
	--at-sh-navy:0 26px 70px rgba(4,8,20,.35);

	/* Рух. Поважаємо prefers-reduced-motion — див. нижче. */
	--at-t:.16s cubic-bezier(.2,.6,.2,1);

	/* Шар над контентом */
	--at-z-sticky:20;
	--at-z-bar:60;
	--at-z-modal:90;
}

/* ═══ 2. БАЗА ════════════════════════════════════════════════════════════
   Свідомо БЕЗ глобального reset: сторінки, які ще не перебудовані, живуть
   на легасі, і глобальний reset їх зламає. Тому база діє лише всередині
   .at — кореня перебудованої зони. */
.at{
	font-family:var(--at-fb);
	color:var(--at-ink);
	-webkit-font-smoothing:antialiased;
	text-rendering:optimizeLegibility;
}
.at *,.at *::before,.at *::after{box-sizing:border-box}
.at h1,.at h2,.at h3,.at h4{font-family:var(--at-fh);color:var(--at-ink);margin:0;font-weight:800;letter-spacing:-.02em}
.at h1{font-size:clamp(28px,3.4vw,40px);line-height:1.12}
.at h2{font-size:clamp(21px,2.2vw,27px);line-height:1.2}
.at h3{font-size:17px;line-height:1.3;font-weight:700}
.at p{margin:0;line-height:1.55}
.at a{color:var(--at-blue);text-decoration:none;transition:color var(--at-t)}
.at a:hover{color:var(--at-blue-d);text-decoration:underline}
.at ul,.at ol{margin:0;padding:0;list-style:none}
.at button{font:inherit;color:inherit}
.at img,.at svg{display:block;max-width:100%}

/* Цифри, що не «стрибають»: час, ціна, дата, місця. */
.at .tnum,.at-tnum{font-variant-numeric:tabular-nums}

/* Іконка. Одна на всю систему: 1.8 stroke, currentColor.
   Без цього класу інлайнові SVG малюються чорною заливкою. */
.at .ic{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Доступність: видимий фокус ЗАВЖДИ. Прибирати outline не можна — це
   єдиний орієнтир для клавіатури. Приховуємо лише для миші (:focus-visible). */
.at :focus-visible{outline:2px solid var(--at-blue);outline-offset:2px;border-radius:4px}
.at :focus:not(:focus-visible){outline:none}

/* Для скрінрідера, але не на екрані. */
.at-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
	clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* Пропуск навігації — вимога AA. */
.at-skip{position:absolute;left:-9999px;top:0;z-index:var(--at-z-modal);
	background:var(--at-ink);color:#fff;padding:var(--at-3) var(--at-4);border-radius:0 0 var(--at-r-field) 0}
.at-skip:focus{left:0}

/* Вестибулярні розлади / економія батареї — вимикаємо рух. */
@media (prefers-reduced-motion:reduce){
	.at *,.at *::before,.at *::after{
		animation-duration:.01ms !important;animation-iteration-count:1 !important;
		transition-duration:.01ms !important;scroll-behavior:auto !important}
}

/* ═══ 3. LAYOUT ══════════════════════════════════════════════════════════ */
.at-wrap{max-width:1120px;margin:0 auto;padding-inline:var(--at-5)}
.at-wrap--wide{max-width:1180px}
.at-sec{padding-block:var(--at-12)}
.at-sec--tight{padding-block:var(--at-8)}
.at-stack{display:flex;flex-direction:column;gap:var(--at-4)}
.at-row{display:flex;align-items:center;gap:var(--at-3);flex-wrap:wrap}
.at-row--between{justify-content:space-between}
.at-grid{display:grid;gap:var(--at-4)}
.at-grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.at-grid--3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
/* Сторінка + сайдбар. Сайдбар праворуч, липкий. */
.at-grid--side{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:var(--at-6)}
@media(max-width:960px){.at-grid--side{grid-template-columns:1fr}}

/* ═══ 4. ТИПОГРАФІКА ═════════════════════════════════════════════════════ */
.at-kicker{font-family:var(--at-fh);font-weight:700;font-size:11.5px;text-transform:uppercase;
	letter-spacing:.08em;color:var(--at-txt3)}
.at-lead{font-size:16px;color:var(--at-txt2);line-height:1.6}
.at-muted{color:var(--at-txt3);font-size:13px}
.at-num{font-family:var(--at-fh);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.02em}

/* ═══ 5. BUTTON ══════════════════════════════════════════════════════════
   Один компонент. Варіант — модифікатором, не новим класом.
   Висота 44px — мінімум для пальця (Apple HIG / WCAG 2.5.5).

   ⚠ width тут НЕ оголошуємо — і це навмисно.
   premium.css має СВІЙ `.at-btn{width:100%}` (рядок 1238), на який
   спираються вже перебудовані сторінки (help, board, business, auth) і
   флоу покупки. Скинути width на рівні .at-btn = зламати їх усі заради
   однієї кнопки. Тому width правимо ТІЛЬКИ там, де він шкодить
   (див. .at-search__go). */
.at-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:var(--at-2);
	min-height:44px;padding:0 var(--at-5);border:1px solid transparent;border-radius:var(--at-r-field);
	font-family:var(--at-fh);font-weight:700;font-size:14px;line-height:1;
	cursor:pointer;text-decoration:none;white-space:nowrap;
	transition:background var(--at-t),border-color var(--at-t),transform var(--at-t),box-shadow var(--at-t)}
.at-btn:hover{text-decoration:none}
.at-btn:active{transform:translateY(1px)}
.at-btn[disabled],.at-btn[aria-disabled=true]{opacity:.5;pointer-events:none}

/* Головна дія. Amber = «купити». На сторінці має бути ОДНА. */
.at-btn--go{background:var(--at-amber);color:var(--at-amber-ink);
	box-shadow:0 6px 18px rgba(255,184,0,.35)}
.at-btn--go:hover{background:var(--at-amber-d);color:var(--at-amber-ink);box-shadow:0 10px 26px rgba(255,184,0,.45)}

/* Друга за вагою. */
.at-btn--dark{background:var(--at-ink);color:#fff}
.at-btn--dark:hover{background:#1B2540;color:#fff}

/* Тиха дія. */
.at-btn--ghost{background:var(--at-white);color:var(--at-ink);border-color:var(--at-line)}
.at-btn--ghost:hover{border-color:var(--at-line-2);color:var(--at-ink);box-shadow:var(--at-sh-1)}

/* Дія на темному тлі. */
.at-btn--onnavy{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.18)}
.at-btn--onnavy:hover{background:rgba(255,255,255,.18);color:#fff}

/* Небезпечна дія (повернення квитка). */
.at-btn--danger{background:var(--at-err-bg);color:var(--at-err);border-color:rgba(199,54,47,.2)}
.at-btn--danger:hover{background:#FBDDDB;color:var(--at-err)}

.at-btn--lg{min-height:52px;padding:0 var(--at-6);font-size:15px}
.at-btn--sm{min-height:36px;padding:0 var(--at-3);font-size:13px}
.at-btn--block{width:100%}

/* Стан «йде запит»: блокуємо і показуємо, що живе. */
.at-btn.is-busy{pointer-events:none;position:relative;color:transparent !important}
.at-btn.is-busy::after{content:'';position:absolute;width:16px;height:16px;border-radius:50%;
	border:2px solid currentColor;border-top-color:transparent;color:var(--at-amber-ink);
	animation:at-spin .6s linear infinite}
@keyframes at-spin{to{transform:rotate(360deg)}}

/* ═══ 6. INPUT / FIELD ═══════════════════════════════════════════════════
   Пілюля-контейнер: лейбл усередині над значенням. Клік по всій пілюлі
   ставить фокус в інпут — більша ціль, менше промахів. */
.at-field{position:relative;display:block;background:var(--at-surface);
	border:1.5px solid var(--at-line);border-radius:var(--at-r-field);
	padding:var(--at-2) var(--at-3) var(--at-2);transition:border-color var(--at-t),box-shadow var(--at-t)}
.at-field:hover{border-color:var(--at-line-2)}
.at-field:focus-within{border-color:var(--at-blue);box-shadow:0 0 0 3px rgba(59,111,217,.14)}
.at-field__lb{display:block;font-family:var(--at-fb);font-size:11.5px;font-weight:500;
	color:var(--at-txt3);margin-bottom:2px;pointer-events:none}
.at-field__in{width:100%;border:0;background:transparent;padding:0;height:26px;
	font-family:var(--at-fh);font-weight:600;font-size:16px;color:var(--at-ink);outline:none}
.at-field__in::placeholder{color:var(--at-txt3);font-weight:500}
.at-field__ic{position:absolute;right:var(--at-3);top:50%;transform:translateY(-50%);
	color:var(--at-txt3);pointer-events:none}
.at-field.is-err{border-color:var(--at-err);background:var(--at-err-bg)}
.at-field.is-err:focus-within{box-shadow:0 0 0 3px rgba(199,54,47,.14)}
.at-err-msg{display:flex;align-items:center;gap:6px;margin-top:6px;
	font-family:var(--at-fb);font-size:12.5px;color:var(--at-err)}

/* На темному тлі (hero). */
.at-field--onnavy{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.at-field--onnavy .at-field__lb{color:rgba(255,255,255,.55)}
.at-field--onnavy .at-field__in{color:#fff}

/* Чекбокс/радіо: ціль 44px, видимий стан. */
.at-check{display:inline-flex;align-items:center;gap:var(--at-2);min-height:44px;cursor:pointer;
	font-family:var(--at-fb);font-size:14px;color:var(--at-txt2)}
.at-check input{width:20px;height:20px;accent-color:var(--at-blue);cursor:pointer;flex:none}

/* Тумблер із двох станів (напр. «Весь вагон / Лише вільні»). */
.at-seg{display:inline-flex;background:var(--at-surface);border:1px solid var(--at-line);
	border-radius:var(--at-r-chip);padding:3px;gap:2px}
.at-seg__b{min-height:34px;padding:0 var(--at-4);border:0;background:none;border-radius:var(--at-r-chip);
	font-family:var(--at-fh);font-weight:600;font-size:13px;color:var(--at-txt3);cursor:pointer;
	transition:background var(--at-t),color var(--at-t)}
.at-seg__b[aria-pressed=true],.at-seg__b.is-on{background:var(--at-ink);color:#fff}

/* ═══ 7. CARD ════════════════════════════════════════════════════════════ */
.at-card{background:var(--at-white);border:1px solid var(--at-line);border-radius:var(--at-r-card);
	box-shadow:var(--at-sh-2);padding:var(--at-5)}
.at-card--flat{box-shadow:none}
.at-card--pad0{padding:0;overflow:hidden}
/* Картка, по якій клікають. Підйом — сигнал інтерактивності. */
.at-card--act{transition:border-color var(--at-t),box-shadow var(--at-t),transform var(--at-t)}
.at-card--act:hover{border-color:var(--at-line-2);box-shadow:var(--at-sh-3);transform:translateY(-2px)}
.at-card--navy{background:var(--at-navy-grad);border-color:transparent;color:#fff}
.at-card--navy h2,.at-card--navy h3{color:#fff}

/* ═══ 8. BADGE / TAG / CHIP ══════════════════════════════════════════════ */
.at-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--at-r-chip);
	font-family:var(--at-fh);font-weight:700;font-size:11.5px;line-height:1.4;white-space:nowrap}
.at-badge--ok{background:var(--at-ok-bg);color:var(--at-ok)}
.at-badge--warn{background:var(--at-warn-bg);color:var(--at-warn)}
.at-badge--err{background:var(--at-err-bg);color:var(--at-err)}
.at-badge--info{background:#EAF0FC;color:var(--at-blue-d)}
.at-badge--amber{background:var(--at-amber);color:var(--at-amber-ink)}
.at-badge--ghost{background:var(--at-surface);color:var(--at-txt2);border:1px solid var(--at-line)}

/* «Живі дані»: пульсуюча крапка = система працює зараз. */
.at-live{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:var(--at-r-chip);
	background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.25);
	font-family:var(--at-fh);font-weight:600;font-size:12px;color:#8FF0C0}
.at-live__dot{width:7px;height:7px;border-radius:50%;background:var(--at-live);flex:none;
	box-shadow:0 0 0 3px rgba(52,211,153,.2);animation:at-pulse 2s ease-in-out infinite}
@keyframes at-pulse{0%,100%{opacity:1}50%{opacity:.45}}
/* На світлому тлі. */
.at-live--light{background:var(--at-ok-bg);border-color:rgba(14,138,95,.2);color:var(--at-ok)}

/* Фільтр-чип. Ціль 36px+, стан читається без кольору (жирність+фон). */
.at-chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 var(--at-4);
	background:var(--at-white);border:1px solid var(--at-line);border-radius:var(--at-r-chip);
	font-family:var(--at-fh);font-weight:600;font-size:13px;color:var(--at-txt2);cursor:pointer;
	transition:border-color var(--at-t),background var(--at-t),color var(--at-t)}
.at-chip:hover{border-color:var(--at-line-2);color:var(--at-ink)}
.at-chip[aria-pressed=true],.at-chip.is-on{background:var(--at-ink);border-color:var(--at-ink);color:#fff}
.at-chip__n{opacity:.6;font-weight:600}

/* Крапка класу вагона — колір як миттєвий розпізнавач. */
.at-cls{width:8px;height:8px;border-radius:50%;flex:none}
.at-cls--lux{background:var(--at-cls-lux)}
.at-cls--soft{background:var(--at-cls-soft)}
.at-cls--coupe{background:var(--at-cls-coupe)}
.at-cls--plaz{background:var(--at-cls-plaz)}
.at-cls--sit{background:var(--at-cls-sit)}
.at-cls--common{background:var(--at-cls-common)}

/* ═══ 9. HERO ════════════════════════════════════════════════════════════ */
.at-hero{position:relative;background:var(--at-navy-grad);overflow:hidden;color:#fff}
.at-hero::before{content:'';position:absolute;inset:0;pointer-events:none;
	background:radial-gradient(120% 120% at 85% -10%,rgba(255,184,0,.13),transparent 46%),
	           radial-gradient(90% 90% at 8% 120%,rgba(59,111,217,.26),transparent 55%)}
.at-hero__in{position:relative;z-index:1}
.at-hero h1,.at-hero h2{color:#fff}
.at-hero__sub{color:rgba(255,255,255,.62);font-size:15px;line-height:1.55}
.at-hero--slim .at-hero__in{padding-block:var(--at-5)}

/* Крихти. Семантика — <nav><ol>, для SEO + скрінрідера. */
.at-crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;
	font-family:var(--at-fb);font-size:12px;color:rgba(255,255,255,.5)}
.at-crumbs a{color:inherit}
.at-crumbs a:hover{color:#fff}
.at-crumbs [aria-current]{color:#fff}
.at-crumbs--light{color:var(--at-txt3)}
.at-crumbs--light a{color:var(--at-txt3)}
.at-crumbs--light a:hover{color:var(--at-ink)}

/* ═══ 10. TRUST ══════════════════════════════════════════════════════════
   Довіра одразу під пошуком: людина віддає гроші незнайомому сайту. */
.at-trust{display:flex;align-items:center;gap:var(--at-5);flex-wrap:wrap;
	font-family:var(--at-fb);font-size:13px;color:rgba(255,255,255,.62)}
.at-trust__i{display:inline-flex;align-items:center;gap:7px}
.at-trust__i .ic{color:var(--at-amber);flex:none}
.at-trust--light{color:var(--at-txt2)}
.at-trust--light .at-trust__i .ic{color:var(--at-ok)}

/* ═══ 11. STEPPER ════════════════════════════════════════════════════════
   Скільки лишилось до квитка. Знижує тривогу на шляху до грошей. */
.at-steps{display:flex;align-items:center;gap:var(--at-2);flex-wrap:wrap}
.at-step{display:flex;align-items:center;gap:var(--at-2);
	font-family:var(--at-fh);font-weight:600;font-size:13px;color:var(--at-txt3)}
.at-step+.at-step::before{content:'';width:26px;height:1px;background:var(--at-line);margin-right:var(--at-1)}
.at-step__n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;
	font-size:11.5px;font-weight:700;background:var(--at-surface);border:1px solid var(--at-line);
	color:var(--at-txt3)}
.at-step.is-done{color:var(--at-txt2)}
.at-step.is-done .at-step__n{background:var(--at-ok);border-color:var(--at-ok);color:#fff}
.at-step.is-cur{color:var(--at-ink)}
.at-step.is-cur .at-step__n{background:var(--at-ink);border-color:var(--at-ink);color:#fff}
@media(max-width:600px){
	.at-step__t{display:none}
	.at-step.is-cur .at-step__t{display:inline}
}

/* ═══ 12. EMPTY / ERROR / SUCCESS ════════════════════════════════════════
   Порожньо — не помилка. Завжди даємо ВИХІД, а не тупик. */
.at-state{display:flex;flex-direction:column;align-items:center;text-align:center;
	gap:var(--at-3);padding:var(--at-12) var(--at-5)}
.at-state__ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
	background:var(--at-surface);color:var(--at-blue);border:1px solid var(--at-line)}
.at-state__t{font-family:var(--at-fh);font-weight:800;font-size:18px;color:var(--at-ink)}
.at-state__s{font-family:var(--at-fb);font-size:14px;color:var(--at-txt3);max-width:40ch}
.at-state--err .at-state__ic{background:var(--at-err-bg);color:var(--at-err);border-color:rgba(199,54,47,.18)}
.at-state--ok .at-state__ic{background:var(--at-ok-bg);color:var(--at-ok);border-color:rgba(14,138,95,.18)}

/* ═══ 13. SKELETON ═══════════════════════════════════════════════════════
   Показуємо форму майбутнього контенту, а не спінер: сприймається швидше
   і не смикає layout. */
.at-sk{background:linear-gradient(90deg,var(--at-bg) 25%,#F2F5FA 37%,var(--at-bg) 63%);
	background-size:400% 100%;animation:at-sk 1.2s ease-in-out infinite;border-radius:var(--at-r-field)}
@keyframes at-sk{0%{background-position:100% 50%}100%{background-position:0 50%}}
.at-sk--line{height:12px;margin-bottom:8px}
.at-sk--card{height:104px;margin-bottom:var(--at-3)}

/* ═══ 14. TOAST ══════════════════════════════════════════════════════════ */
.at-toast{position:fixed;left:50%;bottom:var(--at-6);transform:translateX(-50%);
	z-index:var(--at-z-modal);display:flex;align-items:center;gap:var(--at-2);
	background:var(--at-ink);color:#fff;padding:var(--at-3) var(--at-5);border-radius:var(--at-r-field);
	box-shadow:var(--at-sh-3);font-family:var(--at-fb);font-size:14px}
.at-toast--err{background:var(--at-err)}
.at-toast--ok{background:var(--at-ok)}

/* ═══ 15. STICKY BAR ═════════════════════════════════════════════════════
   Мобільний CTA в thumb zone. Safe area — щоб не ховалось під home bar. */
.at-bar{position:sticky;bottom:0;z-index:var(--at-z-bar);
	display:flex;align-items:center;gap:var(--at-4);
	background:rgba(255,255,255,.94);backdrop-filter:blur(14px);
	border-top:1px solid var(--at-line);box-shadow:0 -8px 26px rgba(15,23,41,.10);
	padding:var(--at-3) var(--at-5);
	padding-bottom:calc(var(--at-3) + env(safe-area-inset-bottom,0px))}
.at-bar__sum{flex:1;min-width:0}
.at-bar__price{font-family:var(--at-fh);font-weight:800;font-size:19px;font-variant-numeric:tabular-nums}
.at-bar__note{font-family:var(--at-fb);font-size:12px;color:var(--at-txt3)}

/* Таймер броні. Червоніє, коли лишається мало — але НЕ блимає:
   миготіння частотою >3 Гц може спровокувати напад (WCAG 2.3.1). */
.at-timer{display:inline-flex;align-items:center;gap:6px;font-family:var(--at-fh);font-weight:700;
	font-size:13px;font-variant-numeric:tabular-nums;color:var(--at-txt2)}
.at-timer.is-low{color:var(--at-err)}

/* ═══ 16. TABLE ══════════════════════════════════════════════════════════
   Таблиця лишається таблицею (це дані), але на вузькому екрані
   перевертається в картки — рядок із 6 колонок на телефоні нечитабельний. */
.at-tbl{width:100%;border-collapse:collapse;font-family:var(--at-fb);font-size:14px}
.at-tbl th{text-align:left;font-family:var(--at-fh);font-weight:700;font-size:11.5px;
	text-transform:uppercase;letter-spacing:.06em;color:var(--at-txt3);
	padding:var(--at-3);border-bottom:1px solid var(--at-line)}
.at-tbl td{padding:var(--at-3);border-bottom:1px solid var(--at-line);color:var(--at-txt2)}
.at-tbl tr:last-child td{border-bottom:0}
.at-tbl tbody tr{transition:background var(--at-t)}
.at-tbl tbody tr:hover{background:var(--at-surface)}
@media(max-width:720px){
	.at-tbl--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
	.at-tbl--cards tr{display:block;background:#fff;border:1px solid var(--at-line);
		border-radius:var(--at-r-card);margin-bottom:var(--at-3);padding:var(--at-2)}
	.at-tbl--cards td{display:flex;justify-content:space-between;gap:var(--at-4);border:0;padding:var(--at-2)}
	.at-tbl--cards td::before{content:attr(data-l);font-family:var(--at-fh);font-weight:700;
		font-size:11.5px;text-transform:uppercase;color:var(--at-txt3)}
}

/* ═══ 17. HELPERS ════════════════════════════════════════════════════════ */
.at-hide{display:none !important}
.at-only-mob{display:none}
@media(max-width:720px){
	.at-only-desk{display:none !important}
	.at-only-mob{display:block}
}
/* Прокрутка чипів на телефоні без обрізання фокус-кільця. */
.at-scroll-x{display:flex;gap:var(--at-2);overflow-x:auto;scrollbar-width:thin;
	padding-block:var(--at-1);scroll-snap-type:x proximity}
.at-scroll-x>*{scroll-snap-align:start;flex:0 0 auto}

/* ═══════════════════════════════════════════════════════════════════════
   HOME
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Пошук: головний CTA сайту ────────────────────────────────────────
   Один рядок на десктопі, стовпчик на телефоні. Кнопка НЕ стискається:
   вона не має ставати «ще одним полем». */
.at-search{display:block}
.at-search__row{display:flex;align-items:stretch;gap:var(--at-2)}
.at-search__f{flex:1 1 200px;min-width:0}
.at-search__f .at-field{height:100%}
.at-search__f--date{flex:0 1 190px}
/* ⚠ width:auto — заплата на аварію, не косметика. НЕ прибирати.
   premium.css має свій `.at-btn{width:100%}` (рядок 1238): простір імен
   at-* не наш, у premium.css таких класів 255, з них 8 збігаються з
   нашими. Ми оголошували лише display, а width мовчки приїжджав із
   premium.css → кнопка брала base size 896px (=100% рядка), з'їдала весь
   flex-контейнер, і поля Звідки/Куди/Дата стискались у width:0. Форма
   пошуку на / була мертва — заміряно в браузері на live, не грепом.
   flex:0 0 auto це не рятував: при width:100% "auto" і є 896px.
   Лікуємо точково, бо скидання на рівні .at-btn зламало б флоу покупки
   й help/board/business, які на той width:100% спираються.
   Системне лікування — вільний префікс (міграція ax-*). */
.at-search__go{flex:0 0 auto;width:auto;min-height:auto;align-self:stretch}
/* Свопер між полями. Ціль 44px, але візуально вужчий — щоб не крав увагу. */
.at-search__swap{flex:0 0 44px;align-self:stretch;min-height:44px;
	display:grid;place-items:center;cursor:pointer;
	background:var(--at-surface);border:1.5px solid var(--at-line);
	border-radius:var(--at-r-field);color:var(--at-txt2);
	transition:background var(--at-t),color var(--at-t),border-color var(--at-t)}
.at-search__swap:hover{background:var(--at-white);border-color:var(--at-line-2);color:var(--at-blue)}
@media(max-width:860px){
	.at-search__row{flex-wrap:wrap}
	.at-search__f{flex:1 1 100%}
	.at-search__f--date{flex:1 1 100%}
	.at-search__swap{flex:0 0 44px;align-self:center}
	.at-search__go{flex:1 1 100%}
}

/* ── Hero ─────────────────────────────────────────────────────────────
   Ліворуч, не по центру: око читає зліва, і форма починається там же,
   де закінчується H1 — коротший шлях до дії. */
.at-home-hero .at-hero__in{padding-block:var(--at-10) var(--at-12);max-width:960px;margin-inline:0 auto}
@media(min-width:1200px){.at-home-hero .at-hero__in{margin-inline:auto}}
.at-home-hero__kick{display:inline-flex;align-items:center;gap:6px;color:var(--at-amber);margin-bottom:var(--at-3)}
.at-home-hero__h1{font-size:clamp(26px,3vw,38px);line-height:1.1;max-width:16ch;margin-bottom:var(--at-6)}
/* Біла картка форми. Тінь глибша за все інше на екрані — так вона
   читається як «головний об'єкт», навіть боковим зором. */
.at-home-hero__search{background:var(--at-white);border-radius:var(--at-r-lg);
	box-shadow:var(--at-sh-navy);padding:var(--at-3);margin-bottom:var(--at-4)}

/* Швидкі напрямки на темному тлі. */
.at-quick{display:flex;align-items:center;gap:var(--at-2);flex-wrap:wrap;margin-bottom:var(--at-5)}
.at-quick__sep{width:1px;height:24px;background:rgba(255,255,255,.16);margin-inline:var(--at-1)}
.at-chip--onnavy{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:rgba(255,255,255,.82)}
.at-chip--onnavy:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.3);color:#fff}
.at-chip--onnavy.is-on,.at-chip--onnavy[aria-pressed=true]{background:var(--at-amber);border-color:var(--at-amber);color:var(--at-amber-ink)}
@media(max-width:720px){
	.at-quick{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--at-5) * -1);
		padding-inline:var(--at-5)}
	.at-quick::-webkit-scrollbar{display:none}
	.at-quick>*{flex:0 0 auto}
}

/* ── Шапка секції ─────────────────────────────────────────────────────
   Заголовок ліворуч, посилання «далі» праворуч і на одній базовій лінії. */
.at-sech{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--at-4);
	flex-wrap:wrap;margin-bottom:var(--at-5)}
.at-sech h2{margin-top:var(--at-1)}
.at-sech__more{display:inline-flex;align-items:center;gap:6px;font-family:var(--at-fh);
	font-weight:700;font-size:13px;color:var(--at-blue);white-space:nowrap}
.at-sech__more:hover{text-decoration:none;gap:9px}
.at-kicker--live{display:inline-flex;align-items:center;gap:7px;color:var(--at-ok)}
.at-kicker--amber{color:var(--at-amber)}

/* ── Картка напрямку ──────────────────────────────────────────────────
   Ціль кліку — уся картка, тому <a> робимо блоком. */
.at-rt{display:flex;flex-direction:column;gap:var(--at-1);color:var(--at-ink)}
.at-rt:hover{text-decoration:none;color:var(--at-ink)}
.at-rt__r{display:flex;align-items:center;gap:var(--at-2);flex-wrap:wrap;
	font-family:var(--at-fh);font-weight:800;font-size:16px;letter-spacing:-.01em}
.at-rt__a{color:var(--at-amber);flex:none}
.at-rt__m{font-size:12.5px;color:var(--at-txt3)}

/* ── Табло затримок ───────────────────────────────────────────────────
   Темна панель = вокзальне табло. Читається як прилад, а не як список. */
.at-board{overflow:hidden}
.at-board__h{display:flex;align-items:center;gap:var(--at-4);flex-wrap:wrap;
	padding:var(--at-4) var(--at-5);border-bottom:1px solid rgba(255,255,255,.08)}
.at-board__st{font-family:var(--at-fb);font-size:12.5px;color:rgba(255,255,255,.5)}
.at-board__st:last-child{margin-left:auto}
.at-board__list{display:flex;flex-direction:column}
.at-board__r{display:flex;align-items:center;gap:var(--at-4);
	padding:var(--at-3) var(--at-5);border-bottom:1px solid rgba(255,255,255,.06);
	transition:background var(--at-t)}
.at-board__r:hover{background:rgba(255,255,255,.04)}
.at-board__n{flex:0 0 62px;font-family:var(--at-fh);font-weight:800;font-size:13px;
	color:rgba(255,255,255,.72)}
.at-board__rt{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.at-board__rt b{font-family:var(--at-fh);font-weight:700;font-size:14px;color:#fff;
	white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.at-board__rt span{font-family:var(--at-fb);font-size:12px;color:rgba(255,255,255,.45)}
/* Затримка. Колір — не єдиний носій: поруч завжди знак ▲/△ (WCAG 1.4.1). */
.at-sev{flex:0 0 auto;font-family:var(--at-fh);font-weight:800;font-size:14px;
	padding:5px 11px;border-radius:var(--at-r-chip)}
.at-sev--low{background:rgba(255,184,0,.14);color:#FFCE55}
.at-sev--mid{background:rgba(255,138,0,.16);color:#FFA94D}
.at-sev--hi{background:rgba(255,90,80,.16);color:#FF8B84}
.at-board__f{display:flex;align-items:center;justify-content:space-between;gap:var(--at-4);
	flex-wrap:wrap;padding:var(--at-4) var(--at-5);background:rgba(0,0,0,.18);
	font-family:var(--at-fb);font-size:12.5px;color:rgba(255,255,255,.5)}
.at-board__f a{color:var(--at-amber);font-family:var(--at-fh);font-weight:700}
@media(max-width:600px){
	.at-board__r{gap:var(--at-2);padding-inline:var(--at-4)}
	.at-board__n{flex-basis:52px;font-size:12px}
	.at-board__rt b{font-size:13px}
}

/* ── Як це працює ─────────────────────────────────────────────────────── */
.at-how__i{position:relative;padding-top:var(--at-6);background:var(--at-surface);border-color:transparent}
.at-how__n{position:absolute;top:var(--at-4);left:var(--at-5);
	font-family:var(--at-fh);font-weight:800;font-size:30px;line-height:1;
	color:var(--at-line-2);letter-spacing:-.04em}
.at-how__i h3{margin:var(--at-5) 0 var(--at-1)}

/* ── Відгуки ──────────────────────────────────────────────────────────── */
.at-rev{display:flex;flex-direction:column;gap:var(--at-2)}
.at-stars{color:var(--at-amber);font-size:14px;letter-spacing:2px}
.at-rev__t{font-size:14px;color:var(--at-txt2);line-height:1.6}
.at-rev__w{font-family:var(--at-fh);font-size:13px;margin-top:auto;padding-top:var(--at-2)}

/* ── Застосунок ───────────────────────────────────────────────────────
   Фото не обрізаємо: показуємо цілим, притиснутим до низу картки. */
.at-app{display:grid;grid-template-columns:1fr 340px;gap:var(--at-8);align-items:end;
	padding:var(--at-10) var(--at-10) 0;overflow:hidden}
.at-app__txt{padding-bottom:var(--at-10)}
.at-app__txt h2{margin:var(--at-2) 0 var(--at-5)}
.at-app__list{display:flex;flex-direction:column;gap:var(--at-3);margin-bottom:var(--at-6)}
.at-app__list li{display:flex;align-items:flex-start;gap:var(--at-2);
	font-family:var(--at-fb);font-size:14px;color:rgba(255,255,255,.72);line-height:1.5}
.at-app__list .ic{color:var(--at-amber);flex:none;margin-top:2px}
.at-app__badges{display:flex;gap:var(--at-3);flex-wrap:wrap}
.at-store{display:inline-flex;align-items:center;gap:var(--at-2);min-height:44px;padding:0 var(--at-4);
	background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
	border-radius:var(--at-r-field);color:#fff;transition:background var(--at-t)}
.at-store:hover{background:rgba(255,255,255,.16);color:#fff;text-decoration:none}
.at-store span{display:flex;flex-direction:column;line-height:1.15}
.at-store small{font-family:var(--at-fb);font-size:10px;color:rgba(255,255,255,.55)}
.at-store b{font-family:var(--at-fh);font-weight:700;font-size:13px}
.at-app__shot{align-self:end}
.at-app__shot img{width:100%;height:auto;display:block;border-radius:18px 18px 0 0;
	box-shadow:0 -10px 50px rgba(0,0,0,.35)}
@media(max-width:860px){
	.at-app{grid-template-columns:1fr;padding:var(--at-8) var(--at-6) 0;gap:var(--at-6)}
	.at-app__txt{padding-bottom:0}
	.at-app__shot{max-width:280px;margin:0 auto}
}
