/* Шоу-кейс «Место проведения и контакты»: совмещённый и раздельные */

:root {
  --pl-cta: linear-gradient(96deg, #dda249 0%, #e2a052 36.7%, #f5cb8e 100%);
}

body.venue-lab .labbar__nav a,
body.venue-lab .labfoot a:focus-visible { border-radius: 0; }

.venue-wrap { padding-bottom: clamp(52px, 6vw, 84px); }

/* — заголовки — */

.pl-head {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 3.55fr);
  gap: clamp(36px, 4.8vw, 92px);
  align-items: start;
}

.pl-title {
  margin: 0;
  font-family: var(--heading);
  font-weight: 400;
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1;
  letter-spacing: -.014em;
  color: var(--ink);
}

.pl-first { color: var(--violet); }

.pl-lead {
  margin: 4px 0 0;
  max-width: 42ch;
  font-size: clamp(15px, 1.1vw, 17px);
  line-height: 1.6;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.pl-section { padding-top: clamp(48px, 6vw, 92px); }

.pl-section + .pl-section { padding-top: clamp(78px, 8.4vw, 138px); }

/* — фотолента — */

.pl-strip {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 6px;
  margin-top: clamp(30px, 3.4vw, 44px);
}

.pl-strip picture {
  display: block;
  min-width: 0;
}

.pl-strip img {
  display: block;
  width: 100%;
  height: clamp(220px, 25vw, 360px);
  object-fit: cover;
  filter: saturate(.94);
}

.pl-strip picture:first-child img { object-position: 50% 57%; }

/* — площадка — */

.pl-body {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(0, 3.55fr);
  gap: clamp(36px, 4.8vw, 92px);
  align-items: stretch;
  margin-top: clamp(30px, 3.4vw, 44px);
}

.pl-body--single { grid-template-columns: minmax(0, 1fr); }

.pl-venue { min-width: 0; }

.pl-venue__grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(24px, 2.8vw, 40px);
  align-items: start;
}

.pl-body:not(.pl-body--single) .pl-venue__grid {
  grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr);
}

.pl-venue__info { min-width: 0; }

.pl-name {
  margin: 0;
  font-family: var(--heading);
  font-weight: 400;
  font-size: clamp(38px, 4.4vw, 62px);
  line-height: .92;
  letter-spacing: -.018em;
  color: var(--ink);
}

.pl-address {
  margin: 16px 0 0;
  font-size: clamp(15px, 1.15vw, 17px);
  line-height: 1.55;
  font-style: normal;
  color: var(--ink);
}

.pl-meta {
  margin: 10px 0 0;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
}

.pl-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
  margin-top: clamp(22px, 2.4vw, 30px);
}

.pl-cta {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 56px;
  padding: 15px 20px 15px 24px;
  border: 1px solid rgba(23, 22, 19, .42);
  border-radius: 999px;
  background: transparent;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.3;
  white-space: nowrap;
  text-decoration: none;
  transition: border-color .22s ease, color .3s ease;
}

.pl-cta::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: -1;
  border-radius: inherit;
  background: var(--pl-cta);
  opacity: 0;
  transition: opacity .22s ease;
}

.pl-cta:hover {
  border-color: transparent;
  color: #223063;
}

.pl-cta:hover::before { opacity: 1; }

.pl-cta:focus-visible {
  outline: 2px solid var(--violet);
  outline-offset: 3px;
}

.pl-cta__arrow { flex: 0 0 auto; font-size: 1em; line-height: 1; }

.pl-link {
  color: var(--violet);
  font-size: 13px;
  line-height: 1.4;
  text-decoration: none;
  border-bottom: 1px solid rgba(91, 77, 174, .34);
  transition: color .2s ease, border-color .2s ease;
}

.pl-link:hover {
  color: var(--violet-deep);
  border-color: currentColor;
}

.pl-link:focus-visible {
  outline: 1px solid var(--violet);
  outline-offset: 3px;
}

/* — карта — */

.pl-map {
  border: 1px solid var(--hairline);
  background: var(--paper-deep);
}

.pl-map__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 0;
  margin: 0 14px;
  border-bottom: 1px solid var(--hairline);
  font-size: 12px;
  line-height: 1.4;
  color: var(--ink-soft);
}

.pl-map__bar a {
  color: var(--ink);
  text-decoration: none;
  transition: color .2s ease;
}

.pl-map__bar a:hover { color: var(--violet); }

.pl-map__bar a:focus-visible {
  outline: 1px solid var(--violet);
  outline-offset: 3px;
}

.pl-map__picture {
  position: relative;
  display: block;
  height: clamp(260px, 30vw, 368px);
  overflow: hidden;
  background: var(--paper-deep) url('/venue-lab/photos/atc-map.png') center / cover no-repeat;
}

/* — карточка команды в совмещённом варианте — */

.pl-team {
  min-width: 0;
  padding: clamp(22px, 2.4vw, 30px);
  border: 1px solid var(--hairline);
  background: rgba(255, 255, 255, .34);
}

.pl-team__title {
  margin: 0;
  font-family: var(--heading);
  font-weight: 400;
  font-size: clamp(24px, 2.2vw, 30px);
  line-height: 1.07;
  letter-spacing: -.012em;
  color: var(--ink);
}

