/* NEXTON promo banner — single light rounded panel, 2-column split. */

.nx-promo {
  padding: var(--space-7) 0;
}

.nx-promo__panel {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  background: var(--nx-promo-bg, var(--color-surface));
  border-radius: var(--radius-card);
  overflow: hidden;
  min-height: 320px;
}

/* image_side = left → media column first */
.nx-promo__panel--image-left .nx-promo__copy { order: 2; }
.nx-promo__panel--image-left .nx-promo__media { order: 1; }

.nx-promo__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: var(--space-4);
  padding: var(--space-8) var(--space-7);
}

.nx-promo__eyebrow {
  font-size: var(--text-sm);
  color: var(--color-text-muted);
  letter-spacing: 0.01em;
}

.nx-promo__heading {
  margin: 0;
  font-family: var(--font-heading, 'Poppins'), system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.15;
  color: var(--color-text);
  font-size: clamp(1.5rem, 1.1rem + 1.9vw, 2.25rem);
}

.nx-promo__price {
  margin: 0;
  font-size: clamp(1rem, 0.95rem + 0.3vw, 1.125rem);
  color: var(--color-text-muted);
}

.nx-promo__cta {
  margin-top: var(--space-2);
}

.nx-promo__cta .btn {
  min-height: 44px;
}

.nx-promo__media {
  position: relative;
  min-height: 320px;
}

.nx-promo__image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Tablet */
@media (max-width: 768px) {
  .nx-promo__copy {
    padding: var(--space-7) var(--space-6);
  }
}

/* Mobile — stack image over text, no overflow */
@media (max-width: 520px) {
  .nx-promo__panel,
  .nx-promo__panel--image-left {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  /* image always sits above the copy on mobile */
  .nx-promo__media,
  .nx-promo__panel--image-left .nx-promo__media { order: 1; }
  .nx-promo__copy,
  .nx-promo__panel--image-left .nx-promo__copy { order: 2; }

  .nx-promo__media {
    min-height: 0;
    aspect-ratio: 4 / 3;
  }

  .nx-promo__copy {
    padding: var(--space-6) var(--space-5);
    gap: var(--space-3);
  }
}
