/* ==========================================================================
   MovieMaint – design system + homepage sections
   Colors/fonts read Elementor global kit variables first, so changing the
   Site Settings in Elementor restyles every MovieMaint widget.
   ========================================================================== */

/* Declared on body + .mm-root (not only :root) so the Elementor kit variables (set on body.elementor-kit-N)
   resolve: changing Site Settings → Global Colors / Fonts restyles every MovieMaint widget. */
:root, body, .mm-root {
  --mm-bg: var(--e-global-color-secondary, #000000);
  --mm-surface: var(--e-global-color-mm_surface, #121212);
  --mm-text: var(--e-global-color-text, #ffffff);
  --mm-muted: var(--e-global-color-mm_muted, #b3b3b3);
  --mm-grey: var(--e-global-color-mm_dim, #8c8c8c);
  --mm-accent: var(--e-global-color-accent, #ffcd3e);
  --mm-line: rgba(255, 255, 255, 0.22);

  --mm-font-display: var(--e-global-typography-primary-font-family, "Poppins"), "Poppins", "Helvetica Neue", Arial, sans-serif;
  --mm-font-body: var(--e-global-typography-text-font-family, "Poppins"), "Poppins", "Helvetica Neue", Arial, sans-serif;
  --mm-font-mono: "Poppins", "Helvetica Neue", Arial, sans-serif;

  --mm-pad: clamp(20px, 5.4vw, 104px);      /* page side padding */
  --mm-pad-wide: clamp(12px, 1.2vw, 24px);  /* full-bleed grids */
  --mm-section: clamp(64px, 7vw, 120px);    /* vertical section rhythm */
  --mm-radius: clamp(28px, 4vw, 72px);      /* signature top-right corner */
  --mm-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* ---------- base ---------- */
.mm-page,
.mm-page body,
body.mm-site {
  background: var(--mm-bg);
  color: var(--mm-text);
}
.mm-root,
.mm-root * { box-sizing: border-box; }
.mm-root {
  font-family: var(--mm-font-body);
  font-size: clamp(15px, 1.05vw, 18px);
  line-height: 1.5;
  color: var(--mm-text);
  -webkit-font-smoothing: antialiased;
}
/* :where() keeps the reset at class-level specificity so component classes always win */
.mm-root :where(img) { display: block; max-width: 100%; }
.mm-root :where(a) { color: inherit; text-decoration: none; }
.mm-root a:where(:hover, :active, :focus) { color: inherit; } /* neutralise theme link colours */
.mm-root :where(p, blockquote, figure, ul) { margin: 0; }
.mm-root :where(h1, h2, h3, h4) { margin: 0; font-weight: inherit; font-size: inherit; line-height: inherit; color: inherit; }
.mm-root :where(button) { font: inherit; }
/* Hello Elementor reset styles figcaption (#333, italic) and blockquote (border) */
.mm-root :where(figcaption) { color: inherit; font-size: inherit; font-style: normal; font-weight: inherit; line-height: inherit; }
.mm-root :where(blockquote) { border: 0; padding: 0; }
/* Elementor sets ".elementor img { height:auto }" – media fills must stay 100% */
.mm-root .mm-card__media img,
.mm-root .mm-post__media img,
.mm-root .mm-hero__bg img,
.mm-root .mm-cta__bg img,
.mm-root .mm-footer__bg img { height: 100%; max-width: none; border-radius: 0; }
.mm-container { padding-inline: var(--mm-pad); }

/* ---------- type ---------- */
.mm-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mm-font-body);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--mm-text);
  margin-bottom: clamp(14px, 1.4vw, 22px);
}
.mm-eyebrow::before,
.mm-eyebrow--after::after {
  content: "";
  width: 46px;
  height: 1px;
  background: currentColor;
  opacity: 0.8;
}
.mm-eyebrow--after::before { display: none; }

.mm-display {
  font-family: var(--mm-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(36px, 4.25vw, 76px);
  line-height: 0.93;
  letter-spacing: -0.01em;
}
@media (min-width: 768px) { .mm-head .mm-display { white-space: nowrap; } }
.mm-display em,
.mm-dim { font-style: normal; color: var(--mm-grey); }

.mm-lead {
  font-size: clamp(15px, 1.12vw, 19px);
  line-height: 1.5;
  color: var(--mm-muted);
  max-width: 34em;
}
.mm-lead strong { color: var(--mm-text); font-weight: 500; }

/* section header row: heading | intro | actions */
.mm-head {
  display: grid;
  grid-template-columns: minmax(max-content, 0.9fr) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(20px, 4vw, 80px);
  margin-bottom: clamp(28px, 2.6vw, 44px);
}
.mm-head--split { grid-template-columns: minmax(max-content, 1.5fr) minmax(0, 1fr); }
.mm-head--nolead { grid-template-columns: minmax(0, 1fr) auto; }
.mm-head--nolead.mm-head--split { grid-template-columns: 1fr; }
.mm-head__actions { display: flex; align-items: center; gap: 16px; justify-self: end; }

/* ---------- buttons ---------- */
.mm-root .mm-btn {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 0.95em 1.6em;
  border: 0;
  border-radius: 999px;
  background: var(--mm-accent);
  color: #111 !important;
  font-family: var(--mm-font-body);
  font-size: clamp(15px, 1.1vw, 19px);
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: transform 0.35s var(--mm-ease), box-shadow 0.35s var(--mm-ease);
}
.mm-btn svg { width: 1.2em; height: 1.2em; transition: transform 0.35s var(--mm-ease); }
.mm-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 30px -10px rgba(255, 205, 62, 0.6); }
.mm-btn:hover svg { transform: translateX(4px); }
.mm-root .mm-btn--sm { font-size: 15px; padding: 0.9em 1.4em; gap: 12px; }

.mm-root .mm-circle {
  --size: 48px;
  flex: none;
  display: inline-grid;
  place-items: center;
  width: var(--size);
  height: var(--size);
  border-radius: 50%;
  border: 1.5px solid var(--mm-accent);
  background: transparent;
  color: var(--mm-accent);
  cursor: pointer;
  padding: 0;
  transition: background 0.3s var(--mm-ease), color 0.3s var(--mm-ease), border-color 0.3s, transform 0.3s var(--mm-ease);
}
.mm-root .mm-circle svg { width: 42%; height: 42%; }
.mm-root .mm-circle:hover,
.mm-root a:hover > .mm-circle,
.mm-root .mm-card:hover .mm-circle { background: var(--mm-accent); color: #111; }
.mm-root .mm-circle--white { border-color: rgba(255, 255, 255, 0.85); color: #fff; }
.mm-root .mm-circle--white:hover,
.mm-root .mm-card:hover .mm-circle--white { background: #fff; border-color: #fff; color: #111; }
.mm-root .mm-circle--ghost { border-color: rgba(255, 255, 255, 0.4); color: #fff; }
.mm-root .mm-circle--ghost:hover { border-color: var(--mm-accent); background: transparent; color: var(--mm-accent); }
.mm-root .mm-circle--fill { background: var(--mm-accent); color: #111; }
.mm-root .mm-circle--fill:hover { background: #fff; border-color: #fff; }
/* one arrow size everywhere (project mosaic, testimonials, sliders) */
.mm-root .mm-circle--lg { --size: clamp(48px, 3.6vw, 60px); }
.mm-root .mm-circle--sm { --size: 36px; }

.mm-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  font-weight: 500;
}

/* ---------- media card base ---------- */
.mm-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 2px var(--mm-radius) 2px 2px;
  background: var(--mm-surface);
  isolation: isolate;
}
.mm-card__media,
.mm-card__media img,
.mm-card__media video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mm-card__media img { transition: transform 1.2s var(--mm-ease); }
.mm-card:hover .mm-card__media img { transform: scale(1.045); }
.mm-card__shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 28%, rgba(0,0,0,0) 45%, rgba(0,0,0,0.82) 100%);
}
.mm-card__index {
  position: absolute;
  z-index: 2;
  top: clamp(18px, 2vw, 34px);
  left: clamp(18px, 2vw, 30px);
  right: clamp(18px, 2vw, 30px);
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}
.mm-card__index span.mm-rule { width: 36px; height: 1px; background: currentColor; opacity: 0.7; }
.mm-card__index .mm-card__tag { margin-left: auto; }
.mm-card__index--left .mm-card__tag { margin-left: 0; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.mm-header {
  position: absolute;
  z-index: 50;
  top: 0;
  left: 0;
  right: 0;
  padding: clamp(46px, 3.4vw, 58px) clamp(40px, 5.6vw, 116px) 0;
  display: flex;
  align-items: center;
  gap: 40px;
  pointer-events: none;
}
.mm-header > * { pointer-events: auto; }
.mm-header__logo, .mm-nav, .mm-root .mm-burger { position: relative; z-index: 2; } /* stay above the open overlay */
.mm-menu-open .mm-nav { visibility: hidden; }
.mm-header__logo svg,
.mm-header__logo img { height: clamp(24px, 2.1vw, 36px); width: auto; }
.mm-nav {
  display: flex;
  gap: clamp(24px, 3.4vw, 60px);
  margin-left: clamp(40px, 9vw, 160px);
  list-style: none;
  padding: 0;
  margin-block: 0;
}
.mm-nav a {
  position: relative;
  font-size: clamp(15px, 1.25vw, 21px);
  font-weight: 400;
  color: #fff;
  padding-block: 6px;
}
.mm-nav a::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 1.5px;
  background: var(--mm-accent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s var(--mm-ease);
}
.mm-nav a:hover::after,
.mm-nav .current-menu-item > a::after { transform: scaleX(1); }
.mm-burger {
  margin-left: auto;
  width: clamp(54px, 4.3vw, 72px);
  height: clamp(54px, 4.3vw, 72px);
  border-radius: 50%;
  border: 0;
  background: var(--mm-accent);
  display: grid;
  place-content: center;
  gap: 6px;
  cursor: pointer;
  transition: transform 0.35s var(--mm-ease);
}
.mm-burger span { display: block; width: 30px; height: 2.5px; border-radius: 2px; background: #111; transition: transform 0.4s var(--mm-ease), opacity 0.3s; }
.mm-root .mm-burger:hover { transform: scale(1.06); }
.mm-menu-open .mm-burger span:nth-child(1) { transform: translateY(8.5px) rotate(45deg); }
.mm-menu-open .mm-burger span:nth-child(2) { opacity: 0; }
.mm-menu-open .mm-burger span:nth-child(3) { transform: translateY(-8.5px) rotate(-45deg); }

/* header on inner pages (not over a hero) */
.mm-header--solid { position: relative; padding-top: 32px; padding-bottom: 32px; }

/* full-screen menu */
.mm-overlay {
  position: fixed;
  inset: 0;
  z-index: 45;
  background: #000;
  display: grid;
  align-content: safe center;
  overflow-y: auto;
  padding: clamp(110px, 16vh, 150px) var(--mm-pad) 48px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.5s var(--mm-ease), visibility 0.5s;
}
.mm-menu-open .mm-overlay { opacity: 1; visibility: visible; }
.mm-menu-open .mm-header { position: fixed; }
.mm-overlay__list { list-style: none; margin: 0; padding: 0; }
.mm-overlay__list a {
  display: inline-block;
  font-family: var(--mm-font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: clamp(34px, min(6vw, 9vh), 96px);
  line-height: 1.1;
  color: #fff;
  transition: color 0.3s, transform 0.4s var(--mm-ease);
}
.mm-overlay__list a:hover { color: var(--mm-accent); transform: translateX(12px); }
.mm-overlay__meta { margin-top: 48px; display: flex; flex-wrap: wrap; gap: 12px 40px; color: var(--mm-muted); }
.mm-overlay__meta a:hover { color: var(--mm-accent); }

/* ==========================================================================
   HERO
   ========================================================================== */
.mm-hero {
  position: relative;
  min-height: max(640px, 100svh);
  display: flex;
  overflow: hidden;
  background: #0b0b0b;
}
.mm-hero__bg { position: absolute; inset: 0; z-index: 0; container-type: size; }
.mm-hero__bg img,
.mm-hero__bg iframe,
.mm-hero__bg video {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate(-50%, -50%);
  border: 0;
}
/* 16:9 iframe always covering the viewport */
/* 16:9 video always covers the hero at any window size (container units = hero box) */
.mm-hero__bg iframe { width: max(100%, 177.78cqh); height: max(100%, 56.25cqw); pointer-events: none; opacity: 0; transition: opacity 1.2s var(--mm-ease); }
/* the video only fades in once Vimeo reports playback (domain-restricted embeds stay hidden; poster shows) */
.mm-hero.is-playing .mm-hero__bg iframe { opacity: 1; }
.mm-hero__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.28) 45%, rgba(0,0,0,0) 70%),
    linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 70%, rgba(0,0,0,0.45) 100%);
}
.mm-hero__frame {
  position: absolute;
  z-index: 2;
  inset: clamp(12px, 1.6vw, 28px);
  border: 2px solid rgba(255,255,255,0.88);
  border-radius: 0 clamp(44px, 6vw, 90px) 0 0; /* CI frame: only top-right rounded, 90px like the current website */
  pointer-events: none;
}
.mm-hero__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  padding: clamp(150px, 15vw, 260px) clamp(40px, 5.6vw, 116px) clamp(110px, 8vw, 150px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.mm-hero__kicker {
  display: flex;
  align-items: center;
  gap: 18px;
  font-size: clamp(13px, 1.15vw, 19px);
  font-weight: 500;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  margin-bottom: clamp(10px, 1.2vw, 22px);
}
.mm-hero__kicker::after { content: ""; width: 64px; height: 2px; background: var(--mm-accent); }
.mm-hero__title {
  font-family: var(--mm-font-body);
  font-size: clamp(48px, 7.4vw, 140px);
  line-height: 0.88;
  letter-spacing: -0.035em;
}
.mm-hero__title b { display: block; font-weight: 800; }
.mm-hero__title span { display: block; font-weight: 300; letter-spacing: -0.03em; }
.mm-hero__title i { font-style: normal; color: var(--mm-accent); }
.mm-hero__sub {
  margin-top: clamp(16px, 1.8vw, 34px);
  font-size: clamp(19px, 2.15vw, 40px);
  font-weight: 400;
  letter-spacing: -0.005em;
}
.mm-hero__cta { margin-top: clamp(22px, 2.6vw, 44px); }
.mm-hero__cta .mm-btn { font-size: clamp(16px, 1.45vw, 25px); padding: 0.85em 1.55em; gap: 30px; }
.mm-hero__foot {
  position: absolute;
  left: clamp(40px, 5.6vw, 116px);
  bottom: clamp(44px, 4.4vw, 78px);
  display: flex;
  align-items: center;
  gap: 22px;
  font-size: clamp(12px, 1.05vw, 18px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.mm-hero__foot::before { content: ""; order: 2; width: 72px; height: 1.5px; background: currentColor; }
.mm-hero__foot b { order: 3; font-weight: 700; letter-spacing: 0.04em; }

/* ==========================================================================
   PROJECTS MOSAIC
   ========================================================================== */
.mm-projects { padding-top: var(--mm-section); }
.mm-voices .mm-display { font-size: clamp(34px, 3.7vw, 68px); }
.mm-projects__grid {
  padding-inline: var(--mm-pad-wide);
  display: grid;
  grid-template-columns: 0.92fr 1fr 0.92fr;
  grid-template-rows: repeat(2, clamp(240px, 23.4vw, 460px)) clamp(240px, 21vw, 400px);
  gap: clamp(10px, 0.9vw, 16px);
}
.mm-projects__grid > .mm-card:nth-child(1) { grid-row: span 2; }
.mm-projects__grid > .mm-card:nth-child(3) { border-top-right-radius: var(--mm-radius); }
.mm-projects__grid > .mm-card:nth-child(2),
.mm-projects__grid > .mm-card:nth-child(4),
.mm-projects__grid > .mm-card:nth-child(5) { border-radius: 2px; }
.mm-projects__grid > .mm-card:nth-child(6),
.mm-projects__grid > .mm-card:nth-child(7) { border-radius: 2px; }
.mm-projects__grid > .mm-card:nth-child(n+9) { display: none; }
.mm-projects__grid.is-swapping > .mm-card { opacity: 0; transform: translateY(10px); }
.mm-projects__grid > .mm-card { transition: opacity 0.45s var(--mm-ease), transform 0.45s var(--mm-ease); }
.mm-project__body {
  position: absolute;
  z-index: 2;
  left: clamp(18px, 2vw, 30px);
  right: clamp(18px, 2vw, 30px);
  bottom: clamp(18px, 2.2vw, 36px);
}
.mm-project__title {
  font-family: var(--mm-font-display);
  font-weight: 700;
  text-transform: uppercase;
  font-size: clamp(20px, 1.75vw, 32px);
  line-height: 1.05;
}
.mm-project__client { margin-top: 6px; font-size: clamp(14px, 1.05vw, 18px); color: rgba(255,255,255,0.9); }
.mm-project__more { margin-top: clamp(16px, 1.8vw, 30px); display: flex; align-items: center; gap: 22px; font-size: 14px; }
.mm-projects__grid > .mm-card:nth-child(1) .mm-project__title { font-size: clamp(26px, 2.2vw, 40px); }
.mm-projects__grid > .mm-card:nth-child(1) .mm-project__more { margin-top: clamp(28px, 4vw, 64px); }

/* ==========================================================================
   FILM WORLDS (3 service cards)
   ========================================================================== */
.mm-worlds { padding-top: var(--mm-section); }
.mm-worlds__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 2.2vw, 40px);
  padding-inline: calc(var(--mm-pad) * 0.42);
}
.mm-world { aspect-ratio: 477 / 775; min-height: 520px; border-radius: 2px calc(var(--mm-radius) * 1.15) 2px 2px; }
.mm-world .mm-card__shade {
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0.15) 52%, rgba(0,0,0,0.88) 82%, rgba(0,0,0,0.95) 100%);
}
.mm-world__body {
  position: absolute;
  z-index: 2;
  left: clamp(22px, 2.3vw, 36px);
  right: clamp(22px, 2.3vw, 36px);
  bottom: clamp(26px, 2.6vw, 44px);
}
.mm-world__title {
  font-family: var(--mm-font-display);
  font-weight: 600;
  text-transform: uppercase;
  font-size: clamp(26px, 2.75vw, 50px);
  line-height: 1;
  white-space: nowrap;
}
.mm-world__claim { margin-top: 8px; font-size: clamp(17px, 1.45vw, 25px); line-height: 1.25; }
.mm-world__text { margin-top: clamp(14px, 1.8vw, 30px); color: var(--mm-muted); font-size: clamp(14px, 1.15vw, 19px); max-width: 21em; min-height: 4.5em; }
.mm-world__foot { margin-top: clamp(14px, 1.6vw, 26px); display: flex; align-items: center; justify-content: space-between; }
.mm-world__foot .mm-link::after { content: ""; width: 52px; height: 1px; background: rgba(255,255,255,0.6); transition: width 0.4s var(--mm-ease); }
.mm-world:hover .mm-world__foot .mm-link::after { width: 80px; }

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.mm-voices { padding-top: var(--mm-section); overflow: hidden; }
.mm-voices__count { display: flex; align-items: center; gap: 14px; font-size: 14px; margin-left: 8px; color: var(--mm-muted); }
.mm-voices__count::before { content: ""; order: 2; width: 36px; height: 1px; background: currentColor; }
.mm-voices__count span:last-child { order: 3; }
.mm-voices__stage {
  --w: min(47.5vw, 920px);
  position: relative;
  height: clamp(320px, 24.6vw, 480px);
}
.mm-voice {
  position: absolute;
  top: 0;
  left: 50%;
  width: var(--w);
  height: 100%;
  margin: 0;
  border-radius: 2px calc(var(--mm-radius) * 0.85) 2px 2px;
  transform: translateX(calc(-50% + var(--d, 0) * (var(--w) + 18px)));
  transition: transform 0.8s var(--mm-ease), opacity 0.8s var(--mm-ease);
  opacity: 1;
}
.mm-voice.no-anim { transition: none; }
.mm-voice[data-far] { opacity: 0; pointer-events: none; }
.mm-voice .mm-card__shade {
  background: linear-gradient(90deg, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.45) 45%, rgba(0,0,0,0.05) 80%);
  transition: background 0.8s;
}
.mm-voice:not(.is-active) .mm-card__shade { background: rgba(0,0,0,0.62); }
.mm-voice:not(.is-active) { cursor: pointer; }
.mm-voice__body {
  position: absolute;
  z-index: 2;
  left: clamp(26px, 3.3vw, 52px);
  right: 35%;
  top: 50%;
  transform: translateY(-50%);
}
.mm-voice:not(.is-active) .mm-voice__body { right: 18%; }
.mm-voice__mark { width: clamp(28px, 2.4vw, 40px); color: rgba(255,255,255,0.75); margin-bottom: clamp(16px, 1.8vw, 28px); transition: color 0.6s; }
.mm-voice.is-active .mm-voice__mark { color: var(--mm-accent); }
.mm-voice__quote { font-size: clamp(16px, 1.45vw, 25px); line-height: 1.36; font-weight: 400; }
.mm-voice--long .mm-voice__quote { font-size: clamp(14px, 1.15vw, 20px); }
.mm-voice:not(.is-active) .mm-voice__quote { color: rgba(255,255,255,0.8); }
.mm-voice__name { margin-top: clamp(22px, 2.6vw, 44px); font-family: var(--mm-font-mono); font-weight: 600; font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; }
.mm-voice__org { margin-top: 6px; font-family: var(--mm-font-mono); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(255,255,255,0.8); max-width: 22em; }

/* ==========================================================================
   CLIENT LOGOS
   ========================================================================== */
.mm-logos { padding-top: clamp(28px, 2.4vw, 40px); padding-bottom: clamp(40px, 4vw, 72px); }
.mm-logos__rule { height: 1px; background: var(--mm-line); margin: clamp(28px, 2.4vw, 40px) 0 clamp(20px, 1.8vw, 30px); }
.mm-logos__grid {
  list-style: none;
  margin: clamp(20px, 2.4vw, 40px) 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: clamp(18px, 2vw, 34px) clamp(20px, 3vw, 56px);
  align-items: center;
}
.mm-logos__grid li { display: grid; place-items: center; }
/* logos ship as grey-on-white PNGs: invert onto the black page */
.mm-logos__grid img {
  width: 100%;
  max-width: 190px;
  height: auto;
  filter: var(--mm-logo-filter, grayscale(1) invert(1) brightness(1.05));
  mix-blend-mode: screen;
  opacity: 0.72;
  transition: opacity 0.3s;
}
.mm-logos__grid img:hover { opacity: 1; }

/* ==========================================================================
   CTA – "Bereit für grosses Kino?"
   ========================================================================== */
.mm-cta {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--mm-line);
  min-height: clamp(380px, 27.5vw, 520px);
  display: flex;
  align-items: center;
}
.mm-cta__bg { position: absolute; inset: 0 0 0 28%; }
.mm-cta__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 40%; }
.mm-cta__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #000 0%, rgba(0,0,0,0.75) 22%, rgba(0,0,0,0.15) 60%, rgba(0,0,0,0) 100%);
}
.mm-cta__inner { position: relative; z-index: 2; width: 100%; padding-block: clamp(40px, 3.8vw, 64px); }
.mm-cta .mm-display { font-size: clamp(38px, 4.1vw, 74px); }
.mm-cta__text { margin-top: clamp(20px, 2vw, 34px); font-size: clamp(15px, 1.2vw, 20px); line-height: 1.45; max-width: 28em; }
.mm-cta__row { margin-top: clamp(24px, 2.6vw, 42px); display: flex; flex-wrap: wrap; align-items: center; gap: 18px clamp(24px, 3.6vw, 60px); }
.mm-checks { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 14px clamp(20px, 2.8vw, 54px); }
.mm-checks li { display: flex; align-items: center; gap: 12px; font-size: clamp(14px, 1.1vw, 18px); white-space: nowrap; }
.mm-checks li::before {
  content: "";
  flex: none;
  width: 30px;
  height: 30px;
  border: 1.5px solid var(--mm-accent);
  border-radius: 50%;
  background: center / 14px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 12' fill='none' stroke='%23ffcd3e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1.5 6.5 5.5 10.5 14.5 1.5'/%3E%3C/svg%3E");
}

