/* BLS — раздел «Мероприятия». См. docs/tz_meropriyatiya.md.
   Оформление 1:1 из docs/html-templates/BLS Мероприятия - офлайн.html
   (архив/список) и docs/html-templates/BLS Мероприятие - офлайн.html
   (страница одного мероприятия). */

.bls-events-hero, .bls-events-section, .bls-events-subscribe,
.bls-event-hero, .bls-event-body-grid {
    font-family: 'Golos Text', system-ui, sans-serif;
}

/* ── Общие атомы раздела (бейджи, кнопка «загрузить ещё», пустые состояния) ── */
.bls-events-tags { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.bls-events-tag {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 4px 10px;
    border: 1px solid;
    display: inline-block;
}
.bls-events-tag--neutral { color: #6b5d54; background: #fff; border-color: #ddd6cf; }
.bls-events-tag--online { color: #3e1109; background: #f6f2ec; border-color: #e2d8ce; }
.bls-events-tag--offline { color: #fff; background: #eb732d; border-color: #eb732d; }

.bls-events-mono { font-family: "Roboto Mono", ui-monospace, monospace; font-size: 13px; color: #a49a92; }
.bls-events-empty { text-align: center; color: #959595; }

/* ── Архив: hero ──────────────────────────────────────────────────── */
.bls-events-hero { background: #fff; color: #1c1c1c; border-bottom: 1px solid #e6e2dc; }
.bls-events-hero__inner { max-width: 1240px; margin: 0 auto; padding: 0 32px; }
.bls-events-hero { padding: 74px 0 66px; }
.bls-events-hero__kicker { font-size: 12px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: #eb732d; margin: 0 0 18px; }
.bls-events-hero__title { font-size: 50px; line-height: 1.08; font-weight: 800; letter-spacing: -.01em; margin: 0 0 22px; max-width: 760px; text-wrap: balance; color: #1c1c1c; }
.bls-events-hero__text { font-size: 18px; line-height: 1.55; color: #6a6a6a; margin: 0; max-width: 620px; }

/* ── Архив: заголовки секций ──────────────────────────────────────── */
.bls-events-section { padding: 76px 0 20px; }
.bls-events-section--past { padding: 60px 0 90px; }
.bls-events-sec-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 8px; }
.bls-events-sec-title { font-size: 28px; font-weight: 800; margin: 0; text-transform: uppercase; color: #1a1512; }
.bls-events-rule { display: block; width: 48px; height: 4px; background: #eb732d; margin: 0 0 44px; }

/* ── Архив: грядущие мероприятия ──────────────────────────────────── */
.bls-events-up-list { display: flex; flex-direction: column; gap: 20px; }
.bls-events-up-card {
    display: grid;
    grid-template-columns: 148px 1fr auto;
    gap: 32px;
    align-items: center;
    border: 1px solid #e6e2dc;
    padding: 26px 30px;
    background: #fff;
    transition: border-color .15s;
    color: inherit;
    text-decoration: none;
}
.bls-events-up-card:hover { border-color: #3e1109; color: inherit; }
.bls-events-up-date { text-align: center; border-right: 1px solid #eee; padding-right: 24px; }
.bls-events-up-date__day { font-size: 40px; font-weight: 800; color: #1c1c1c; line-height: 1; }
.bls-events-up-date__mon { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #eb732d; margin-top: 4px; }
.bls-events-up-date__time { font-size: 12px; color: #a49a92; margin-top: 6px; }
.bls-events-up-card__title { font-size: 21px; font-weight: 800; color: #1c1c1c; margin: 0 0 8px; line-height: 1.25; }
.bls-events-up-card__desc { font-size: 14px; line-height: 1.55; color: #6a6a6a; margin: 0; max-width: 620px; }
.bls-events-up-cta { display: flex; flex-direction: column; align-items: stretch; gap: 8px; min-width: 200px; }
.bls-events-up-cta .bls-btn { padding: 13px 22px; font-size: 14px; }
.bls-events-up-cta__place { font-size: 12px; color: #a49a92; text-align: center; }

/* ── Архив: прошедшие мероприятия ─────────────────────────────────── */
.bls-events-past-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.bls-events-past-card {
    display: flex;
    flex-direction: column;
    border: 1px solid #e6e2dc;
    background: #fff;
    transition: border-color .15s;
    color: inherit;
    text-decoration: none;
}
.bls-events-past-card:hover { border-color: #3e1109; color: inherit; }
.bls-events-past-cover { height: 168px; display: flex; align-items: flex-end; gap: 6px; flex-wrap: wrap; padding: 14px; position: relative; overflow: hidden; }
.bls-events-past-cover__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.bls-events-past-cover__kind { position: relative; z-index: 1; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #fff; background: rgba(39,27,25,.72); padding: 5px 11px; }
.bls-events-past-body { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.bls-events-past-body__date { font-size: 12px; color: #a49a92; margin-bottom: 10px; }
.bls-events-past-body__title { font-size: 17px; font-weight: 800; color: #1c1c1c; margin: 0 0 10px; line-height: 1.3; }
.bls-events-past-body__desc { font-size: 13px; line-height: 1.55; color: #6a6a6a; margin: 0 0 18px; flex: 1; }
.bls-events-past-body__more { font-size: 14px; font-weight: 700; color: #3e1109; }
.bls-events-load-wrap { display: flex; justify-content: center; margin-top: 44px; }
.bls-events-load-btn { background: none; border: none; padding: 6px 4px; font: inherit; font-size: 15px; font-weight: 700; letter-spacing: .01em; color: #3e1109; cursor: pointer; border-bottom: 2px solid #eb732d; }
.bls-events-load-btn:hover { color: #eb732d; }
.bls-events-load-btn:disabled { opacity: .5; cursor: default; }

/* ── Архив: подписка ──────────────────────────────────────────────── */
.bls-events-subscribe { background: #f6f2ec; border-top: 1px solid #e6e2dc; }
.bls-events-subscribe__inner { max-width: 820px; margin: 0 auto; padding: 76px 32px 82px; text-align: center; }
.bls-events-subscribe__title { font-size: 34px; line-height: 1.15; font-weight: 800; color: #1c1c1c; margin: 0 0 18px; text-wrap: balance; }
.bls-events-subscribe__text { font-size: 17px; line-height: 1.55; color: #6a6a6a; margin: 0 auto 34px; max-width: 620px; }

/* ── Одно мероприятие: hero ───────────────────────────────────────── */
.bls-event-hero { background: #fff; color: #1c1c1c; border-bottom: 1px solid #e6e2dc; }
.bls-event-hero__inner { max-width: 1180px; margin: 0 auto; padding: 40px 32px 56px; }
.bls-event-hero__back { color: #6a6a6a; font-size: 14px; display: inline-block; margin-bottom: 28px; text-decoration: none; }
.bls-event-hero__back:hover { color: #eb732d; }
.bls-event-hero__tags { margin-bottom: 20px; }
.bls-event-hero__title { font-size: 42px; line-height: 1.12; font-weight: 800; letter-spacing: -.01em; margin: 0 0 26px; max-width: 820px; text-wrap: balance; color: #1c1c1c; }
.bls-event-hero__meta { display: flex; gap: 40px; flex-wrap: wrap; }
.bls-event-hero__meta-label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #a49a92; margin-bottom: 5px; }
.bls-event-hero__meta-value { font-size: 16px; font-weight: 700; color: #1c1c1c; }

/* ── Одно мероприятие: тело + форма ───────────────────────────────── */
.bls-event-body-grid { max-width: 1180px; margin: 0 auto; padding: 66px 32px 84px; display: grid; grid-template-columns: 1fr 400px; gap: 60px; align-items: start; }
.bls-event-content { font-size: 17px; line-height: 1.65; color: #3a3a3a; }
.bls-event-content p { margin: 0 0 20px; }
.bls-event-content h2, .bls-event-content h3 { font-size: 15px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #1c1c1c; margin: 40px 0 20px; }
.bls-event-content ul { list-style: none; margin: 0 0 44px; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.bls-event-content ul li { position: relative; padding-left: 26px; font-size: 16px; line-height: 1.5; color: #3a3a3a; }
.bls-event-content ul li::before { content: ""; position: absolute; left: 0; top: 8px; width: 8px; height: 8px; background: #3e1109; transform: rotate(45deg); }

/* Нумерованный список — по дизайн-системе (счётчик, Roboto Mono, акцентный цвет) */
.bls-event-content ol { list-style: none; margin: 0 0 44px; padding: 0; counter-reset: bls-event; display: flex; flex-direction: column; gap: 14px; }
.bls-event-content ol li { position: relative; padding-left: 40px; font-size: 16px; line-height: 1.5; color: #3a3a3a; counter-increment: bls-event; }
.bls-event-content ol li::before { content: counter(bls-event) "."; position: absolute; left: 0; top: 0; font-family: "Roboto Mono", ui-monospace, monospace; font-weight: 700; color: #3e1109; }
.bls-event-content ul ul, .bls-event-content ul ol, .bls-event-content ol ul, .bls-event-content ol ol { margin-top: 10px; margin-bottom: 0; }

.bls-event-sp-label { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #eb732d; margin-bottom: 14px; }
.bls-event-sp-grid { display: grid; gap: 16px; }
.bls-event-sp-card { display: flex; gap: 18px; align-items: center; border: 1px solid #e6e2dc; padding: 22px 24px; background: #faf8f5; }
.bls-event-sp-card__ava { width: 76px; height: 76px; flex: none; border-radius: 50%; overflow: hidden; }
.bls-event-sp-card__ava img { width: 100%; height: 100%; object-fit: cover; }
.bls-event-sp-card__name { font-size: 18px; font-weight: 800; color: #1c1c1c; line-height: 1.2; }
.bls-event-sp-card__role { font-size: 13px; line-height: 1.4; color: #6a6a6a; margin-top: 4px; }

.bls-event-form-col { position: sticky; top: 108px; }
.bls-event-form-card { border: 1px solid #e6e2dc; background: #fff; box-shadow: 0 24px 42px -26px rgba(0,0,0,.22); }
.bls-event-form-head { padding: 24px 28px; }
.bls-event-form-head__badge { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .8; margin-bottom: 8px; }
.bls-event-form-head__title { font-size: 22px; font-weight: 800; line-height: 1.2; }
.bls-event-form-head p { font-size: 14px; line-height: 1.5; margin: 10px 0 0; opacity: .82; }
.bls-event-form-body { padding: 26px 28px 28px; }
.bls-event-fields { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
.bls-event-fields label { display: block; }
.bls-event-fields__label { display: block; font-size: 13px; font-weight: 600; color: #4a4a4a; margin-bottom: 6px; }
.bls-event-fields__req { color: #eb732d; }
.bls-event-fields input { width: 100%; padding: 12px 14px; font: inherit; font-size: 15px; color: #1c1c1c; border: 1px solid #ddd6cf; background: #fff; outline: none; box-sizing: border-box; }
.bls-event-fields input:focus { border-color: #3e1109; }

/* ИНН — DaData-автоподсказка (добавлено 20.08.2026, тот же паттерн, что bls-materials.css) */
.bls-event-fields__inn { position: relative; }
.bls-event-fields__hint { display: block; font-size: 11px; color: #a49a92; margin-top: 6px; line-height: 1.4; }
.bls-event-sug { position: absolute; z-index: 5; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid #ddd6cf; box-shadow: 0 18px 34px -18px rgba(0,0,0,.3); max-height: 232px; overflow-y: auto; }
.bls-event-sug.is-hidden { display: none; }
.bls-event-sug button { display: block; width: 100%; text-align: left; background: none; border: none; border-bottom: 1px solid #f0ece6; padding: 11px 14px; font: inherit; cursor: pointer; }
.bls-event-sug button:hover { background: #faf7f3; }
.bls-event-sug .name { display: block; font-size: 14px; font-weight: 600; color: #1c1c1c; line-height: 1.35; }
.bls-event-sug .meta { display: block; font-family: "Roboto Mono", ui-monospace, monospace; font-size: 12px; color: #a49a92; margin-top: 3px; }
.bls-event-consents { display: flex; flex-direction: column; gap: 10px; margin: 0 0 20px; }
.bls-event-consents label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.bls-event-consents__box { width: 17px; height: 17px; flex: none; margin-top: 1px; border: 1px solid #c8bfb7; background: #fff; -webkit-appearance: none; appearance: none; cursor: pointer; }
.bls-event-consents__box:checked { background: #3e1109; border-color: #3e1109; }
.bls-event-consents__text { font-size: 12px; line-height: 1.45; color: #7a726b; }
.bls-event-consents__text a { color: #3e1109; text-decoration: underline; }
.bls-event-submit { width: 100%; padding: 15px; }
.bls-event-form-note { font-size: 12px; line-height: 1.5; color: #a49a92; margin: 14px 0 0; text-align: center; }

/* Регистрация на мероприятие — ответ формы (bls-event-register.js) */
.bls-event-form-message { font-size: 13px; line-height: 1.5; margin: 0 0 14px; padding: 10px 14px; border-radius: 4px; }
.bls-event-form-message--success { background: #eef6ea; color: #2f6b1f; }
.bls-event-form-message--info { background: #f0ede8; color: #55483d; }
.bls-event-form-message--error { background: #fbeceb; color: #b3261e; }

/* ── Адаптив ──────────────────────────────────────────────────────── */
@media (max-width: 960px) {
    .bls-events-hero__title { font-size: 36px; }
    .bls-events-up-card { grid-template-columns: 1fr; gap: 18px; }
    .bls-events-up-date { border-right: none; padding-right: 0; text-align: left; display: flex; align-items: baseline; gap: 10px; }
    .bls-events-past-grid { grid-template-columns: repeat(2, 1fr); }
    .bls-event-body-grid { grid-template-columns: 1fr; gap: 36px; }
    .bls-event-form-col { position: static; }
}
@media (max-width: 560px) {
    .bls-events-past-grid { grid-template-columns: 1fr; }
}
