/* events-register.css — порт register.css (хендофф v3, спека 08).
   Корзина (/cart/) + регистрация участников (/attendee-registration/).
   Токены (--forest/--line/--r-xl/…) — из events-base.css :root. Demo-блоки
   (.reg-switch/.mob-preview/.phone) НЕ портируются (только прототип). */

/* ── slim flow header ── */
.reg-top { position: sticky; top: 0; z-index: 40; background: oklch(0.98 0.012 85 / 0.9); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.reg-top-in { max-width: 1180px; margin: 0 auto; padding: 0 28px; height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.reg-back { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--ink-2); text-decoration: none; }
.reg-back:hover { color: var(--forest); }

.flow-steps { display: flex; align-items: center; gap: 6px; }
.flow-step { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 100px; font-size: 13px; font-weight: 600; color: var(--ink-3); }
.flow-step[data-active="1"] { background: var(--forest-soft); color: var(--forest-ink); }
.flow-step[data-done="1"] { color: var(--forest-ink); }
.flow-step-n { width: 22px; height: 22px; border-radius: 100px; display: grid; place-items: center; font-size: 12px; font-weight: 700; font-family: var(--font-mono); background: var(--bg-sunk); color: var(--ink-2); }
.flow-step[data-active="1"] .flow-step-n, .flow-step[data-done="1"] .flow-step-n { background: var(--forest); color: #fff; }
.flow-sep { width: 16px; height: 1px; background: var(--line-strong); }
@media (max-width: 860px) { .flow-steps .flow-step-l { display: none; } }
@media (max-width: 600px) { .flow-steps { display: none; } }

/* ── page head ── */
.reg-head { padding: 40px 0 8px; }
.reg-event-date { font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em; color: var(--ink-3); }
.reg-event-name { font-family: var(--font-display); font-size: 26px; font-weight: 600; color: var(--forest-ink); margin-top: 4px; letter-spacing: -0.01em; }

/* ── layout: forms + sticky summary ── */
.reg-grid { display: grid; grid-template-columns: minmax(0,1fr) 360px; gap: 32px; align-items: start; padding: 24px 0 80px; }
@media (max-width: 940px) { .reg-grid { grid-template-columns: 1fr; } }

/* ── ticket group ── */
.reg-group { margin-bottom: 34px; }
.reg-group:last-child { margin-bottom: 0; }
.reg-group-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.reg-group-ic { width: 40px; height: 40px; border-radius: 11px; display: grid; place-items: center; flex-shrink: 0; }
.reg-group-ic[data-tone="standard"] { background: var(--forest-soft); color: var(--forest-ink); }
.reg-group-ic[data-tone="gala"] { background: var(--ochre-soft); color: var(--ochre-deep); }
.reg-group-ic[data-tone="public"], .reg-group-ic[data-tone="child"] { background: oklch(0.9 0.04 230); color: oklch(0.36 0.08 230); }
.reg-group-title { font-family: var(--font-display); font-size: 20px; font-weight: 600; letter-spacing: -0.01em; }
.reg-group-sub { font-size: 13px; color: var(--ink-3); margin-top: 1px; }

/* ── attendee card ── */
.reg-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); padding: 22px 24px; margin-bottom: 14px; box-shadow: var(--shadow-sm); }
.reg-card:last-child { margin-bottom: 0; }
.reg-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.reg-card-n { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 15px; }
.reg-card-badge { width: 26px; height: 26px; border-radius: 100px; background: var(--bg-sunk); display: grid; place-items: center; font-size: 12px; font-weight: 700; font-family: var(--font-mono); color: var(--ink-2); }

/* ── copy toggles ── */
.reg-toggles { display: flex; gap: 8px; flex-wrap: wrap; }
.reg-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 7px 13px; border-radius: 100px; font-size: 12.5px; font-weight: 600; background: var(--surface); border: 1px solid var(--line); color: var(--ink-2); transition: all .14s; white-space: nowrap; cursor: pointer; }
.reg-toggle:hover { border-color: var(--line-strong); }
.reg-toggle[data-on="1"] { background: var(--forest-soft); border-color: transparent; color: var(--forest-ink); }
.reg-toggle-check { width: 16px; height: 16px; border-radius: 5px; border: 1.5px solid var(--line-strong); display: grid; place-items: center; flex-shrink: 0; color: #fff; }
.reg-toggle[data-on="1"] .reg-toggle-check { background: var(--forest); border-color: var(--forest); }

/* ── field grid ── */
.reg-fields { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px 20px; }
.reg-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.reg-field[data-span="full"] { grid-column: 1 / -1; }
.reg-field label { font-size: 13px; font-weight: 600; color: var(--ink-2); }
.reg-field label .req { color: var(--terracotta); margin-left: 2px; }
.reg-field label .opt { color: var(--ink-mute); font-weight: 500; margin-left: 4px; font-size: 12px; }
@media (max-width: 560px) { .reg-fields { grid-template-columns: 1fr; } }

.reg-input { width: 100%; box-sizing: border-box; padding: 11px 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); font-size: 14px; font-family: var(--font-ui); color: var(--ink); outline: none; transition: border-color .12s, box-shadow .12s; height: auto; min-height: 0; }
.reg-input::placeholder { color: var(--ink-mute); }
.reg-input:focus { border-color: var(--forest); box-shadow: 0 0 0 3px var(--forest-soft); }
.reg-input:disabled, .reg-input[readonly] { background: var(--bg-sunk); color: var(--ink-3); cursor: not-allowed; }
select.reg-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%237a6a55' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 38px; cursor: pointer; }

/* ── phone field (country + number) ── */
.reg-phone { display: grid; grid-template-columns: 132px 1fr; gap: 10px; }
@media (max-width: 420px) { .reg-phone { grid-template-columns: 108px 1fr; } }

/* ── child sub-section ── */
.reg-sub { margin-top: 4px; padding-top: 18px; border-top: 1px dashed var(--line); grid-column: 1 / -1; }
.reg-sub-h { display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ochre-deep); margin-bottom: 14px; }

/* ── summary ── */
/* ОДИН-В-ОДИН прототип (handoff-4 register.css 73-85): ЗНАЧЕНИЯ дословные.
   ⚠ На проде ОБЯЗАТЕЛЕН скоуп .ev-scope .reg-summary + !important: .tribe-common div/b
   (0-1-1) ОБНУЛЯЕТ padding/border/margin у bare-селекторов (0-1-0) → строки слипаются,
   пропадают пунктир и жирная линия. Скоуп (0-3-0/0-3-1) перебивает ET. */
.ev-scope .reg-summary { background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: var(--r-xl); padding: 24px !important; position: sticky; top: 92px; box-shadow: var(--shadow-sm); }
.ev-scope .reg-summary .reg-sum-h { font-family: var(--font-display) !important; font-size: 19px !important; font-weight: 600 !important; margin: 0 !important; }
.ev-scope .reg-summary .reg-sum-row { display: grid; grid-template-columns: 1fr auto auto; gap: 8px 14px; align-items: baseline; padding: 12px 0 !important; margin: 0 !important; border-bottom: 1px dashed var(--line) !important; }
.ev-scope .reg-summary .reg-sum-row:last-of-type { border-bottom: 0 !important; }
.ev-scope .reg-summary .reg-sum-name { font-size: 13.5px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--ink); }
.ev-scope .reg-summary .reg-sum-each { font-size: 12px !important; color: var(--ink-3) !important; font-family: var(--font-mono) !important; }
.ev-scope .reg-summary .reg-sum-qty { font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.ev-scope .reg-summary .reg-sum-sum { font-size: 13.5px !important; font-weight: 700 !important; white-space: nowrap; color: var(--ink); }
.ev-scope .reg-summary .reg-sum-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 14px !important; margin-top: 6px !important; border-top: 2px solid var(--ink) !important; }
.ev-scope .reg-summary .reg-sum-total b { font-family: var(--font-display) !important; font-size: 24px !important; font-weight: 600 !important; white-space: nowrap; color: var(--ink); }
.ev-scope .reg-summary .reg-progress { display: flex; align-items: center; gap: 8px; margin: 16px 0 0 !important; padding: 0 !important; font-size: 12.5px; color: var(--ink-3); }
.ev-scope .reg-summary .reg-progress-bar { flex: 1; height: 6px; border-radius: 100px; background: var(--bg-sunk); overflow: hidden; padding: 0 !important; }
.ev-scope .reg-summary .reg-progress-fill { height: 100%; background: var(--forest); border-radius: 100px; transition: width .3s; }
.ev-scope .reg-summary .reg-progress > span { font-size: 12.5px; color: var(--ink-3); }
.ev-scope .reg-summary .reg-actions { margin-top: 24px !important; }
.ev-scope .reg-summary .cart-sum-note { margin-top: 14px !important; }
/* bare .reg-sum-each — подпись «% заполнено» в мобильном баре (вне .reg-summary) */
.reg-sum-each { font-size: 12px; color: var(--ink-3); font-family: var(--font-mono); }

