/* Phone-first corrections: no title is allowed to spill beyond the viewport. */
@media (max-width: 640px) {
  html, body { overflow-x: hidden; }

  .calendar { padding: 64px 20px 76px; gap: 38px; }
  .calendar h2 { max-width: 100%; font-size: clamp(40px, 11.5vw, 46px); line-height: .94; letter-spacing: -.07em; }
  .events { min-width: 0; }
  .event { min-width: 0; grid-template-columns: 96px minmax(0, 1fr); gap: 16px; padding: 28px 0; }
  .event > div { min-width: 0; }
  .event-date b.month { font-size: 18px; line-height: 1; letter-spacing: -.06em; }
  .event h3 { font-size: 17px; line-height: 1.16; letter-spacing: -.035em; overflow-wrap: anywhere; hyphens: auto; }

  .leadership { gap: 18px; }
  .leader { min-height: 0; padding: 0; display: block; background: linear-gradient(135deg, #ef252b 0%, #c80d17 100%); }
  .leader:before { display: none; }
  .leader > img { position: relative; right: auto; bottom: auto; display: block; width: 100%; height: 244px; object-fit: cover; object-position: 50% 30%; }
  .leader:first-child > img { object-position: 50% 28%; }
  .leader > div { position: relative; z-index: 1; max-width: none; padding: 22px 22px 0; }
  .leader h3 { font-size: clamp(28px, 8vw, 34px); line-height: .92; letter-spacing: -.065em; overflow-wrap: anywhere; }
  .leader-patronymic { white-space: normal; }
  .leader p:not(.leader-bio) { margin-bottom: 12px; font-size: 10px; line-height: 1.25; }
  .leader-bio { position: relative; z-index: 1; max-width: none; margin: 0 !important; padding: 14px 22px 24px; font-size: 14px !important; line-height: 1.38; letter-spacing: .01em !important; word-spacing: normal !important; }
}
