/**
 * Image & Text / Text & Image
 * CSS prefix: cb-it
 */

.cb-it {
  position: relative;
  overflow: hidden;
  padding: clamp(2.5rem, 6vw, 4rem) 1.5rem;
  background: var(--cb-it-bg, transparent);
}

/* ── Inner wrapper ──────────────────────────────────────────── */

.cb-it__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--cb-it-gap, 3rem);
  max-width: 80rem; /* 1280px */
  width: 100%;
  margin-inline: auto;
}

/* ── Alignment ──────────────────────────────────────────────── */

.cb-it--align-left .cb-it__inner   { justify-content: flex-start; }
.cb-it--align-center .cb-it__inner { justify-content: center; }
.cb-it--align-right .cb-it__inner  { justify-content: flex-end; }

.cb-it--align-left .cb-it__text   { text-align: left; }
.cb-it--align-center .cb-it__text { text-align: center; }
.cb-it--align-right .cb-it__text  { text-align: right; }

/* ── Image / text column order ───────────────────────────────── */

/* image-text: image left, text right */
.cb-it--img-left .cb-it__image { order: 1; }
.cb-it--img-left .cb-it__text  { order: 2; }

/* text-image: text left, image right */
.cb-it--img-right .cb-it__image { order: 2; }
.cb-it--img-right .cb-it__text  { order: 1; }

/* ── Image column ────────────────────────────────────────────── */

.cb-it__image {
  flex: 0 0 var(--cb-it-img-w, 45%);
  max-width: var(--cb-it-img-w, 45%);
  will-change: transform;
}

.cb-it__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}

.cb-it__image--shadow > * {
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.18)) drop-shadow(0 2px 6px rgba(0, 0, 0, 0.1));
}

.cb-it__placeholder {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: #e5e7eb;
}

/* ── Text column ─────────────────────────────────────────────── */

.cb-it__text {
  flex: 1 1 0;
  min-width: 0;
  will-change: transform;
}

.cb-it__heading {
  margin: 0 0 0.65rem;
  font-size: clamp(1.5rem, 3.5vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--cb-it-heading, #111111);
  will-change: transform;
}

.cb-it__body {
  margin: 0;
  font-size: clamp(0.9rem, 1.5vw, 1.1rem);
  line-height: 1.65;
  color: var(--cb-it-body, #6b7280);
  will-change: transform;
}

/* ── Responsive ──────────────────────────────────────────────── */

@media (max-width: 720px) {
  .cb-it__inner {
    flex-direction: column;
  }

  /* Image always on top on mobile regardless of desktop layout */
  .cb-it--img-left .cb-it__image,
  .cb-it--img-right .cb-it__image {
    order: 1;
    flex: 0 0 100%;
    max-width: 100%;
  }

  .cb-it--img-left .cb-it__text,
  .cb-it--img-right .cb-it__text {
    order: 2;
  }

}