/* ── sticky mobile action ── */
.reg-mobilebar { display: none; }
@media (max-width: 940px) {
  .reg-summary { position: static; }
  /* ЭТАЛОН (прототип register.css): sticky bottom:0 → бар упирается в футер и не лезет
     дальше (handoff rule #5: sticky, НЕ fixed). Full-bleed на вьюпорт без overflow через
     calc(50% - 50vw)+width:100vw (математически даёт ровно 100vw, не зависит от гаттера).
     Крупный: 2 строки тотала + кнопка ev-btn-lg ПОЛНОГО размера. .ev-scope+!important — перебиваем ET. */
  .ev-scope .reg-mobilebar { position: sticky !important; bottom: 0 !important; left: auto !important; right: auto !important; z-index: 30; margin-left: calc(50% - 50vw) !important; margin-right: calc(50% - 50vw) !important; width: 100vw !important; max-width: none !important; box-sizing: border-box !important; background: oklch(0.98 0.012 85 / 0.96) !important; backdrop-filter: blur(14px); border: 0 !important; border-top: 1px solid var(--line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 14px 22px calc(14px + env(safe-area-inset-bottom)) !important; display: flex !important; align-items: center !important; gap: 14px !important; }
  .ev-scope .reg-mobilebar .reg-mb-total { flex: 1 !important; min-width: 0 !important; padding: 0 !important; margin: 0 !important; }
  /* кнопка полного размера (ev-btn-lg от базы), но auto-width (не на всю ширину) */
  .ev-scope .reg-mobilebar .tribe-tickets__registration-submit { flex: 0 0 auto !important; width: auto !important; min-width: 0 !important; white-space: nowrap !important; }
  /* sticky-бар в потоке → доп. padding под него не нужен */
  .ev-scope .reg-grid { padding-bottom: 24px !important; }
  /* Impreza scroll-to-top (.w-toplink) перекрывал — прячем на регистрации */
  body.page-tribe-attendee-registration .w-toplink { display: none !important; }
  .reg-desktop-submit { display: none; }
}

/* ── обёртка контента флоу (корзина/регистрация) ──
   padding:0 — gutter даёт уже сама Impreza-секция (.l-section-h, 28px).
   Свой padding тут = двойной отступ и потеря полезной ширины. */
.reg-wrap { max-width: 1180px; margin: 0 auto; padding: 0; }

/* ============================================================
   CART (WooCommerce) redesign
   ============================================================ */
.cart-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 32px; align-items: start; padding: 24px 0 80px; }
@media (max-width: 940px) { .cart-grid { grid-template-columns: 1fr; } }

/* ── Пустая корзина (cart-empty.php): центрированная карточка-заглушка ── */
.cart-empty-state { display: flex; justify-content: center; padding: 32px 0 88px; }
.cart-empty-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); box-shadow: var(--shadow-sm); padding: 48px 40px; max-width: 460px; width: 100%; text-align: center; }
.cart-empty-ic { width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 100px; background: var(--bg-sunk); color: var(--ink-3); display: grid; place-items: center; }
.cart-empty-title { font-family: var(--font-display); font-weight: 500; font-size: 24px; line-height: 1.2; letter-spacing: -0.01em; color: var(--ink); margin: 0 0 8px; }
.cart-empty-text { font-size: 14px; line-height: 1.5; color: var(--ink-3); margin: 0 auto 24px; max-width: 320px; }
.cart-empty-actions { display: flex; flex-direction: column; gap: 10px; }
@media (max-width: 560px) { .cart-empty-card { padding: 36px 22px; } }

.cart-table { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--shadow-sm); }
.cart-thead { display: grid; grid-template-columns: 1fr 130px 132px 130px; gap: 16px; padding: 15px 24px; background: var(--bg-sunk); font-size: 12px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-3); }
.cart-thead .ta-r { text-align: right; }
.cart-thead .ta-c { text-align: center; }
@media (max-width: 720px) { .cart-thead { display: none; } }

.cart-row { display: grid; grid-template-columns: 1fr 130px 132px 130px; gap: 16px; align-items: center; padding: 18px 24px; border-top: 1px solid var(--line); }
.cart-row-prod { display: flex; align-items: center; gap: 16px; min-width: 0; }
.cart-remove { width: 30px; height: 30px; border-radius: 100px; display: grid; place-items: center; background: var(--bg-sunk); color: var(--ink-3); flex-shrink: 0; transition: all .14s; text-decoration: none; font-size: 16px; line-height: 1; }
.cart-remove:hover { background: var(--terracotta-soft); color: var(--terracotta); }
.cart-name { font-weight: 700; font-size: 15px; line-height: 1.3; }
.cart-name-sub { font-size: 12px; color: var(--ink-3); margin-top: 3px; }
.cart-price { font-size: 14px; color: var(--ink-2); text-align: center; font-variant-numeric: tabular-nums; }
.cart-sub { font-weight: 700; font-size: 15px; text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.cart-qty-cell { display: flex; justify-content: center; }
.cart-row-prod .cart-prod-text { min-width: 0; }
.cart-update { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; margin-left: auto; }
.cart-coupon .btn { white-space: nowrap; }

/* ── оверрайды Impreza [type=submit] (зелёный) для наших secondary/ghost кнопок.
   Impreza: [type="submit"]:not(.w-btn):not(.button){color:#fff!important} = специфичность
   (0,3,0). Бьём двойным классом .btn.btn-X (0,3,1) + !important (см. CLAUDE.md). ── */
.ev-scope button.btn.btn-secondary, .ev-scope input[type="submit"].btn.btn-secondary {
  background: var(--surface) !important; color: var(--ink) !important;
  border: 1px solid var(--line) !important; box-shadow: none !important; text-shadow: none !important;
}
.ev-scope button.btn.btn-secondary:hover, .ev-scope input[type="submit"].btn.btn-secondary:hover {
  background: var(--bg-elev) !important; border-color: var(--line-strong) !important;
}
.ev-scope button.btn.btn-ghost {
  background: transparent !important; color: var(--ink-2) !important;
  box-shadow: none !important; border: 0 !important; text-shadow: none !important;
}
.ev-scope button.btn.btn-ghost:hover { background: var(--bg-sunk) !important; color: var(--ink) !important; }
.ev-scope button.btn.btn-primary, .ev-scope input[type="submit"].btn.btn-primary {
  background: var(--forest) !important; color: #fafaf6 !important;
}
.ev-scope button.btn.btn-primary:hover, .ev-scope input[type="submit"].btn.btn-primary:hover {
  background: var(--forest-ink) !important;
}

/* РАЗМЕРЫ кнопок по эталону styles.css .btn (Impreza раздувает до 16/32/radius32/16px) */
.ev-scope a.btn, .ev-scope button.btn, .ev-scope input[type="submit"].btn {
  padding: 10px 16px !important; border-radius: var(--r-md) !important; font-size: 14px !important;
  font-weight: 600 !important; min-height: 0 !important; height: auto !important; line-height: 1.2 !important;
  gap: 8px !important; letter-spacing: -0.005em !important;
}
.ev-scope a.btn.ev-btn-lg, .ev-scope button.btn.ev-btn-lg, .ev-scope input[type="submit"].btn.ev-btn-lg {
  padding: 14px 24px !important; font-size: 16px !important;
}

/* степпер .co-qty поверх нативного WC qty input.
   ⚠ Базовый контейнер-пилюля ОБЯЗАТЕЛЕН (его не было → инпут растягивался на всю ширину).
   Эталон: prototype events.css .co-qty (inline-flex, рамка, radius:100px). Кнопки = .cart-qd. */
.ev-scope .co-qty { display: inline-flex !important; align-items: center !important; gap: 0 !important; width: -moz-max-content !important; width: max-content !important; max-width: none !important; border: 1px solid var(--line-strong) !important; border-radius: 100px !important; overflow: hidden !important; flex-shrink: 0 !important; background: var(--surface) !important; }
.ev-scope .co-qty .cart-qd { width: 36px !important; height: 36px !important; min-width: 0 !important; flex: 0 0 auto !important; display: grid !important; place-items: center !important; padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: var(--bg-sunk) !important; color: var(--ink) !important; font-size: 17px !important; line-height: 1 !important; cursor: pointer; transition: background .12s, color .12s; }
.ev-scope .co-qty .cart-qd:hover { background: var(--forest) !important; color: #fafaf6 !important; }
.ev-scope .co-qty .quantity { margin: 0 !important; padding: 0 !important; display: flex !important; width: 46px !important; flex: 0 0 46px !important; }
.co-qty .quantity { margin: 0; display: flex; }
.co-qty input.qty { width: 46px; height: 36px; padding: 0; border: 0; background: transparent; box-shadow: none; text-align: center; font-weight: 700; font-family: var(--font-mono); font-size: 15px; color: var(--ink); -moz-appearance: textfield; appearance: textfield; }
.co-qty input.qty:focus { outline: none; box-shadow: none; }
.co-qty input.qty::-webkit-outer-spin-button, .co-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

@media (max-width: 720px) {
  .cart-row { grid-template-columns: 1fr auto; gap: 12px 14px; padding: 16px; }
  .cart-row-prod { grid-column: 1 / -1; }
  .cart-price { display: none; }
  .cart-qty-cell { justify-content: flex-start; }
  .cart-sub { align-self: center; }
}

.cart-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 18px 24px; border-top: 1px solid var(--line); background: var(--bg-elev); }
.cart-coupon { display: flex; gap: 10px; flex: 1; min-width: 240px; max-width: 420px; }
.cart-coupon .reg-input { flex: 1; }

.cart-summary { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-xl); padding: 24px; position: sticky; top: 92px; box-shadow: var(--shadow-sm); }
@media (max-width: 940px) { .cart-summary { position: static; } }
.cart-sum-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 0; font-size: 14px; border-bottom: 1px dashed var(--line); }
.cart-sum-row b { font-variant-numeric: tabular-nums; }
.cart-sum-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding-top: 15px; margin-top: 6px; border-top: 2px solid var(--ink); }
.cart-sum-total .lbl { font-size: 15px; font-weight: 700; }
.cart-sum-total .val { font-family: var(--font-display); font-size: 26px; font-weight: 600; white-space: nowrap; }
/* «Итог заказа» — Fraunces (вернул: рефакторинг сводки убрал глобальный .reg-sum-h, корзина на него опиралась). !important бьёт Impreza h2. */
.ev-scope .cart-summary .reg-sum-h { font-family: var(--font-display) !important; font-size: 19px !important; font-weight: 600 !important; color: var(--ink) !important; }
.cart-sum-note { display: flex; gap: 8px; align-items: flex-start; font-size: 12.5px; color: var(--ink-3); margin-top: 14px; line-height: 1.45; }

