/*
 * Shared NEXT STEPS surface.
 * Designed to work as a full standalone page or as an inline embedded section.
 */

body.mm-next-page {
  margin: 0;
  background: #0f1c2e;
  color: #0f1c2e;
  font-family: var(--brand-body-font), Outfit, Inter, system-ui, sans-serif;
}

.mm-next {
  --mm-next-ink: #0f1c2e;
  --mm-next-pop: #f0a23a;
  --mm-next-pop-deep: #c76f1e;
  --mm-next-paper: #fff7e8;
  --mm-next-muted: rgba(15, 28, 46, 0.72);
  display: grid;
  grid-template-columns: minmax(0, 0.84fr) minmax(300px, 1.16fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: stretch;
  padding: clamp(28px, 6vw, 84px);
  box-sizing: border-box;
  background:
    linear-gradient(135deg, var(--mm-next-pop), #ffd77a 62%, var(--mm-next-pop-deep));
  color: var(--mm-next-ink);
}

.mm-next--standalone {
  min-height: 100vh;
}

.mm-next--embedded {
  min-height: min(760px, calc(100vh - 56px));
  border-top: 1px solid rgba(15, 28, 46, 0.18);
}

.mm-next__copy {
  display: grid;
  align-content: center;
  gap: clamp(14px, 2.2vw, 24px);
  min-width: 0;
}

.mm-next__eyebrow {
  color: rgba(15, 28, 46, 0.86);
  font-family: "Space Mono", "SFMono-Regular", monospace;
  font-size: 0.82rem;
  font-weight: 950;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.mm-next h1,
.mm-next h2 {
  max-width: 9ch;
  margin: 0;
  color: var(--mm-next-ink);
  font-family: var(--brand-display-font), Fraunces, Georgia, serif;
  font-size: clamp(4rem, 14vw, 11rem);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 0.78;
  text-transform: uppercase;
}

.mm-next__lead {
  max-width: 12ch;
  margin: 0;
  color: var(--mm-next-ink);
  font-family: var(--brand-display-font), Fraunces, Georgia, serif;
  font-size: clamp(2.1rem, 5vw, 5.4rem);
  font-weight: 800;
  letter-spacing: 0;
  line-height: 0.92;
}

.mm-next__body {
  max-width: 44rem;
  margin: 0;
  color: var(--mm-next-muted);
  font-size: clamp(1.04rem, 1.4vw, 1.24rem);
  font-weight: 700;
  line-height: 1.48;
}

.mm-next__booking {
  position: relative;
  display: grid;
  min-height: clamp(360px, 52vh, 620px);
  align-content: space-between;
  gap: 28px;
  overflow: hidden;
  border: 1px solid rgba(255, 247, 232, 0.18);
  border-radius: 8px;
  padding: clamp(22px, 4vw, 44px);
  background:
    linear-gradient(145deg, rgba(255, 247, 232, 0.1), transparent 36%),
    var(--mm-next-ink);
  color: var(--mm-next-paper);
  text-decoration: none;
  box-shadow: 0 28px 80px rgba(15, 28, 46, 0.34);
  isolation: isolate;
}

.mm-next__booking::after {
  content: "";
  position: absolute;
  right: clamp(18px, 3vw, 40px);
  bottom: clamp(18px, 3vw, 40px);
  width: min(44%, 280px);
  aspect-ratio: 1;
  border: 1px solid rgba(240, 162, 58, 0.54);
  transform: rotate(-8deg);
  z-index: -1;
}

.mm-next__booking-kicker {
  width: max-content;
  max-width: 100%;
  border: 1px solid rgba(240, 162, 58, 0.42);
  border-radius: 999px;
  padding: 9px 12px;
  color: #ffd77a;
  font-family: "Space Mono", "SFMono-Regular", monospace;
  font-size: 0.76rem;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.mm-next__booking-title {
  max-width: 13ch;
  color: var(--mm-next-paper);
  font-family: var(--brand-display-font), Fraunces, Georgia, serif;
  font-size: clamp(2.6rem, 6vw, 6.2rem);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 0.86;
}

.mm-next__booking-copy {
  max-width: 34rem;
  color: rgba(255, 247, 232, 0.78);
  font-size: clamp(1rem, 1.3vw, 1.18rem);
  font-weight: 700;
  line-height: 1.5;
}

.mm-next__booking-action {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 13px 18px;
  background: var(--mm-next-pop);
  color: var(--mm-next-ink);
  font-size: 0.86rem;
  font-weight: 950;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.mm-next__booking:hover,
.mm-next__booking:focus-visible {
  transform: translateY(-2px);
  border-color: rgba(255, 247, 232, 0.42);
}

.mm-next__booking:focus-visible {
  outline: 3px solid var(--mm-next-paper);
  outline-offset: 4px;
}

.mm-next__booking,
.mm-next__booking-action {
  transition: transform 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}

.mm-next__booking:hover .mm-next__booking-action,
.mm-next__booking:focus-visible .mm-next__booking-action {
  background: #ffd77a;
}

@media (max-width: 920px) {
  .mm-next {
    grid-template-columns: 1fr;
  }

  .mm-next--embedded {
    min-height: 0;
  }

  .mm-next h1,
  .mm-next h2 {
    max-width: 100%;
    font-size: clamp(3.5rem, 20vw, 7rem);
  }

  .mm-next__lead,
  .mm-next__booking-title {
    max-width: 14ch;
  }

  .mm-next__booking {
    min-height: 420px;
  }
}

@media (max-width: 560px) {
  .mm-next {
    padding: 24px 16px;
  }

  .mm-next__booking {
    min-height: 360px;
    padding: 28px 22px;
    gap: 22px;
  }

  .mm-next__booking-kicker {
    padding: 8px 14px;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
  }
}
