/* Контакты (макет 2005-1603 / 2005-2372). Свой блок контактов: он не совпадает с общим «Контакты + карта» —
   две колонки по 720, подписи в колонке 155, почта крупным капсом, часы Москвы, фото + карта под ними.
   Выгрузка даёт у текста коробку «верх заглавной → базовая линия»; ниже — пересчёт в коробки строк
   (Montserrat 72/80: заглавная на 15.4 от верха строки, 40/48 — 10.3, 28/40 — 10.4, 24/40 — 11.8, 20/26 — 6.2, 16/30 — 9.5; Inter 15/22 — 5.5, 11/20 — 6). */

/* ---------- Первый экран ---------- */
.ct-hero { padding: 81px var(--gutter) 49px; border-bottom: 1px solid var(--c-line); }

/* ---------- Телефон | почта и адрес ---------- */
.ct-info { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border-bottom: 1px solid var(--c-line); }
.ct-cell--phone { display: flex; flex-direction: column; padding: 46px var(--gutter) 59px; border-right: 1px solid var(--c-line); }
.ct-row { display: grid; grid-template-columns: 155px minmax(0, 1fr); align-items: start; }
.ct-row__label { padding-top: 12px; }
.ct-phone { gap: 9px; }
.ct-phone .phone__row { flex-wrap: wrap; row-gap: 8px; }
.ct-clock { display: flex; flex-wrap: wrap; align-items: center; column-gap: 45px; row-gap: 8px; margin-top: auto; padding-top: 40px; visibility: hidden; }
.ct-clock.is-on { visibility: visible; }
.ct-clock__now { display: inline-flex; align-items: center; gap: 10px; }
.ct-clock .i { width: 16px; height: 16px; }

.ct-row--mail { padding: 44px var(--gutter) 56px; border-bottom: 1px solid var(--c-line); }
.ct-row--addr { padding: 54px var(--gutter) 72px; }
.ct-row--addr .ct-row__label { padding-top: 3px; }
.ct-row__sub { margin-top: 9px; color: var(--c-white-80); }
.ct-mail { align-items: flex-start; gap: 14px; font: 600 28px/40px var(--f-head); text-transform: uppercase; overflow-wrap: anywhere; text-align: left; }
.ct-mail .i { margin-top: 4px; }

/* ---------- Фото офиса + карта, 720×405 каждая ---------- */
.ct-media { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.ct-photo { position: relative; overflow: hidden; aspect-ratio: 720 / 405; background: #d9d9d9; }
.ct-photo img { width: 100%; height: 100%; object-fit: cover; }
.ct-photo__pin, .ct-media__go { display: none; }
.ct-map { min-height: 0; aspect-ratio: 720 / 405; }
.ct-map .map__pin { top: calc(50% - 63px); width: 48px; height: 63px; }

/* ---------- Заголовки разделов ---------- */
.ct-shead { padding-top: 150px; padding-bottom: 86px; }
@media (min-width: 1024px) { .ct-shead .pre { padding-top: 4px; } /* в макете слиток и заголовок по одной линии заглавных */ }

/* ---------- Обратная связь: вводка слева, форма с 504 (35%) ---------- */
.ct-formrow { display: grid; grid-template-columns: 35% minmax(0, 1fr); padding: 64px 0 0;  border-top: 1px solid var(--c-line); }
.ct-formrow__lead { padding-left: var(--gutter); margin-top: -6px; }
.ct-form.req { padding: 0; margin-right: var(--gutter); }
.ct-form .field textarea { height: 128px; }
.ct-form .req__checks { margin-top: 48px; }
.ct-form .check, .ct-form .req__policy { line-height: 24px; }
.ct-thanks { grid-column: 2; grid-row: 1; padding: 0; min-height: 0; place-items: start; }
.ct-form { grid-column: 2; grid-row: 1; }
.ct-formrow.is-sent .ct-form { display: block; visibility: hidden; } /* форма держит место: страница не прыгает */
.ct-formrow.is-sent .ct-thanks { display: grid; }

/* ---------- Файлы: три карточки 480×520 ---------- */
.ct-files { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--c-line); }
.ct-file {
  display: flex; flex-direction: column; align-items: flex-start; min-height: 519px;
  padding: 41px var(--gutter) 40px; border-right: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line);
}
.ct-file:nth-child(3n) { border-right: 0; }
.ct-file__name { font: 400 20px/26px var(--f-head); }
.ct-file__meta { margin-top: 12px; font: 600 11px/20px var(--f-text); letter-spacing: .06em; text-transform: uppercase; color: var(--c-white-50); }
.ct-file__pic { position: relative; overflow: hidden; align-self: center; width: 141px; aspect-ratio: 141 / 170; margin-top: 60px; }
.ct-file__pic img { position: absolute; left: -27.42%; top: -14.88%; width: 161.29%; max-width: none; height: auto; }
.ct-file__btn { align-self: flex-end; margin-top: auto; }
.ct-file__ico { display: none; }
@media (hover: hover) {
  .ct-file:hover .ct-file__btn, .ct-file:hover .ct-file__ico { background: var(--c-hover); }
}