/* заголовок страницы = .h2 эталона: Fraunces 36/500, lh 1.1, -0.015em (спека §2) */
.reg-co-h2 { font-family: var(--font-display); font-size: 36px; font-weight: 500; line-height: 1.1; letter-spacing: -0.015em; color: var(--ink); margin: 10px 0 0; }
@media (max-width: 560px) { .reg-co-h2 { font-size: 28px; } }

/* ── flow-bar: 3-шаговый индикатор под шапкой (спека §5, register.css v4) ── */
.ev-scope .flow-bar { display: flex; justify-content: center; padding: 22px 0 4px; }
.ev-scope .flow-steps { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; justify-content: center; }
.ev-scope .flow-step { display: flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 100px; font-size: 13px; font-weight: 600; color: var(--ink-3); }
.ev-scope .flow-step[data-active="1"] { background: var(--forest-soft); color: var(--forest-ink); }
.ev-scope .flow-step[data-done="1"] { color: var(--forest-ink); }
.ev-scope .flow-step-n { width: 22px; height: 22px; border-radius: 100px; display: grid; place-items: center; font-size: 12px; font-weight: 700; font-family: var(--font-mono); background: var(--bg-sunk); color: var(--ink-2); flex-shrink: 0; }
.ev-scope .flow-step[data-active="1"] .flow-step-n, .ev-scope .flow-step[data-done="1"] .flow-step-n { background: var(--forest); color: #fff; }
.ev-scope .flow-sep { width: 18px; height: 1px; background: var(--line-strong); }
@media (max-width: 440px) { .ev-scope .flow-step { padding: 6px 9px; font-size: 12px; } .ev-scope .flow-sep { width: 10px; } }
/* подписи этапов показываем ВСЕГДА (юзер хочет НАЗВАНИЯ Корзина/Данные/Оплата, не только
   цифры) — перебиваем bare @media 860 `.flow-steps .flow-step-l{display:none}`. На узком
   переносятся (flex-wrap:wrap уже задан), как эталон. Verified на реальном 390px. */
.ev-scope .flow-steps .flow-step-l { display: inline-block !important; }

/* ============================================================
   ATTENDEE REGISTRATION — интеграция с ET+ (override-шаблоны)
   ============================================================ */
.reg-forms { min-width: 0; }
.reg-card { width: 100%; box-sizing: border-box; }
.reg-fields .reg-input { width: 100%; }
.reg-toggle { cursor: pointer; }

/* скрываем дефолтные ET-обёртки/нотисы, которые могли бы влезть в макет */
.tribe-tickets__registration__page-title,
.tribe-tickets__registration__actions,
.tribe-tickets__mini-cart,
.tribe-tickets__registration-back-to-cart { display: none !important; }
.tribe-common .tribe-tickets__item__attendee__fields { margin: 0; padding: 0; border: 0; }

/* залоченные поля (после «Это я»/«Совпадает») */
.reg-input.ev-locked, select.reg-input.ev-locked { background: var(--bg-sunk); color: var(--ink-3); pointer-events: none; }

/* валидационный нотис ET+ */
.tribe-tickets__notice { margin-bottom: 18px; }

@media (max-width: 940px) { .reg-summary { position: static; } }

/* ── ширина контента: Impreza зажимает AR-страницу до 760px, ET — до 960/800.
   Расширяем под дизайн 1180 (скоуп — класс тела страницы регистрации). ── */
/* padding-top 0 — верхний отступ даёт сам .flow-bar (22px), как в эталоне (спека §5).
   Лишний 40px сверху делал зазор «шапка→шаги» больше эталонного. */
body.page-tribe-attendee-registration .l-section-h,
body.ev-chrome.woocommerce-cart .l-section-h { max-width: 1240px !important; padding: 0 24px 64px !important; margin: 0 auto !important; }
@media (max-width: 640px) { body.page-tribe-attendee-registration .l-section-h, body.ev-chrome.woocommerce-cart .l-section-h { padding: 0 14px 48px !important; } }
.ev-scope .tribe-tickets__registration,
.ev-scope .tribe-tickets__registration-event,
.ev-scope .tribe-tickets__attendee-tickets,
.ev-scope .tribe-tickets__attendee-tickets-form { max-width: none !important; width: 100% !important; }

/* нейтрализуем ET-лейаут полей: наша сетка .reg-fields рулит колонками,
   .reg-field — колонка (label + input), инпут на всю ширину поля. */
.ev-scope .reg-fields > .reg-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; width: auto; float: none; margin: 0; }
.ev-scope .reg-fields .tribe-tickets__form-field-input-wrapper { width: 100%; margin: 0; }
.ev-scope .reg-fields .reg-input { width: 100% !important; max-width: none !important; float: none !important; display: block !important; }
.ev-scope .reg-fields select.reg-input { display: block !important; }
/* лейбл поля под наши токены (перебиваем ET tribe-common-*) */
.ev-scope .reg-field label.tribe-tickets__form-field-label { font-size: 13px; font-weight: 600; color: var(--ink-2); margin: 0; }
/* квадрат чекбокса тоггла (Impreza/ET сбрасывают border у span в button) */
.ev-scope .reg-toggle .reg-toggle-check { border: 1.5px solid var(--line-strong) !important; box-sizing: border-box; }
.ev-scope .reg-toggle[data-on="1"] .reg-toggle-check { border-color: var(--forest) !important; background: var(--forest) !important; }

/* ── ТОЧНОЕ соответствие эталону (замеры прототипа) ── */
/* фон страницы = cream --bg (был холодный 242,244,247).
   .l-canvas корзины тоже красим — иначе при коротком контенте (пустая корзина)
   ниже .l-main просвечивает белый canvas (полоса над футером). */
body.page-tribe-attendee-registration,
body.page-tribe-attendee-registration .l-canvas,
body.page-tribe-attendee-registration .l-main,
body.ev-chrome.woocommerce-cart .l-canvas,
body.ev-chrome.woocommerce-cart .l-main { background: var(--bg) !important; }
/* поле = колонка (лейбл сверху, инпут на всю ширину). ET форсил flex-flow:row */
.ev-scope .reg-fields > .reg-field, .ev-scope .reg-field {
  display: flex !important; flex-direction: column !important; flex-wrap: nowrap !important;
  align-items: stretch !important; gap: 6px !important; margin: 0 !important; padding: 0 !important;
  align-self: start !important;
}
/* ряды грида = по контенту (был лишний растяг до 81px → визуальный зазор 28 вместо 16) */
.ev-scope .reg-card .reg-fields { grid-auto-rows: min-content !important; align-content: start !important; }
/* ET-обёртка добавляла padding-left:20px → карточка/группа были сдвинуты вправо
   относительно заголовка. Выравниваем по левому краю reg-wrap. */