/* ==========================================================================
   NEWS
   ========================================================================== */
.mm-news { padding-top: clamp(40px, 3vw, 56px); padding-bottom: var(--mm-section); }
.mm-news .mm-display { font-size: clamp(36px, 3.9vw, 70px); }
.mm-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.8vw, 32px);
  padding-inline: calc(var(--mm-pad) * 0.7);
}
.mm-post { background: var(--mm-surface); border-radius: 2px calc(var(--mm-radius) * 0.6) 2px 2px; }
.mm-post__media { position: relative; aspect-ratio: 456 / 240; overflow: hidden; }
.mm-post__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--mm-ease); }
.mm-post:hover .mm-post__media img { transform: scale(1.05); }
.mm-post__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.45), rgba(0,0,0,0) 40%); }
.mm-post .mm-card__index { top: 20px; left: 24px; right: 24px; font-weight: 600; }
.mm-post .mm-card__tag { font-weight: 400; letter-spacing: 0.18em; }
.mm-post__body {
  position: relative;
  padding: clamp(18px, 1.6vw, 26px) clamp(80px, 6vw, 96px) clamp(22px, 2vw, 32px) clamp(18px, 1.6vw, 24px);
  min-height: 140px;
}
.mm-post__date { font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: rgba(255,255,255,0.85); }
.mm-post__title { margin-top: 6px; font-size: clamp(17px, 1.4vw, 23px); font-weight: 600; line-height: 1.2; }
.mm-post__excerpt { margin-top: 6px; font-size: clamp(14px, 1.05vw, 17px); line-height: 1.4; color: var(--mm-muted); }
.mm-root .mm-post__body .mm-circle { position: absolute; right: clamp(18px, 1.6vw, 24px); bottom: clamp(22px, 2vw, 32px); }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.mm-footer { position: relative; overflow: hidden; background: #050505; }
.mm-footer__bg { position: absolute; inset: 0; }
.mm-footer__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 35%; opacity: 0.85; }
.mm-footer__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,0.96) 0%, rgba(0,0,0,0.85) 35%, rgba(0,0,0,0.35) 70%, rgba(0,0,0,0.55) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.9) 80%, #000 100%);
}
.mm-footer__inner { position: relative; z-index: 2; padding-top: clamp(64px, 6.8vw, 130px); }
.mm-footer__brand svg,
.mm-footer__brand img { width: clamp(220px, 20.3vw, 400px); height: auto; }
.mm-footer__claim { margin-top: 10px; font-size: clamp(14px, 1.15vw, 22px); font-weight: 300; letter-spacing: 0.42em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.mm-footer__cols {
  margin-top: clamp(40px, 3.6vw, 70px);
  display: grid;
  grid-template-columns: 1fr 1.15fr 1.45fr 0.9fr;
  gap: clamp(28px, 3vw, 56px);
  align-items: start;
}
.mm-footer__col:first-child { border-right: 1px solid var(--mm-line); padding-bottom: 8px; }
.mm-footer__num { display: flex; align-items: center; gap: 18px; font-size: 14px; letter-spacing: 0.12em; }
.mm-footer__num::after { content: ""; width: 56px; height: 1px; background: rgba(255,255,255,0.5); }
.mm-footer__label { margin-top: 18px; font-size: 13px; letter-spacing: 0.32em; text-transform: uppercase; }
.mm-footer__text { margin-top: 12px; font-size: clamp(15px, 1vw, 18px); line-height: 1.4; color: rgba(255,255,255,0.9); }
.mm-footer__text a:hover { color: var(--mm-accent); }
.mm-footer__mail { text-decoration: underline !important; text-underline-offset: 4px; text-decoration-thickness: 1px !important; }
.mm-footer__legal { list-style: none; margin: 20px 0 0; padding: 20px 0 0; position: relative; display: grid; gap: 10px; }
.mm-footer__legal::before { content: ""; position: absolute; top: 0; left: 0; width: 110px; height: 1px; background: var(--mm-line); }
.mm-footer__legal a { font-size: 12px; letter-spacing: 0.3em; text-transform: uppercase; }
.mm-footer__legal a:hover { color: var(--mm-accent); }
.mm-footer__talk { margin-top: 30px; display: inline-flex; align-items: center; gap: 22px; font-size: 13px; letter-spacing: 0.3em; text-transform: uppercase; line-height: 1.7; }
.mm-root .mm-footer__talk .mm-circle { --size: 58px; }
.mm-newsletter { margin-top: 28px; display: flex; max-width: 450px; height: 56px; border: 1px solid rgba(255,255,255,0.55); border-radius: 999px; overflow: hidden; }
.mm-root .mm-newsletter input[type="email"] { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; height: 100%; margin: 0; }
.mm-newsletter input[type="email"] { flex: 1; min-width: 0; border: 0; background: transparent; color: #fff; padding: 0 24px; font: inherit; font-size: 16px; outline: none; }
.mm-newsletter input::placeholder { color: rgba(255,255,255,0.6); }
.mm-root .mm-newsletter button { flex: none; width: 72px; border: 0; background: var(--mm-accent); color: #111; display: grid; place-items: center; cursor: pointer; transition: background 0.3s; }
.mm-newsletter button svg { width: 22px; height: 22px; }
.mm-root .mm-newsletter button:hover { background: #fff; }
.mm-newsletter:focus-within { border-color: var(--mm-accent); }
.mm-footer__social { align-self: end; padding-bottom: 6px; }
.mm-footer__social::before { content: ""; display: block; width: 24px; height: 1px; background: rgba(255,255,255,0.6); margin-bottom: 30px; }
.mm-footer__social .mm-footer__label { margin-top: 0; }
.mm-social { margin-top: 22px; display: flex; gap: clamp(18px, 1.8vw, 34px); list-style: none; padding: 0; }
.mm-social a { display: block; width: 28px; height: 28px; color: #fff; transition: color 0.3s, transform 0.3s; }
.mm-social a:hover { color: var(--mm-accent); transform: translateY(-2px); }
.mm-social svg { width: 100%; height: 100%; fill: currentColor; }
.mm-footer__bar {
  margin-top: clamp(36px, 3.4vw, 60px);
  border-top: 1px solid var(--mm-line);
  padding-block: 28px 34px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 30px;
  font-size: 12px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
}
.mm-footer__member { display: flex; align-items: center; gap: 24px; white-space: nowrap; }
.mm-root .mm-footer__member img { height: 36px; width: auto; filter: brightness(0) invert(1); }
.mm-footer__crafts { justify-self: center; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; letter-spacing: 0.22em; }
.mm-footer__crafts span { white-space: nowrap; }
.mm-footer__crafts span + span::before { content: "/"; margin-right: 16px; }
.mm-footer__end { display: flex; align-items: center; gap: 28px; white-space: nowrap; }
.mm-footer__copy { letter-spacing: 0; text-transform: none; font-size: 14px; }
.mm-footer__ig { border-left: 1px solid var(--mm-line); padding-left: 28px; font-size: 10px; line-height: 1.6; letter-spacing: 0.26em; }
.mm-footer__ig:hover { color: var(--mm-accent); }

/* ==========================================================================
   Motion: reveal on scroll (only when JS is running)
   ========================================================================== */
.mm-js [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity 0.9s var(--mm-ease), transform 0.9s var(--mm-ease); transition-delay: var(--delay, 0s); }
.mm-js [data-reveal].is-in { opacity: 1; transform: none; }
.mm-hero__inner > * { animation: mm-rise 1.1s var(--mm-ease) both; }
.mm-hero__inner > *:nth-child(2) { animation-delay: 0.1s; }
.mm-hero__inner > *:nth-child(3) { animation-delay: 0.2s; }
.mm-hero__inner > *:nth-child(4) { animation-delay: 0.3s; }
@keyframes mm-rise { from { opacity: 0; transform: translateY(30px); } }
@media (prefers-reduced-motion: reduce) {
  .mm-root *, .mm-root *::before, .mm-root *::after { animation: none !important; transition: none !important; }
  .mm-js [data-reveal] { opacity: 1; transform: none; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 1100px) {
  .mm-nav { display: none; }
  .mm-head { grid-template-columns: 1fr auto; }
  .mm-head .mm-lead { grid-column: 1 / -1; grid-row: 2; }
  .mm-head--split { grid-template-columns: 1fr; }
  .mm-worlds__grid { grid-template-columns: 1fr 1fr; padding-inline: var(--mm-pad); }
  .mm-worlds__grid > :last-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; min-height: 460px; }
  .mm-voices__stage { --w: 72vw; height: 380px; }
  .mm-voice__body { right: 18%; }
  .mm-logos__grid { grid-template-columns: repeat(5, 1fr); }
  .mm-news__grid { grid-template-columns: 1fr 1fr; padding-inline: var(--mm-pad); }
  .mm-news__grid > :nth-child(3) { display: none; }
  .mm-footer__cols { grid-template-columns: 1fr 1fr; }
  .mm-footer__col:first-child { border-right: 0; }
  .mm-footer__social { align-self: start; }
  .mm-footer__bar { grid-template-columns: 1fr; justify-items: start; }
  .mm-footer__crafts { justify-self: start; justify-content: flex-start; }
}

@media (max-width: 767px) {
  .mm-header { padding: 30px 30px 0; }
  .mm-hero__inner { padding: 140px 30px 120px; }
  .mm-hero__foot { left: 30px; bottom: 40px; }
  .mm-hero__cta .mm-btn { gap: 16px; }
  .mm-head { grid-template-columns: 1fr; gap: 16px; }
  .mm-head__actions { justify-self: start; }
  .mm-projects__grid {
    grid-template-columns: 1fr;
    grid-template-rows: none;
    grid-auto-rows: auto;
    padding-inline: var(--mm-pad);
  }
  .mm-projects__grid > .mm-card { height: 340px; }
  .mm-projects__grid > .mm-card:nth-child(1) { grid-row: auto; height: 460px; }
  .mm-projects__grid > .mm-card { border-radius: 2px !important; }
  .mm-projects__grid > .mm-card:first-child { border-top-right-radius: var(--mm-radius) !important; }
  .mm-worlds__grid { grid-template-columns: 1fr; }
  .mm-worlds__grid > .mm-world, .mm-worlds__grid > :last-child { aspect-ratio: auto; min-height: 520px; grid-column: auto; }
  .mm-voices__stage { --w: calc(100vw - 2 * var(--mm-pad)); height: 440px; }
  .mm-voice__body { right: 26px; }
  .mm-logos__grid { grid-template-columns: repeat(3, 1fr); }
  .mm-cta__bg { inset: 0; opacity: 0.55; }
  .mm-checks li { white-space: normal; }
  .mm-news__grid { grid-template-columns: 1fr; }
  .mm-news__grid > :nth-child(3) { display: block; }
  .mm-footer__cols { grid-template-columns: 1fr; }
  .mm-footer__claim { letter-spacing: 0.28em; }
  .mm-footer__end { flex-wrap: wrap; gap: 16px; }
  .mm-footer__ig { border-left: 0; padding-left: 0; }
  .mm-footer__crafts span + span::before { margin-right: 14px; }
  .mm-footer__crafts { gap: 8px 14px; }
}

/* ==========================================================================
   Version B additions: Poppins tuning, yellow accent, project page, motion
   ========================================================================== */
.mm-yellow { font-style: normal; color: var(--mm-accent); }
.mm-display { letter-spacing: -0.015em; line-height: 0.98; }
.mm-hero__title { letter-spacing: -0.03em; }
.mm-world__title, .mm-project__title { font-weight: 600; letter-spacing: 0; }
.mm-voice__name { letter-spacing: 0.1em; }
.mm-card__index--split .mm-card__tag { margin-left: auto; }

/* ---------- smart header: hides on scroll down, glass bar on scroll up ---------- */
.mm-header { transition: transform 0.55s var(--mm-ease), background-color 0.4s, padding 0.4s, box-shadow 0.4s; will-change: transform; }
body.mm-scrolled .mm-header {
  position: fixed; padding-top: 14px; padding-bottom: 14px;
  background: rgba(0, 0, 0, 0.62); -webkit-backdrop-filter: blur(16px) saturate(1.2); backdrop-filter: blur(16px) saturate(1.2);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06);
}
body.mm-scrolled.mm-header-hidden .mm-header { transform: translateY(-110%); }
body.mm-scrolled .mm-header__logo svg, body.mm-scrolled .mm-header__logo img { height: clamp(20px, 1.6vw, 28px); }
body.mm-scrolled .mm-burger { width: 52px; height: 52px; }
.mm-header__logo svg, .mm-header__logo img, .mm-burger { transition: height 0.4s var(--mm-ease), width 0.4s var(--mm-ease), transform 0.35s var(--mm-ease); }
.admin-bar.mm-scrolled .mm-header { top: 32px; }

/* ---------- full-screen menu: items glide in one after another ---------- */
.mm-overlay__list li { opacity: 0; transform: translateY(26px); transition: opacity 0.6s var(--mm-ease), transform 0.7s var(--mm-ease); }
.mm-menu-open .mm-overlay__list li { opacity: 1; transform: none; }
.mm-menu-open .mm-overlay__list li:nth-child(1) { transition-delay: 0.08s; }
.mm-menu-open .mm-overlay__list li:nth-child(2) { transition-delay: 0.16s; }
.mm-menu-open .mm-overlay__list li:nth-child(3) { transition-delay: 0.24s; }
.mm-menu-open .mm-overlay__list li:nth-child(4) { transition-delay: 0.32s; }
.mm-menu-open .mm-overlay__list li:nth-child(5) { transition-delay: 0.40s; }
.mm-overlay__meta { opacity: 0; transition: opacity 0.8s ease 0.5s; }
.mm-menu-open .mm-overlay__meta { opacity: 1; }

/* ---------- "Ansehen" cursor bubble on project cards ---------- */
.mm-cursor { position: fixed; left: 0; top: 0; z-index: 9999; width: 104px; height: 104px; margin: -52px 0 0 -52px; border-radius: 50%; background: var(--mm-accent); color: #111; display: grid; place-items: center; font: 600 12px/1.1 "Poppins", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; pointer-events: none; transform: scale(0); transition: transform 0.4s var(--mm-ease); }
.mm-cursor.is-on { transform: scale(1); }
.mm-cursor span { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- page transition: fade through black ---------- */
.mm-transition { position: fixed; inset: 0; z-index: 10000; background: #000; pointer-events: none; opacity: 1; transition: opacity 0.65s var(--mm-ease); }
.mm-transition.is-out { opacity: 0; }
.mm-transition.is-in { opacity: 1; pointer-events: all; }

/* ---------- images settle in when revealed ---------- */
.mm-js [data-reveal] .mm-card__media img { transform: scale(1.08); transition: transform 1.6s var(--mm-ease); }
.mm-js [data-reveal].is-in .mm-card__media img, .mm-js [data-reveal].is-in.mm-card .mm-card__media img { transform: scale(1); }
.mm-js [data-reveal].is-in .mm-card:hover .mm-card__media img, .mm-js .mm-card[data-reveal].is-in:hover .mm-card__media img { transform: scale(1.045); transition-duration: 1.2s; }
.mm-world__foot .mm-link::after { transition: width 0.5s var(--mm-ease); }

/* ---------- project page ---------- */
.mm-phero { position: relative; min-height: max(560px, 82svh); display: flex; align-items: flex-end; overflow: hidden; background: #0b0b0b; }
.mm-phero__bg { position: absolute; inset: -6% 0; z-index: 0; will-change: transform; }
.mm-root .mm-phero__bg img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.mm-phero::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.05) 35%, rgba(0,0,0,0.92) 100%); }
.mm-phero__inner { position: relative; z-index: 2; width: 100%; padding-top: 180px; padding-bottom: clamp(56px, 6vw, 110px); }
.mm-phero__title { font-size: clamp(40px, 6vw, 110px); margin-top: 18px !important; }
.mm-phero .mm-hero__kicker { font-size: 13px; letter-spacing: 0.24em; }
.mm-phero .mm-hero__sub { font-size: clamp(18px, 1.9vw, 34px); }
.mm-rise { animation: mm-rise 1.1s var(--mm-ease) both; }
.mm-phero__inner > :nth-child(2) { animation-delay: 0.12s; }
.mm-phero__inner > :nth-child(3) { animation-delay: 0.24s; }
.mm-phero__inner > :nth-child(4) { animation-delay: 0.36s; }

.mm-pfilm { padding-block: clamp(48px, 5vw, 90px); }
.mm-pstory { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 90px); padding-bottom: clamp(56px, 6vw, 110px); }
.mm-pstory__credits .mm-eyebrow { margin-bottom: 22px; }
.mm-pstills { padding-bottom: var(--mm-section); }
.mm-pmore { padding-block: var(--mm-section); border-top: 1px solid var(--mm-line); }
.mm-pmore__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(28px, 2.6vw, 44px); }
.mm-pmore__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.mm-pmore__grid .mm-card { min-height: clamp(320px, 26vw, 460px); }
/* Image CTA (prototype "Bereit für dein Projekt"): text left, full-bleed photo right */
.mm-icta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 90px); align-items: center; padding-block: var(--mm-section); background: var(--mm-bg); border-top: 1px solid var(--mm-line); }
.mm-icta__media { position: relative; order: 2; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 2px clamp(40px, 5.5vw, 90px) 2px 2px; background: var(--mm-surface); }
.mm-root .mm-icta__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--mm-focal, 50% 35%); transition: transform 1.6s var(--mm-ease); }
.mm-js .mm-icta__media[data-reveal] img { transform: scale(1.08); }
.mm-js .mm-icta__media[data-reveal].is-in img { transform: none; }
.mm-icta__body .mm-eyebrow { margin-bottom: 20px; }
.mm-icta__body .mm-display { margin-bottom: 30px !important; }
.mm-icta__body .mm-lead { margin-bottom: 30px !important; }