/* ---------- Мобильная раскладка (375) ---------- */
@media (max-width: 1023px) {
  .ct-hero { padding: 59px var(--gutter) 35px; }
  .ct-hero__title { font-size: 28px; line-height: 30px; }

  .ct-info { grid-template-columns: 1fr; border-bottom: 0; }
  .ct-cell--phone { padding: 26px var(--gutter) 27px; border-right: 0; border-bottom: 1px solid var(--c-line); }
  .ct-row { grid-template-columns: 1fr; }
  .ct-row__label, .ct-row--addr .ct-row__label { padding-top: 0; }
  .ct-phone { margin-top: 39px; gap: 13px; }
  .ct-phone .phone__num { font-size: 24px; line-height: 40px; }
  .ct-clock { display: none; }
  .ct-row--mail { padding: 26px var(--gutter) 21px; }
  .ct-row--mail > div { margin-top: 32px; }
  .ct-mail { font-size: 24px; line-height: 40px; gap: 10px; }
  .ct-mail .i { margin-top: 10px; }
  .ct-row--mail .ct-row__sub { display: none; }
  .ct-row--addr { padding: 26px var(--gutter) 43px; }
  .ct-addr { margin-top: 36px; }
  .ct-addr br { display: none; }

  .ct-media { grid-template-columns: 1fr; }
  .ct-photo { aspect-ratio: 375 / 500; }
  .ct-photo__pin { display: grid; place-items: center; position: absolute; top: var(--gutter); right: var(--gutter); width: 56px; height: 56px; background: var(--c-bg); color: var(--c-white); }
  .ct-photo__pin .i { width: 24px; height: 24px; }
  .ct-map { display: none; }
  .ct-media__go { display: inline-flex; justify-content: space-between; margin: 32px var(--gutter) 0; padding-inline: 24px; }

  .ct-shead { padding-top: 82px; padding-bottom: 57px; gap: 34px; }
  .ct-shead .pre { padding-top: 8px; }
  .ct-shead--form { padding-bottom: 19px; }
  .ct-shead .shead__title { font-size: 22px; line-height: 30px; }
  .ct-formrow { grid-template-columns: 1fr; padding: 0 var(--gutter); border-top: 0; }
  .ct-formrow__lead { padding-left: 0; margin: 0 0 58px; color: var(--c-white-80); }
  .ct-form .field input { height: 64px; padding-block: 22px; }
  .ct-form .field__req { top: 22px; }
  .ct-form .field textarea { height: 124px; }
  .ct-form .req__checks { margin-top: 40px; }
  .ct-form .req__policy { margin-top: 24px; }
  .ct-form .req__send { margin-top: 40px; justify-content: space-between; }
  .ct-thanks, .ct-form { grid-column: 1; grid-row: 2; }
  .ct-form.req { margin-right: 0; }

  .ct-files { grid-template-columns: 1fr; }
  .ct-file { display: grid; grid-template-columns: 1fr 32px; column-gap: 16px; min-height: 0; padding: 30px var(--gutter) 34px; border-right: 0; }
  .ct-file__name { grid-column: 1; font-size: 16px; line-height: 30px; }
  .ct-file__meta { grid-column: 1; margin-top: 5px; }
  .ct-file__pic, .ct-file__btn { display: none; }
  .ct-file__ico { grid-column: 2; grid-row: 1 / 3; display: grid; place-items: center; width: 32px; height: 32px; margin-top: 1px; background: var(--c-black); transition: background-color .25s var(--ease); }
  .ct-file__ico .i { width: 16px; height: 16px; }
}
.ct-shead--files { padding-top: 153px; }
@media (max-width: 1023px) { .ct-shead--files { padding-top: 85px; } }
@media (max-width: 1023px) { .ct-files { margin-bottom: 120px; } /* в макете 120 до подвала */ }