.ev-scope .tribe-tickets__registration { padding: 0 !important; margin: 0 !important; }

/* ── ВЕРТИКАЛЬНЫЕ ОТСТУПЫ: .tribe-common (ET) имеет сброс *{margin:0;padding:0},
   который обнуляет мои отступы внутри формы. Восстанавливаем по замерам прототипа. ── */
.ev-scope .reg-grid { padding: 24px 0 80px !important; }
.ev-scope .reg-group { margin-bottom: 34px !important; }
.ev-scope .reg-group:last-child { margin-bottom: 0 !important; }
.ev-scope .reg-group-head { margin-bottom: 14px !important; }
.ev-scope .reg-card { margin-bottom: 14px !important; }
.ev-scope .reg-card:last-child { margin-bottom: 0 !important; }
.ev-scope .reg-card-head { margin-bottom: 16px !important; }
.ev-scope .reg-event-date { margin-top: 14px !important; }   /* h2 → дата (эталон: обёртка margin-top:14) */
.ev-scope .reg-event-name { margin-top: 4px !important; }    /* дата → название */
.ev-scope .reg-sub { margin-top: 4px !important; padding-top: 18px !important; }
.ev-scope .reg-sub-h { margin-bottom: 14px !important; }
/* лейбл поля: 13/600, на всю ширину, одна строка */
.ev-scope .reg-field label, .ev-scope .reg-field label.tribe-tickets__form-field-label {
  display: block !important; width: 100% !important; font-size: 13px !important; font-weight: 600 !important;
  color: var(--ink-2) !important; margin: 0 !important; flex: 0 0 auto !important;
}
.ev-scope .reg-field .tribe-tickets__form-field-input-wrapper { width: 100% !important; flex: 0 0 auto !important; }
/* заголовок: margin-top 10px (эталон) */
.ev-scope .reg-co-h2 { margin-top: 10px !important; }
/* тоггл «Это я»/«Совпадает»: padding 7/13, без раздувания Impreza */
.ev-scope .reg-toggle {
  padding: 7px 13px !important; min-height: 0 !important; height: auto !important;
  font-size: 12.5px !important; font-weight: 600 !important; gap: 7px !important; line-height: 1.2 !important;
}

/* ── ПЕРЕБИВАЕМ ET/Impreza (их правила без !important, но грузятся позже и
   имеют равную/выше специфичность). Точные токены эталона v3 (спека 08). ── */
.ev-scope .reg-card {
  background: var(--surface) !important; border: 1px solid var(--line) !important;
  border-left: 1px solid var(--line) !important; /* убираем 4px-акцент ET */
  border-radius: var(--r-xl) !important; padding: 22px 24px !important;
  box-shadow: var(--shadow-sm) !important; margin: 0 0 14px !important;
}
.ev-scope .reg-card:last-child { margin-bottom: 0 !important; }
.ev-scope .reg-fields .reg-input,
.ev-scope .reg-fields input.reg-input,
.ev-scope .reg-fields select.reg-input,
.ev-scope .reg-fios .reg-input,
.ev-scope .reg-fios input.reg-input,
.ev-scope .cart-coupon .reg-input {
  background: var(--surface) !important; color: var(--ink) !important;
  border: 1px solid var(--line) !important; border-radius: var(--r-md) !important;
  padding: 11px 14px !important; min-height: 0 !important; height: auto !important;
  font-size: 14px !important; font-family: var(--font-ui) !important; box-shadow: none !important;
  line-height: 1.3 !important; box-sizing: border-box !important;
}
/* Код страны (+7) — 14px моноширинный (правило .reg-field .iti--separate-dial-code
   до free-формы не дотягивалось: код рендерился 16px Manrope, шире эталона).
   padding-left НЕ задаём — intl-tel сам ставит inline-отступ по ширине кода
   (для +7 ~75px, для +375 ~92px); жёсткое значение ломало длинные коды (налегание). */
.ev-scope .iti__selected-dial-code { font-family: var(--font-mono) !important; font-size: 14px !important; }
/* Стрелка дропдауна страны — CSS-треугольник вниз. В контексте .reg-card border
   обнулялся (стрелка пропадала, UX неочевиден) → задаём явно под .ev-scope. */
.ev-scope .iti__arrow {
  width: 0 !important; height: 0 !important; margin-left: 6px !important; background: none !important;
  border-left: 3px solid transparent !important; border-right: 3px solid transparent !important;
  border-top: 4px solid var(--ink-3) !important; border-bottom: 0 !important;
  transition: transform .15s !important;
}
.ev-scope .iti__arrow--up { border-top: 0 !important; border-bottom: 4px solid var(--ink-3) !important; }
/* Кнопка выбора страны (.iti__selected-country) — Impreza/ET+ раздували её
   padding (11px 20px) на форме участников → расстояния флаг/стрелка/код разъезжались
   против free-формы. Приводим внутренние отступы к единому виду (значения intl-tel
   default из free-формы) — обе формы идентичны пиксель-в-пиксель. */
.ev-scope .iti__selected-country { padding: 0 !important; }
.ev-scope .iti__selected-country-primary { padding: 0 6px 0 8px !important; }
/* степпер количества: число-инпут = высота кнопок 36px (Impreza форсил 45) */
.ev-scope .co-qty input.qty { height: 36px !important; min-height: 0 !important; padding: 0 !important; width: 46px !important; max-width: 46px !important; min-width: 0 !important; flex: 0 0 46px !important; box-sizing: border-box !important; }
.ev-scope .reg-fields .reg-input:focus,
.ev-scope .reg-fields select.reg-input:focus,
.ev-scope .reg-fios .reg-input:focus,
.ev-scope .cart-coupon .reg-input:focus {
  border-color: var(--forest) !important; box-shadow: 0 0 0 3px var(--forest-soft) !important; outline: none !important;
}
.ev-scope .reg-fields select.reg-input { padding-right: 38px !important; }
.ev-scope .reg-fields .reg-input::placeholder { color: var(--ink-mute) !important; opacity: 1; }
/* убрать дефолтную ET-обёртку отступов поля */
.ev-scope .reg-fields .tribe-tickets__form-field-input-wrapper { margin: 0 !important; padding: 0 !important; }
/* ── РАСКЛАДКА: ФИО в 3 колонки, остальные пары в 2 (6-колоночная сетка) ── */
.ev-scope .reg-card .reg-fields { grid-template-columns: repeat(6, minmax(0,1fr)) !important; }
.ev-scope .reg-card .reg-field { grid-column: span 3; }   /* по умолчанию 2 в ряд (email/телефон/орг/должность) */
.ev-scope .reg-card .reg-field[data-ev-slug="lastname"],
.ev-scope .reg-card .reg-field[data-ev-slug="firstname"],
.ev-scope .reg-card .reg-field[data-ev-slug="middlename"],
.ev-scope .reg-card .reg-field[data-ev-slug="g_lastname"],
.ev-scope .reg-card .reg-field[data-ev-slug="g_firstname"],
.ev-scope .reg-card .reg-field[data-ev-slug="g_middlename"],
.ev-scope .reg-card .reg-field[data-ev-slug="age"] { grid-column: span 2; }   /* ФИО + возраст: 3 в ряд */
.ev-scope .reg-card .reg-sub { grid-column: 1 / -1; }
@media (max-width: 640px) {
  .ev-scope .reg-card .reg-fields { grid-template-columns: 1fr !important; }
  .ev-scope .reg-card .reg-field { grid-column: auto !important; }
  /* iOS Safari зумит вьюпорт при фокусе на input с font-size<16px → форма
     «расширяется шире экрана». 16px = порог анти-зума (десктоп остаётся 14px). */
  .ev-scope .reg-fields .reg-input,
  .ev-scope .reg-fields input.reg-input,
  .ev-scope .reg-fields select.reg-input,
  .ev-scope .reg-copy-row select.reg-copy-select { font-size: 16px !important; }
}

/* ── телефон: слитное поле intl-tel (флаг+код в той же рамке + номер) ── */
.ev-scope .reg-field .iti { width: 100%; display: block; }
.ev-scope .reg-field .iti input[type="tel"].reg-input { width: 100% !important; }
.ev-scope .reg-field .iti--separate-dial-code .iti__selected-dial-code { font-family: var(--font-mono); font-size: 14px; color: var(--ink-2); }
/* ── дропдауны копирования (Скопировать данные из / Сопровождающий) ──
   .reg-copy-select также имеет класс .reg-input → наследует вид (фон/рамка/шеврон). */
