/* course-chat template — step 2: tall left content + sticky 100vh chat right */

.course-chat-shell {
  padding-top: 20px;
  padding-bottom: 20px;
}

.cc-col {
  display: flex;
  flex-direction: column;
}

.cc-card {
  background: #fff;
  border-radius: 24px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
  border: 1px solid #e2e8f0;
  padding: 28px;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

/* LEFT — имитация длинного контента (4000px) */
.cc-offer-placeholder {
  min-height: 4000px;
  background:
    linear-gradient(180deg, #f8fafc 0, #f1f5f9 100%),
    repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent 499px,
      rgba(148, 163, 184, 0.18) 499px,
      rgba(148, 163, 184, 0.18) 500px
    );
}

/* RIGHT — sticky 100vh, прикрепляется при скролле */
.cc-chat-placeholder {
  background: linear-gradient(180deg, #f8fafc 0, #ecfeff 100%);
  align-items: center;
  justify-content: center;
  min-height: 480px;
}

/* IFRAME-вариант чата (прототип на этапе дизайна).
   Карточка без padding, iframe — на весь блок. */
.cc-chat-iframe-card {
  padding: 0;
  overflow: hidden;
  background: transparent;
  border: 0;
}
.cc-chat-iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: inherit;
}

.cc-placeholder-label {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 600;
  margin-bottom: 12px;
}

.cc-placeholder-label-big {
  font-size: 96px;
  font-weight: 800;
  color: #0f172a;
  letter-spacing: 0.05em;
  opacity: 0.85;
}

.cc-placeholder-title {
  font-size: 24px;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.25;
  margin-bottom: 16px;
}

.cc-placeholder-hint {
  font-size: 14px;
  color: #64748b;
  line-height: 1.5;
}

/* Маркеры скролла на левом плейсхолдере — чтобы видеть, что прокрутка идёт */
.cc-scroll-marker {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  font-size: 12px;
  color: #94a3b8;
  letter-spacing: 0.1em;
  font-weight: 500;
}

/* ──────────────────────────────────────────────
   DESKTOP (≥992px) — sticky + scroll-driven height
   Стартовая высота вписывает чат под шапку.
   JS (ChatStickyHeight) пересчитывает height на скролл/resize:
   когда rect.top опускается к 24px (sticky закрепился) —
   высота вырастает до 100vh − 48px.
   ────────────────────────────────────────────── */
@media (min-width: 992px) {
  .cc-col-chat {
    position: sticky;
    top: 20px;
    height: calc(100vh - 378px); /* стартовое: 358px шапка + 20px низ. JS перезапишет на скролле. */
    align-self: flex-start;
    transition: height 80ms ease-out;
  }
  .cc-col-chat .cc-card {
    height: 100%;
    min-height: 0; /* override прошлого min-height: 720px у .cc-card */
  }
}

/* ──────────────────────────────────────────────
   MOBILE (< 992px) — пока стек, отдельно подумаем
   ────────────────────────────────────────────── */
@media (max-width: 991.98px) {
  .cc-offer-placeholder {
    min-height: 1200px; /* короче на мобилке */
  }
  .cc-placeholder-label-big {
    font-size: 64px;
  }
}
