/* Homepage-only banner. No Header or WooCommerce selectors. */
.cm-front-page { display: flow-root; }
.cm-hero, .cm-hero * { box-sizing: border-box; }
.cm-hero {
  width: min(var(--cm-hero-width), var(--cm-hero-max-width), max(0px, calc(100% - min(var(--cm-hero-margin-left), 45%) - min(var(--cm-hero-margin-right), 45%))));
  margin-top: var(--cm-hero-margin-top);
  margin-right: min(var(--cm-hero-margin-right), 45%);
  margin-bottom: var(--cm-hero-margin-bottom);
  margin-left: min(var(--cm-hero-margin-left), 45%);
  background: var(--cm-hero-background, #1e1e1e);
}
.cm-hero__frame {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  height: var(--cm-hero-height);
  padding-top: var(--cm-hero-padding-top);
  padding-right: min(var(--cm-hero-padding-right), 45%);
  padding-bottom: var(--cm-hero-padding-bottom);
  padding-left: min(var(--cm-hero-padding-left), 45%);
}
.cm-hero__media {
  position: relative;
  min-width: 0;
  min-height: 0;
  width: 100%;
  height: var(--cm-hero-media-height);
  aspect-ratio: var(--cm-hero-ratio);
  overflow: hidden;
}
.cm-hero__picture { position: absolute; inset: 0; display: block; }
.cm-hero__image { display: block; width: 100%; height: 100%; object-fit: var(--cm-hero-fit); object-position: var(--cm-hero-position); }
@media (min-width: 768px) { .cm-hero--desktop-hidden, .cm-hero--desktop-empty .cm-hero__picture { display: none; } }
@media (max-width: 767px) { .cm-hero--mobile-hidden { display: none; } }