.ev-scope .reg-card .reg-copy-row,
.ev-scope .reg-card .reg-sub .reg-copy-row {
  grid-column: 1 / -1 !important;
  display: flex !important; flex-direction: column !important; gap: 6px !important;
  min-width: 0; width: 100%; margin: 0 0 2px !important; align-self: start !important;
}
.ev-scope .reg-copy-row > label {
  display: block !important; width: 100% !important; font-size: 13px !important; font-weight: 600 !important;
  color: var(--ink-2) !important; margin: 0 !important;
}
.ev-scope .reg-copy-row select.reg-copy-select { width: 100% !important; display: block !important; }
/* активный выбор — лёгкая подсветка как у тоггла «Это я» */
.ev-scope .reg-copy-row[data-ev-active="1"] select.reg-copy-select {
  background-color: var(--forest-soft) !important; border-color: transparent !important; color: var(--forest-ink) !important;
}

/* убрать ET-точки валидации (.tribe-tickets__form ::before/::after — 4×4 маркеры по углам) */
.ev-scope .reg-card::before, .ev-scope .reg-card::after,
.ev-scope .tribe-tickets__form::before, .ev-scope .tribe-tickets__form::after { display: none !important; content: none !important; }

/* подсветка незаполненных обязательных полей (после «Сохранить и оформить») */
.ev-scope .reg-card .reg-field.ev-field-error .reg-input,
.ev-scope .reg-card .reg-field.ev-field-error .iti input[type="tel"].reg-input {
  border: 1px solid var(--terracotta) !important; box-shadow: 0 0 0 3px var(--terracotta-soft) !important;
}
.ev-scope .reg-field.ev-field-error label { color: var(--terracotta) !important; }

