/* contacts — филиалы. Общее: .branch-dl (адрес, часы…), .studio.active-city (выбранный филиал, JS). */
.branch-dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 16px; font-size: 14.5px; margin: 14px 0 22px; }
.branch-dl dt { color: var(--s-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; padding-top: 3px; }
.branch-dl dd { color: var(--s-text); }
.studio.active-city { border-color: var(--s-accent); box-shadow: 0 0 0 2px var(--s-accent) inset; }

/* cards_map: один филиал — широкая карточка с картой, несколько — сетка */
.studios { display: grid; gap: 20px; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.studio { display: grid; grid-template-columns: 1fr 1.2fr; gap: 0; padding: 0; overflow: hidden; }
.studio.no-map, body.multi .studio { grid-template-columns: 1fr; }
.studio .info { padding: 30px; }
.studio .map { min-height: 280px; width: 100%; height: 100%; border: 0; border-left: 1px solid var(--s-line); }
body.multi .studio .map { border-left: none; border-top: 1px solid var(--s-line); min-height: 220px; }
@media (max-width: 900px) {
  .studio { grid-template-columns: 1fr; }
  .studio .map { border-left: none; border-top: 1px solid var(--s-line); min-height: 220px; }
}
@media (max-width: 560px) { .studios { grid-template-columns: 1fr; } }

/* simple: адреса и телефоны списком, без карты */
.contacts-simple { display: flex; flex-direction: column; }
.contacts-item.studio { display: block; overflow: visible; padding: 22px 0; border: 0; border-top: 1px solid var(--s-line); border-radius: 0; background: none; }
.contacts-item.studio:last-child { border-bottom: 1px solid var(--s-line); }
.contacts-item h3 { font-size: 20px; margin: 0; }
.contacts-item.studio.active-city { box-shadow: none; border-left: 3px solid var(--s-accent); padding-left: 16px; }
@media (max-width: 480px) {
  .contacts-item .branch-dl { grid-template-columns: 1fr; gap: 2px; }
  .contacts-item .branch-dl dd { margin-bottom: 8px; }
}

/* map_full: карта на всю ширину, карточка филиала поверх */
.contacts-full .contacts-head { margin-bottom: 0; }
.branch-full { position: relative; margin-top: 24px; min-height: 460px; display: flex; align-items: center; }
.branch-full-map { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.branch-full-map.ph { border-radius: 0; border-left: 0; border-right: 0; }
.branch-full-wrap { position: relative; width: 100%; padding-top: 30px; padding-bottom: 30px; pointer-events: none; }
.branch-full-card.studio { display: block; overflow: visible; padding: 26px; max-width: 380px; pointer-events: auto; box-shadow: 0 16px 44px rgba(0, 0, 0, .22); }
.branch-full-card.active-city { box-shadow: 0 16px 44px rgba(0, 0, 0, .22), 0 0 0 2px var(--s-accent) inset; }
.branch-full-card .branch-dl { margin-bottom: 18px; }
.branch-full.no-map { min-height: 0; }
.branch-full.no-map .branch-full-card { max-width: 520px; box-shadow: none; }
@media (max-width: 700px) {
  /* карта над карточкой, а не под ней */
  .branch-full { flex-direction: column; align-items: stretch; min-height: 0; }
  .branch-full-map { position: static; height: 260px; }
  .branch-full-wrap { padding-top: 16px; pointer-events: auto; }
  .branch-full-card.studio { max-width: none; box-shadow: none; }
}
