/* Ad strip triple — isolated. */

.ad-strip-triple { margin: 1.25rem 0 1.5rem; width: 100%; max-width: 100%; box-sizing: border-box; }
/* Внутри цветной полосы каталога — на всю ширину контентной колонки (как .services-body / .places-body, 1340px) */
.catalog-page-like-listing .ad-strip-triple { margin-top: 0; margin-bottom: 0; }
.ad-strip-catalog-inner {
    max-width: var(--catalog-rail-max, 1340px);
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding: 12px var(--catalog-rail-px, 24px) 16px;
    box-sizing: border-box;
}
@media (min-width: 769px) {
  .ad-strip-catalog-inner.catalog-page-inner {
    padding-left: var(--catalog-rail-px, 24px) !important;
    padding-right: var(--catalog-rail-px, 24px) !important;
  }
}
/* Нижний padding = --catalog-ad-inner-padding-bottom на .catalog-strip-stack (_catalog_page_nav_styles) */
.catalog-strip-stack .ad-strip-catalog-inner {
    padding-bottom: var(--catalog-ad-inner-padding-bottom, calc(16px * 0.8));
}
@media (max-width: 768px) {
  .ad-strip-catalog-inner { padding-left: 14px; padding-right: 14px; }
}
.ad-strip-triple__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
}
/* Одна ячейка (модалка карты транспорта и т.п.) */
.ad-strip-triple--single { margin: 0; }
.ad-strip-triple--single .ad-strip-triple__grid { grid-template-columns: 1fr; }
/* Пара баннеров (барахолка: между фото и текстом объявления) */
.ad-strip-triple--pair .ad-strip-triple__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 640px) {
  .ad-strip-triple--pair .ad-strip-triple__grid { grid-template-columns: 1fr; }
}
/* Только на очень узких экранах — одна колонка; иначе три карточки в ряд как блок фильтров ниже */
@media (max-width: 640px) {
  .ad-strip-triple__grid { grid-template-columns: 1fr; }
}
.ad-strip-card { position: relative; border-radius: 14px; min-width: 0; display: flex; flex-direction: column; justify-content: flex-end; text-decoration: none; color: inherit; overflow: hidden; box-shadow: 0 2px 14px rgba(15,23,42,.08); border: 1px solid rgba(148,163,184,.35); transition: transform .2s, box-shadow .2s; }
a.ad-strip-card:hover, button.ad-strip-card:hover, a.ad-strip-card--stub:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(15,23,42,.12); }
.ad-strip-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; z-index: 0; transition: transform .45s ease; }
.ad-strip-card__img.banner-creative-video,
.promo-banner__img.banner-creative-video {
  pointer-events: none;
  background: #0f172a;
}
.ad-strip-card:hover .ad-strip-card__img:not(video) { transform: scale(1.06); }
.ad-strip-card__grad { position: absolute; inset: 0; z-index: 0; }
.ad-strip-card__body { position: relative; z-index: 2; padding: 10px 14px 11px; }
.ad-strip-card__title { font-size: 0.95rem; font-weight: 700; line-height: 1.25; margin: 0 0 4px; color: #0f172a; }
.ad-strip-card__desc { font-size: 0.78rem; line-height: 1.4; margin: 0; color: #475569; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Plain: только картинка рекламодателя, без текста и затемнения */
.ad-strip-card--plain { justify-content: stretch; }
.ad-strip-card--plain .ad-strip-card__img { z-index: 1; }
.ad-strip-card__mark { position: absolute; top: 6px; right: 8px; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; opacity: .55; z-index: 3; }
/* Свободная ячейка: числовой id площадки (ad_placements.id) для карты продаж */
.ad-strip-card__slot-id { position: absolute; top: 6px; left: 8px; z-index: 4; font-size: 10px; font-weight: 800; font-variant-numeric: tabular-nums; color: #334155; letter-spacing: 0.02em; line-height: 1.2; max-width: calc(100% - 16px); text-align: left; pointer-events: none; }
.ad-strip-card__slot-id-key { font-weight: 700; font-size: 9px; word-break: break-all; }
.ad-strip-card--stub { cursor: pointer; text-align: left; font: inherit; width: 100%; background: #1e293b; border: 1px solid rgba(148,163,184,.25); }
.ad-strip-card--stub .ad-strip-card__title { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.ad-strip-card--stub .ad-strip-card__desc { color: rgba(255,255,255,.85); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.ad-strip-card--stub .ad-strip-card__mark { color: rgba(255,255,255,.7); }
.ad-strip-card--stub .ad-strip-card__slot-id { color: rgba(255,255,255,.7); }
.ad-strip-card--demo { cursor: pointer; text-align: left; font: inherit; width: 100%; background: #1e293b; border: 1px solid rgba(148,163,184,.25); }
.ad-strip-card--demo .ad-strip-card__title { color: #fff; text-shadow: 0 1px 3px rgba(0,0,0,.5); }
.ad-strip-card--demo .ad-strip-card__desc { color: rgba(255,255,255,.85); text-shadow: 0 1px 2px rgba(0,0,0,.4); }
.ad-strip-card--demo .ad-strip-card__mark { color: rgba(255,255,255,.7); }
.ad-strip-card--demo .ad-strip-card__slot-id { color: rgba(255,255,255,.7); }
.ad-strip-triple__disclaimer {
  margin: 0.65rem 0 0;
  font-size: 0.72rem;
  line-height: 1.45;
  color: #64748b;
  text-align: center;
}

/* Мобилка: раскладка баннеров по странице (JS ad_strip_mobile_distribute.js + data-ad-* на .catalog-strip-stack) */
.catalog-page-like-listing.catalog-ad-strip--empty-mobile {
  display: none !important;
}
.catalog-ad-mobile-dock {
  display: none;
  width: 100%;
  max-width: 1340px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 24px;
  box-sizing: border-box;
}
/* Баннеры вне сетки (листинг и т.п.): одинаковый отступ сверху/снизу */
.catalog-ad-mobile-dock--active {
  display: block;
  margin-top: 1rem;
  margin-bottom: 1rem;
}
/* Первый баннер под полосой: симметрично, как gap у .services-grid (20px → 12px ≤992px); на places до 768px сетка ещё 20px — лёгкий компромисс */
.catalog-ad-mobile-dock--active.catalog-ad-mobile-dock--first {
  margin-top: 20px;
  margin-bottom: 20px;
}
@media (max-width: 992px) {
  .catalog-ad-mobile-dock--active.catalog-ad-mobile-dock--first {
    margin-top: 12px;
    margin-bottom: 12px;
  }
}
@media (max-width: 768px) {
  .catalog-ad-mobile-dock--active {
    padding-left: 14px;
    padding-right: 14px;
  }
}
/* Places / Compass / каталог: баннер между карточками — на всю ширину ряда */
.places-side-stack > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
#placesGrid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.places-grid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.compass-side-stack > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.compass-grid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.compass-featured > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.places-featured > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
#servicesGrid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
#routesGrid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
#trainsList > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.trip-hub-catalog-grid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active,
.trains-body > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin-top: 0;
  margin-bottom: 0;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
/* Без второго горизонтального inset: док стоит между блоками, ширина как у сетки/колонки родителя */
.catalog-page-inner > .catalog-ad-mobile-dock--active,
.catalog-strip-stack-body > .catalog-ad-mobile-dock--active,
.compass-body > .catalog-ad-mobile-dock--active,
.places-body > .catalog-ad-mobile-dock--active,
.services-body.catalog-page-body > .catalog-ad-mobile-dock--active,
.places-body.catalog-page-body > .catalog-ad-mobile-dock--active,
.trains-body.catalog-page-body > .catalog-ad-mobile-dock--active,
.tender-body > .catalog-ad-mobile-dock--active,
.rental-main-info > .catalog-ad-mobile-dock--active,
.rental-main-content > .catalog-ad-mobile-dock--active,
.place-detail-inner-pad > .catalog-ad-mobile-dock--active,
.rental-container--listing-page .container > .catalog-ad-mobile-dock--active,
.company-public-inner > .catalog-ad-mobile-dock--active,
.cp-detail-main > .catalog-ad-mobile-dock--active,
.cp-detail-layout > .catalog-ad-mobile-dock--active {
  padding-left: 0 !important;
  padding-right: 0 !important;
  max-width: none;
  width: 100%;
}
/* Размер карточки — пропорции задаёт site-banner-proportions.css */
.catalog-ad-mobile-dock .ad-strip-card {
  min-width: 0;
  box-sizing: border-box;
  border-radius: 14px;
  max-width: 100%;
}
/* Док внутри сетки official-guide — на всю строку колонки */
.official-grid > .catalog-ad-mobile-dock.catalog-ad-mobile-dock--active {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box;
}
/* tender-body / market-body на мобиле без собственного горизонтального padding —
   баннеру нужен свой отступ, иначе он во всю ширину экрана */
@media (max-width: 768px) {
  .tender-body > .catalog-ad-mobile-dock--active,
  .market-body > .catalog-ad-mobile-dock--active {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  /* Док внутри секции заявок: вырываемся из её паддингов на всю ширину экрана,
     чтобы баннер был ровно такого же размера, как верхние */
  .tender-zbids-section > .catalog-ad-mobile-dock--active,
  .tender-sr-section > .catalog-ad-mobile-dock--active {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 14px !important;
    padding-right: 14px !important;
    box-sizing: border-box !important;
  }
  /* Док первого слота внутри полосы (между крошками и «Назад») */
  .catalog-strip-stack > .catalog-ad-mobile-dock--first,
  .catalog-strip-stack .catalog-ad-mobile-dock--first {
    margin-top: 8px;
    margin-bottom: 10px;
  }
}
