/**
 * @file buttons.css — единая система кнопок движка (2026-09-27): три уровня.
 *   1. основная  (.ee-btn--primary)   — заливка акцента, белый текст: главное действие («Записаться», «Отправить», «Подписаться»);
 *   2. вторая    (.ee-btn--secondary) — контур акцента, прозрачный фон: «Подробнее», «Сбросить», «Все ретриты», пагинация, фильтры;
 *   3. третья    (.ee-btn--tertiary)  — текст акцента со стрелкой «→», подчёркивание при наведении: «Читать полностью», «Показать всех», «Смотреть».
 * Высота не меньше 44 px, скругление как у кнопок шапки, кольцо фокуса 3 px, состояния hover / active / disabled.
 * Цвета — токены theme.css: --ee-btn-accent, --ee-btn-accent-fg, --ee-btn-hover, --ee-btn-soft (сайт задаёт свои; по умолчанию берутся из акцента шапки).
 * Контраст: основная — текст --ee-btn-accent-fg на заливке --ee-btn-accent (и на --ee-btn-hover); вторая и третья — акцент на фоне страницы (и на --ee-btn-soft).
 * Проверка расчётом — scripts/contrast.py (строки «кнопки»).
 * Кнопки стандартных элементов Drupal (отправка формы, «Показать», «Сбросить», пагинация, ссылка «Ещё») подключены ниже теми же уровнями без правки шаблонов.
 */
.ee-btn, .ee-btn--primary, .ee-btn--secondary, .ee-btn--tertiary,
input[type="submit"], button.form-submit, .webform-button--submit, a.button, button.button, .button, .more-link a, .ee-year-all a, .attachment-before .view-content span a {
  --_bg: var(--ee-btn-accent); --_fg: var(--ee-btn-accent-fg); --_bd: var(--ee-btn-accent);
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem; box-sizing: border-box;
  min-height: var(--ee-btn-height); padding: .55rem 1.5rem; border: 2px solid var(--_bd); border-radius: var(--ee-btn-radius);
  background: var(--_bg); color: var(--_fg); font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.25; letter-spacing: .01em; text-align: center; text-decoration: none;
  cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease, transform .15s ease;
  -webkit-appearance: none; appearance: none; filter: none;
}
.ee-btn:hover, .ee-btn--primary:hover, input[type="submit"]:hover, button.form-submit:hover, .webform-button--submit:hover, a.button:hover, .button:hover {
  --_bg: var(--ee-btn-hover); --_bd: var(--ee-btn-hover); text-decoration: none; filter: none;
}
.ee-btn:active, input[type="submit"]:active, button.form-submit:active, .button:active { transform: translateY(1px); }
.ee-btn:focus-visible, input[type="submit"]:focus-visible, button.form-submit:focus-visible, .button:focus-visible { outline: 3px solid var(--ee-focus); outline-offset: 3px; }
.ee-btn[disabled], .ee-btn[aria-disabled="true"], input[type="submit"]:disabled, button.form-submit:disabled {
  --_bg: var(--muted); --_fg: var(--muted-foreground); --_bd: var(--border); cursor: not-allowed; transform: none;
}

/* второй уровень: контур */
.ee-btn--secondary, .button--secondary, .ee-btn--outline, .button--outline, .ee-year-all a, .attachment-before .view-content span a, .views-exposed-form input[type="submit"][id*="reset"], .views-exposed-form .form-actions input[id*="reset"],
a.ee-actions__btn:not(.ee-actions__btn--primary) {
  --_bg: transparent; --_fg: var(--ee-btn-accent); --_bd: var(--ee-btn-accent);
}
.ee-btn--secondary:hover, .button--secondary:hover, .ee-year-all a:hover, .attachment-before .view-content span a:hover, .views-exposed-form input[id*="reset"]:hover, a.ee-actions__btn:not(.ee-actions__btn--primary):hover {
  --_bg: var(--ee-btn-soft); --_fg: var(--ee-btn-hover); --_bd: var(--ee-btn-hover);
}
.ee-btn--secondary[disabled], .ee-btn--secondary[aria-disabled="true"] { --_bg: transparent; --_fg: var(--muted-foreground); --_bd: var(--border); }

/* третий уровень: текст со стрелкой */
.ee-btn--tertiary, .more-link a {
  --_bg: transparent; --_fg: var(--ee-btn-accent); --_bd: transparent;
  min-height: var(--ee-btn-height); padding: .4rem .5rem; border-radius: .5rem; font-weight: 600;
}
.ee-btn--tertiary::after, .more-link a::after { content: "→"; display: inline-block; transition: transform .15s ease; }
.ee-btn--tertiary:hover, .more-link a:hover { --_bg: var(--ee-btn-soft); --_fg: var(--ee-btn-hover); --_bd: transparent; text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; }
.ee-btn--tertiary:hover::after, .more-link a:hover::after { transform: translateX(.25rem); }
.ee-btn--tertiary.ee-btn--no-arrow::after { content: none; }
.more-link { text-align: start; }
.more-link a { display: inline-flex; background: var(--_bg); color: var(--_fg); }
/* ссылки под списком отзывов («Все отзывы мероприятия», «Лучшие отзывы») — третья кнопка */
.view-footer a, .view-footer .more-link a { display: inline-flex; align-items: center; gap: .5rem; min-height: var(--ee-btn-height); padding: .4rem .5rem; margin-right: .5rem; border-radius: .5rem; color: var(--ee-btn-accent); font-weight: 600; text-decoration: none; }
.view-footer a::after { content: "→"; }
.view-footer a:hover { background: var(--ee-btn-soft); color: var(--ee-btn-hover); text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; }

