/* Добавки этой сессии поверх слоя дизайн-сессии.
 * Приклеиваются к концу chimera/system.css скриптом sync-layer.sh
 * при каждом слиянии нового слоя — иначе терялись бы, потому что
 * css/tokens.css и css/system.css забираются у дизайн-сессии целиком.
 */

/* ══ Заплатки под WordPress ══════════════════════════════
   Этого нет и не должно быть в css/ дизайн-сессии: оба дефекта
   существуют только в WordPress и в статическом прототипе не видны.
   При следующем слиянии слоя — сохранить. */

/* wp:button рендерит div.wp-block-button > a.wp-block-button__link.
   .ch-btn висит на внешнем div (className задаётся блоку), а theme.json
   красит и паддингует внутреннюю ссылку — два конкурирующих набора
   стилей на вложенных элементах, текст кнопки от этого гаснет. */
.wp-block-button.ch-btn{ padding:0; }
.wp-block-button.ch-btn > .wp-block-button__link{
  all:unset; box-sizing:border-box; display:flex; align-items:center; justify-content:center;
  width:100%; height:100%; color:inherit; cursor:pointer; }

/* core/table заворачивает <table> в figure.wp-block-table с
   overflow-x:auto. Без table-layout:fixed длинные значения раздвигают
   таблицу шире приборной колонки и часть данных уезжает за скролл.
   52% под метку: самая длинная, «МОНЕТИЗАЦИЯ», одно слово в 11 знаков. */
.ch-table--state table,.ch-table--data table{ table-layout:fixed; }
.wp-block-table.ch-table--state,.wp-block-table.ch-table--data{ overflow-x:visible; }
.ch-table--state td,.ch-table--data td{ overflow-wrap:break-word; }
.ch-table--state td:first-child,.ch-table--data td:first-child{ width:52%; }

/* ══ Contact Form 7: перекрасить служебные цвета плагина ═
   CF7 привозит свой includes/css/styles.css с палитрой админки
   WordPress 2015 года: вертушка #23282d с белой точкой, рамки
   ответа #00a0d2 / #46b450 / #dc3232 / #ffb900, подсказка ошибки
   #dc3232. На тёмной странице это шесть чужих цветов, и все они
   показываются ровно в тот момент, когда человек смотрит на форму.
   Плагинный файл не трогаем — он вернётся при обновлении CF7;
   перекрываем у себя. Специфичность считана по месту: у CF7 селектор
   `.wpcf7 form .wpcf7-response-output` — 0,3,0, отсюда такой же. */
.wpcf7-spinner{
  background-color:var(--rule); opacity:1;
  margin:0 16px; vertical-align:middle; }
.wpcf7-spinner::before{ background-color:var(--accent); }

.wpcf7 form .wpcf7-response-output{
  border-width:1px; border-color:var(--rule);
  color:var(--paper-2); font:400 14px/1.6 var(--sans);
  margin:1.5em 0 0; padding:.7em 1em; }
.wpcf7 form.sent .wpcf7-response-output{ border-color:var(--live); }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{ border-color:var(--danger); }
.wpcf7 form.spam .wpcf7-response-output,
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{ border-color:var(--warn); }

/* Подсказка ошибки — один в один .ch-form-error из слоя: та же роль,
   значит тот же вид. Рамку невалидного поля НЕ трогаем: CF7 вешает
   aria-invalid="true", а в слое под это уже есть правило (--danger).
   Пара «рамка --danger, текст #e08078» — решение дизайн-сессии, я тут
   только повторяю её для полей, которые рисует плагин. */
.wpcf7-not-valid-tip{ color:#e08078; font:400 13px/1.5 var(--sans); }
.wpcf7-not-valid-tip::before{ content:"— "; }

/* CF7 оборачивает каждое поле в span.wpcf7-form-control-wrap — лишний
   инлайновый слой между .ch-form-row (grid) и .ch-field. Полю нужна
   вся ширина строки, а инлайновый span её не передаёт. */
.ch-form-row > .wpcf7-form-control-wrap{ display:block; }

/* ══ Выбор владельца: акцент — латунь ════════════════════
   13 сентября владелец выбрал «латунь». Сначала я держал это здесь
   четырьмя объявлениями поверх слоя. С коммитом 8cc924f надобность
   отпала: дизайн-сессия завела --accent/--accent-hi/--accent-ink и
   отдельный --live для «работает сейчас», а --emerald теперь
   указывает на --accent. Мой блок переопределял бы их переменную
   захардкоженным цветом — то есть отменял бы возможность сменить
   акцент одним токеном. Поэтому он снят: выбор владельца живёт
   в tokens.css дизайн-сессии, там ему и место. */

/* ══ Карта сайта: Kubio подчёркивает плитку целиком ══════
   В слое у .ch-map__item стоит text-decoration:none, но Kubio объявляет
   `.entry-content a { text-decoration: underline }` — 0,2,0 против 0,1,0,
   и выигрывает. На карте это подчёркивает разом название, описание и
   адрес внутри плитки: три подчёркнутые строки в каждой из двадцати двух.
   Тот же плагин и тот же приём, что с шириной .alignfull: берём
   специфичность с запасом (0,2,1 — тег + два класса), чтобы не зависеть
   ещё и от порядка загрузки таблиц. !important не нужен. */
.entry-content a.ch-map__item,
.entry-content a.ch-map__item:hover{ text-decoration:none; }
