.mti-module {
  --mti-border: var(--mtn-border, #dce5de);
  --mti-surface: var(--mtn-page, #fff);
  --mti-ink: var(--mtn-text, #39362f);
  --mti-muted: var(--mtn-muted, #5a6b63);
  --mti-accent: var(--mtn-green, #205d51);
  container-type: inline-size;
  max-width: 100%;
  color: var(--mti-ink);
}
.mti-module__shell {
  padding: 32px 28px;
  border: 1px solid var(--mti-border);
  border-radius: 12px;
  background: var(--mti-surface);
}
.mti-module * { box-sizing: border-box; }
.mti-module__header { max-width: 48rem; margin-block-end: 1.25rem; }
.mti-module__kicker { margin: 0 0 .35rem; color: var(--mtn-gold-text, #80620b); font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mti-module__header h2 { margin: 0; font-size: clamp(1.55rem, 4cqi, 2.35rem); line-height: 1.12; }
.mti-module__intro { max-width: 65ch; margin: .65rem 0 0; color: var(--mti-muted); line-height: 1.6; }
.mti-module__items { display: grid; grid-template-columns: repeat(var(--mti-cols-desktop), minmax(0, 1fr)); gap: clamp(.9rem, 2.4cqi, 1.5rem); }
.mti-module--single .mti-module__items { grid-template-columns: 1fr; }
.mti-module--liste .mti-module__items { grid-template-columns: 1fr; }
.mti-module__item { min-width: 0; }
.mti-module--liste .mt-impulse--card { display: grid; grid-template-columns: minmax(9rem, 14rem) 1fr; }
.mti-module--liste .mt-impulse--card .mt-impulse__media,
.mtn-site--content #mtn-main .mti-module--liste .mt-impulse--card .mt-impulse__media { height: 100%; aspect-ratio: auto; }
.mti-module--slider .mti-module__viewport { overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.mti-module--slider .mti-module__viewport::-webkit-scrollbar { display: none; }
.mti-module--slider .mti-module__items { display: flex; }
.mti-module--slider .mti-module__item { flex: 0 0 min(82cqi, 24rem); scroll-snap-align: start; }
.mti-module__controls,.mti-module__dots { display: flex; justify-content: flex-end; gap: .5rem; margin-block: .65rem; }
.mti-module__controls button { width: 2.75rem; height: 2.75rem; border: 1px solid currentColor; border-radius: 50%; background: transparent; color: var(--mti-accent); }
.mti-module__dots button { position: relative; width: 2.75rem; height: 2.75rem; padding: 0; border: 0; background: transparent; }
.mti-module__dots button::before { position: absolute; inset: 50% auto auto 50%; width: .75rem; height: .75rem; border-radius: 50%; background: var(--mti-accent); content: ""; opacity: .3; transform: translate(-50%,-50%); }
.mti-module__dots button[aria-current="true"]::before { opacity: 1; }
.mti-module :focus-visible { outline: 3px solid var(--mti-accent); outline-offset: 3px; }
.mti-module__empty { margin: 0; padding: 1rem; border-radius: 8px; background: var(--mtn-sage, #edf4ef); }
@container (max-width: 52rem) { .mti-module__items { grid-template-columns: repeat(var(--mti-cols-tablet), minmax(0,1fr)); } }
@container (max-width: 34rem) { .mti-module__shell { padding: 20px 16px; } .mti-module__items { grid-template-columns: repeat(var(--mti-cols-mobile), minmax(0,1fr)); } .mti-module--liste .mt-impulse--card { display: flex; } }
/* Keep optional list images visible above text in narrow module containers. */
@container (max-width: 34rem) {
  .mti-module--liste .mt-impulse--card .mt-impulse__media,
  .mtn-site--content #mtn-main .mti-module--liste .mt-impulse--card .mt-impulse__media { height: auto; aspect-ratio: 16/9; flex: none; }
}
@media (max-width: 600px) { .mti-module__shell { padding: 24px 16px; } }
@media (prefers-reduced-motion: reduce) { .mti-module__viewport { scroll-behavior: auto !important; } }
/* A caption owns an intrinsic row; the image layer still fills the article.
   No guessed caption height, JS measurement, or change to uncaptioned cards. */
@supports selector(:has(*)) {
  .mti-module .mt-impulse.mt-impulse--feature:has(> .mt-impulse__media > .mt-impulse__caption) {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 1fr auto;
  }
  .mti-module .mt-impulse.mt-impulse--feature:has(> .mt-impulse__media > .mt-impulse__caption) > .mt-impulse__media,
  .mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--feature:has(> .mt-impulse__media > .mt-impulse__caption) > .mt-impulse__media {
    position: static;
    inset: auto;
    grid-area: 2 / 1;
    min-width: 0;
    z-index: auto;
  }
  .mti-module .mt-impulse.mt-impulse--feature:has(> .mt-impulse__media > .mt-impulse__caption) > .mt-impulse__content {
    grid-area: 1 / 1;
  }
  .mti-module .mt-impulse.mt-impulse--feature > .mt-impulse__media > .mt-impulse__caption,
  .mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--feature > .mt-impulse__media > .mt-impulse__caption {
    position: relative;
    inset: auto;
    width: fit-content;
    margin: 0 1rem 1rem;
    margin-inline-start: auto;
    overflow-wrap: anywhere;
  }
}
/* Feature cards query their own grid/slider item, never the full module width.
   Component/backend contexts retain the original viewport-based fallback. */
@supports (container-type: inline-size) and selector(:has(*)) {
  .mti-module__item:has(> .mt-impulse--feature) {
    container-type: inline-size;
    container-name: mti-feature-card;
  }
  @container mti-feature-card (min-width: 0px) {
    .mti-module .mt-impulse.mt-impulse--feature {
      min-height: clamp(18rem, 70cqi, 36rem);
    }
    .mti-module .mt-impulse.mt-impulse--feature .mt-impulse__content {
      min-width: 0;
      width: min(100%, 48rem);
      padding: clamp(2rem, 7cqi, 5.5rem) clamp(1.5rem, 7cqi, 5.5rem);
    }
    .mti-module .mt-impulse.mt-impulse--feature.mt-impulse--protected .mt-impulse__content {
      width: auto;
      margin: clamp(.75rem, 3cqi, 2rem);
    }
    .mti-module .mt-impulse.mt-impulse--feature :is(.mt-impulse__title, .mt-impulse__focus, .mt-impulse__quote),
    .mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--feature :is(.mt-impulse__title, .mt-impulse__focus, .mt-impulse__quote) {
      font-size: clamp(1.5rem, 7cqi, 4.4rem);
      overflow-wrap: break-word;
      word-break: normal;
    }
  }
  @container mti-feature-card (min-width: 0px) {
    /* Preserve the single-card Hero without restoring viewport-sized text. */
    .mti-module--single .mt-impulse.mt-impulse--feature {
      min-height: clamp(26rem, 70cqi, 36rem);
    }
    .mti-module--single .mt-impulse.mt-impulse--feature :is(.mt-impulse__title, .mt-impulse__focus, .mt-impulse__quote),
    .mtn-site--content #mtn-main .mti-module--single .mt-impulse.mt-impulse--feature :is(.mt-impulse__title, .mt-impulse__focus, .mt-impulse__quote) {
      font-size: clamp(2rem, 7cqi, 4.4rem);
    }
  }
  /* Restore the Hero measure only when a single card has enough real space. */
  @media (min-width: 48rem) {
    @container mti-feature-card (min-width: 34rem) {
      .mti-module--single .mt-impulse.mt-impulse--feature {
        min-height: clamp(30rem, 48cqi, 39rem);
      }
      .mti-module--single .mt-impulse.mt-impulse--feature .mt-impulse__content {
        width: min(68%, 52rem);
      }
      .mti-module--single .mt-impulse.mt-impulse--feature.mt-impulse--protected .mt-impulse__content {
        width: auto;
      }
    }
  }
  @container mti-feature-card (min-width: 48rem) {
    .mti-module .mt-impulse.mt-impulse--feature {
      min-height: clamp(30rem, 48cqi, 39rem);
    }
    .mti-module .mt-impulse.mt-impulse--feature .mt-impulse__content {
      width: min(68%, 52rem);
    }
    .mti-module .mt-impulse.mt-impulse--feature.mt-impulse--protected .mt-impulse__content {
      width: auto;
    }
  }
}

/* Keep equal-height card text surfaces white all the way to the card bottom. */
.mti-module .mt-impulse:is(.mt-impulse--card, .mt-impulse--compact) {
  background: #fff;
}
.mti-module .mt-impulse:is(.mt-impulse--card, .mt-impulse--compact) > .mt-impulse__content {
  flex-grow: 1;
}
.mti-module .mt-impulse--card > .mt-impulse__media {
  flex-shrink: 0;
}
/* Optional image explanations retain their image placement and a quiet surface. */
.mti-module .mt-impulse .mt-impulse__caption,
.mtn-site--content #mtn-main .mti-module .mt-impulse .mt-impulse__caption {
  background: rgba(255, 255, 255, .88);
  color: var(--mt-impulse-forest, #173b36);
}

/* Feature text rests on a light translucent panel; its image remains visible. */
.mti-module .mt-impulse.mt-impulse--feature {
  height: 100%;
}
.mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature .mt-impulse__content {
  --m24-body: var(--mt-impulse-forest, #173b36);
  --m24-heading: var(--mt-impulse-forest, #173b36);
}
.mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature.mt-impulse--has-image .mt-impulse__content,
.mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature.mt-impulse--has-image .mt-impulse__content {
  background: rgba(255, 255, 255, .88);
}
.mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature:not(.mt-impulse--has-image),
.mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature:not(.mt-impulse--has-image) .mt-impulse__content {
  background: #fff;
}
.mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature .mt-impulse__content::before,
.mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--visual.mt-impulse--feature .mt-impulse__content::before {
  display: none;
}

/* Type labels keep the existing brand gold independently of the body text. */
.mti-module .mt-impulse.mt-impulse--feature .mt-impulse__content .mt-impulse__label,
.mtn-site--content #mtn-main .mti-module .mt-impulse.mt-impulse--feature .mt-impulse__content .mt-impulse__label {
  color: var(--mtn-gold-text, #80620b);
}
