/* PADELINO — дизайн-токены и базовые компоненты сервиса «Оплата в шоуруме».
   Сняты с padelino.ru 30.10.2026 (Tilda, проект 13712271). Описание: /root/padelino_pay/docs/DESIGN.md
   Подключение:
     <link rel="stylesheet" href="/static/brand/fonts/rubik.css">
     <link rel="stylesheet" href="/static/brand/tokens.css">                                   */

:root {
  /* ---------- Бренд ---------- */
  --pdl-blue: #195dd8;            /* фирменный синий: «Каталог», поиск, баннеры, акцентные слова */
  --pdl-blue-dark: #063da1;       /* кнопки покупки «Купить», полоса доставки, стрелки, крошки */
  --pdl-blue-ink: #0b43a8;        /* синий текст-заголовок в инфоблоках, кольцо фокуса */
  --pdl-orange: #fd7938;          /* главный призыв (CTA), бейдж скидки */
  --pdl-orange-2: #ff7d48;        /* второй цвет градиента CTA */
  --pdl-orange-hover: #ff6214;    /* наведение/нажатие CTA */
  --pdl-orange-text: #e85f1c;     /* оранжевый текст на светлом (жирные акценты) */
  --pdl-lime: #bdf43e;            /* «цвет мяча»: стрелки/плашки на тёмно-синем, только как акцент */
  --pdl-telegram: #28b0ef;
  --pdl-logo: #0f4099;            /* цвет логотипа и фавиконки */

  /* ---------- Текст ---------- */
  --pdl-ink: #1e2532;             /* основной текст и заголовки */
  --pdl-ink-2: #333333;           /* заголовки плиток категорий */
  --pdl-muted: #6d7787;           /* второстепенный текст (контраст 4.5:1 — минимум для мелкого) */
  --pdl-muted-2: #7a7c7e;         /* описание/артикул в карточке товара на сайте */
  --pdl-faint: #a6a8ac;           /* подвал, копирайт, неактивное — только крупный/служебный текст */
  --pdl-price-old: #bcbec2;       /* зачёркнутая старая цена */

  /* ---------- Фоны и поверхности ---------- */
  --pdl-bg: #ffffff;
  --pdl-topbar: #f1f5f8;          /* верхняя полоса над шапкой */
  --pdl-tile: #e4f3ff;            /* плитки категорий */
  --pdl-surface: #f5f8fe;         /* голубоватые инфоблоки */
  --pdl-soft: #f5f7fa;            /* серые подложки (баллы, сплит) */
  --pdl-info-bg: #eef4ff;
  --pdl-orange-bg: #fff4ec;

  /* ---------- Линии ---------- */
  --pdl-line: #e6eaf0;            /* разделители, рамки карточек */
  --pdl-line-blue: #dce6f7;       /* рамка голубых инфоблоков */
  --pdl-line-input: #a6a8ac;      /* рамка полей формы */
  --pdl-line-search: #cdcdcd;     /* рамка поиска в шапке */

  /* ---------- Статусы ---------- */
  --pdl-success: #247849;  --pdl-success-bg: #eaf4ee;   /* как кнопка «Позвонить» в меню сайта */
  --pdl-error: #d9262c;    --pdl-error-bg: #fdecec;     /* красный из палитры сайта, фон — производный */
  --pdl-warning: #c2410c;  --pdl-warning-bg: #fff4ec;   /* фон сайта; текст темнее #e85f1c ради контраста */
  --pdl-info: #195dd8;     --pdl-info-bg: #eef4ff;

  /* ---------- Градиенты ---------- */
  --pdl-grad-cta: linear-gradient(157deg, #fd7938 0%, #ff7d48 100%);
  --pdl-grad-cta-hover: linear-gradient(157deg, #ff6214 0%, #fd7938 100%);
  --pdl-grad-blue: linear-gradient(135deg, #0f4fd6 0%, #1f70e8 100%);          /* баннер «Собери комплект» */
  --pdl-grad-hero: radial-gradient(120% 90% at 65% 75%, #52a5e6 0%, #2a74dd 45%, #195dd8 80%); /* главный экран */

  /* ---------- Шрифты ---------- */
  --pdl-font: 'Rubik', Arial, sans-serif;
  --pdl-font-display: 'NauryzRedKeds', 'Rubik', Arial, sans-serif; /* только крупные слоганы */

  /* ---------- Радиусы ---------- */
  --pdl-r-pill: 100px;   /* все кнопки и поля */
  --pdl-r-xl: 40px;      /* баннеры, крупные белые блоки */
  --pdl-r-lg: 30px;      /* окна, крупные карточки */
  --pdl-r-md: 20px;      /* плитки категорий, корзина */
  --pdl-r-sm: 12px;      /* инфоблоки, плашки */
  --pdl-r-xs: 10px;      /* карточки товара, мелкие плашки */

  /* ---------- Тени ---------- */
  --pdl-shadow-header: 0 15px 20px -10px rgba(140, 162, 202, .2);
  --pdl-shadow-card: 0 0 20px 0 rgba(45, 47, 126, .1);
  --pdl-shadow-soft: 0 0 20px 0 rgba(140, 162, 202, .2);
  --pdl-shadow-hover: 0 5px 15px -2px rgba(0, 0, 0, .07);
  --pdl-shadow-float: 0 15px 30px -10px rgba(0, 11, 48, .2);
  --pdl-focus: 0 0 0 2px #fff, 0 0 0 4px #0b43a8;

  /* ---------- Размеры (сервис для планшета/телефона, крупнее сайта) ---------- */
  --pdl-tap: 56px;       /* минимальная высота кнопки/поля */
  --pdl-tap-lg: 64px;    /* главная кнопка экрана */
  --pdl-gap: 16px;
  --pdl-container: 1160px;
}

/* ================= База ================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--pdl-bg);
  color: var(--pdl-ink);
  font: 400 17px/1.45 var(--pdl-font);
  -webkit-font-smoothing: antialiased;
}
a { color: var(--pdl-blue); text-decoration: none; }
a:hover { color: var(--pdl-blue-dark); }
:focus-visible { outline: none; box-shadow: var(--pdl-focus); }

.pdl-h1 { margin: 0 0 16px; font-size: 34px; line-height: 1.1; font-weight: 400; }
.pdl-h2 { margin: 0 0 12px; font-size: 26px; line-height: 1.2; font-weight: 500; }
.pdl-h3 { margin: 0 0 8px;  font-size: 20px; line-height: 1.25; font-weight: 500; }
.pdl-display { font-family: var(--pdl-font-display); font-weight: 400; line-height: 1; text-transform: lowercase; }
.pdl-accent { color: var(--pdl-blue); }
.pdl-muted { color: var(--pdl-muted); }
.pdl-small { font-size: 14px; color: var(--pdl-muted); }
.pdl-price { font-weight: 500; white-space: nowrap; }
.pdl-price-old { color: var(--pdl-price-old); text-decoration: line-through; font-weight: 500; }

/* ================= Шапка ================= */
.pdl-topbar { background: var(--pdl-topbar); font-size: 13px; color: var(--pdl-ink); }
.pdl-topbar__in { max-width: var(--pdl-container); margin: 0 auto; padding: 6px 20px; display: flex; gap: 16px; justify-content: space-between; }
.pdl-header { position: sticky; top: 0; z-index: 50; background: #fff; box-shadow: var(--pdl-shadow-header); }
.pdl-header__in { max-width: var(--pdl-container); margin: 0 auto; padding: 14px 20px; display: flex; align-items: center; gap: 16px; }
.pdl-header__logo { height: 32px; width: auto; display: block; }
.pdl-header__title { font-size: 15px; font-weight: 500; color: var(--pdl-muted); white-space: nowrap; }
@media (max-width: 479px) { .pdl-header__title { display: none; } .pdl-header__logo { height: 26px; } }
.pdl-header__spacer { flex: 1; }

/* ================= Кнопки ================= */
.pdl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--pdl-tap); padding: 0 28px;
  border: 0; border-radius: var(--pdl-r-pill);
  font: 500 16px/1.2 var(--pdl-font); text-transform: uppercase; letter-spacing: .02em;
  cursor: pointer; text-decoration: none; user-select: none;
  transition: background-color .2s ease-in-out, color .2s ease-in-out, box-shadow .2s ease-in-out, transform .1s;
  -webkit-tap-highlight-color: transparent;
}
.pdl-btn:active { transform: scale(.98); }
.pdl-btn[disabled], .pdl-btn.is-disabled { opacity: .45; pointer-events: none; }
.pdl-btn--block { display: flex; width: 100%; }
.pdl-btn--lg { min-height: var(--pdl-tap-lg); font-size: 18px; font-weight: 600; }

/* Главный призыв: оранжевый градиент (как «Посмотреть модели», «Оформить заказ») */
.pdl-btn--cta { color: #fff; background: var(--pdl-grad-cta); }
.pdl-btn--cta:hover, .pdl-btn--cta:focus-visible { color: #fff; background: var(--pdl-grad-cta-hover); }

/* Покупка/подтверждение: тёмно-синий, наведение — фирменный синий (как «Купить») */
.pdl-btn--primary { color: #fff; background: var(--pdl-blue-dark); }
.pdl-btn--primary:hover, .pdl-btn--primary:focus-visible { color: #fff; background: var(--pdl-blue); }

/* Навигация/вторичное действие: фирменный синий (как «Каталог») */
.pdl-btn--blue { color: #fff; background: var(--pdl-blue); }
.pdl-btn--blue:hover { color: #fff; background: var(--pdl-blue-dark); }

/* Контурная (как «Подписывайтесь на Телеграм», но синим) */
.pdl-btn--outline { color: var(--pdl-blue); background: #fff; box-shadow: inset 0 0 0 2px var(--pdl-blue); }
.pdl-btn--outline:hover { color: var(--pdl-blue-dark); box-shadow: inset 0 0 0 2px var(--pdl-blue-dark); }

/* Тихая (отмена, «назад») */
.pdl-btn--ghost { color: var(--pdl-ink); background: var(--pdl-soft); text-transform: none; }
.pdl-btn--ghost:hover { background: var(--pdl-line); }

/* Круглая иконка (плюс/минус, избранное на сайте) */
.pdl-btn-icon {
  width: 48px; height: 48px; border-radius: 50%; border: 0; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  color: var(--pdl-blue); background: #fff; box-shadow: inset 0 0 0 2px var(--pdl-blue);
  font: 400 26px/1 var(--pdl-font);
}
.pdl-btn-icon--filled { color: #fff; background: var(--pdl-blue-dark); box-shadow: none; }

/* ================= Поля ввода ================= */
.pdl-field { display: block; margin: 0 0 16px; }
.pdl-label { display: block; margin: 0 0 8px; font-size: 15px; font-weight: 500; color: var(--pdl-ink); }
.pdl-input {
  width: 100%; height: var(--pdl-tap); padding: 0 24px;
  border: 1px solid var(--pdl-line-input); border-radius: var(--pdl-r-pill);
  background: #fff; color: var(--pdl-ink);
  font: 400 18px/1.2 var(--pdl-font);
  transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none; appearance: none;
}
.pdl-input::placeholder { color: var(--pdl-ink); opacity: .5; }
.pdl-input:focus { outline: none; border-color: var(--pdl-blue); box-shadow: 0 0 0 3px rgba(25, 93, 216, .15); }
.pdl-field.is-error .pdl-input { border-color: var(--pdl-error); box-shadow: 0 0 0 3px rgba(217, 38, 44, .12); }
.pdl-hint { margin: 6px 0 0 24px; font-size: 14px; color: var(--pdl-muted); }
.pdl-field.is-error .pdl-hint { color: var(--pdl-error); }

/* Поиск как в шапке сайта: поле + синяя кнопка справа */
.pdl-search { display: flex; height: var(--pdl-tap); }
.pdl-search__input {
  flex: 1; min-width: 0; padding: 0 22px; border: 1px solid var(--pdl-line-search); border-right: 0;
  border-radius: 30px 0 0 30px; font: 400 17px var(--pdl-font); color: var(--pdl-ink); background: #fff;
}
.pdl-search__input:focus { outline: none; border-color: var(--pdl-blue); }
.pdl-search__btn { width: 64px; border: 0; border-radius: 0 30px 30px 0; background: var(--pdl-blue); color: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; }

/* ================= Карточки ================= */
.pdl-card { background: #fff; border-radius: var(--pdl-r-lg); box-shadow: var(--pdl-shadow-card); padding: 24px; }
.pdl-box { background: var(--pdl-surface); border: 1px solid var(--pdl-line-blue); border-radius: 16px; padding: 18px; }
.pdl-soft { background: var(--pdl-soft); border-radius: 16px; padding: 14px 18px; }

/* Плитка категории (голубая, как «Ракетки / Аксессуары / Сумки / Одежда») */
.pdl-tile {
  display: flex; flex-direction: column; justify-content: space-between; gap: 12px;
  min-height: 120px; padding: 20px 22px; border-radius: var(--pdl-r-md);
  background: var(--pdl-tile); color: var(--pdl-ink-2); text-decoration: none;
  font-size: 18px; font-weight: 500; line-height: 1.35;
}
.pdl-tile.is-active { background: var(--pdl-blue); color: #fff; }

/* Карточка товара (картинка на белом, название, цена, кнопка) */
.pdl-products { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 20px 16px; }
.pdl-product { position: relative; display: flex; flex-direction: column; gap: 6px; border-radius: var(--pdl-r-xs); background: #fff; transition: box-shadow .2s; }
.pdl-product:hover { box-shadow: var(--pdl-shadow-hover); }
.pdl-product__img { aspect-ratio: 1 / 1; width: 100%; object-fit: contain; background: #fff; border-radius: var(--pdl-r-xs); }
.pdl-product__mark {
  position: absolute; top: 8px; left: 8px; min-width: 44px; height: 44px; padding: 0 6px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: var(--pdl-orange); color: #fff; font-size: 13px; font-weight: 500;
}
.pdl-product__title { margin: 4px 0 0; font-size: 17px; line-height: 1.2; font-weight: 500; color: var(--pdl-ink); }
.pdl-product__sku { font-size: 13px; color: var(--pdl-muted-2); }
.pdl-product__price { font-size: 17px; font-weight: 500; color: var(--pdl-ink); }
.pdl-product__stock { font-size: 13px; color: var(--pdl-muted); }
.pdl-product .pdl-btn { align-self: flex-start; min-height: 48px; padding: 0 26px; font-size: 15px; margin-top: auto; }
.pdl-product__price, .pdl-product > div:has(.pdl-product__price) { margin-bottom: 8px; }

/* Строка корзины / истории */
.pdl-row { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--pdl-line); }
.pdl-row:last-child { border-bottom: 0; }
.pdl-row__img { width: 56px; height: 56px; object-fit: contain; border-radius: 10px; background: #fff; flex: none; }
.pdl-row__main { flex: 1; min-width: 0; }
.pdl-row__title { font-size: 16px; font-weight: 500; line-height: 1.25; }
.pdl-row__sub { font-size: 14px; color: var(--pdl-muted); }
.pdl-row__sum { font-size: 17px; font-weight: 600; white-space: nowrap; }

/* Нижняя закреплённая панель «Итого + кнопка» */
.pdl-bottombar {
  position: sticky; bottom: 0; z-index: 40; background: #fff;
  border-radius: var(--pdl-r-lg) var(--pdl-r-lg) 0 0; box-shadow: 0 -10px 30px -10px rgba(0, 11, 48, .18);
  padding: 16px 20px calc(16px + env(safe-area-inset-bottom));
}
.pdl-total { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 12px; }
.pdl-total__label { font-size: 16px; color: var(--pdl-muted); }
.pdl-total__sum { font-size: 28px; font-weight: 600; color: var(--pdl-ink); }

/* ================= Плашки и статусы ================= */
.pdl-chip { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border-radius: var(--pdl-r-pill); font-size: 13px; font-weight: 500; background: #fff; color: var(--pdl-ink); }
.pdl-chip--blue { background: var(--pdl-blue); color: #fff; }
.pdl-chip--soft { background: var(--pdl-info-bg); color: var(--pdl-blue-ink); }
.pdl-chip--success { background: var(--pdl-success-bg); color: var(--pdl-success); }
.pdl-chip--error { background: var(--pdl-error-bg); color: var(--pdl-error); }
.pdl-chip--wait { background: var(--pdl-orange-bg); color: var(--pdl-warning); }

.pdl-alert { padding: 14px 18px; border-radius: 16px; font-size: 16px; line-height: 1.4; }
.pdl-alert--info { background: var(--pdl-info-bg); color: var(--pdl-blue-ink); }
.pdl-alert--success { background: var(--pdl-success-bg); color: var(--pdl-success); }
.pdl-alert--error { background: var(--pdl-error-bg); color: var(--pdl-error); }
.pdl-alert--warning { background: var(--pdl-warning-bg); color: var(--pdl-warning); }

/* ================= Экран QR ================= */
.pdl-qr { text-align: center; padding: 28px 24px; }
.pdl-qr__sum { font-size: 40px; font-weight: 600; line-height: 1.1; margin: 0 0 4px; }
.pdl-qr__hint { font-size: 18px; color: var(--pdl-muted); margin: 0 0 20px; }
.pdl-qr__code { width: min(78vw, 340px); aspect-ratio: 1; margin: 0 auto; padding: 14px; background: #fff; border-radius: 24px; box-shadow: inset 0 0 0 2px var(--pdl-line); }
.pdl-qr__code img, .pdl-qr__code svg { width: 100%; height: 100%; display: block; image-rendering: pixelated; }
.pdl-qr__timer { margin-top: 16px; font-size: 16px; color: var(--pdl-muted); }

.pdl-done { text-align: center; padding: 36px 24px; }
.pdl-done__icon { width: 112px; height: 112px; margin: 0 auto 18px; border-radius: 50%; background: var(--pdl-success-bg); color: var(--pdl-success); display: flex; align-items: center; justify-content: center; }
.pdl-done__title { font-family: var(--pdl-font-display); font-size: 56px; line-height: 1; color: var(--pdl-success); margin: 0 0 10px; text-transform: lowercase; }

/* ================= Подвал ================= */
.pdl-footer { margin-top: 48px; background: #fff; border-radius: 60px 60px 0 0; box-shadow: var(--pdl-shadow-soft); color: var(--pdl-faint); font-size: 14px; line-height: 22px; }
.pdl-footer__in { max-width: var(--pdl-container); margin: 0 auto; padding: 28px 20px; display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
.pdl-footer a { color: var(--pdl-faint); }

/* ================= Раскладка ================= */
.pdl-container { max-width: var(--pdl-container); margin: 0 auto; padding: 20px; }
.pdl-stack > * + * { margin-top: var(--pdl-gap); }
@media (min-width: 768px) {
  body { font-size: 18px; }
  .pdl-h1 { font-size: 44px; }
  .pdl-products { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 28px 20px; }
  .pdl-header__logo { height: 36px; }
}
@media (min-width: 1200px) { .pdl-h1 { font-size: 50px; } }