/* список стран в дропдауне: больше воздуха + отступ кода (был сжат, padding 0) */
.iti__country { padding: 9px 14px !important; }
.iti__country .iti__country-name { margin: 0 6px 0 4px !important; }
.iti__country .iti__dial-code { color: var(--ink-3, #888) !important; }
/* 16px на мобайле — иначе iOS Safari зумит вьюпорт при фокусе на поиск стран. На
   десктопе зума нет → компактнее (16px смотрелся громоздко в дропдауне). */
.iti__search-input { padding: 9px 14px !important; font-size: 16px !important; box-sizing: border-box !important; width: 100% !important; line-height: 1.3 !important; border-radius: 0 !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; }
@media (min-width: 561px) { .iti__search-input { padding: 8px 13px !important; font-size: 14px !important; } }
/* дропдаун стран НЕ шире вьюпорта (на узких телефонах список ~422px вылезал вправо) */
.ev-scope .iti .iti__dropdown-content, .iti--container .iti__dropdown-content { max-width: calc(100vw - 24px) !important; box-sizing: border-box !important; overflow-x: hidden !important; }
.ev-scope .iti .iti__country-list, .iti--container .iti__country-list { max-width: 100% !important; box-sizing: border-box !important; }

/* спрайт флагов: CSS intl-tel ссылается ../img/ — даём абсолютный путь */
.iti__flag { background-image: url("/wp-content/themes/Impreza-child/assets/vendor/intl-tel-input/img/flags.webp") !important; }
.iti__flag.iti__globe { background-image: url("/wp-content/themes/Impreza-child/assets/vendor/intl-tel-input/img/globe.webp") !important; }
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
  .iti__flag { background-image: url("/wp-content/themes/Impreza-child/assets/vendor/intl-tel-input/img/flags@2x.webp") !important; }
  .iti__flag.iti__globe { background-image: url("/wp-content/themes/Impreza-child/assets/vendor/intl-tel-input/img/globe@2x.webp") !important; }
}

/* ══════════════════════════════════════════════════════════════════════════
   CHECKOUT (handoff 5 / спека 10-checkout.md). Значения дословные из register.css.
   Под .ev-scope + !important — перебиваем WC/Impreza/woocommerce.css.
   ══════════════════════════════════════════════════════════════════════════ */
/* купон-полоса */
.ev-scope .co-coupon { display: flex !important; align-items: center; gap: 11px; width: 100%; text-align: left; padding: 15px 18px !important; margin-top: 16px !important; border-radius: var(--r-lg) !important; background: var(--ochre-soft) !important; border: 1px solid oklch(0.85 0.06 75) !important; font-size: 14px; color: var(--ink-2); cursor: pointer; transition: background .14s; box-shadow: none !important; }
.ev-scope .co-coupon:hover { background: oklch(0.91 0.06 75) !important; }
.ev-scope .co-coupon b { color: var(--ochre-deep); font-weight: 700; }
.ev-scope .co-coupon > span { flex: 1; }
.ev-scope .co-coupon .co-coupon-chev { flex-shrink: 0; transition: transform .18s; }
.ev-scope .co-coupon[data-open="1"] .co-coupon-chev { transform: rotate(180deg); }
/* co-coupon-body: видимость через JS-атрибут [hidden] (display:flex перебивал [hidden],
   поэтому раскрытие не работало). Внутренняя WC-форма .checkout_coupon скрыта самим WC
   (display:none, показывается по .showcoupon) → форсим display:flex, иначе поле height:0. */
.ev-scope .co-coupon-body { display: none !important; gap: 10px; margin-top: 10px; max-width: 480px; }
.ev-scope .co-coupon-body:not([hidden]) { display: flex !important; }
/* поле «Промокод»: Impreza-стили .input-text перебивали базовый .reg-input (прозрачный фон,
   border-radius 24px пилюля, line-height 45px → высота 71px, еле видимая рамка). Форсим белый
   фон + рамку + умеренное скругление + height 46px (эталон handoff 5). */
.ev-scope .co-coupon-body input#coupon_code, .ev-scope .co-coupon-body .reg-input { flex: 1; -webkit-appearance: none !important; appearance: none !important; background: var(--surface) !important; background-clip: padding-box !important; border: 1px solid var(--line) !important; border-radius: var(--r-md) !important; padding: 0 16px !important; height: 46px !important; min-height: 0 !important; line-height: 1.3 !important; font-size: 15px !important; font-family: var(--font-ui) !important; color: var(--ink) !important; box-shadow: none !important; box-sizing: border-box !important; }
.ev-scope .co-coupon-body input#coupon_code:focus { border-color: var(--forest) !important; box-shadow: 0 0 0 3px var(--forest-soft) !important; outline: none !important; }
.ev-scope .co-coupon-body .btn-secondary { -webkit-appearance: none !important; appearance: none !important; background-clip: padding-box !important; height: 46px !important; min-height: 0 !important; padding: 0 20px !important; border-radius: var(--r-md) !important; font-size: 15px !important; flex-shrink: 0; box-shadow: none !important; }
/* убираем любые Impreza-псевдоэлементы/тени под полем и кнопкой купона («подложка»):
   .btn::before (absolute inset fill-эффект) + .input-text артефакты. */
.ev-scope .co-coupon-body input#coupon_code::before, .ev-scope .co-coupon-body input#coupon_code::after,
.ev-scope .co-coupon-body .btn-secondary::before, .ev-scope .co-coupon-body .btn-secondary::after { display: none !important; content: none !important; box-shadow: none !important; background: none !important; }
/* форма купона и её обёртки: WooCommerce-дефолт рисует .checkout_coupon серым блоком
   (border+padding+background) — это «подложка» под полем/кнопкой (видна в Safari/gap).
   Глушим фон/рамку/тень с body-специфичностью, чтобы перебить WC/Impreza наверняка. */
body.woocommerce-checkout .ev-scope .co-coupon-body,
body.woocommerce-checkout .ev-scope .co-coupon-body form.checkout_coupon,
body.woocommerce-checkout .ev-scope .co-coupon-body .woocommerce-form-coupon { background: transparent !important; background-color: transparent !important; background-image: none !important; border: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; border-radius: 0 !important; }
.ev-scope .co-coupon-body form.checkout_coupon { display: flex !important; gap: 10px; flex: 1; margin: 0 !important; padding: 0 !important; }
.ev-scope .co-coupon-body .checkout_coupon p { display: none !important; }
/* reg-grid чекаута: левая колонка minmax(0,1fr), правая 360px */
.ev-scope form.checkout.reg-grid { display: grid !important; grid-template-columns: minmax(0, 1fr) 360px !important; gap: 32px !important; align-items: start !important; padding: 24px 0 80px !important; }
@media (max-width: 940px) { .ev-scope form.checkout.reg-grid { grid-template-columns: 1fr !important; } }
.ev-scope .co-left { min-width: 0; }
/* карточки */
.ev-scope .reg-card.co-payer, .ev-scope .reg-card.co-note-card { background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: var(--r-xl) !important; padding: 22px 24px !important; box-shadow: var(--shadow-sm) !important; }
.ev-scope .co-block-h { font-family: var(--font-display) !important; font-size: 19px !important; font-weight: 600 !important; letter-spacing: -0.01em !important; color: var(--ink) !important; margin: 0 !important; }
.ev-scope .co-block-h .co-opt { font-family: var(--font-ui) !important; font-size: 13px !important; font-weight: 500 !important; color: var(--ink-mute) !important; letter-spacing: 0 !important; }
.ev-scope .co-block-sub { font-family: var(--font-ui) !important; font-size: 13.5px !important; color: var(--ink-3) !important; margin: 6px 0 0 !important; line-height: 1.45 !important; }
/* поля billing (WC .form-row) → .reg-field/.reg-input */
.ev-scope .co-payer .reg-fields { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 16px 20px !important; }
@media (max-width: 560px) { .ev-scope .co-payer .reg-fields { grid-template-columns: 1fr !important; } }
.ev-scope .co-payer .reg-fields .form-row { display: flex !important; flex-direction: column !important; gap: 6px !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
.ev-scope .co-payer .reg-fields .form-row-wide, .ev-scope .co-payer .reg-fields #billing_phone_field, .ev-scope .co-payer .reg-fields #billing_email_field { grid-column: 1 / -1 !important; }
.ev-scope .co-payer .reg-fields .form-row label { font-size: 13px !important; font-weight: 600 !important; color: var(--ink-2) !important; margin: 0 !important; display: block !important; }
.ev-scope .co-payer .reg-fields .form-row label .required, .ev-scope .co-payer .reg-fields .form-row label abbr.required { color: var(--terracotta) !important; text-decoration: none !important; border: 0 !important; }
.ev-scope .co-payer .reg-fields .woocommerce-input-wrapper { width: 100% !important; margin: 0 !important; display: block !important; }
.ev-scope .co-payer .reg-fields .input-text, .ev-scope .co-payer .reg-fields input.input-text { width: 100% !important; max-width: none !important; padding: 11px 14px !important; min-height: 0 !important; height: auto !important; border: 1px solid var(--line) !important; border-radius: var(--r-md) !important; background: var(--surface) !important; font-family: var(--font-ui) !important; font-size: 14px !important; color: var(--ink) !important; box-shadow: none !important; line-height: 1.3 !important; box-sizing: border-box !important; }
.ev-scope .co-payer .reg-fields .input-text:focus { border-color: var(--forest) !important; box-shadow: 0 0 0 3px var(--forest-soft) !important; outline: none !important; }
.ev-scope .co-payer .reg-fields .input-text::placeholder { color: var(--ink-mute) !important; opacity: 1; }
/* примечание к заказу */
.ev-scope .co-note-card .form-row { margin: 0 !important; padding: 0 !important; }
.ev-scope .co-note-card label { display: none !important; }
.ev-scope .co-note-card .woocommerce-input-wrapper { width: 100% !important; display: block !important; }
.ev-scope .co-note-card textarea, .ev-scope .co-textarea, .ev-scope #order_comments { width: 100% !important; padding: 11px 14px !important; border: 1px solid var(--line) !important; border-radius: var(--r-md) !important; background: var(--surface) !important; font-family: var(--font-ui) !important; font-size: 14px !important; color: var(--ink) !important; line-height: 1.5 !important; resize: vertical !important; min-height: 88px !important; margin-top: 16px !important; box-shadow: none !important; box-sizing: border-box !important; }
.ev-scope .co-note-card textarea:focus, .ev-scope #order_comments:focus { border-color: var(--forest) !important; box-shadow: 0 0 0 3px var(--forest-soft) !important; outline: none !important; }
/* summary правая колонка */
.ev-scope .reg-summary.co-summary { background: var(--surface) !important; border: 1px solid var(--line) !important; border-radius: var(--r-xl) !important; padding: 24px !important; position: sticky !important; top: 92px !important; box-shadow: var(--shadow-sm) !important; }
@media (max-width: 940px) { .ev-scope .reg-summary.co-summary { position: static !important; } }
.ev-scope .co-summary .reg-sum-h { font-family: var(--font-display) !important; font-size: 19px !important; font-weight: 600 !important; margin: 0 0 4px !important; }
.ev-scope .co-sum-links { display: flex !important; align-items: center; gap: 8px; margin: 4px 0 16px !important; }
.ev-scope .co-link { font-size: 13px !important; font-weight: 600 !important; color: var(--forest) !important; background: none !important; border: 0 !important; padding: 0 !important; cursor: pointer; text-decoration: none; }
.ev-scope .co-link:hover { text-decoration: underline; }
.ev-scope .co-dot { color: var(--ink-mute); }
/* позиции — те же .reg-sum-* что в регистрации (под .reg-summary, но тут .co-summary) */
.ev-scope .co-summary .reg-sum-row { display: grid !important; grid-template-columns: 1fr auto auto !important; gap: 8px 14px !important; align-items: baseline !important; padding: 12px 0 !important; margin: 0 !important; border-bottom: 1px dashed var(--line) !important; }
.ev-scope .co-summary .reg-sum-row:first-of-type { padding-top: 2px !important; }
.ev-scope .co-summary .reg-sum-name { font-size: 13.5px !important; font-weight: 600 !important; line-height: 1.3 !important; color: var(--ink) !important; }
.ev-scope .co-summary .reg-sum-each { font-size: 12px !important; color: var(--ink-3) !important; font-family: var(--font-mono) !important; }
.ev-scope .co-summary .reg-sum-sum { font-size: 13.5px !important; font-weight: 700 !important; white-space: nowrap !important; color: var(--ink) !important; text-align: right !important; }
.ev-scope .co-sub-row { display: flex !important; justify-content: space-between !important; align-items: baseline !important; gap: 12px !important; padding: 12px 0 0 !important; font-size: 14px !important; color: var(--ink-2) !important; }
.ev-scope .co-sub-row b { font-weight: 700 !important; color: var(--ink) !important; font-variant-numeric: tabular-nums !important; white-space: nowrap !important; }
.ev-scope .co-summary .reg-sum-total { display: flex !important; justify-content: space-between !important; align-items: baseline !important; gap: 12px !important; padding-top: 14px !important; margin-top: 6px !important; border-top: 2px solid var(--ink) !important; }
.ev-scope .co-summary .reg-sum-total b { font-family: var(--font-display) !important; font-size: 24px !important; font-weight: 600 !important; white-space: nowrap !important; color: var(--ink) !important; }
.ev-scope .co-summary .reg-sum-total .amount { font-family: var(--font-display) !important; }
/* способы оплаты (WC .wc_payment_methods) → .co-pay */
.ev-scope .wc_payment_methods { list-style: none !important; display: flex !important; flex-direction: column !important; gap: 10px !important; margin: 20px 0 0 !important; padding: 0 !important; border: 0 !important; }
.ev-scope .wc_payment_methods li.wc_payment_method { display: flex !important; flex-wrap: wrap !important; align-items: flex-start !important; gap: 12px !important; padding: 15px 16px !important; margin: 0 !important; border: 1.5px solid var(--line) !important; border-radius: var(--r-md) !important; background: var(--surface) !important; cursor: pointer; list-style: none !important; transition: border-color .14s, background .14s; }
.ev-scope .wc_payment_methods li.wc_payment_method:has(> input:checked) { border-color: var(--forest) !important; background: var(--forest-soft) !important; }
.ev-scope .wc_payment_methods li.wc_payment_method > input[type="radio"] { -webkit-appearance: none !important; appearance: none !important; width: 20px !important; height: 20px !important; margin: 1px 0 0 !important; flex-shrink: 0 !important; border: 2px solid var(--line-strong) !important; border-radius: 100px !important; background: var(--surface) !important; position: static !important; opacity: 1 !important; pointer-events: auto !important; cursor: pointer; }
.ev-scope .wc_payment_methods li.wc_payment_method > input[type="radio"]:checked { border-color: var(--forest) !important; background: radial-gradient(circle, var(--forest) 0 5px, var(--surface) 6px) !important; }
.ev-scope .wc_payment_methods li.wc_payment_method > label { font-size: 15px !important; font-weight: 700 !important; color: var(--ink) !important; margin: 0 !important; padding: 0 !important; flex: 1; min-width: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; }
.ev-scope .wc_payment_methods li.wc_payment_method > label img { max-height: 22px !important; width: auto !important; margin: 0 !important; }
.ev-scope .wc_payment_methods li.wc_payment_method .payment_box { flex-basis: 100% !important; width: 100% !important; margin: 4px 0 0 !important; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; font-size: 12.5px !important; color: var(--ink-3) !important; line-height: 1.4 !important; }
.ev-scope .wc_payment_methods li.wc_payment_method .payment_box::before { display: none !important; }
.ev-scope .wc_payment_methods li.wc_payment_method .payment_box p { margin: 0 !important; padding: 0 !important; }
/* приватность */
.ev-scope .co-privacy { font-size: 12.5px !important; line-height: 1.55 !important; color: var(--ink-3) !important; margin: 18px 0 0 !important; }
.ev-scope .co-privacy a { color: var(--forest) !important; font-weight: 600 !important; }
.ev-scope .woocommerce-privacy-policy-text { display: none !important; }
/* terms-чекбокс → .co-terms */
.ev-scope .woocommerce-terms-and-conditions-wrapper { margin: 16px 0 0 !important; }
.ev-scope .woocommerce-terms-and-conditions-wrapper .form-row { margin: 0 !important; padding: 0 !important; }
.ev-scope label.woocommerce-form__label-for-checkbox { display: flex !important; align-items: flex-start !important; gap: 11px !important; margin: 0 !important; font-size: 13.5px !important; line-height: 1.45 !important; color: var(--ink-2) !important; cursor: pointer; }
.ev-scope label.woocommerce-form__label-for-checkbox input#terms { position: absolute !important; opacity: 0 !important; pointer-events: none !important; }
.ev-scope label.woocommerce-form__label-for-checkbox::before { content: ''; width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; border-radius: 6px; border: 1.5px solid var(--line-strong); box-sizing: border-box; transition: background .14s, border-color .14s; }
.ev-scope label.woocommerce-form__label-for-checkbox:has(input#terms:checked)::before { background: var(--forest) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 12px no-repeat; border-color: var(--forest); }
.ev-scope label.woocommerce-form__label-for-checkbox a { color: var(--forest) !important; font-weight: 600 !important; }
/* WC выводит обяз.-звёздочку как <abbr.required> — отдельный flex-элемент label → улетал
   к правому краю, отрываясь от текста. Прячем WC-abbr, рисуем «*» через ::after текста-span
   → звёздочка примыкает к «…сайта» в потоке. */
.ev-scope label.woocommerce-form__label-for-checkbox abbr.required,
.ev-scope label.woocommerce-form__label-for-checkbox .required { display: none !important; }
.ev-scope label.woocommerce-form__label-for-checkbox .woocommerce-terms-and-conditions-checkbox-text::after { content: ' *' !important; color: var(--terracotta) !important; font-weight: 600 !important; }
/* кнопка place_order → .co-confirm. Текст плоский (WC checkout.js затирает HTML через
   .text(data-value) при выборе оплаты). white-space:nowrap — текст «Подтвердить заказ ·
   {Итого}» в ОДНУ строку. Замок убран по просьбе (был ::before mask). */
.ev-scope #place_order, .ev-scope button#place_order.co-confirm { margin-top: 18px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; width: 100% !important; padding: 14px 24px !important; font-size: 16px !important; line-height: 1.2 !important; white-space: nowrap !important; border-radius: var(--r-md) !important; background: var(--forest) !important; color: #fafaf6 !important; font-family: var(--font-ui) !important; font-weight: 600 !important; border: 0 !important; cursor: pointer; box-shadow: none !important; float: none !important; }
.ev-scope #place_order:hover:not(:disabled) { background: var(--forest-ink) !important; }
.ev-scope #place_order:disabled, .ev-scope #place_order[disabled] { opacity: .5 !important; cursor: not-allowed !important; }
.ev-scope .co-sec-note { margin-top: 14px !important; justify-content: center !important; text-align: center !important; }
/* мобильный бар чекаута (= эталон) */
.ev-scope .co-mobilebar .co-mb-confirm:disabled { opacity: .5 !important; cursor: not-allowed !important; }
/* WC-таблица ревью спрятана не нужна — мы строим свою .co-review; на всякий случай скрываем стоковые элементы */
.ev-scope #order_review .shop_table.woocommerce-checkout-review-order-table { display: none !important; }
.ev-scope #order_review_heading { display: none !important; }
.ev-scope #order_review .tribe-checkout-backlinks { display: none !important; }
.ev-scope #order_review, .ev-scope .co-review, .ev-scope .woocommerce-checkout-payment, .ev-scope #payment { width: 100% !important; max-width: none !important; box-sizing: border-box !important; float: none !important; background: none !important; border: 0 !important; }
/* #order_review БЕЗ своего padding: .co-summary уже даёт 24px. Двойной отступ (24+26)
   зажимал контент до 258px → кнопка «Подтвердить заказ · {сумма}» переносилась на 2 строки
   и контент был сдвинут относительно заголовка «Ваш заказ». padding:0 → полная ширина. */
.ev-scope #order_review { padding: 0 !important; box-shadow: none !important; }
/* купон-полоса: убираем жирную focus-рамку при клике мышью (была видна как рамка вокруг
   полоски), оставляем тонкий focus-ring только для клавиатурной навигации (a11y). */
.ev-scope .co-coupon:focus { outline: none !important; }
.ev-scope .co-coupon:focus-visible { outline: 2px solid var(--forest) !important; outline-offset: 2px; }
.ev-scope #payment .form-row.place-order { padding: 0 !important; margin: 0 !important; }
.ev-scope #payment .terms-and-conditions, .ev-scope #payment .wc-terms-and-conditions { margin: 0 !important; }
/* телефон плательщика: отступ под флаг+код (мой .input-text padding перебивал intl-tel) */
.ev-scope .co-payer .reg-fields .iti { width: 100% !important; display: block !important; }
.ev-scope .co-payer .reg-fields .iti input[type="tel"].input-text { padding-left: 92px !important; }
.ev-scope .co-payer .reg-fields .iti--separate-dial-code .iti__selected-dial-code { font-family: var(--font-mono) !important; font-size: 14px !important; color: var(--ink-2) !important; }
/* WC login-нотис «Уже покупали?» — не в дизайне (вход через sktvd-auth); прячем */
body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout form.woocommerce-form-login { display: none !important; }

/* ============================================================
   LEGAL DOCS (.ev-doc) — единый стиль юр-документов /documents/
   ============================================================ */
.ev-doc { max-width: 820px; margin: 0 auto; padding: 16px 24px 64px; box-sizing: border-box; font-family: var(--font-ui); color: var(--ink); font-size: 15px; line-height: 1.65; }  /* padding-top 16 = отступ как на хабе; боковые 24 — чтобы текст не прилипал к краям на мобайле */
@media (max-width: 560px) { .ev-doc { padding-left: 16px; padding-right: 16px; } }
/* хлебные крошки внутри документа (Главная → Документы → {название}) — навигация назад */
.ev-doc .ev-doc-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--font-ui) !important; font-size: 13px; line-height: 1.4 !important; color: var(--ink-3); margin: 0 0 20px !important; }
.ev-doc .ev-doc-crumb a { color: var(--ink-3) !important; font-weight: 600; transition: color .15s; }
.ev-doc .ev-doc-crumb a:hover { color: var(--forest-ink) !important; }
.ev-doc .ev-doc-crumb svg { opacity: .55; flex-shrink: 0; }
.ev-doc .ev-doc-crumb span { color: var(--ink-2); font-weight: 700; }  /* текущий документ — жирным (как активный пункт в разделе) */
.ev-doc h1 { font-family: var(--font-display); font-weight: 500; font-size: 32px; line-height: 1.15; letter-spacing: -0.015em; color: var(--ink); margin: 0 0 8px; }
.ev-doc .ev-doc-meta { font-size: 13px; color: var(--ink-3); margin: 0 0 28px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.ev-doc h2 { font-family: var(--font-display); font-weight: 500; font-size: 22px; line-height: 1.2; color: var(--ink); margin: 32px 0 12px; }
.ev-doc h3 { font-size: 16px; font-weight: 700; color: var(--ink); margin: 22px 0 8px; }
.ev-doc p { margin: 0 0 12px; }
.ev-doc ol, .ev-doc ul { margin: 0 0 14px; padding-left: 22px; }
.ev-doc li { margin: 0 0 8px; }
.ev-doc a { color: var(--forest); font-weight: 600; text-decoration: none; }
.ev-doc a:hover { text-decoration: underline; }
.ev-doc .ev-doc-ref { background: var(--bg-sunk); border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px 18px; margin: 24px 0; font-size: 14px; }
.ev-doc-hub-group { margin: 0 0 28px; }
.ev-doc-hub-group h2 { margin-top: 0; }
.ev-doc-hub-list { list-style: none; padding: 0; margin: 0; }
.ev-doc-hub-list li { margin: 0 0 10px; }
@media (max-width: 560px) { .ev-doc { font-size: 14.5px; } .ev-doc h1 { font-size: 26px; } }

/* ============================================================
   DOCUMENTS HUB (/documents/) — hi-fi по handoff
   ============================================================ */

/* контейнер страницы 1114: обнуляем боковые/низ Impreza-контейнера (.ev-container рулит),
   но СОХРАНЯЕМ padding-top — это штатная компенсация Impreza под fixed-шапку (190px десктоп,
   адаптивно на мобайле). Раньше padding:0 убирал её → hero уезжал под шапку. */
body.page-id-1114 .l-section-h { max-width: none !important; padding-left: 0 !important; padding-right: 0 !important; padding-bottom: 0 !important; }
body.page-id-1114 .l-main { background: var(--bg) !important; }
/* шрифт: Impreza навязывает Montserrat ссылкам/абзацам внутри контента — возвращаем Manrope
   на .doc-* элементы, где documents.css полагался на наследование (иначе шрифт «не тот»,
   жирнее и «Партнёрам и спонсорам» переносится на 2 строки из-за более широкого Montserrat). */
.doc-hero p, .doc-crumb, .doc-rail-link, .doc-cat-sub, .doc-desc, .doc-note p { font-family: var(--font-ui) !important; }
.doc-rail-link { white-space: nowrap !important; }

/* documents.css — /documents/ legal hub for events.skotovody.com */

/* ─── page hero (light, compact) ─── */
.doc-hero { padding: 16px 0 0; }
.doc-crumb {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; color: var(--ink-3); margin-bottom: 22px;
}
.doc-crumb a { color: var(--ink-3); transition: color .15s; }
.doc-crumb a:hover { color: var(--forest-ink); }
.doc-crumb svg { opacity: .6; }
.doc-hero-inner { max-width: 720px; }
.doc-hero h1 {
  font-family: var(--font-display); font-weight: 600; font-size: 50px;
  line-height: 1.04; letter-spacing: -0.02em; color: var(--ink); margin: 12px 0 0;
}
.doc-hero p {
  margin: 16px 0 0; font-size: 17px; line-height: 1.6; color: var(--ink-3);
  text-wrap: pretty;
}
.doc-hero-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin-top: 26px;
  font-family: var(--font-mono); font-size: 12.5px; color: var(--ink-2);
}
.doc-hero-meta .dot { width: 4px; height: 4px; border-radius: 50%; background: var(--line-strong); }

/* ─── two-column layout: sticky rail + content ─── */
.doc-layout {
  display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 52px;
  align-items: start; padding: 48px 0 96px;
}
.doc-rail { position: sticky; top: 96px; }
.doc-rail-h {
  font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute);
  margin-bottom: 14px; padding-left: 14px;
}
.doc-rail-link {
  display: flex; align-items: center; gap: 11px; width: 100%; text-align: left;
  padding: 9px 14px; border-radius: var(--r-md); color: var(--ink-2);
  font-size: 14px; font-weight: 600; line-height: 1.3;
  border-left: 2px solid transparent; transition: background .15s, color .15s;
}
.doc-rail-link:hover { background: var(--bg-sunk); color: var(--ink); }
.doc-rail-link[data-active="1"] { background: var(--surface); color: var(--ink); box-shadow: var(--shadow-sm); }
.doc-rail-dot { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }
.doc-rail-count {
  margin-left: auto; font-family: var(--font-mono); font-size: 11px; font-weight: 700;
  color: var(--ink-mute);
}