/* sliders (videos, stills) */
.mms-slider { --mms-gap: 16px; position: relative; }
.mms-slider__track { display: flex; gap: var(--mms-gap); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.mms-slider__track::-webkit-scrollbar { display: none; }
.mms-slider__slide { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.mms-stills .mms-slider__slide { flex: 0 0 calc((100% - var(--mms-gap) * 1.3) / 2.3); }
.mms-slider__nav { display: flex; align-items: center; justify-content: flex-end; gap: 14px; margin-top: 22px; }
.mms-slider__count { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; color: var(--mm-muted); margin-right: auto; }
.mms-slider__sep { width: 36px; height: 1px; background: currentColor; }
.mms-video { position: relative; aspect-ratio: 16 / 9; background: #0b0b0b; overflow: hidden; border-top-right-radius: clamp(24px, 3vw, 48px); }
.mms-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mms-still { display: block; position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: #0b0b0b; }
.mm-root .mms-still img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1s var(--mm-ease); }
.mms-still:hover img { transform: scale(1.04); }
.mms-credits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 40px; }
.mms-credits__group { color: var(--mm-accent); font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 14px; }
.mms-credits__list { margin: 0; display: grid; gap: 10px; }
.mms-credits__person { display: grid; gap: 2px; }
.mms-credits__person dt { color: var(--mm-muted); font-size: 13px; }
.mms-credits__person dd { margin: 0; color: #fff; font-size: 16px; font-weight: 500; }

/* article text */
.mm-prose { color: var(--mm-muted); font-size: clamp(15px, 1.15vw, 19px); line-height: 1.65; }
.mm-prose h2, .mm-prose h3, .mm-prose h4, .mm-prose h5 { color: #fff; font-weight: 600; line-height: 1.25; margin: 1.6em 0 0.6em; }
.mm-prose h2 { font-size: clamp(22px, 2vw, 32px); }
.mm-prose h3 { font-size: clamp(18px, 1.5vw, 24px); }
.mm-prose > :first-child { margin-top: 0; }
.mm-prose p { margin: 0 0 1.1em !important; }
.mm-prose a { color: var(--mm-accent); text-decoration: underline; text-underline-offset: 3px; }
.mm-prose strong { color: #fff; font-weight: 600; }

@media (max-width: 1100px) {
  .mm-pstory, .mm-icta { grid-template-columns: 1fr; }
  .mm-icta__media { order: 0; }
  .mm-pmore__grid { grid-template-columns: 1fr 1fr; }
  .mms-stills .mms-slider__slide { flex-basis: calc((100% - var(--mms-gap) * 0.6) / 1.6); }
}
@media (max-width: 767px) {
  .mm-pmore__grid { grid-template-columns: 1fr; }
  .mms-credits { grid-template-columns: 1fr; }
  .mms-stills .mms-slider__slide { flex-basis: 88%; }
  .mm-cursor { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .mm-header, .mm-overlay__list li, .mm-transition, .mm-card__media img { transition: none !important; }
  .mm-rise { animation: none !important; }
  .mm-transition { display: none; }
}

/* parallax room for the CTA image */
.mm-cta__bg { inset: -70px 0 -70px 28%; will-change: transform; }
@media (max-width: 767px) { .mm-cta__bg { inset: 0; } }
.mm-newsletter.is-busy { opacity: .6; pointer-events: none; }
.mm-newsletter__msg { margin-top: 12px !important; font-size: 14px; color: var(--mm-accent); min-height: 1.2em; }

/* ---------- feedback round 1 ---------- */
/* Menu open: header bar stays transparent over the black overlay (logo + X remain on top) */
.mm-header { will-change: auto; }
.mm-menu-open .mm-header { transform: none !important; background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; box-shadow: none !important; }
.mm-menu-open body { overflow: hidden; }

/* Video lightbox ("Film ansehen") */
.mm-vlb { position: fixed; inset: 0; z-index: 10001; display: grid; place-items: center; padding: clamp(16px, 5vw, 80px); background: rgba(0, 0, 0, 0.94); opacity: 0; visibility: hidden; transition: opacity 0.45s var(--mm-ease), visibility 0.45s; }
.mm-vlb.is-open { opacity: 1; visibility: visible; }
.mm-vlb__frame { position: relative; width: min(100%, calc((100vh - 120px) * 16 / 9)); aspect-ratio: 16 / 9; background: #000; transform: scale(0.96); transition: transform 0.55s var(--mm-ease); box-shadow: 0 40px 120px -40px rgba(0, 0, 0, 0.9); }
.mm-vlb.is-open .mm-vlb__frame { transform: none; }
.mm-vlb__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mm-vlb__close { position: absolute; top: clamp(14px, 2.5vw, 34px); right: clamp(14px, 2.5vw, 34px); width: 56px; height: 56px; padding: 0 !important; border: 0 !important; border-radius: 50% !important; background: #fff !important; color: #111 !important; display: grid; place-items: center; cursor: pointer; transition: transform 0.3s var(--mm-ease), background 0.3s; }
.mm-vlb__close:hover { transform: rotate(90deg); background: var(--mm-accent) !important; }
.mm-vlb__close svg { width: 22px; height: 22px; }
html.mm-vlb-open, html.mm-vlb-open body { overflow: hidden; }

/* ---------- feedback round 2 ---------- */
/* Header video: something on the page caps iframes at max-width:100%, which letterboxed the 16:9 player. */
/* Elementor sets ".elementor iframe { width:100%; max-width:100% }" – that kept the 16:9 player at the hero's width
   and letterboxed it. Re-assert the "cover" size with higher specificity (container units = hero box → any window shape). */
.mm-root .mm-hero__bg iframe { width: max(100%, 177.78cqh); height: max(100%, 56.25cqw); max-width: none; max-height: none; margin: 0; }

/* Lightbox: previous/next + counter when a project has several videos */
.mm-vlb__frame { width: min(100%, calc((100vh - 190px) * 16 / 9)); }
.mm-vlb__nav { position: absolute; left: 50%; bottom: clamp(14px, 2.4vh, 32px); transform: translateX(-50%); display: none; align-items: center; gap: 18px; color: #fff; }
.mm-vlb.has-many .mm-vlb__nav { display: flex; }
.mm-vlb__count { display: inline-flex; align-items: center; gap: 12px; font-size: 14px; min-width: 110px; justify-content: center; color: var(--mm-muted); }
.mm-vlb__sep { width: 32px; height: 1px; background: currentColor; }
.mm-vlb__arrow { width: 52px; height: 52px; padding: 0 !important; border-radius: 50% !important; border: 1.5px solid rgba(255, 255, 255, 0.45) !important; background: transparent !important; color: #fff !important; display: grid; place-items: center; cursor: pointer; transition: border-color 0.3s, color 0.3s, transform 0.3s var(--mm-ease); }
.mm-vlb__arrow:hover { border-color: var(--mm-accent) !important; color: var(--mm-accent) !important; transform: scale(1.06); }
.mm-vlb__arrow svg { width: 20px; height: 20px; }
@media (max-width: 767px) { .mm-vlb__frame { width: 100%; } .mm-vlb__nav { bottom: 12px; } }

/* ==========================================================================
   Inner pages: page hero, intro, team, info cards, offers
   ========================================================================== */
.mm-hero--page { min-height: max(560px, 84svh); }
.mm-hero--page .mm-hero__heading { font-size: clamp(42px, 6.4vw, 112px); line-height: 0.95; margin: 0 0 clamp(16px, 1.6vw, 28px); }
.mm-hero--page .mm-hero__sub { max-width: 34em; }

.mm-stackhead { margin-bottom: clamp(28px, 3vw, 52px); }
.mm-stackhead .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); max-width: 40em; }
.mm-stackhead .mm-lead strong { color: var(--mm-text); }

/* intro: heading left, text right */
.mm-intro { border-top: 1px solid var(--mm-line); }
.mm-intro__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(32px, 6vw, 120px); align-items: start; }
.mm-intro__head .mm-btn { margin-top: clamp(24px, 2.4vw, 40px); }
.mm-intro__text { max-width: 36em; font-size: clamp(16px, 1.25vw, 21px); line-height: 1.6; color: var(--mm-text); }
.mm-icons { display: flex; flex-wrap: wrap; gap: 24px clamp(28px, 4vw, 64px); margin-top: clamp(28px, 3vw, 52px); }
.mm-icon-item { display: grid; gap: 12px; justify-items: start; }
.mm-icon-item img { width: 56px; height: 56px; object-fit: contain; }
.mm-icon-item span { font-size: 15px; font-weight: 500; }

/* team */
.mm-team { border-top: 1px solid var(--mm-line); }
.mm-team .mm-eyebrow { margin-bottom: clamp(28px, 3vw, 52px); }
.mm-team__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(40px, 5vw, 88px) clamp(20px, 3vw, 56px); }
.mm-person:nth-child(even) { margin-top: clamp(48px, 9vw, 170px); }
.mm-person__photo { position: relative; overflow: hidden; background: #111; aspect-ratio: 3 / 2; }
.mm-person--tall .mm-person__photo { aspect-ratio: 4 / 5; }
.mm-root .mm-person__photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.4s var(--mm-ease); }
.mm-person:hover .mm-person__photo img { transform: scale(1.04); }
.mm-person__name { margin: 22px 0 8px; font-weight: 700; font-size: clamp(24px, 2.5vw, 42px); line-height: 1.08; letter-spacing: -0.01em; }
.mm-person__role { font-size: clamp(14px, 1.1vw, 18px); color: var(--mm-text); }
.mm-person__mail { display: inline-block; margin-top: 6px; font-size: 14px; color: var(--mm-muted); transition: color 0.3s; }
.mm-person__mail:hover { color: var(--mm-accent); }

/* info cards (service areas) */
.mm-fcards { border-top: 1px solid var(--mm-line); }
.mm-fcards__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.2vw, 20px); }
.mm-fcard { display: flex; flex-direction: column; justify-content: space-between; gap: 40px; min-height: clamp(300px, 24vw, 400px); padding: clamp(24px, 2.2vw, 38px); background: var(--mm-surface); border-radius: 2px clamp(36px, 4vw, 72px) 2px 2px; transition: transform 0.6s var(--mm-ease), background-color 0.4s; }
.mm-fcard:hover { transform: translateY(-6px); }
.mm-fcard__num { display: flex; align-items: center; gap: 14px; font-size: 13px; letter-spacing: 0.1em; color: var(--mm-muted); }
.mm-fcard__num .mm-rule { width: 36px; height: 1px; background: currentColor; opacity: 0.7; }
.mm-root .mm-fcard__icon { width: 52px; height: 52px; object-fit: contain; margin-bottom: 22px; }
.mm-fcard__title { margin: 0 0 12px; font-size: clamp(20px, 1.7vw, 28px); font-weight: 600; }
.mm-fcard__text { margin: 0; color: var(--mm-muted); font-size: clamp(14px, 1.05vw, 17px); line-height: 1.55; }
.mm-fcard__link { display: inline-flex; align-items: center; gap: 12px; margin-top: 20px; font-weight: 600; color: var(--mm-accent); }
.mm-fcard__link svg { width: 1.1em; height: 1.1em; }

/* offers */
.mm-offers { border-top: 1px solid var(--mm-line); }
.mm-offers__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.6vw, 26px); }
.mm-offer { display: flex; flex-direction: column; background: var(--mm-surface); border-radius: 2px var(--mm-radius) 2px 2px; overflow: hidden; }
.mm-offer__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.mm-root .mm-offer__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.4s var(--mm-ease); }
.mm-offer:hover .mm-offer__media img { transform: scale(1.05); }
.mm-offer__body { display: flex; flex: 1; flex-direction: column; gap: 16px; padding: clamp(22px, 2vw, 34px); }
.mm-offer__label { font-size: 12px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mm-accent); }
.mm-offer__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.mm-offer__title { margin: 0; font-size: clamp(22px, 2vw, 34px); font-weight: 700; text-transform: uppercase; line-height: 1.05; }
.mm-offer__text { margin: 0; color: var(--mm-muted); line-height: 1.55; }
.mm-checks--col { flex-direction: column; gap: 10px; }
.mm-checks--col li { white-space: normal; }
.mm-offer .mm-btn { margin-top: auto; align-self: flex-start; }