/* размеры и ширина */
.ee-btn--block { display: flex; width: 100%; }
.ee-btn--sm { min-height: var(--ee-btn-height); padding-inline: 1.1rem; font-size: .9375rem; }
@media (max-width: 47.99rem) { .ee-btn--mobile-block { display: flex; width: 100%; } }

/* значок-кнопка (лупа, сердечко, рубрики): круглая, видимая рамка, подпись у значка — текст рядом или aria-label + title */
.ee-icon-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-width: var(--ee-btn-height); min-height: var(--ee-btn-height); padding: 0 .9rem; border: 1.5px solid var(--input); border-radius: var(--ee-btn-radius); background: var(--background); color: var(--foreground); font: inherit; font-size: .9375rem; font-weight: 600; text-decoration: none; cursor: pointer; }
.ee-icon-btn:hover { background: var(--ee-btn-soft); border-color: var(--ee-btn-accent); color: var(--ee-btn-hover); }
.ee-icon-btn:focus-visible { outline: 3px solid var(--ee-focus); outline-offset: 2px; }
.ee-icon-btn svg { flex: none; }

/* пагинация: вторая кнопка, текущая страница — основная */
.pager__item a, .pager__item.is-active, .pager__item > a, .pager__item--action a {
  min-width: var(--ee-btn-height); min-height: var(--ee-btn-height); padding: 0 .9rem; border: 2px solid var(--ee-btn-accent); border-radius: var(--ee-btn-radius);
  background: transparent; color: var(--ee-btn-accent); font-weight: 600; text-decoration: none;
}
.pager__item a:hover { background: var(--ee-btn-soft); color: var(--ee-btn-hover); border-color: var(--ee-btn-hover); }
.pager__item.is-active { background: var(--ee-btn-accent); color: var(--ee-btn-accent-fg); border-color: var(--ee-btn-accent); }
.pager__item.is-active a { background: transparent; color: inherit; border: 0; }

/* значок внутри кнопки компонента Button; значок в конце — справа от подписи */
.ee-btn__icon { display: inline-flex; align-items: center; }
.ee-btn--icon-last { flex-direction: row-reverse; }
.ee-btn--lg { min-height: 3.25rem; padding-inline: 1.9rem; font-size: 1.0625rem; }
/* на тёмном фоне: основная — светлая заливка, вторая — светлый контур */
.ee-btn--inv-primary { --_bg: var(--primary-foreground); --_fg: var(--primary); --_bd: var(--primary-foreground); }
.ee-btn--inv-primary:hover { --_bg: color-mix(in oklab, var(--primary-foreground) 88%, black); --_bd: var(--_bg); }
.ee-btn--inv-secondary { --_bg: transparent; --_fg: var(--primary-foreground); --_bd: var(--primary-foreground); }
.ee-btn--inv-secondary:hover { --_bg: color-mix(in oklab, var(--primary-foreground) 16%, transparent); --_fg: var(--primary-foreground); --_bd: var(--primary-foreground); }

/* фильтр по годам (отзывы): «Все годы» и годы — вторые кнопки в один ряд, число отзывов — рядом мелким серым */
.attachment-before .view { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: 1rem; }
.attachment-before .view .view-header { margin: 0; }
.ee-year-all { margin: 0; }
.attachment-before .view .view-content { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.attachment-before .view .view-content span { display: inline-flex; align-items: center; gap: .4rem; font-size: .875rem; color: var(--muted-foreground); }
.attachment-before .view .view-content span a[class*="is-active"], .attachment-before .view .view-content span a.is-active { --_bg: var(--ee-btn-accent); --_fg: var(--ee-btn-accent-fg); }

/* «читать полностью» в карточке отзыва (details.review-more): третья кнопка — текст акцента со стрелкой */
.review-more > summary { list-style: none; cursor: pointer; }
.review-more > summary::-webkit-details-marker { display: none; }
.review-more > summary em { display: inline-flex; align-items: center; gap: .35rem; min-height: var(--ee-btn-height); margin-top: .35rem; padding: .3rem .5rem; border-radius: .5rem; font-style: normal; font-weight: 600; color: var(--ee-btn-accent); }
.review-more > summary em::after { content: "→"; }
.review-more > summary:hover em { background: var(--ee-btn-soft); color: var(--ee-btn-hover); text-decoration: underline; text-underline-offset: .25em; text-decoration-thickness: 2px; }
.review-more > summary:focus-visible { outline: 3px solid var(--ee-focus); outline-offset: 2px; }
.review-more[open] > summary em { display: none; }