.pl-team__lead {
  margin: 10px 0 0;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.pl-person {
  margin-top: clamp(16px, 1.6vw, 22px);
  padding-top: 14px;
  border-top: 1px solid var(--hairline);
}

.pl-person__name {
  margin: 0;
  font-family: var(--heading);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.15;
  letter-spacing: -.008em;
  color: var(--ink);
}

.pl-person__role {
  margin: 7px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  text-wrap: pretty;
}

.pl-ways {
  margin: 16px 0 0;
  font-style: normal;
}

.pl-way {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid var(--hairline);
  font-family: var(--heading);
  font-weight: 400;
  font-size: clamp(16px, 1.45vw, 19px);
  line-height: 1.2;
  color: var(--ink);
  text-decoration: none;
  transition: color .2s ease;
}

.pl-way:last-child { border-bottom: 1px solid var(--hairline); }

.pl-way__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.pl-way__platform {
  font-family: var(--text);
  font-size: 9.5px;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.pl-way__handle {
  color: var(--ink);
  overflow-wrap: anywhere;
}

.pl-way:hover .pl-way__handle { color: var(--violet); }

.pl-way:hover { color: var(--violet); }

.pl-way:focus-visible {
  outline: 1px solid var(--violet);
  outline-offset: 3px;
}

.pl-way__arrow {
  font-family: var(--text);
  font-size: 14px;
  line-height: 1;
  color: var(--ink-soft);
  transition: transform .2s ease, color .2s ease;
}

.pl-way:hover .pl-way__arrow {
  transform: translate(2px, -2px);
  color: var(--violet);
}

/* — отдельный блок контактов — */

.pl-contact-body {
  display: grid;
  grid-template-columns: minmax(0, 4.5fr) minmax(0, 7.5fr);
  gap: clamp(36px, 5vw, 80px);
  align-items: start;
  margin-top: clamp(32px, 3.6vw, 48px);
}

.pl-person--large {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.pl-person--large .pl-person__name {
  font-size: clamp(23px, 2vw, 30px);
}

.pl-person--large .pl-person__role {
  max-width: 30ch;
  margin-top: 10px;
  font-size: clamp(13.5px, 1.1vw, 15px);
}

.pl-ways--large { margin-top: 0; }

.pl-way--large {
  grid-template-columns: minmax(74px, 112px) minmax(0, 1fr) auto;
  gap: clamp(16px, 2.4vw, 32px);
  align-items: baseline;
  padding: clamp(18px, 2vw, 24px) 0;
}

.pl-way__label {
  font-family: var(--text);
  font-size: 10px;
  line-height: 1.4;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-soft);
}

.pl-way__value {
  min-width: 0;
  font-family: var(--heading);
  font-weight: 400;
  font-size: clamp(26px, 3.1vw, 42px);
  line-height: 1.08;
  letter-spacing: -.018em;
  overflow-wrap: anywhere;
  transition: color .2s ease;
}

.pl-way--large:hover .pl-way__value { color: var(--violet); }

.pl-way--large .pl-way__arrow { font-size: clamp(18px, 1.6vw, 24px); }

/* — на десктопе карта равна по высоте карточке команды — */

@media (min-width: 1101px) {
  .pl-body:not(.pl-body--single) .pl-venue,
  .pl-body:not(.pl-body--single) .pl-venue__grid,
  .pl-body:not(.pl-body--single) .pl-team {
    height: 100%;
  }

  .pl-body:not(.pl-body--single) .pl-venue__grid {
    align-items: stretch;
  }

  .pl-body:not(.pl-body--single) .pl-map {
    display: flex;
    flex-direction: column;
    height: 100%;
  }

  .pl-body:not(.pl-body--single) .pl-map__bar { flex: 0 0 auto; }

  .pl-body:not(.pl-body--single) .pl-map__picture {
    position: relative;
    flex: 1 1 auto;
    height: auto;
    min-height: 0;
    overflow: hidden;
  }
}

/* — адаптив — */

@media (max-width: 1100px) {
  .pl-head,
  .pl-body {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .pl-lead { justify-self: start; max-width: 48ch; }

  .pl-body { gap: clamp(28px, 4vw, 42px); }

  .pl-venue__grid,
  .pl-body:not(.pl-body--single) .pl-venue__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .pl-map { max-width: 650px; }

  .pl-actions {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 24px;
  }

  .pl-team { max-width: 620px; }
}

@media (max-width: 900px) {
  .pl-contact-body {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }
}

@media (max-width: 700px) {
  .pl-strip {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "interior interior"
      "entrance cafe";
  }

  .pl-strip picture:nth-child(1) { grid-area: entrance; }
  .pl-strip picture:nth-child(2) { grid-area: interior; }
  .pl-strip picture:nth-child(3) { grid-area: cafe; }

  .pl-strip img {
    height: auto;
    aspect-ratio: 1;
  }

  .pl-strip picture:nth-child(2) img {
    aspect-ratio: 2 / 1;
  }

  .pl-map__picture { height: 300px; }

  .pl-section + .pl-section { padding-top: 72px; }

  .pl-way--large {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 14px;
  }

  .pl-way__label { grid-column: 1 / -1; }

  .pl-way__value { font-size: clamp(23px, 7vw, 30px); }
}

@media (max-width: 420px) {
  .pl-name { font-size: 40px; }

  .pl-cta {
    width: 100%;
    justify-content: space-between;
    white-space: normal;
  }

  .pl-team { padding: 20px; }

  .pl-way { font-size: 17px; }
}

@media (max-width: 720px) {
  body.venue-lab .labbar {
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    padding-block: 8px;
  }

  body.venue-lab .labbar__nav {
    justify-self: stretch;
    justify-content: flex-start;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pl-cta,
  .pl-link,
  .pl-way,
  .pl-way__arrow { transition: none; }
}
