/* Контакты — фреймы «Контакты» 2042-3391 (1440), «Контакты м» 2042-3545 (375), «Всплывающая карта м» 2042-3708. Числа из макета. */
.wrap-in { padding-inline: var(--gutter); }
.only-m { display: none; }

/* ---------- Заголовок страницы: H 72/88 слева, подпись справа по низу ---------- */
.chead { display: grid; grid-template-columns: 812fr 548fr; align-items: end; padding-top: 88px; padding-bottom: 80px; }
.chead__text { max-width: 430px; padding-bottom: 6px; }

/* ---------- Город + карта (500 высотой, пополам) ---------- */
.cbox { display: grid; grid-template-columns: 1fr 1fr; }
.cinfo { background: var(--c-accent); color: #fff; padding: 48px 40px; min-height: 500px; }
.cinfo__tabs { display: flex; gap: 20px; height: 8px; margin-bottom: 96px; }
.cinfo__tab { display: flex; align-items: center; gap: 6px; height: 8px; font: 500 11px/8px var(--f-text); letter-spacing: .01em; text-transform: uppercase; color: #fff; position: relative; transition: opacity .2s; }
.cinfo__tab::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #fff; opacity: 0; transition: opacity .2s; }
.cinfo__tab::after { content: ''; position: absolute; inset: -12px -4px; }   /* зона нажатия 32px, не двигая строку */
.cinfo__tab[aria-selected="true"]::before { opacity: 1; }
@media (hover: hover) { .cinfo__tab[aria-selected="false"]:hover { opacity: .5; } }

.crow { display: grid; grid-template-columns: 160px 1fr; align-items: center; padding: 24px 0; border-top: 1px solid var(--c-white-20); }
.crow:first-child { padding-top: 0; border-top: 0; }
.crow:last-child { padding-bottom: 0; }
.crow--top { align-items: start; }
.crow--top .t-caps { padding-top: 1px; }
.crow__label { color: var(--c-white-80); }
.crow__val { display: flex; align-items: center; gap: 16px; min-width: 0; }
.crow__val .t-h4 { white-space: nowrap; }
.crow__val--mail { gap: 12px; align-items: flex-start; }
.crow__val .footer__msg { padding-top: 3px; }

.cmap { position: relative; overflow: hidden; background: #e8e8e8; min-height: 500px; }
.cmap__link { position: absolute; inset: 0; display: block; }
.cmap__img { position: absolute; left: calc(50% - 792px); top: -192px; width: 1772px; max-width: none; height: 1075px; transform-origin: 792px 484px; transition: transform .3s; }
.cmap__pin { position: absolute; left: calc(50% - 32px); top: 208px; width: 64px; height: 84px; }
.cmap__btn { position: absolute; left: 24px; bottom: 24px; }
.cmap__zoom { position: absolute; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 8px; }
.cmap__zoom .ibtn:disabled { opacity: .5; cursor: default; }
@media (hover: hover) { .cmap__zoom .ibtn--white-dark:not(:disabled):hover { background: #fff; color: var(--c-accent); box-shadow: none; } }

.cacc { display: none; }

/* ---------- Обратная связь (как на главной) ---------- */
.fback__intro p { border-top: 1px solid var(--c-line); padding: 28px 0 96px calc(50% + 16px); padding-right: calc(50% - 16px - 453px); }
.fback__box { display: grid; grid-template-columns: 664fr 696fr; }
.fback__photo { overflow: hidden; background: #e9e9e9; }
.fback__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.fback__box .cform { border-left: 0; }

/* ---------- Файлы для скачивания ---------- */
.dls { padding-bottom: 140px; }
.dls__grid { display: grid; grid-template-columns: 441fr 480fr 439fr; }
.dl { display: flex; flex-direction: column; align-items: flex-start; padding: 48px 40px 64px; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.dl + .dl { border-left: 1px solid var(--c-line); }
.dl:first-child { padding-left: 0; }
.dl:last-child { padding-right: 0; }
.dl__top { align-self: stretch; }
.dl__size { margin-top: 6px; }
.dl__ic { display: none; }
.dl__img { width: 238px; height: 248px; object-fit: cover; align-self: center; margin: 32px 0 40px; }

/* ---------- Узкий десктоп: город над картой ---------- */
@media (min-width: 1024px) and (max-width: 1279px) {
  .cbox { grid-template-columns: 1fr; }
  .cinfo { min-height: 0; }
}

/* ---------- Мобильный ---------- */
@media (max-width: 1023px) {
  .only-d { display: none; }
  .only-m { display: inline; }

  .chead { display: block; padding-top: 32px; padding-bottom: 40px; }
  .chead__text { margin-top: 48px; padding-bottom: 0; max-width: none; }

  .cbox { display: none; }
  .cacc { display: block; }
  .cacc__item { border-bottom: 1px solid var(--c-line); transition: background-color .25s, color .25s, border-color .25s; }
  .cacc__item.is-open { background: var(--c-accent); color: #fff; border-bottom-color: var(--c-accent); }
  .cacc__head { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 16px; padding: 16px var(--gutter); text-align: left; }
  .cacc__ic { position: relative; width: 24px; height: 24px; margin-top: 3px; border-radius: 50%; background: var(--c-accent); color: #fff; flex: none; transition: background-color .25s, color .25s; }
  .cacc__ic .i { position: absolute; left: 4px; top: 4px; width: 16px; height: 16px; transition: opacity .2s; }
  .cacc__ic .i-close { opacity: 0; }
  .is-open .cacc__ic { background: #fff; color: var(--c-text); }
  .is-open .cacc__ic .i-plus { opacity: 0; }
  .is-open .cacc__ic .i-close { opacity: 1; }
  .cacc__in { padding: 0 var(--gutter) 48px; }
  .cacc__row { display: flex; flex-direction: column; gap: 12px; padding: 28px 0; border-bottom: 1px solid var(--c-white-20); }
  .cacc__row--phone { gap: 8px; padding-top: 32px; }   /* 48 от заголовка, 16 из них — низ строки заголовка */
  .cacc__row--last { border-bottom: 0; padding-bottom: 48px; }
  .cacc__row .crow__val { gap: 16px; }
  .cacc__row .crow__val--mail { gap: 12px; align-items: center; }
  .cacc__row .crow__val--mail .footer__copy { padding-top: 0; }
  .cacc__row .t-h4 { white-space: nowrap; }
  .cacc__big { font: 300 20px/28px var(--f-head); text-transform: uppercase; }
  .cacc__btns { display: flex; flex-direction: column; gap: 16px; }
  .cacc__btns .btn { width: 100%; }
  .cacc__row--last:last-child { padding-bottom: 0; }

  .fback .sec-head { padding: 96px var(--gutter) 48px; }
  .fback__intro p { padding: 0 0 64px; border: 0; }
  .fback__box { display: block; padding: 0; }
  .fback__photo { display: none; }

  .dls { padding-bottom: 96px; }
  .dls .sec-head { padding: 96px var(--gutter) 48px; }
  .dls__grid { display: block; padding: 0; }
  .dl { display: block; padding: 24px var(--gutter); border-bottom: 0; }
  .dl + .dl { border-left: 0; }
  .dl:first-child { padding-left: var(--gutter); }
  .dl:last-child { padding-right: var(--gutter); border-bottom: 1px solid var(--c-line); }
  .dl__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
  .dl__ic { display: inline-flex; margin-top: 3px; }
  .dl__size { margin-top: 8px; }
  .dl__img, .dl__btn { display: none; }
}

/* ---------- Всплывающая карта м ---------- */
.mapm { justify-content: stretch; align-items: stretch; }
.mapm__in { position: relative; flex: 1; overflow: hidden; background: #e8e8e8; opacity: 0; transition: opacity .25s; }
.mapm.is-open .mapm__in { opacity: 1; }
.mapm .cmap__img { left: calc(50% - 814px); top: calc(50% - 555px); transform-origin: 814px 597px; }
.mapm .cmap__pin { top: calc(50% - 42px); }
.mapm__close { position: absolute; top: 24px; right: var(--gutter); }
.mapm .cmap__zoom { gap: 16px; right: var(--gutter); }