/* ─── category section ─── */
.doc-cat { scroll-margin-top: 92px; }
.doc-cat + .doc-cat { margin-top: 46px; }
.doc-cat-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 18px; }
.doc-cat-kick {
  display: inline-flex; align-items: center; gap: 9px;
  font-family: var(--font-mono); font-size: 12px; font-weight: 700;
  letter-spacing: 0.06em; text-transform: uppercase;
}
.doc-cat-kick .bar { width: 22px; height: 2px; border-radius: 2px; background: currentColor; }
.doc-cat-h {
  font-family: var(--font-display); font-weight: 600; font-size: 27px;
  letter-spacing: -0.015em; color: var(--ink);
}
.doc-cat-sub { font-size: 14px; color: var(--ink-3); margin: 4px 0 0; }

/* Impreza навязывает контенту line-height:28px и заголовкам margin-bottom — раздувает
   вертикальные промежутки (кикер↔заголовок↔подзаголовок, крошки↔hero). Возвращаем
   компактные значения эталона. */
.doc-cat-h { margin: 8px 0 22px !important; line-height: 1.1 !important; }  /* эталон mt 8 / mb 22. ЯВНЫЙ line-height 1.1 — НЕ normal (у Fraunces normal-метрики огромны). */
/* 🔴 Impreza навязывает заголовкам в контенте padding-top:24px → текст сдвигается вниз
   внутри бокса = лишний воздух кикер→заголовок (визуально ~32px+, хотя margin был 8px).
   Обнуляем padding у всех заголовков документов. */