/* image CTA with the image on the left */
.mm-icta--left .mm-icta__media { order: 0; }

@media (max-width: 1100px) {
  .mm-intro__grid { grid-template-columns: 1fr; }
  .mm-offers__grid { grid-template-columns: 1fr 1fr; }
  .mm-fcards__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
  .mm-offers__grid, .mm-fcards__grid { grid-template-columns: 1fr; }
  .mm-team__grid { grid-template-columns: 1fr; }
  .mm-person:nth-child(even) { margin-top: 0; }
  .mm-hero--page { min-height: max(520px, 78svh); }
}

/* ---------- inner pages: spacing + card fixes ---------- */
.mm-intro, .mm-team, .mm-fcards, .mm-offers { padding-block: var(--mm-section); }
.mm-team { padding-top: var(--mm-section); }
.mm-fcard { justify-content: flex-start; gap: 0; }
.mm-fcard__main { margin-top: clamp(40px, 5.5vw, 90px); }
.mm-offer--icon .mm-offer__body { padding-top: clamp(26px, 2.4vw, 40px); }
.mm-root .mm-offer__icon { width: 64px; height: 64px; object-fit: contain; margin-bottom: 8px; }
.mm-offer--icon { min-height: clamp(380px, 28vw, 500px); }

/* ---------- service detail pages ---------- */
.mm-checks--grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: 14px 28px; margin: 0 0 clamp(24px, 2.4vw, 40px); padding: 0; list-style: none; }
.mm-checks--grid li { white-space: normal; }
.mm-icta__body .mm-checks--grid + .mm-btn { margin-top: 4px; }

