/*
 * «Афиша 37» — стили афиши. Перенос site.css 168.ru (классы kaf-* → a37-*), цвета — переменными.
 * Переменные задаёт тема (:root в style.css); здесь — запасные значения на случай другой темы.
 */
.a37-root {
  --a37-c-navy: var(--a37-navy, #1f2d47);
  --a37-c-red: var(--a37-red, #ee2343);
  --a37-c-red-dark: var(--a37-red-dark, #b21631);
  --a37-c-text: var(--a37-text, #1f2d48);
  --a37-c-muted: var(--a37-muted, #636970);
  --a37-c-line: var(--a37-line, #adb6c3);
  --a37-c-soft: var(--a37-soft, #eef0f3);
  --a37-c-soft-hover: var(--a37-soft-hover, #e0e5ec);
  --a37-c-soft-active: var(--a37-soft-active, #d2d9e3);
  --a37-c-bg: var(--a37-bg, #fff);
  --a37-c-focus: var(--a37-focus, #0151e0);
  box-sizing: border-box;
  color: var(--a37-c-text);
  min-width: 0;
}
.a37-root *, .a37-root *::before, .a37-root *::after { box-sizing: border-box; }
.a37-root [hidden] { display: none !important; }
.a37-root h1 { font-size: 30px; line-height: 1.2; font-weight: 700; margin: 18px 0 8px; }
.a37-root h2 { font-size: 23px; line-height: 1.3; font-weight: 600; margin: 24px 0 14px; }
.a37-root h3 { font-size: 21px; line-height: 1.3; font-weight: 600; margin: 8px 0 10px; }
.a37-root p { margin: 7px 0 10px; }
.a37-root a { color: inherit; }
.a37-root :focus-visible { outline: 3px solid var(--a37-c-focus); outline-offset: 3px; }
.a37-intro, .a37-root .a37-muted { color: var(--a37-c-muted); }
.a37-root .a37-muted { font-size: 14px; }
.a37-intro p { margin: 4px 0 12px; }

/* Кнопки и переключатели */
.a37-button, .a37-chip, .a37-root button {
  font: inherit; font-weight: 500; font-size: 16px; line-height: 1.3;
  min-height: 44px; padding: 10px 15px;
  border: 1px solid #bbc3ce; border-radius: 3px;
  background: var(--a37-c-soft); color: var(--a37-c-text);
  cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  text-align: center; text-decoration: none;
}
.a37-button:hover, .a37-chip:hover, .a37-root button:hover { border-color: var(--a37-c-red); background: var(--a37-c-soft-hover); text-decoration: none; }
.a37-button:active, .a37-chip:active { background: var(--a37-c-soft-active); }
.a37-root .a37-primary, .a37-root .a37-primary:hover,
.a37-chip[aria-current] { color: #fff; background: var(--a37-c-red); border-color: var(--a37-c-red); }
.a37-root .a37-primary:hover { background: var(--a37-c-red-dark); }

.a37-controls { margin: 10px 0 6px; }
.a37-periods { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 14px; }
.a37-week { display: flex; align-items: center; justify-content: space-between; gap: 12px; max-width: 700px; margin: 14px 0 10px; }
.a37-week .a37-week-nav { width: 44px; padding: 0; }
.a37-week span.a37-week-nav { opacity: .35; cursor: default; }
.a37-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; max-width: 700px; }
.a37-day {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  min-height: 65px; padding: 8px 2px; border: 1px solid #bbc3ce; border-radius: 3px;
  background: var(--a37-c-soft); color: var(--a37-c-text); text-decoration: none;
}
.a37-day:hover { border-color: var(--a37-c-red); text-decoration: none; }
.a37-day b { font-size: 23px; line-height: 1.1; }
.a37-day span { font-size: 13px; }
.a37-day.a37-weekend span { color: var(--a37-c-red-dark); }
.a37-day.a37-today { box-shadow: inset 0 -3px 0 var(--a37-c-navy); }
.a37-day.is-past { opacity: .4; }
.a37-day[aria-current] { color: #fff; background: var(--a37-c-red); border-color: var(--a37-c-red); }
.a37-day[aria-current] span { color: #fff; }

.a37-filters { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 20px; padding-bottom: 8px; border-bottom: 1px solid #dedee2; }
.a37-filters .a37-chip { border-bottom: 3px solid transparent; padding: 10px 13px; }
.a37-filters .a37-chip[aria-current] { color: var(--a37-c-navy); background: #d5dce6; border-color: #a6b1c1; border-bottom-color: var(--a37-c-red); }
.a37-toggles { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 12px 0; font-size: 15px; }
.a37-toggle { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; color: var(--a37-c-text); text-decoration: none; }
.a37-toggle::before {
  content: ''; width: 18px; height: 18px; flex: none; border: 2px solid #8c96a3; border-radius: 3px; background: #fff;
}
.a37-toggle.is-on::before { background: var(--a37-c-red); border-color: var(--a37-c-red); box-shadow: inset 0 0 0 3px #fff; }
.a37-toggle:hover { text-decoration: underline; }

/* Список */
.a37-results-title { margin-top: 18px; }
.a37-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: start; }
.a37-card { border: 1px solid var(--a37-c-line); border-radius: 3px; background: var(--a37-c-bg); min-width: 0; overflow-wrap: anywhere; }
.a37-cover-link { display: block; }
.a37-cover { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 25%; background: var(--a37-c-soft); }
.a37-card-body { padding: 18px; }
.a37-card-body > p:empty { display: none; }
.a37-root .a37-card-title { font-size: 20px; margin: 8px 0 10px; }
.a37-card-title a { color: var(--a37-c-navy); text-decoration: none; }
.a37-card-title a:hover { text-decoration: underline; }
.a37-meta { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 6px 8px; color: #666; font-size: 13px; }
.a37-cat { color: #d31b39; font-weight: 600; }
.a37-badges { display: inline-flex; flex-wrap: wrap; gap: 4px; }
.a37-badge { display: inline-block; padding: 2px 7px; border-radius: 10px; background: var(--a37-c-soft); color: var(--a37-c-text); font-size: 12px; line-height: 1.4; }
.a37-badge--kids { background: #e5f2e1; }
.a37-badge--free { background: #fff1c7; }
.a37-badge--pushkin { background: #e2e8fb; }
.a37-badge--inclusive { background: #dff1f4; }
.a37-badge--trip { background: #f3e5f5; }
.a37-venue { font-weight: 600; }
.a37-venue a { color: inherit; }
.a37-next { font-size: 14px; color: var(--a37-c-muted); margin: 6px 0 12px; }
.a37-excerpt { font-size: 15px; }
.a37-period { font-weight: 600; }
.a37-price { font-size: 14px; }
.a37-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.a37-actions .a37-button { font-size: 15px; }

/* Сеансы по дням */
.a37-day-rows { margin: 10px 0; }
.a37-day-row { margin: 8px 0; }
.a37-day-row .a37-date { display: block; font-size: 14px; color: var(--a37-c-muted); margin-bottom: 3px; }
.a37-times { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; }
.a37-session { display: inline-flex; flex-direction: column; color: inherit; text-decoration: none; }
a.a37-session strong { text-decoration: underline; text-decoration-thickness: 1px; }
.a37-session strong { font-size: 22px; line-height: 1.25; font-weight: 700; }
.a37-session small { font-size: 12px; color: var(--a37-c-muted); }

.a37-disclosure > summary {
  display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 12px;
  background: var(--a37-c-soft); border: 1px solid #bbc3ce; border-radius: 3px; cursor: pointer; font-size: 15px; list-style: none;
}
.a37-disclosure > summary::-webkit-details-marker { display: none; }
.a37-disclosure > summary::after { content: '+'; margin-left: auto; font-size: 22px; line-height: 1; }
.a37-disclosure[open] > summary::after { content: '−'; }
.a37-disclosure > summary:hover { background: var(--a37-c-soft-hover); border-color: var(--a37-c-red); }
.a37-disclosure .a37-session-count { font-size: 13px; color: var(--a37-c-muted); }
.a37-disclosure:not([open]) .a37-collapse, .a37-disclosure[open] .a37-expand { display: none; }
.a37-disclosure[open] > .a37-day-rows { margin-top: 14px; }

.a37-root .a37-subheading {
  background: var(--a37-c-navy); border-left: 10px solid var(--a37-c-red); color: #fff;
  font-size: 16px; font-weight: 400; line-height: 1.4; text-transform: uppercase;
  padding: 14px 16px; border-radius: 3px; margin-top: 32px;
}
.a37-more-wrap { text-align: center; margin: 22px 0 !important; }
.a37-more { min-width: 220px; }
.a37-more[aria-busy="true"] { opacity: .6; pointer-events: none; }
.a37-empty { padding: 24px 0; }
.a37-root .a37-status {
  border-left: 4px solid var(--a37-c-red); padding: 8px 12px; color: var(--a37-c-red-dark); font-weight: 600; background: #fff4f5;
}
.a37-root .a37-status ul { margin: 6px 0 0 18px; font-weight: 400; }
.a37-root .a37-status--past { color: var(--a37-c-muted); border-left-color: #a6b1c1; background: var(--a37-c-soft); }

/* Страница события */
.a37-crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 0; list-style: none; margin: 14px 0 0; padding: 0; font-size: 14px; color: var(--a37-c-muted); }
.a37-crumbs li { min-width: 0; overflow-wrap: anywhere; }
.a37-crumbs li + li::before { content: '›'; margin: 0 8px; }
.a37-crumbs a { color: inherit; }
.a37-detail { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; max-width: 980px; }
.a37-detail.has-image { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); }
.a37-detail-image { display: block; width: 100%; height: auto; max-height: 460px; object-fit: contain; background: #f4f4f4; border-radius: 3px; }
.a37-detail-sessions { border-left: 3px solid #dedee2; padding-left: 15px; max-width: 850px; }
.a37-description { max-width: 850px; font-size: 17px; }
.a37-source { margin-top: 24px; font-size: 14px; color: var(--a37-c-muted); max-width: 850px; }
.a37-source a { text-decoration: underline; }
.a37-related { margin-top: 28px; }
.a37-venue-head { margin-bottom: 8px; }

/* Форма «Добавить событие» */
.a37-form fieldset { border: 1px solid #dedee2; border-radius: 3px; padding: 14px 16px; margin: 0 0 18px; min-width: 0; }
.a37-form legend { font-weight: 700; padding: 0 6px; }
.a37-form label { display: block; margin: 8px 0; font-weight: 500; }
.a37-form input[type=text], .a37-form input[type=url], .a37-form input[type=tel], .a37-form input[type=date],
.a37-form input[type=time], .a37-form select, .a37-form textarea {
  display: block; width: 100%; max-width: 100%; margin-top: 4px; padding: 9px 10px; min-height: 44px;
  font: inherit; font-weight: 400; color: var(--a37-c-text); background: #fff; border: 1px solid #8c96a3; border-radius: 3px;
}
.a37-form textarea { min-height: 140px; resize: vertical; }
.a37-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14px; }
.a37-form-checks { display: flex; flex-wrap: wrap; gap: 0 22px; }
.a37-form-checks label, .a37-consent { display: flex; align-items: flex-start; gap: 8px; font-weight: 400; }
.a37-form input[type=checkbox], .a37-form input[type=radio] { width: 18px; height: 18px; margin-top: 3px; flex: none; accent-color: var(--a37-c-red); }
.a37-form .a37-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.a37-notice { border-left: 4px solid #2e7d32; background: #edf7ed; padding: 10px 14px; font-weight: 600; }

.screen-reader-text {
  border: 0; clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}

@media (max-width: 1100px) {
  .a37-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .a37-root h1 { font-size: 26px; }
  .a37-root h2 { font-size: 21px; }
  .a37-grid { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .a37-card-body { padding: 15px; }
  .a37-periods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .a37-periods .a37-chip { font-size: 15px; padding: 10px 4px; }
  .a37-week { font-size: 14px; }
  .a37-days { gap: 3px; }
  .a37-day { min-height: 58px; padding: 6px 0; }
  .a37-day b { font-size: 20px; }
  .a37-day span { font-size: 12px; }
  .a37-filters .a37-chip { font-size: 14px; padding: 9px 10px; min-height: 40px; }
  /* рубрики — одной строкой с прокруткой вбок: столбик из 15 кнопок уводил первую карточку за второй экран */
  .a37-filters {
    flex-wrap: nowrap; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: none;
    margin-left: calc(-1 * var(--a37-gutter, 16px)); margin-right: calc(-1 * var(--a37-gutter, 16px));
    padding-left: var(--a37-gutter, 16px); padding-right: var(--a37-gutter, 16px); scroll-padding-inline: var(--a37-gutter, 16px);
  }
  .a37-filters::-webkit-scrollbar { display: none; }
  .a37-filters .a37-chip { flex: none; white-space: nowrap; }
  .a37-actions .a37-button { flex: 1 1 140px; min-height: 46px; }
  .a37-root .a37-subheading { font-size: 14px; padding: 12px; }
  .a37-meta { font-size: 12px; }
  .a37-detail.has-image { grid-template-columns: minmax(0, 1fr); }
  .a37-form-grid { grid-template-columns: minmax(0, 1fr); }
  .a37-session strong { font-size: 20px; }
}