.doc-cat-h, .doc-hero h1, .doc-title, .doc-rail-h, .ev-doc h1, .ev-doc h2, .ev-doc h3 { padding: 0 !important; }
.doc-cat-kick { line-height: 1.2 !important; }
.doc-cat-sub { line-height: 1.4 !important; }
.doc-crumb { line-height: 1.4 !important; }
.doc-hero .ev-kicker { line-height: 1.25 !important; margin: 0 !important; }
.doc-hero h1 { line-height: 1.04 !important; margin: 10px 0 0 !important; }
.doc-hero p { line-height: 1.6 !important; }
.doc-hero-meta { line-height: 1.4 !important; }
.doc-rail-h { line-height: 1.2 !important; }
.doc-rail-count { line-height: 1.3 !important; }
.doc-title { line-height: 1.2 !important; }

/* ─── document plate (row) ─── */
.doc-list { display: flex; flex-direction: column; gap: 12px; }
.doc-plate {
  display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; gap: 18px;
  align-items: center; padding: 18px 20px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  text-decoration: none; transition: transform .16s, box-shadow .16s, border-color .16s;
}
.doc-plate:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); border-color: var(--line-strong); }
.doc-plate:hover .doc-open { background: var(--forest); color: #fafaf6; border-color: var(--forest); }
.doc-plate:hover .doc-open svg { transform: translateX(2px); }

.doc-ic {
  width: 52px; height: 52px; border-radius: var(--r-md);
  display: grid; place-items: center; flex-shrink: 0; position: relative;
}
.doc-ic-num {
  position: absolute; top: -7px; left: -7px;
  font-family: var(--font-mono); font-size: 10px; font-weight: 700;
  color: var(--ink-mute); background: var(--bg-elev);
  border: 1px solid var(--line); border-radius: 6px; padding: 1px 5px; line-height: 1.4;
}

.doc-body { min-width: 0; display: flex; flex-direction: column; }
.doc-title {
  display: block;
  font-family: var(--font-display); font-weight: 600; font-size: 19px;
  letter-spacing: -0.01em; color: var(--ink); line-height: 1.2;
}
.doc-desc {
  display: block;
  font-size: 14px; line-height: 1.5; color: var(--ink-3); margin: 5px 0 0;
  text-wrap: pretty;
}
.doc-meta {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px;
  font-family: var(--font-mono); font-size: 11.5px; color: var(--ink-mute);
}
.doc-meta .doc-fmt {
  display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px; border-radius: 100px; white-space: nowrap;
  background: var(--bg-sunk); color: var(--ink-2); font-weight: 600; letter-spacing: 0.02em;
  line-height: 1.5 !important;  /* Impreza навязывает line-height:28px → пилюля «огромный овал»; вернуть компактную высоту */
}

.doc-open {
  display: inline-flex; align-items: center; gap: 7px; white-space: nowrap;
  padding: 9px 15px; border-radius: var(--r-md); border: 1px solid var(--line);
  background: var(--surface); color: var(--ink); font-family: var(--font-ui);
  font-size: 13.5px; font-weight: 600; transition: background .16s, color .16s, border-color .16s;
  line-height: 1.2 !important;  /* Impreza line-height:28px раздувал кнопку до 48px → вернуть ~36px как эталон */
}
.doc-open svg { transition: transform .16s; }

/* ─── footer note strip ─── */
.doc-note {
  display: flex; align-items: flex-start; gap: 14px; margin-top: 40px; padding: 20px 22px;
  background: var(--bg-sunk); border: 1px solid var(--line); border-radius: var(--r-lg);
}
.doc-note-ic {
  width: 38px; height: 38px; border-radius: var(--r-md); flex-shrink: 0;
  background: var(--surface); border: 1px solid var(--line); display: grid; place-items: center;
}
.doc-note p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--ink-2); }
.doc-note a { color: var(--forest-ink); font-weight: 600; }

/* ─── responsive ─── */
@media (max-width: 920px) {
  .doc-layout { grid-template-columns: 1fr; gap: 8px; padding-top: 36px; }
  .doc-rail { position: static; margin-bottom: 30px; }
  .doc-rail-nav { display: flex; flex-wrap: wrap; gap: 8px; }
  .doc-rail-h { display: none; }
  .doc-rail-link { width: auto; border-left: none; border: 1px solid var(--line); background: var(--surface); }
  .doc-rail-link .doc-rail-count { margin-left: 4px; }
}
@media (max-width: 640px) {
  .doc-hero h1 { font-size: 38px; }
  .doc-hero p { font-size: 15px; }
  .doc-plate { grid-template-columns: 44px minmax(0,1fr); gap: 14px; padding: 16px; }
  .doc-ic { width: 44px; height: 44px; }
  .doc-open { grid-column: 1 / -1; justify-content: center; margin-top: 4px; }
}