/* "benefits": plain centred icon columns separated by thin lines */
.mm-fcards--plain .mm-fcard { align-items: center; text-align: center; min-height: 0; padding: clamp(20px, 2vw, 34px); background: transparent; border-radius: 0; }
.mm-fcards--plain .mm-fcard:hover { transform: none; }
.mm-fcards--plain .mm-fcard + .mm-fcard { border-left: 1px solid var(--mm-line); }
.mm-fcards--plain .mm-fcard__num { display: none; }
.mm-fcards--plain .mm-fcard__main { margin-top: 0; display: flex; flex-direction: column; align-items: center; }
.mm-fcards--plain .mm-stackhead { text-align: center; }
.mm-fcards--plain .mm-fcard__icon { margin-inline: auto; }
.mm-fcards--plain .mm-fcard__text { max-width: 16em; }

/* steps */
.mm-steps { border-top: 1px solid var(--mm-line); padding-block: var(--mm-section); }
.mm-steps__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 120px); align-items: start; }
.mm-steps__list { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(26px, 2.6vw, 42px); }
.mm-step { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: clamp(16px, 1.8vw, 28px); }
.mm-step:not(:last-child)::before { content: ""; position: absolute; left: 21.5px; top: 48px; bottom: calc(-1 * clamp(26px, 2.6vw, 42px) + 4px); width: 1px; background: var(--mm-accent); opacity: 0.55; }
.mm-step__num { width: 44px; height: 44px; border-radius: 50%; background: var(--mm-accent); color: #111; display: grid; place-items: center; font-weight: 700; font-size: 18px; }
.mm-step__title { margin: 8px 0 6px; font-size: clamp(18px, 1.5vw, 24px); font-weight: 600; }
.mm-step__text { margin: 0; color: var(--mm-muted); line-height: 1.6; max-width: 34em; }

/* offers in two columns */
.mm-offers--2 .mm-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

@media (max-width: 1100px) {
  .mm-steps__grid { grid-template-columns: 1fr; }
  .mm-fcards--plain .mm-fcard:nth-child(odd) { border-left: 0; }
}
@media (max-width: 767px) {
  .mm-offers--2 .mm-offers__grid { grid-template-columns: 1fr; }
  .mm-checks--grid { grid-template-columns: 1fr; }
  .mm-fcards--plain .mm-fcard { border-left: 0 !important; }
}

/* ==========================================================================
   OVERVIEW PAGES (projects, news), CONTACT, FAQ, MAP, TEXT PAGES, NEWS ARTICLE
   ========================================================================== */
.mm-arch [hidden] { display: none !important; }
.mm-parch, .mm-narch { padding-top: clamp(40px, 4vw, 72px); padding-bottom: var(--mm-section); }
.mm-filter { display: flex; flex-wrap: wrap; gap: 10px 12px; margin-bottom: clamp(24px, 2.6vw, 44px); }
.mm-root .mm-filter__btn {
  padding: 0.75em 1.5em; border: 1px solid rgba(255, 255, 255, 0.4); border-radius: 999px; background: transparent; color: #fff;
  font-family: var(--mm-font-body); font-size: 14px; font-weight: 500; line-height: 1; letter-spacing: 0.02em; cursor: pointer;
  transition: background 0.3s var(--mm-ease), color 0.3s var(--mm-ease), border-color 0.3s;
}
.mm-root .mm-filter__btn:hover { border-color: var(--mm-accent); background: transparent; color: var(--mm-accent); }
.mm-root .mm-filter__btn.is-active,
.mm-root .mm-filter__btn.is-active:hover { border-color: var(--mm-accent); background: var(--mm-accent); color: #111; }
.mm-arch__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 24px); }
.mm-arch__item { min-width: 0; }
.mm-parch__grid .mm-arch__item > .mm-card { aspect-ratio: 5 / 4; }
.mm-narch__grid .mm-arch__item > .mm-card { height: 100%; }
.mm-arch__item.is-new { animation: mm-arch-in 0.7s var(--mm-ease) both; }
@keyframes mm-arch-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.mm-arch__more { display: flex; justify-content: center; margin-top: clamp(32px, 3.4vw, 56px); }
.mm-arch__more:has(> [hidden]) { display: none; } /* no empty gap once everything is shown */
.mm-root button.mm-btn:hover { background: var(--mm-accent); color: #111 !important; }

/* contact info */
.mm-contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(32px, 5vw, 90px); align-items: center; padding-block: var(--mm-section); }
.mm-contact__body .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); max-width: 30em; }
.mm-contact__items { list-style: none; margin: clamp(28px, 3vw, 48px) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 28px clamp(28px, 3.4vw, 64px); }
.mm-contact__item { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.mm-contact__ico { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--mm-accent); color: #111; }
.mm-contact__ico svg { width: 52%; height: 52%; }
.mm-contact__label { font-size: clamp(15px, 1.1vw, 18px); font-weight: 600; }
.mm-contact__value { margin-top: 2px; font-size: clamp(14px, 1.05vw, 17px); line-height: 1.5; color: var(--mm-muted); }
.mm-contact__value a { transition: color 0.3s; }
.mm-contact__value a:hover { color: var(--mm-accent); }
.mm-contact__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; border-radius: 2px clamp(40px, 5.5vw, 90px) 2px 2px; background: var(--mm-surface); }
.mm-root .mm-contact__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--mm-focal, 50% 40%); transition: transform 1.6s var(--mm-ease); }
.mm-js .mm-contact__media[data-reveal] img { transform: scale(1.08); }
.mm-js .mm-contact__media[data-reveal].is-in img { transform: none; }

