/* ===================================================================
   Главная страница: фильтр мероприятий, тизер галереи, метки карты,
   мобильная адаптация секций.
   =================================================================== */

@keyframes heroIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pulseDot{0%{r:8;opacity:.4}80%{r:20;opacity:0}100%{r:20;opacity:0}}

/* ===== Фильтр мероприятий ===== */
.ev-chip{font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;color:#2E3D5C;background:#F5F7FB;border:1px solid #E3E8F1;border-radius:100px;padding:9px 16px;cursor:pointer;transition:background .2s ease-out,border-color .2s ease-out,color .2s ease-out;white-space:nowrap}
.ev-chip:hover{border-color:#3B62E3;color:#3B62E3}
.ev-chip.ev-active{background:#3B62E3;border-color:#3B62E3;color:#fff}
.ev-hidden{display:none !important}
.ev-city-btn{display:inline-flex;align-items:center;gap:8px;font-family:Inter,sans-serif;font-size:13.5px;font-weight:600;color:#2E3D5C;background:#fff;border:1px solid #E3E8F1;border-radius:100px;padding:9px 16px;cursor:pointer;transition:border-color .2s ease-out;white-space:nowrap}
.ev-city-btn:hover,.ev-city-btn.open{border-color:#3B62E3}
.ev-city-chev{transition:transform .25s ease-out;flex:none}
.ev-city-btn.open .ev-city-chev{transform:rotate(180deg)}
.ev-city-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:210px;background:#fff;border:1px solid #E3E8F1;border-radius:14px;box-shadow:0 16px 40px rgba(38,51,73,.16);padding:6px;display:none}
.ev-city-panel.open{display:block;animation:ddIn .18s ease-out both}
@keyframes ddIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.ev-city-opt{display:block;width:100%;text-align:left;font-family:Inter,sans-serif;font-size:14px;font-weight:500;color:#2E3D5C;background:none;border:none;border-radius:9px;padding:10px 12px;cursor:pointer;transition:background .15s ease-out}
.ev-city-opt:hover{background:#F5F7FB}
.ev-city-opt.ev-active{color:#3B62E3;background:#EEF3FC;font-weight:600}
.ev-empty{display:none;text-align:center;padding:44px 20px;color:#6B7A93;font-size:15px;background:#fff;border-radius:18px;box-shadow:0 2px 6px rgba(38,51,73,.04)}
.ev-empty.show{display:block}

/* ===== Галерея (тизер на главной) ===== */
.gal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:38px}
.gal-card{position:relative;display:block;border-radius:18px;overflow:hidden;text-decoration:none;background:#DCE5F6;aspect-ratio:4/3;box-shadow:0 2px 8px rgba(38,51,73,.06);transition:transform .28s ease-out,box-shadow .28s ease-out}
.gal-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(38,51,73,.16)}
.gal-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease-out}
.gal-card:hover img{transform:scale(1.06)}
.gal-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,27,48,0) 40%,rgba(20,27,48,.84) 100%)}
.gal-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 18px}
.gal-t{font-family:Manrope,Inter,sans-serif;font-weight:700;font-size:15px;line-height:1.3;color:#fff;text-wrap:pretty}
.gal-n{font-size:12.5px;color:rgba(255,255,255,.72);margin-top:5px}
@media (max-width:1000px){.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.gal-grid{grid-template-columns:minmax(0,1fr);gap:14px}}

/* ===== Мобильная адаптация ===== */
@media (max-width:720px){
  /* ШАПКА: прячем длинный подзаголовок логотипа, ужимаем отступы — иначе бургер уезжает за экран */
  [data-header]{padding:14px 0 !important}
  [data-header] > div{gap:14px !important;padding:0 16px !important}
  [data-header] a > span:last-child > span:last-child{display:none !important}
  /* компактнее вертикальные отступы секций */
  #about,#activities,#events,#geo,#apply,#principles,#gallery{padding-top:56px !important;padding-bottom:56px !important}
  section[aria-label]{margin-top:36px !important}
  /* КЛЮЧЕВОЕ: сетки с minmax(320–330px) заставляют колонку быть шире экрана —
     схлопываем их в одну колонку на мобилке (иначе контент вылезает за край) */
  [style*="minmax(330px, 1fr)"],[style*="minmax(320px, 1fr)"],[style*="minmax(205px, 1fr)"],[style*="minmax(260px, 1fr)"],[style*="minmax(180px, 1fr)"]{grid-template-columns:minmax(0, 1fr) !important}
  /* ГЕРОЙ: меньше внутренние поля карточки и верхний отступ секции */
  section:first-of-type{padding-top:92px !important}
  section > [style*="border-radius: 28px"]{padding:24px !important}
  section h1{font-size:30px !important;letter-spacing:-.3px !important;overflow-wrap:break-word !important}
  /* внутренняя карточка «Ближайшее мероприятие» — компактнее */
  section:first-of-type [style*="border-radius: 22px"]{padding:22px !important}
  section:first-of-type [style*="border-radius: 22px"] h2{font-size:17px !important}
  section:first-of-type [style*="gap: 22px"]{gap:14px !important}
  /* бейджи в шапке карточки переносятся целиком, а не рвутся текстом */
  section:first-of-type [style*="justify-content: space-between"]{flex-wrap:wrap !important;gap:8px !important}
  [style*="rgb(233, 238, 251)"],[style*="rgb(234, 246, 239)"]{white-space:nowrap}
  /* иконка-пин выравнивается по первой строке адреса, а не по центру блока */
  section:first-of-type svg[width="14"],#events article[data-ev] svg[width="14"]{align-self:flex-start !important;margin-top:3px !important;flex:none !important}
  /* карточки мероприятий: дата сверху строкой, а не узкой колонкой сбоку */
  #events article[data-ev]{padding:18px 18px !important;gap:14px !important}
  #events article[data-ev]>div:first-child{width:100% !important;text-align:left !important;border-right:none !important;border-bottom:1px solid #E3E8F1 !important;padding-right:0 !important;padding-bottom:12px !important;display:flex !important;align-items:baseline !important;gap:10px !important}
  #events article[data-ev]>div:first-child>div:last-child{margin-top:0 !important}
  #events article[data-ev] a[href="#apply"]{width:100% !important;text-align:center !important}
  /* фильтр: город на всю ширину строки */
  [data-ev-filter] .ev-city-wrap{margin-left:0 !important;flex:1 1 100% !important}
  [data-ev-filter] .ev-city-btn{width:100% !important;justify-content:space-between !important}
  .ev-city-panel{left:0;right:0;min-width:0}
  /* статистика: без боковых разделителей (React нормализует inline-стили — селекторы под это) */
  section[aria-label] [style*="border-left: 1px solid rgba(255, 255, 255, 0.16)"]{border-left:none !important;padding-left:0 !important}
  /* герой: числа-метрики не липнут — убираем вертикальные разделители и добавляем воздух между строками */
  section [style*="border-left: 1px solid rgb(227, 232, 241)"]{border-left:none !important;padding-left:0 !important;padding-right:26px !important}
  section:first-of-type [style*="margin-top: 44px"]{gap:14px 26px !important}
  /* футер: меньше пустоты снизу и разрывов */
  footer#contacts [style*="140px"]{padding-bottom:90px !important}
  footer#contacts [style*="gap: 56px"]{gap:32px !important}
}
@media (max-width:420px){
  #events [data-ev-filter]{gap:8px}
  .ev-chip{font-size:12.5px;padding:8px 13px}
}

/* ===== Метки на карте России ===== */
/* метка города: точка + подпись */
.ym-pin{position:relative;transform:translate(-50%,-50%);cursor:pointer;font-family:Inter,sans-serif;white-space:nowrap}
.ym-dot{display:block;width:13px;height:13px;border-radius:50%;background:#2E3D5C;border:2.5px solid #fff;box-shadow:0 1px 5px rgba(38,51,73,.4);transition:transform .18s ease-out,background .18s ease-out}
.ym-pin--main .ym-dot{width:19px;height:19px;background:#3B62E3;box-shadow:0 0 0 6px rgba(59,98,227,.18),0 1px 6px rgba(38,51,73,.4)}
.ym-pin:hover .ym-dot{transform:scale(1.22);background:#3B62E3}
.ym-label{position:absolute;left:50%;bottom:calc(100% + 7px);transform:translateX(-50%);font-size:12.5px;font-weight:600;color:#2E3D5C;background:rgba(255,255,255,.94);border:1px solid #E3E8F1;border-radius:100px;padding:3px 10px;box-shadow:0 3px 10px rgba(38,51,73,.14);opacity:0;transition:opacity .18s ease-out;pointer-events:none}
.ym-pin--main .ym-label{opacity:1}
.ym-pin:hover .ym-label{opacity:1}
.ym-pin--active .ym-dot{background:#3B62E3;transform:scale(1.22)}
.ym-pin--active .ym-label{opacity:1}
/* подсказка под картой, если API не отдался (не тот домен в кабинете / нет сети) */
.ym-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;height:100%;padding:28px;text-align:center;color:#6B7A93;font-size:14.5px;line-height:1.6;background:#F5F7FB}
