/* Размеры снимков на десктопе.

   Внутри страниц у каждого снимка стоит свой размер – он остаётся значением
   для телефона. Здесь оно переопределяется для широких экранов, поэтому
   мобильная вёрстка не меняется вообще.

   Потолок у каждого снимка задан разрешением исходника: шире половины
   ширины файла картинка мылится на ретине. Где стоит комментарий «предел» –
   поднять выше можно только с новым исходником. */

@media (min-width: 641px) {
  .ph-org-work    { max-width: 640px !important; }   /* исходник 1400 px */
  .ph-about-2     { max-width: 480px !important; }   /* исходник 1333 px */
  .ph-course-mid  { max-width: 480px !important; }   /* исходник 1333 px */
  .ph-org-author  { max-width: 440px !important; }   /* исходник 933 px */
  .ph-about-1     { max-width: 440px !important; }   /* исходник 853 px */
  .ph-cons-hero   { max-width: 420px !important; }
  /* Судейство: снимки в текстовых блоках были во всю колонку и спорили
     с текстом – ужимаем и ставим по центру своей колонки. */
  /* Судейство: ужимаем цветную рамку вместе со снимком. Раньше предел
     стоял на самом снимке, и по краям рамки оставались цветные поля. */
  .jud-figure { max-width: 320px; margin: 0 auto; }
  .jud-figure-hero { max-width: 400px; }
  .jud-figure img { max-width: none !important; margin: 0 !important; }   /* исходник 800 px, предел */
  .ph-prod-1      { max-width: 420px !important; }   /* исходник 800 px, предел */
  .ph-prod-2      { max-width: 400px !important; }   /* исходник 800 px, предел */
  .ph-prod-3      { max-width: 400px !important; }   /* исходник 800 px, предел */
  .ph-alesia-hero { max-width: 400px !important; }   /* исходник 760 px, предел */
  .ph-alesia-full { max-width: 340px !important; }   /* исходник 620 px, предел */

  /* Кадр обрезан по вертикали: шире – и он становится непропорционально длинным */
  .ph-course-author { max-width: 380px !important; }

  /* Первый экран книги: как было изначально – крупный кадр слева во всю высоту,
     два поменьше стопкой справа. На телефоне остаются три в строку. */
  .hero-shots {
    grid-template-columns: 1.35fr 1fr !important;
    grid-template-rows: 273px 273px !important;
    gap: 14px !important;
  }
  .hero-shots img {
    aspect-ratio: auto !important;
    height: 100% !important;
    object-fit: cover;
  }
  .hero-shots img:first-child { grid-row: 1 / span 2; }

  /* Длина строки. В контейнере 1180 px абзац без ограничения тянется на 140
     символов – читается тяжело, оптимум 60–75. Внутри карточек колонки и так
     узкие, правило на них не влияет. Документы не трогаем: там своя колонка. */
  p { max-width: 680px; }
  .doc p { max-width: none; }

  /* В карточках услуг и обучения текст живёт в своей колонке шириной
     примерно 780 px – предел в 680 px обрезал его почти на сто пикселей
     и карточка выглядела уже, чем есть. Внутри карточек предела нет. */
  .serv-card p, .serv-card h2,
  .edu-card p, .edu-card h2 { max-width: none; }

  /* Галерея, которую листают вбок – как отзывы. На телефоне остаётся сеткой
     по два снимка в строку, там правило .photo-grid из mobile-center.css. */
  .photo-rail {
    display: flex !important;
    overflow-x: visible !important;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    padding-bottom: 10px;
    gap: 14px !important;
    align-items: stretch;
  }
  .photo-rail > img {
    flex: 1 1 0;
    min-width: 0;
    scroll-snap-align: start;
    aspect-ratio: 3 / 4;
    object-fit: cover;
  }

  /* Абзацы – выключкой по ширине: строка ограничена 680 px, правый край
     получается ровным, а промежутки между словами не расходятся. */
  p {
    text-align: justify;
    text-justify: inter-word;
  }

  /* Карточки – отзывы, услуги, обучение. Там строка около 300 px, и
     выключка по ширине рвала бы её большими дырами: текст идёт влево. */
  [style*="scroll-snap-align"] p,
  [style*="flex:0 0"] p,
  [style*="flex:1 1"] p,
  .edu-card p,
  .serv-card p { text-align: left; }

  /* Центрированный текст остаётся по центру – и стоит ровно посередине.
     Ширина абзаца ограничена, поэтому без автополей его коробка прижимается
     влево: внутри себя текст центрирован, а на странице выглядит смещённым.
     margin здесь через !important: в разметке у таких абзацев стоит
     inline-стиль margin:0 0 14px, и без приоритета он перебивает правило. */
  [style*="text-align:center"] p,
  p[style*="text-align:center"],
  .hero-copy p {
    text-align: center;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Лента, в которой отзывов всего два: разворачиваем их на всю ширину
     страницы – листать нечего, поэтому и стрелки не нужны. */
  .rail-fit { overflow-x: visible !important; }
  .rail-fit > div { flex: 1 1 0 !important; min-width: 0; }
  .rail-fit-arrows { display: none !important; }

  /* Первый экран: надзаголовок, заголовок, дескриптор и кнопки стоят по центру
     своей текстовой колонки, а не страницы – рядом остаётся фотография.
     Абзацы и подписи ограничены по ширине, поэтому их дополнительно
     двигаем автополями, иначе узкая строка прижимается к левому краю. */
  .hero-copy { text-align: center; }
  .hero-copy p,
  .hero-copy > div[style*="max-width"] {
    margin-left: auto !important;
    margin-right: auto !important;
  }
  /* Кнопки, цена и строка с цифрами набраны флексом – их центрируем по оси. */
  .hero-copy div[style*="display:flex"] { justify-content: center !important; }

  /* ── Выбранные варианты раскладки блоков (только десктоп) ────────────── */

  /* «Кто ведёт», курс. Снимок 875×1800 занимал почти 800 px высоты и
     подавлял текст. Кадрируем его 3:4 с фокусом на фигуре и отдаём
     тексту две трети ширины. */
  .who-leads { grid-template-columns: 300px 1fr !important; }
  .who-leads > .ph-course-author {
    max-width: none !important;
    margin: 0 !important;
  }
  .who-leads > .ph-course-author img {
    aspect-ratio: 3 / 4;
    height: auto;
    object-fit: cover;
    object-position: 50% 22%;
  }

  /* «Что входит в пакет документов». Список документов длиннее снимка,
     поэтому снимок выравниваем по центру колонки, а не по её верху. */
  .pack-block { align-items: center !important; }
  .pack-block > .ph-org-work { max-width: 520px !important; }

  /* «Как проходит работа», постановка. Колонка со снимком уже, сам снимок
     растянут на всю высоту шагов – под ним больше не остаётся пустоты. */
  .steps-block { grid-template-columns: 1.25fr 0.75fr !important; }
  .steps-block > .ph-prod-3 {
    max-width: none !important;
    margin: 0 !important;
    height: 100% !important;
    align-self: stretch;
    object-fit: cover;
    object-position: 50% 25%;
  }

  /* «Первый конкурс вы всё равно проведёте методом проб». Кадр опущен к
     награде: снимок вертикальный, и лицо с наградой в полосу такой высоты
     вместе не помещаются. Затемнение слева усилено, справа почти снято,
     чтобы награда читалась. */
  .award-strip { object-position: 50% 42% !important; }
  .award-veil {
    background: linear-gradient(90deg,
      rgba(35,37,39,0.94) 0%,
      rgba(35,37,39,0.80) 42%,
      rgba(35,37,39,0.15) 100%) !important;
  }

  /* Первый экран разбора номера: снимок меньше, текстовая колонка шире –
     центрированный текст встаёт ближе к середине страницы. */
  .cons-hero { grid-template-columns: 1fr 340px !important; }
  .ph-cons-hero { max-width: none !important; }

  /* «Расскажите, над чем работаете»: снимок узкой колонкой и во всю высоту
     текста – подстраивается под него, а не живёт отдельно сверху. */
  .cons-form {
    grid-template-columns: 300px 1fr !important;
    align-items: center !important;
  }
  .ph-cons-process {
    max-width: none !important;
    margin: 0 !important;
    aspect-ratio: 3 / 4;
    height: auto !important;
    object-fit: cover;
    object-position: 50% 30%;
  }
  /* Текст в этом блоке занимает не всю колонку – ставим его по центру
     свободного места, а не прижимаем к левому краю. */
  .cons-form > div { text-align: center; }
  .cons-form > div p,
  .cons-form > div > div[style*="max-width"] {
    text-align: center;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .cons-form > div div[style*="display:flex"] { justify-content: center !important; }

  /* «Как пригласить меня в жюри»: колонка с заявкой выше, чем цитата рядом.
     Цитату выравниваем по центру колонки, а не по её верху. */
  .jud-apply { align-items: center !important; }
}