/* contact form */
.mm-cform { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 90px); align-items: start; padding-block: var(--mm-section); background: var(--mm-surface); }
.mm-cform__head .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); max-width: 24em; }
.mm-form__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.mm-form__field { display: block; }
.mm-root .mm-form__field input,
.mm-root .mm-form__field textarea {
  display: block; width: 100%; margin: 0; padding: 1em 1.1em; border: 1px solid rgba(255, 255, 255, 0.28) !important; border-radius: 4px !important;
  background-color: transparent !important; color: #fff !important; box-shadow: none !important; outline: 0;
  font-family: var(--mm-font-body); font-size: 15px; line-height: 1.4; transition: border-color 0.3s;
}
.mm-root .mm-form__field textarea { min-height: 150px; resize: vertical; }
.mm-root .mm-form__field input::placeholder,
.mm-root .mm-form__field textarea::placeholder { color: rgba(255, 255, 255, 0.62); opacity: 1; }
.mm-root .mm-form__field input:focus,
.mm-root .mm-form__field textarea:focus { border-color: var(--mm-accent) !important; }
.mm-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mm-form__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 22px; }
.mm-form__msg { margin: 0; font-size: 14px; line-height: 1.4; color: var(--mm-accent); }
.mm-form__msg.is-error { color: #ff8f7d; }
.mm-form__note { margin-top: 16px; max-width: 40em; font-size: 13px; line-height: 1.5; color: var(--mm-grey); }
.mm-form.is-busy { opacity: 0.6; pointer-events: none; }

/* FAQ */
.mm-faq { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(28px, 5vw, 90px); align-items: start; padding-block: var(--mm-section); }
.mm-faq__head .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); }
.mm-faq__item { border-top: 1px solid var(--mm-line); }
.mm-faq__item:last-child { border-bottom: 1px solid var(--mm-line); }
.mm-faq__q { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: clamp(18px, 1.6vw, 24px) 0; list-style: none; cursor: pointer; font-size: clamp(15px, 1.2vw, 19px); font-weight: 500; line-height: 1.35; transition: color 0.3s; }
.mm-faq__q::-webkit-details-marker { display: none; }
.mm-faq__q:hover { color: var(--mm-accent); }
.mm-faq__plus { flex: none; display: grid; place-items: center; width: 24px; height: 24px; color: var(--mm-accent); transition: transform 0.4s var(--mm-ease); }
.mm-faq__plus svg { width: 100%; height: 100%; }
.mm-faq__item[open] .mm-faq__plus { transform: rotate(45deg); }
.mm-faq__a { max-width: 44em; padding: 0 clamp(36px, 3vw, 56px) clamp(20px, 1.8vw, 28px) 0; color: var(--mm-muted); font-size: clamp(14px, 1.05vw, 17px); line-height: 1.6; animation: mm-arch-in 0.5s var(--mm-ease) both; }
.mm-faq__a p { margin: 0 0 0.8em; }
.mm-faq__a p:last-child { margin-bottom: 0; }

