/* Shared phone/tablet layout. Desktop styles remain in the original files. */
.local-submenu-toggle { display: none; }
@media (max-width: 800px) {
  .page .local-submenu-toggle {
    display: block; margin: 0 24px 8px; min-height: 44px; padding: 8px 12px;
    background: transparent; color: #fff; border: 1px solid #777; border-radius: 6px;
    font: 16px/1.4 'Alegreya Sans', sans-serif; cursor: pointer;
  }
  .page .menu-02 .menu-02-item__sub.is-open {
    display: block !important; position: static; width: 100%; min-width: 0;
    max-width: 100%; transform: none; opacity: 1; visibility: visible;
  }
  .page .menu-02-item-sub__inner { width: 100%; box-sizing: border-box; padding: 8px 24px; }
  .page .menu-02-item-sub__link { display: block; padding: 12px 0; font-size: 16px; line-height: 1.4; white-space: normal; }
  .page { overflow-x: visible; }
  .page .section { box-sizing: border-box; }
  .page .page__main .section:not(.enrollment-section):not(#мастерские) {
    padding: 32px 16px;
  }
  .page .page__main .section > .section__content {
    width: 100%; max-width: 600px; margin-inline: auto; padding-inline: 0;
    box-sizing: border-box; min-width: 0;
  }
  .page .page__header .media-01 { padding-block: 24px; }
  .page .page__header .media-01__img { width: 120px; }
  .page .page__main .wysiwyg-content,
  .page .page__main [class$="__text"].wysiwyg-string,
  .page .page__main [class$="__subtitle"].wysiwyg-string {
    font-size: 16px; line-height: 1.6; overflow-wrap: anywhere;
  }
  .page .page__main .wysiwyg-content [style*="font-size"] { font-size: inherit !important; }
  .page .page__main .wysiwyg-string { overflow-wrap: anywhere; }
  .page .page__main [style*="white-space"] { white-space: normal !important; }
  .page .page__main .section__header,
  .page .page__main .section__subheader,
  .page .page__main .text-34__title,
  .page .page__main .text-40__title,
  .page .page__main .text-11__title,
  .page .page__main .text-30__title,
  .page .page__main .text-59__title,
  .page .page__main .text-60__title,
  .page .page__main .text-68__title,
  .page .page__main .cover-01-content__title {
    font-size: clamp(24px, 6vw, 32px); line-height: 1.25;
    overflow-wrap: anywhere; text-wrap: balance;
  }
  .page .page__main .media-37__intro,
  .page .page__main .media-37__title,
  .page .page__main .media-56-main__title,
  .page .page__main .slider-09__title {
    font-size: 22px; line-height: 1.35; overflow-wrap: anywhere;
  }
  .page .cover-01, .page .cover-01__inner { height: auto; min-height: 0; }
  .page .cover-01__inner { padding-block: 36px; }
  .page .cover-01-content { width: 100%; max-width: 100%; padding: 0; }
  .page .cover-01-content__intro { font-size: 16px; line-height: 1.5; }
  .page .page__main .button {
    max-width: 100%; min-height: 48px; box-sizing: border-box;
    padding-inline: 20px; white-space: normal;
  }
  .page .page__main .button__text { white-space: normal; overflow-wrap: anywhere; }

  /* Stack editorial image/text layouts instead of shrinking two columns. */
  .page .media-56__content, .page .media-37__content, .page .slider-09__content {
    display: flex; flex-direction: column; gap: 24px; width: 100%; margin: 0;
  }
  .page .media-56__media, .page .media-56__main,
  .page .media-37__image-container, .page .media-37__main,
  .page .slider-09__slider-container, .page .slider-09__text-container {
    width: 100%; max-width: 100%; min-width: 0; padding: 0; margin: 0;
  }
  .page .media-56-main__inner, .page .media-56-main__inner2, .page .media-56-main__inner3 {
    width: 100%; min-width: 0; padding: 0; margin: 0;
  }
  .page .media-37__image img { width: 100%; max-height: 280px; object-fit: cover; }
  .page .slider-09-list__items, .page .media-26-list {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px; width: 100% !important; margin: 0; transform: none !important;
  }
  .page .slider-09 .slider__track, .page .media-26-carousel__list-container { width: 100%; overflow: visible; }
  .page .slider-09-item__img-container, .page .media-26-item {
    width: 100% !important; min-width: 0; padding: 0; margin: 0;
  }
  .page .slider-09-item__img { display: block; width: 100%; height: auto; }
  .page .slider-09-arrows, .page .media-26-carousel__nav-btn, .page .media-26-carousel-pagination { display: none; }
  .page .cards-16-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; }
  .page .cards-16-list > .cards-16-item { width: auto; min-width: 0; padding: 0; margin: 0; }
  .page .cards-16-item__title, .page .cards-16-item__subtitle { font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
  .page .cards-16-item__btn { width: 100%; padding: 12px 8px; font-size: 14px; }
  .page .cards-19-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; margin: 0; }
  .page .cards-19-list > .cards-19-item { width: 100%; margin: 0; padding: 0; }
  .page .cards-19-item__title { font-size: 19px; line-height: 1.4; }
  .page .cards-19-item__text { font-size: 16px; line-height: 1.6; }
  .page .cards-06-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 0; }
  .page .cards-06-list > .cards-06-item { width: auto; min-width: 0; padding: 0; margin: 0; }
  .page .cards-06-item__title { font-size: 16px; line-height: 1.4; }

  /* Each schedule row becomes a labelled card. Labels live in the HTML. */
  .page .table-01__table-container { width: 100%; overflow: visible; }
  .page .table-01-content, .page .table-01-content tbody { display: block; width: 100%; min-width: 0; }
  .page .table-01-content__header {
    position: absolute; width: 1px; height: 1px; overflow: hidden;
    clip-path: inset(50%); white-space: nowrap;
  }
  .page .table-01-content__row:not(.table-01-content__header) {
    display: block; margin-bottom: 16px; padding: 8px 16px;
    background: #f9f9f7; border: 1px solid #d5d5d2; border-radius: 12px;
  }
  .page .table-01-content__row:not(.table-01-content__header) .table-01-content__cell {
    display: block; width: 100% !important; box-sizing: border-box;
    padding: 12px 0; border: 0; border-bottom: 1px solid #ddd;
    background: transparent; font-size: 16px; line-height: 1.5; text-align: left;
    white-space: normal; overflow-wrap: anywhere;
  }
  .page .table-01-content__cell[data-label]::before {
    content: attr(data-label); display: block; margin-bottom: 4px;
    font: 500 14px/1.4 'Montserrat', sans-serif; color: #666;
  }
  .page .table-01-content__row .table-01-content__cell:last-child { border-bottom: 0; }

  .page .social-10 { padding: 32px 16px; }
  .page .social-10 .section__header { font-size: 28px; line-height: 1.25; }
  .page .social-10 .section__subheader { font-size: 18px; line-height: 1.5; }
  /* Contact links remain in the footer; the floating duplicate covers mobile CTAs. */
  .page .social-06 { display: none; }
  .page .page-footer-04 { padding: 32px 16px 80px; }
  .page .page-footer-04-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; margin: 0; }
  .page .page-footer-04-content__column { width: auto; min-width: 0; padding: 0; margin: 0; }
  .page .page-footer-04-content__column:first-child,
  .page .page-footer-04-content__column:last-child { grid-column: 1 / -1; }
  .page .page-footer-04-brand__brand-logo img { width: 100px; }
  .page .page-footer-04-menu a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; }
  .page .page-footer-04-contacts { overflow-wrap: anywhere; }
  .back-to-top { bottom: max(16px, env(safe-area-inset-bottom)); right: 12px; width: 44px; height: 44px; }
}
