/* GENERATED by tools/build_nvy.py from the Nvy theme skeleton, 2026-10-17T11:41:40Z. Do not edit. */
/* ── Image + Text layout ─────────────────────────────────── */
/*    CSS grid — fr units exclude the gap so the dividing     */
/*    line sits exactly at the specified split.               */

/* Width split vars */
.it--w40 { --it-media: 2fr; --it-content: 3fr; }
.it--w50 { --it-media: 1fr; --it-content: 1fr; }
.it--w60 { --it-media: 3fr; --it-content: 2fr; }

.mvs-image-text {
  display: grid;
  column-gap: var(--molecule-large);
  row-gap: var(--organism-small);
  align-items: center;
  width: 100%;
}

/* Left: media col 1, content col 2 */
.mvs-image-text--left {
  grid-template-columns: var(--it-media, 1fr) var(--it-content, 1fr);
}

/* Right: content col 1, media col 2 */
.mvs-image-text--right {
  grid-template-columns: var(--it-content, 1fr) var(--it-media, 1fr);
}

.mvs-image-text--right .mvs-image-text__media   { grid-column: 2; grid-row: 1; }
.mvs-image-text--right .mvs-image-text__content { grid-column: 1; grid-row: 1; }

/* Top / bottom — single column */
.mvs-image-text--top,
.mvs-image-text--bottom {
  grid-template-columns: 1fr;
}

.mvs-image-text--bottom .mvs-image-text__media { grid-row: 2; }

.mvs-image-text__media {
  min-width: 0;
  align-self: start;
}

.mvs-image-text__content {
  min-width: 0;
}

/* Sticky image — only when module is wide enough for side-by-side */
@container mv2Module (width >= 768px) {
  .mvs-image-text--sticky .mvs-image-text__media {
    position: sticky;
    align-self: start;
    top: var(--sticky-top, calc(var(--dynamic-header-height, 0px) + var(--molecule-standard)));
  }
}

/* Tablet (< 1024px) — md position overrides */
@container mv2Module (width < 1024px) {
  .mvs-image-text--md-left  { grid-template-columns: var(--it-media, 1fr) var(--it-content, 1fr); }
  .mvs-image-text--md-right { grid-template-columns: var(--it-content, 1fr) var(--it-media, 1fr); }

  .mvs-image-text--md-right .mvs-image-text__media   { grid-column: 2; grid-row: 1; }
  .mvs-image-text--md-right .mvs-image-text__content { grid-column: 1; grid-row: 1; }
  .mvs-image-text--md-left  .mvs-image-text__media   { grid-column: 1; grid-row: 1; }
  .mvs-image-text--md-left  .mvs-image-text__content { grid-column: 2; grid-row: 1; }

  .mvs-image-text--md-top,
  .mvs-image-text--md-bottom { grid-template-columns: 1fr; }

  .mvs-image-text--md-top .mvs-image-text__media     { grid-column: 1; grid-row: 1; }
  .mvs-image-text--md-top .mvs-image-text__content   { grid-column: 1; grid-row: 2; }
  .mvs-image-text--md-bottom .mvs-image-text__media  { grid-column: 1; grid-row: 2; }
  .mvs-image-text--md-bottom .mvs-image-text__content { grid-column: 1; grid-row: 1; }
}

/* Mobile (< 768px) — default collapse + sm overrides */
@container mv2Module (width < 768px) {
  /* Default: left/right (desktop or md) collapse to single column, media on top */
  .mvs-image-text--left,
  .mvs-image-text--right,
  .mvs-image-text--md-left,
  .mvs-image-text--md-right {
    grid-template-columns: 1fr;
  }

  .mvs-image-text--right .mvs-image-text__media,
  .mvs-image-text--md-right .mvs-image-text__media  { grid-column: 1; grid-row: 1; }
  .mvs-image-text--right .mvs-image-text__content,
  .mvs-image-text--md-right .mvs-image-text__content { grid-column: 1; grid-row: 2; }
  .mvs-image-text--md-left .mvs-image-text__media   { grid-column: 1; grid-row: 1; }
  .mvs-image-text--md-left .mvs-image-text__content { grid-column: 1; grid-row: 2; }

  /* sm overrides — explicit mobile position */
  .mvs-image-text--sm-left  { grid-template-columns: var(--it-media, 1fr) var(--it-content, 1fr); }
  .mvs-image-text--sm-right { grid-template-columns: var(--it-content, 1fr) var(--it-media, 1fr); }

  .mvs-image-text--sm-right .mvs-image-text__media   { grid-column: 2; grid-row: 1; }
  .mvs-image-text--sm-right .mvs-image-text__content { grid-column: 1; grid-row: 1; }
  .mvs-image-text--sm-left  .mvs-image-text__media   { grid-column: 1; grid-row: 1; }
  .mvs-image-text--sm-left  .mvs-image-text__content { grid-column: 2; grid-row: 1; }

  .mvs-image-text--sm-top,
  .mvs-image-text--sm-bottom { grid-template-columns: 1fr; }

  .mvs-image-text--sm-top .mvs-image-text__media     { grid-column: 1; grid-row: 1; }
  .mvs-image-text--sm-top .mvs-image-text__content   { grid-column: 1; grid-row: 2; }
  .mvs-image-text--sm-bottom .mvs-image-text__media  { grid-column: 1; grid-row: 2; }
  .mvs-image-text--sm-bottom .mvs-image-text__content { grid-column: 1; grid-row: 1; }
}