/* map */
.mm-map { position: relative; isolation: isolate; min-height: clamp(460px, 44vw, 640px); background: #0a0a0a; }
.mm-map__canvas { position: absolute; inset: 0; z-index: 0; background: #0a0a0a; }
.mm-map__card { position: relative; z-index: 500; min-height: inherit; display: flex; align-items: center; pointer-events: none; background: linear-gradient(90deg, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.55) 38%, rgba(0, 0, 0, 0) 62%); }
.mm-map__cardin { pointer-events: auto; max-width: 26em; padding-block: clamp(40px, 4vw, 72px); }
.mm-map__cardin .mm-display { margin-bottom: clamp(14px, 1.4vw, 22px); font-size: clamp(30px, 3.2vw, 56px); }
.mm-map__addr { margin-bottom: clamp(20px, 2vw, 32px) !important; color: var(--mm-muted); font-size: clamp(14px, 1.1vw, 18px); line-height: 1.55; }
.mm-map .leaflet-container { width: 100%; height: 100%; background: #0a0a0a; font-family: var(--mm-font-body); }
.mm-map .leaflet-bar { border: 1px solid rgba(255, 255, 255, 0.45); border-radius: 6px; box-shadow: none; overflow: hidden; }
.mm-map .leaflet-bar a { width: 40px; height: 40px; line-height: 38px; background: rgba(0, 0, 0, 0.7); color: #fff; border-bottom: 1px solid rgba(255, 255, 255, 0.25); font-size: 22px; }
.mm-map .leaflet-bar a:last-child { border-bottom: 0; }
.mm-map .leaflet-bar a:hover { background: var(--mm-accent); color: #111; }
.mm-map .leaflet-control-attribution { background: rgba(0, 0, 0, 0.6); color: #9a9a9a; font-size: 10px; }
.mm-map .leaflet-control-attribution a { color: #c9c9c9; }
.mm-pin { background: none; border: 0; }
.mm-pin__dot { position: absolute; left: 0; top: 0; width: 40px; height: 40px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--mm-accent); box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5); }
.mm-pin__dot::after { content: ""; position: absolute; inset: 12px; border-radius: 50%; background: #111; }
.mm-pin__label { position: absolute; left: 50%; top: 56px; transform: translateX(-50%); font-size: 15px; font-weight: 500; color: #fff; text-shadow: 0 1px 6px #000; white-space: nowrap; }

/* text pages (AGB, Impressum) */
.mm-legal { padding-top: clamp(150px, 13vw, 230px); padding-bottom: var(--mm-section); }
.mm-legal .mm-legal__title { max-width: none; margin-bottom: clamp(32px, 3.6vw, 60px) !important; font-size: clamp(26px, 3.4vw, 58px); line-height: 1; overflow-wrap: break-word; hyphens: auto; } /* .mm-legal prefix: beats the Elementor kit's h1 size */
.mm-legal__text p { margin-bottom: 0.65em !important; }
.mm-legal__text { max-width: 58em; }
.mm-prose ol, .mm-prose ul { margin: 0 0 1.1em; padding-left: 1.5em; }
.mm-prose li { margin-bottom: 0.7em; }
.mm-prose li > ol, .mm-prose li > ul { margin-top: 0.7em; }
.mm-prose h4 { font-size: clamp(16px, 1.3vw, 21px); }
.mm-prose h5 { font-size: clamp(14px, 1.05vw, 17px); letter-spacing: 0.06em; text-transform: uppercase; }
.mm-prose [id] { scroll-margin-top: 110px; }

/* news article */
.mm-nhero.mm-hero--page { min-height: max(520px, 72svh); }
.mm-hero--page.mm-nhero .mm-nhero__title { max-width: 18em; font-size: clamp(30px, 4.2vw, 74px); line-height: 1.04; text-transform: none; letter-spacing: -0.02em; }
.mm-nhero__meta .mm-rule { width: 36px; height: 1px; background: currentColor; opacity: 0.7; }
.mm-nbody { padding-block: var(--mm-section); }
.mm-nbody__text { max-width: 52rem; margin-inline: auto; }
.mm-nbody__back { max-width: 52rem; margin: clamp(36px, 3.4vw, 60px) auto 0; }
/* article photos may carry text (e.g. report covers): keep the title readable */
.mm-nhero .mm-hero__bg::after { background: linear-gradient(180deg, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0.5) 40%, rgba(0,0,0,0.78) 100%); }

@media (max-width: 1100px) {
  .mm-arch__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-contact, .mm-cform, .mm-faq { grid-template-columns: 1fr; }
  .mm-contact__media { order: -1; }
}
@media (max-width: 767px) {
  .mm-arch__grid { grid-template-columns: 1fr; }
  .mm-form__row { grid-template-columns: 1fr; }
  .mm-contact__items { gap: 24px 32px; }
  .mm-map { min-height: 0; }
  .mm-map__canvas { position: relative; inset: auto; height: 360px; }
  .mm-map__card { min-height: 0; background: var(--mm-bg); pointer-events: auto; }
  .mm-map__cardin { max-width: none; }
  .mm-legal { padding-top: 130px; }
}
@media (prefers-reduced-motion: reduce) {
  .mm-arch__item.is-new, .mm-faq__a { animation: none; }
}
/* dark map: OpenStreetMap tiles inverted */
.mm-map .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(0.92) contrast(0.88) saturate(0.55); }
/* ==========================================================================
   CLIENT FEEDBACK 3 – Agentur / Angebote closer to the prototype
   ========================================================================== */
/* "Unsere Haltung": heading + text, then image panels (Creation / Craft) */
.mm-pillars { padding-top: var(--mm-section); border-top: 1px solid var(--mm-line); }
.mm-pillars__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 90px); align-items: center; margin-bottom: clamp(36px, 4vw, 64px); }
.mm-pillars__head .mm-lead { max-width: 30em; }
.mm-pillars__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--mm-line); }
.mm-pillar { position: relative; display: flex; align-items: center; min-height: clamp(380px, 34vw, 600px); overflow: hidden; isolation: isolate; color: #fff; }
.mm-pillar__media { position: absolute; inset: 0; z-index: -1; }
.mm-root .mm-pillar__media img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.6s var(--mm-ease); }
.mm-pillar:hover .mm-pillar__media img { transform: scale(1.04); }
.mm-pillar__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.32) 36%, rgba(0,0,0,0) 66%); }
.mm-pillar__body { max-width: 32em; padding: clamp(32px, 4vw, 72px) clamp(24px, 3.4vw, 64px); }
.mm-pillar:first-child .mm-pillar__body { padding-left: var(--mm-pad); }
.mm-pillar__num { display: flex; align-items: center; gap: 16px; margin-bottom: clamp(18px, 2vw, 30px); font-size: 14px; letter-spacing: 0.08em; }
.mm-pillar__num .mm-rule { width: 64px; height: 1px; background: currentColor; opacity: 0.8; }
.mm-pillar__title { margin: 0 0 14px; font-family: var(--mm-font-display); font-size: clamp(28px, 2.9vw, 52px); font-weight: 700; line-height: 1; text-transform: uppercase; }
.mm-pillar__text { font-size: clamp(15px, 1.15vw, 19px); line-height: 1.5; color: rgba(255,255,255,0.88); }

/* team: two columns like the current website, photos uncropped, e-mail on hover */
.mm-team__grid { grid-template-columns: repeat(2, minmax(0, min(32vw, 560px))); justify-content: start; align-items: start; column-gap: clamp(28px, 11vw, 180px); }
.mm-person:nth-child(even) { margin-top: 0; }
.mm-person__photo { display: block; position: relative; overflow: hidden; aspect-ratio: auto; background: #111; }
.mm-person--tall .mm-person__photo { aspect-ratio: auto; }
.mm-root .mm-person__photo img { position: static; display: block; width: 100%; height: auto; max-width: 100%; object-fit: initial; }
.mm-person__mail { position: absolute; left: 0; right: 0; bottom: 0; display: flex; align-items: center; gap: 14px; margin: 0; padding: clamp(16px, 1.6vw, 24px); background: linear-gradient(0deg, rgba(0,0,0,0.85), rgba(0,0,0,0)); color: #fff; font-size: 15px; font-weight: 600; line-height: 1.3; opacity: 0; transform: translateY(12px); transition: opacity 0.4s var(--mm-ease), transform 0.4s var(--mm-ease); }
.mm-person__mail small { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: rgba(255,255,255,0.8); }
.mm-person__mail:hover { color: #fff; }
.mm-person__photo:hover .mm-person__mail,
.mm-person__photo:focus-visible .mm-person__mail { opacity: 1; transform: none; }
@media (hover: none) {
  .mm-person__mail { opacity: 1; transform: none; justify-content: flex-end; background: none; padding: 14px; }
  .mm-person__mail > span:last-child { display: none; }
}

/* image band that fades into black + two buttons ("Karriere") */
.mm-banner { position: relative; display: flex; align-items: center; min-height: clamp(440px, 40vw, 660px); overflow: hidden; isolation: isolate; background: #000; border-top: 1px solid var(--mm-line); }
.mm-banner__media { position: absolute; top: -70px; bottom: -70px; right: 0; width: 70%; z-index: -1; }
.mm-banner--left .mm-banner__media { right: auto; left: 0; }
.mm-root .mm-banner__media img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.mm-banner__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,0.7) 20%, rgba(0,0,0,0.1) 52%, rgba(0,0,0,0) 80%, rgba(0,0,0,0.65) 100%), linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 78%, rgba(0,0,0,0.6) 100%); }
.mm-banner--left .mm-banner__media::after { background: linear-gradient(270deg, #000 0%, rgba(0,0,0,0.7) 20%, rgba(0,0,0,0.1) 52%, rgba(0,0,0,0) 80%, rgba(0,0,0,0.65) 100%), linear-gradient(180deg, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 78%, rgba(0,0,0,0.6) 100%); }
.mm-banner__body { width: 100%; padding-block: var(--mm-section); }
.mm-banner__inner { max-width: 32em; }
.mm-banner--left .mm-banner__inner { margin-left: auto; }
.mm-banner .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); }
.mm-banner__btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: clamp(24px, 2.4vw, 40px); }
.mm-root .mm-btn--ghost { background: transparent; color: #fff !important; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.75); }
.mm-root .mm-btn--ghost:hover { background: #fff; color: #111 !important; box-shadow: none; }

/* video teaser band ("So arbeiten wir") */
.mm-root .mm-vteaser__box { position: relative; display: flex; align-items: center; width: 100%; min-height: clamp(300px, 28vw, 470px); margin: 0; padding: 0; border: 0; border-radius: 0; background: #000; color: #fff; font: inherit; text-align: left; overflow: hidden; isolation: isolate; cursor: pointer; }
.mm-root div.mm-vteaser__box { cursor: default; }
.mm-root .mm-vteaser__box:hover, .mm-root .mm-vteaser__box:focus { background: #000; color: #fff; }
.mm-vteaser__media { position: absolute; left: 0; right: 0; top: -70px; bottom: -70px; z-index: -1; }
.mm-root .mm-vteaser__media img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.6s var(--mm-ease); }
.mm-vteaser__box:hover .mm-vteaser__media img { transform: scale(1.03); }
.mm-vteaser__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.3) 45%, rgba(0,0,0,0.1) 100%); }
.mm-vteaser__body { display: flex; align-items: center; gap: clamp(18px, 2vw, 30px); }
.mm-vteaser__play { flex: none; display: grid; place-items: center; width: clamp(64px, 5.4vw, 92px); height: clamp(64px, 5.4vw, 92px); border-radius: 50%; background: var(--mm-accent); color: #111; transition: transform 0.4s var(--mm-ease), box-shadow 0.4s; }
.mm-vteaser__play svg { width: 38%; height: 38%; margin-left: 6%; }
.mm-vteaser__box:hover .mm-vteaser__play { transform: scale(1.08); box-shadow: 0 0 0 12px rgba(255,205,62,0.18); }
.mm-vteaser__title { display: block; font-size: clamp(20px, 1.8vw, 30px); font-weight: 600; line-height: 1.2; }
.mm-vteaser__text { display: block; margin-top: 4px; font-size: clamp(14px, 1.05vw, 17px); color: rgba(255,255,255,0.85); }

/* service area cards with a photo on top (portrait) */
.mm-fcard { overflow: hidden; }
.mm-fcard--photo { min-height: clamp(470px, 36vw, 600px); }
.mm-fcard__media { position: relative; margin: calc(-1 * clamp(24px, 2.2vw, 38px)) calc(-1 * clamp(24px, 2.2vw, 38px)) 0; aspect-ratio: 1 / 1; overflow: hidden; }
.mm-root .mm-fcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.4s var(--mm-ease); }
.mm-fcard--photo:hover .mm-fcard__media img { transform: scale(1.05); }
.mm-fcard__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,18,18,0) 40%, var(--mm-surface) 100%); }
.mm-fcard--photo .mm-fcard__num { position: relative; z-index: 1; margin-top: -40px; color: #fff; }
.mm-fcard--photo .mm-fcard__main { margin-top: 22px; }

/* offer cards with a replaceable background photo */
.mm-offer--bg { position: relative; isolation: isolate; }
.mm-offer__bg { position: absolute; left: 0; right: 0; top: 0; height: min(66%, 380px); z-index: -1; overflow: hidden; }
.mm-root .mm-offer__bg img { width: 100%; height: 100%; max-width: none; object-fit: cover; transition: transform 1.4s var(--mm-ease); }
.mm-offer--bg:hover .mm-offer__bg img { transform: scale(1.05); }
.mm-offer__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(18,18,18,0.55) 0%, rgba(18,18,18,0.2) 38%, rgba(18,18,18,0.35) 65%, var(--mm-surface) 100%); }
.mm-offer--bg .mm-offer__text { margin-top: clamp(80px, 8vw, 150px); }
.mm-offer--bg.mm-offer--icon { min-height: 0; }

/* process steps as a horizontal timeline */
.mm-step__idx { display: none; }
.mm-steps--h .mm-steps__grid { grid-template-columns: 1fr; gap: clamp(36px, 4vw, 64px); }
.mm-steps--h .mm-steps__list { grid-template-columns: repeat(var(--steps, 4), minmax(0, 1fr)); gap: clamp(20px, 2.4vw, 40px); }
.mm-steps--h .mm-step { grid-template-columns: 1fr; gap: 0; padding-top: 46px; }
.mm-steps--h .mm-step__num { position: absolute; top: 0; left: 0; width: 22px; height: 22px; border: 2px solid var(--mm-accent); background: transparent; color: transparent; font-size: 0; }
.mm-steps--h .mm-step::before { content: ""; position: absolute; top: 10px; left: 32px; right: calc(-1 * clamp(20px, 2.4vw, 40px) + 8px); bottom: auto; width: auto; height: 1px; background: rgba(255,255,255,0.7); opacity: 1; }
.mm-steps--h .mm-step:last-child::before { right: 0; }
.mm-steps--h .mm-step__idx { display: block; margin-bottom: 6px; font-size: clamp(18px, 1.6vw, 26px); font-weight: 300; color: var(--mm-muted); }
.mm-steps--h .mm-step__title { margin-top: 0; }
.mm-steps--h .mm-step__text { font-size: clamp(14px, 1.05vw, 16px); }

@media (max-width: 1100px) {
  .mm-pillars__head { grid-template-columns: 1fr; }
  .mm-steps--h .mm-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 40px; }
  .mm-steps--h .mm-step::before { display: none; }
}
@media (max-width: 767px) {
  .mm-pillars__grid { grid-template-columns: 1fr; }
  .mm-pillar { min-height: 380px; }
  .mm-pillar .mm-pillar__body { padding-left: var(--mm-pad); }
  .mm-team__grid { grid-template-columns: 1fr; }
  .mm-banner { display: block; min-height: 0; }
  .mm-banner__media { position: relative; top: auto; bottom: auto; width: 100%; height: 300px; }
  .mm-banner__media::after, .mm-banner--left .mm-banner__media::after { background: linear-gradient(0deg, #000 0%, rgba(0,0,0,0) 55%); }
  .mm-banner__body { padding-top: 0; }
  .mm-vteaser__body { padding-block: 40px; }
  .mm-steps--h .mm-steps__list { grid-template-columns: 1fr; }
  .mm-offer--bg .mm-offer__text { margin-top: 90px; }
  /* map on phones: the Leaflet container class sets height:100% – give the canvas a real height */
  .mm-map .mm-map__canvas.leaflet-container,
  .mm-map .mm-map__canvas { position: relative; height: 360px; }
}
/* big titles that must beat the kit's global H3 size (.elementor-kit-N h3) */
.mm-pillar .mm-pillar__title { font-family: var(--mm-font-display); font-size: clamp(28px, 2.9vw, 52px); font-weight: 700; line-height: 1; }
.mm-person .mm-person__name { font-size: clamp(24px, 2.3vw, 40px); font-weight: 700; line-height: 1.08; }
/* steps with an image on the left (service pages) */
.mm-steps--img .mm-steps__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
.mm-steps__media { position: relative; aspect-ratio: 5 / 4; overflow: hidden; border-radius: 2px clamp(40px, 5.5vw, 90px) 2px 2px; background: var(--mm-surface); }
.mm-root .mm-steps__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--mm-focal, 50% 40%); }
.mm-steps--img .mm-steps__head { margin-bottom: clamp(28px, 3vw, 48px); }

/* compact offer rows ("Weitere Angebote") */
.mm-offers--compact .mm-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mm-offer--compact { flex-direction: row; align-items: center; gap: clamp(18px, 2vw, 32px); padding: clamp(22px, 2.2vw, 36px) clamp(22px, 2.4vw, 40px); border-radius: 2px clamp(28px, 3vw, 50px) 2px 2px; transition: background-color 0.4s, transform 0.5s var(--mm-ease); }
.mm-offer--compact:hover { background: #1b1b1b; transform: translateY(-4px); }
.mm-root .mm-offer--compact .mm-offer__icon { flex: none; width: 56px; height: 56px; margin: 0; }
.mm-offer__cbody { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.mm-offer--compact .mm-offer__title { font-size: clamp(18px, 1.5vw, 24px); text-transform: none; font-weight: 600; }
.mm-offer--compact .mm-offer__text { font-size: clamp(14px, 1vw, 16px); }
@media (max-width: 1100px) {
  .mm-steps--img .mm-steps__grid { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .mm-offers--compact .mm-offers__grid { grid-template-columns: 1fr; }
  .mm-offer--compact .mm-circle { display: none; }
}
/* "Deine Vorteile": heading left like the prototype; long check lists in two columns on phones */
.mm-fcards--plain .mm-stackhead { text-align: left; }
@media (max-width: 767px) {
  .mm-icta .mm-checks--grid[style*="--cols:3"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
  .mm-icta .mm-checks--grid[style*="--cols:3"] li { font-size: 14px; }
}
/* team photo box carries the real ratio (set inline) – image fills it exactly, no crop, stable height on iOS */
.mm-person__photo--ratio { height: 0; padding-top: var(--mm-ratio, 66.667%); }
.mm-root .mm-person__photo--ratio img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
/* iOS/Safari (WebKit): an Elementor flex container sizes a MovieMaint widget shorter than its content, so the next
   section overlapped it (last team photo on mobile, client feedback 2026-10-26). Our one-widget containers don't need flex. */
.e-con:has(> .elementor-widget[class*="elementor-widget-mm-"]:only-child) { display: block; }
/* Moviepass calculator */
.mm-calc { display: grid; gap: clamp(32px, 5vw, 90px); align-items: center; padding-block: var(--mm-section); border-top: 1px solid var(--mm-line); }
.mm-calc--img { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-right: var(--mm-pad); }
.mm-calc__media { position: relative; align-self: stretch; min-height: clamp(380px, 38vw, 640px); overflow: hidden; border-radius: 0 clamp(40px, 5.5vw, 90px) 0 0; background: var(--mm-surface); }
.mm-root .mm-calc__media img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: var(--mm-focal, 50% 40%); }
.mm-calc__body .mm-lead { margin-top: clamp(16px, 1.6vw, 26px); }
.mm-calc__tool { margin: clamp(26px, 2.6vw, 42px) 0; }
.mm-calc__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 14px; }
.mm-calc__label { font-size: 15px; font-weight: 600; }
.mm-calc__value { font-size: clamp(20px, 1.8vw, 28px); font-weight: 700; color: var(--mm-accent); }
.mm-root .mm-calc__range { -webkit-appearance: none; appearance: none; display: block; width: 100%; height: 8px; margin: 0; padding: 0; border: 0; border-radius: 999px; outline: 0; cursor: pointer; background: linear-gradient(90deg, var(--mm-accent) 0 var(--p, 30%), rgba(255,255,255,0.18) var(--p, 30%) 100%); }
.mm-calc__range::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 28px; height: 28px; border-radius: 50%; background: var(--mm-accent); border: 4px solid #111; box-shadow: 0 0 0 2px var(--mm-accent); cursor: grab; }
.mm-calc__range::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--mm-accent); border: 4px solid #111; box-shadow: 0 0 0 2px var(--mm-accent); cursor: grab; }
.mm-calc__range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 2px var(--mm-accent), 0 0 0 8px rgba(255,205,62,0.25); }
.mm-calc__scale { display: flex; justify-content: space-between; margin-top: 10px; font-size: 13px; color: var(--mm-muted); }
.mm-calc__outs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: clamp(22px, 2.2vw, 34px); border: 1px solid var(--mm-line); border-radius: 4px; }
.mm-calc__out { display: flex; flex-direction: column; gap: 6px; padding: 18px 20px; }
.mm-calc__out + .mm-calc__out { border-left: 1px solid var(--mm-line); }
.mm-calc__out span { font-size: 13px; color: var(--mm-muted); }
.mm-calc__out b { font-size: clamp(17px, 1.4vw, 22px); font-weight: 700; color: #fff; white-space: nowrap; }
.mm-calc__body .mm-checks--grid { margin-bottom: clamp(24px, 2.4vw, 36px); }
.mm-calc__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.mm-calc__note { max-width: 16em; font-size: 13px; line-height: 1.45; color: var(--mm-muted); }
@media (max-width: 1100px) {
  .mm-calc--img { grid-template-columns: 1fr; padding-right: 0; }
  .mm-calc--img .mm-calc__body { padding-inline: var(--mm-pad); }
  .mm-calc__media { min-height: 320px; margin-right: var(--mm-pad); }
}
@media (max-width: 767px) {
  .mm-calc__outs { grid-template-columns: 1fr; }
  .mm-calc__out + .mm-calc__out { border-left: 0; border-top: 1px solid var(--mm-line); }
  .mm-calc__out { flex-direction: row; justify-content: space-between; align-items: baseline; padding: 14px 16px; }
}
/* category pages: the four goal icons in one row like the prototype */
.mm-intro .mm-icons { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 20px; }
@media (max-width: 767px) { .mm-intro .mm-icons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* long German words: break at &shy; (and as a last resort anywhere) instead of being cut off on phones */
.mm-root .mm-hero__heading, .mm-root .mm-display, .mm-vteaser__title, .mm-fcard__title, .mm-offer__title, .mm-step__title, .mm-pillar__title { hyphens: manual; overflow-wrap: break-word; }

/* CookieYes banner: space between the buttons */
.cky-consent-container .cky-notice-btn-wrapper { display: flex; flex-wrap: wrap; gap: 10px; }
.cky-consent-container .cky-notice-btn-wrapper .cky-btn { margin: 0 !important; flex: 1 1 auto; }
/* video band: the text block must shrink to the screen width so long titles wrap (and use the &shy; break points) */
.mm-vteaser__body { flex: 1 1 auto; min-width: 0; width: 100%; }
.mm-vteaser__body > span:last-child { flex: 1 1 auto; min-width: 0; }.mm-root .mm-vteaser__box { white-space: normal; } /* the theme sets nowrap on buttons */
/* CookieYes "revisit consent" button in brand yellow with a dark icon */
.cky-btn-revisit-wrapper { background-color: #FFCD3E !important; }
.cky-btn-revisit-wrapper .cky-btn-revisit img { filter: brightness(0) saturate(100%); }
/* home "Filmwelten" on tablets: ratio + min-height forced a 320px min width -> 9px overflow at 768px */
@media (max-width: 1100px) {
  .mm-worlds__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-worlds__grid > .mm-world { aspect-ratio: auto; min-width: 0; }
}
@media (max-width: 767px) { .mm-worlds__grid { grid-template-columns: minmax(0, 1fr); } }
/* no sideways wobble from third-party elements (e.g. the hidden CookieYes preference panel); clip keeps fixed/sticky working */
html, body { overflow-x: clip; }
/* page change: smooth crossfade between pages (cross-document View Transitions: Chrome/Edge 126+, Safari 18.2+);
   other browsers just navigate normally. Replaces the earlier fade-through-black (client feedback 2026-10-27). */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: 0.45s; animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1); }
@media (prefers-reduced-motion: reduce) { @view-transition { navigation: none; } }
/* hero poster: soft fade-in when it finishes loading (no pop-in after the page crossfade) */
.mm-root .mm-hero__bg img { transition: opacity 0.6s var(--mm-ease); }
.mm-root .mm-hero__bg img.mm-img-wait { opacity: 0; }