/*
 * Native Gutenberg homepage compatibility layer.
 * This stylesheet is loaded only by the safe Gutenberg test template.
 * It maps core WordPress blocks onto the existing Marcel homepage design
 * without changing the production front-page.php output.
 */

#mh-site .mh-homepage--gutenberg > .wp-block-group,
#mh-site .mh-homepage--gutenberg .wp-block-group,
#mh-site .mh-homepage--gutenberg .wp-block-columns,
#mh-site .mh-homepage--gutenberg .wp-block-column,
#mh-site .mh-homepage--gutenberg .wp-block-buttons,
#mh-site .mh-homepage--gutenberg .wp-block-image,
#mh-site .mh-homepage--gutenberg .wp-block-embed,
#mh-site .mh-homepage--gutenberg .wp-block-heading,
#mh-site .mh-homepage--gutenberg p {
  box-sizing: border-box;
}

#mh-site .mh-homepage--gutenberg > .wp-block-group {
  margin-block: 0;
}

#mh-site .mh-homepage--gutenberg .mh-container.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-container.wp-block-columns {
  width: min(calc(100% - 48px), var(--mh-max));
  max-width: none;
  margin-inline: auto;
}

/* Gutenberg adds default block gaps; the original layout owns spacing. */
#mh-site .mh-homepage--gutenberg .is-layout-flow > * + *,
#mh-site .mh-homepage--gutenberg .is-layout-constrained > * + * {
  margin-block-start: 0;
}

#mh-site .mh-homepage--gutenberg .wp-block-buttons {
  margin: 0;
}

#mh-site .mh-homepage--gutenberg .wp-block-button {
  margin: 0;
}

#mh-site .mh-homepage--gutenberg .wp-block-button__link {
  text-decoration: none;
}

/* Hero */
#mh-site .mh-homepage--gutenberg .mh-hero-grid.wp-block-group {
  display: grid;
}
#mh-site .mh-homepage--gutenberg .mh-hero-actions.wp-block-buttons {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-hero-actions .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 22px;
  border: 2px solid var(--mh-ink);
  border-radius: 999px;
  color: var(--mh-white);
  background: var(--mh-pink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  line-height: 1.1;
}
#mh-site .mh-homepage--gutenberg .mh-hero-actions .mh-button-outline .wp-block-button__link {
  color: var(--mh-ink);
  background: transparent;
}
#mh-site .mh-homepage--gutenberg .mh-photo-main.wp-block-group {
  position: relative;
}
#mh-site .mh-homepage--gutenberg .mh-photo-main .wp-block-image,
#mh-site .mh-homepage--gutenberg .mh-photo-main .wp-block-image img {
  width: 100%;
  height: 100%;
}
#mh-site .mh-homepage--gutenberg .mh-photo-main .wp-block-image {
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-photo-main .wp-block-image img {
  display: block;
  object-fit: cover;
}
#mh-site .mh-homepage--gutenberg .mh-duration-stamp .wp-block-heading,
#mh-site .mh-homepage--gutenberg .mh-duration-stamp p,
#mh-site .mh-homepage--gutenberg .mh-photo-caption p { margin: 0; }

/* Stats + marquee */
#mh-site .mh-homepage--gutenberg .mh-marquee-track.wp-block-group {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-number .wp-block-heading {
  display: block;
  margin: 0;
  color: var(--mh-white);
  font-family: var(--mh-display);
  font-size: clamp(2.9rem, 5vw, 4.7rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.06em;
}
#mh-site .mh-homepage--gutenberg .mh-number p {
  display: block;
  max-width: 220px;
  margin: 14px 0 0;
  color: rgba(255,255,255,.72);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#mh-site .mh-homepage--gutenberg .mh-marquee-track > p {
  flex: 0 0 auto;
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}
#mh-site .mh-homepage--gutenberg .mh-marquee-track > p::after {
  margin-inline: 26px;
  content: "✦";
  font-family: var(--mh-serif);
  font-size: 1.2em;
}

/* Identity/video + images */
#mh-site .mh-homepage--gutenberg .mh-identity-grid.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-emotion-strip.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-occasion-grid.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-reviews-grid.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-process.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-faq-grid.wp-block-group {
  display: grid;
}
#mh-site .mh-homepage--gutenberg .mh-identity-media .wp-block-embed,
#mh-site .mh-homepage--gutenberg .mh-identity-media .wp-block-embed__wrapper,
#mh-site .mh-homepage--gutenberg .mh-identity-media iframe {
  width: 100%;
  height: 100%;
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-identity-media iframe {
  display: block;
  min-height: 620px;
  border: 0;
}
#mh-site .mh-homepage--gutenberg .mh-emotion-shot .wp-block-image,
#mh-site .mh-homepage--gutenberg .mh-emotion-shot .wp-block-image img,
#mh-site .mh-homepage--gutenberg .mh-occasion-media .wp-block-image,
#mh-site .mh-homepage--gutenberg .mh-occasion-media .wp-block-image img,
#mh-site .mh-homepage--gutenberg .mh-show-cta-image .wp-block-image,
#mh-site .mh-homepage--gutenberg .mh-show-cta-image .wp-block-image img {
  width: 100%;
  height: 100%;
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-emotion-shot .wp-block-image img,
#mh-site .mh-homepage--gutenberg .mh-occasion-media .wp-block-image img,
#mh-site .mh-homepage--gutenberg .mh-show-cta-image .wp-block-image img {
  display: block;
  object-fit: cover;
}

/* Heading rows */
#mh-site .mh-homepage--gutenberg .mh-heading-row.wp-block-group {
  display: flex;
}

/* Occasion cards */
#mh-site .mh-homepage--gutenberg .mh-occasion-card.wp-block-group {
  overflow: hidden;
}
#mh-site .mh-homepage--gutenberg .mh-occasion-body.wp-block-group {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-occasion-label { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-occasion-card .wp-block-heading { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-occasion-card .mh-occasion-copy { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-occasion-cta-wrap { margin-top: auto; }
#mh-site .mh-homepage--gutenberg .mh-occasion-cta-wrap .wp-block-button__link {
  padding: 0;
  color: inherit;
  background: transparent;
  font-weight: 800;
}

/* Inline CTAs */
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta.wp-block-group {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta p { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta .wp-block-button__link,
#mh-site .mh-homepage--gutenberg .mh-process-inline-cta .wp-block-button__link,
#mh-site .mh-homepage--gutenberg .mh-home-faq-cta .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 22px;
  border: 2px solid var(--mh-ink);
  border-radius: 999px;
  color: var(--mh-white);
  background: var(--mh-pink);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
}
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta--dark .wp-block-button__link {
  border-color: var(--mh-white);
  color: var(--mh-ink);
  background: var(--mh-white);
}

/* Reviews */
#mh-site .mh-homepage--gutenberg .mh-reviews-summary.wp-block-group {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-reviews-summary .wp-block-heading,
#mh-site .mh-homepage--gutenberg .mh-reviews-summary p { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review.wp-block-group {
  display: flex;
  flex-direction: column;
}
#mh-site .mh-homepage--gutenberg .mh-review-top.wp-block-group {
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-review-avatar { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review-person .wp-block-heading,
#mh-site .mh-homepage--gutenberg .mh-review-person p,
#mh-site .mh-homepage--gutenberg .mh-review-stars,
#mh-site .mh-homepage--gutenberg .mh-review-quote,
#mh-site .mh-homepage--gutenberg .mh-review-footer { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review-quote {
  font-family: var(--mh-sans);
  font-size: clamp(1rem,1.45vw,1.35rem);
  font-weight: 600;
  line-height: 1.68;
}
#mh-site .mh-homepage--gutenberg .mh-review-footer { margin-top: auto; }

/* Large show CTA */
#mh-site .mh-homepage--gutenberg .mh-show-cta-section.wp-block-group {
  position: relative;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-image.wp-block-group {
  position: absolute;
  inset: 0;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-inner.wp-block-group {
  position: relative;
  z-index: 2;
  display: flex;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel .wp-block-heading,
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel p { margin-inline: 0; }
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 14px 22px;
  border: 2px solid var(--mh-white);
  border-radius: 999px;
  color: var(--mh-ink);
  background: var(--mh-white);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
}

/* Process */
#mh-site .mh-homepage--gutenberg .mh-step .mh-step-num,
#mh-site .mh-homepage--gutenberg .mh-step .wp-block-heading,
#mh-site .mh-homepage--gutenberg .mh-step p { margin: 0; }

/* Native Details blocks styled like the original FAQ. */
#mh-site .mh-homepage--gutenberg .mh-faq-list.wp-block-group {
  display: block;
  border-top: 2px solid rgba(17,16,20,.16);
}
#mh-site .mh-homepage--gutenberg details.mh-faq-item {
  margin: 0;
  padding: 0;
  border-bottom: 2px solid rgba(17,16,20,.16);
}
#mh-site .mh-homepage--gutenberg details.mh-faq-item > summary {
  position: relative;
  display: flex;
  min-height: 94px;
  align-items: center;
  justify-content: space-between;
  padding: 22px 64px 22px 0;
  color: var(--mh-ink);
  font-size: 1rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}
#mh-site .mh-homepage--gutenberg details.mh-faq-item > summary::-webkit-details-marker { display: none; }
#mh-site .mh-homepage--gutenberg details.mh-faq-item > summary::after {
  position: absolute;
  top: 50%;
  right: 0;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border: 2px solid rgba(17,16,20,.16);
  border-radius: 50%;
  color: var(--mh-pink);
  content: "+";
  font-size: 1.4rem;
  font-weight: 500;
  transform: translateY(-50%);
}
#mh-site .mh-homepage--gutenberg details.mh-faq-item[open] > summary::after { content: "−"; }
#mh-site .mh-homepage--gutenberg details.mh-faq-item > p {
  margin: 0;
  padding: 0 64px 28px 0;
  color: rgba(17,16,20,.7);
  font-size: .9rem;
}

@media (max-width: 980px) {
  #mh-site .mh-homepage--gutenberg .mh-heading-row.wp-block-group,
  #mh-site .mh-homepage--gutenberg .mh-home-inline-cta.wp-block-group { flex-direction: column; }
  #mh-site .mh-homepage--gutenberg .mh-hero-grid.wp-block-group,
  #mh-site .mh-homepage--gutenberg .mh-identity-grid.wp-block-group,
  #mh-site .mh-homepage--gutenberg .mh-faq-grid.wp-block-group { grid-template-columns: 1fr; }
  #mh-site .mh-homepage--gutenberg .mh-identity-media iframe { min-height: 500px; }
}

@media (max-width: 720px) {
  #mh-site .mh-homepage--gutenberg .mh-container.wp-block-group,
  #mh-site .mh-homepage--gutenberg .mh-container.wp-block-columns { width: min(calc(100% - 32px), var(--mh-max)); }
  #mh-site .mh-homepage--gutenberg .mh-hero-actions.wp-block-buttons { flex-direction: column; }
  #mh-site .mh-homepage--gutenberg .mh-hero-actions .wp-block-button,
  #mh-site .mh-homepage--gutenberg .mh-hero-actions .wp-block-button__link { width: 100%; }
  #mh-site .mh-homepage--gutenberg .mh-identity-media iframe { min-height: 320px; }
}


/* Small markup differences between PHP template and native blocks. */
#mh-site .mh-homepage--gutenberg .mh-duration-stamp .mh-duration-number {
  margin: 0;
  color: var(--mh-ink);
  font-family: var(--mh-display);
  font-size: 2.45rem;
  font-weight: 400;
  line-height: .8;
}
#mh-site .mh-homepage--gutenberg .mh-duration-stamp .mh-duration-label {
  max-width: 96px;
  margin: 7px auto 0;
  color: var(--mh-ink);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .12em;
  line-height: 1.12;
  text-transform: uppercase;
}
#mh-site .mh-homepage--gutenberg .mh-photo-caption > p:first-child {
  margin: 0;
  font-family: var(--mh-serif);
  font-size: 2.3rem;
  font-style: italic;
  font-weight: 400;
  line-height: 1;
}
#mh-site .mh-homepage--gutenberg .mh-photo-caption > .mh-photo-caption-name {
  margin: 8px 0 0;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#mh-site .mh-homepage--gutenberg .mh-review-person > p { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review-person > p + p {
  margin-top: 4px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .06em;
  opacity: .58;
}
#mh-site .mh-homepage--gutenberg .mh-review-footer > p { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review .wp-block-quote { margin: 0; }
#mh-site .mh-homepage--gutenberg .mh-review .wp-block-quote p { margin: 0; }


/* =========================================================
   v3.6.2 — explicit variants for Gutenberg wrapper parity.
   Frontend PHP can rely on :nth-child(); the block editor cannot because each
   native block is wrapped in a selectable [data-block] element.
   ========================================================= */

/* Emotion image 2 */
#mh-site .mh-homepage--gutenberg .mh-emotion-shot--2 { transform: translateY(26px); }

/* Occasion cards */
#mh-site .mh-homepage--gutenberg .mh-occasion-card--1 {
  color: var(--mh-white);
  background: #232226;
  border-color: rgba(255,255,255,.22);
}
#mh-site .mh-homepage--gutenberg .mh-occasion-card--2 {
  color: var(--mh-ink);
  background: var(--mh-pink);
  border-color: var(--mh-pink);
}
#mh-site .mh-homepage--gutenberg .mh-occasion-card--3 {
  color: var(--mh-white);
  background: linear-gradient(145deg,#56329d 0%,#321b58 100%);
  border-color: rgba(255,255,255,.24);
}
#mh-site .mh-homepage--gutenberg :is(.mh-occasion-card--1,.mh-occasion-card--3) .mh-occasion-label,
#mh-site .mh-homepage--gutenberg :is(.mh-occasion-card--1,.mh-occasion-card--3) .mh-occasion-cta-wrap .wp-block-button__link { color: #fff; }
#mh-site .mh-homepage--gutenberg .mh-occasion-card--2 .mh-occasion-label,
#mh-site .mh-homepage--gutenberg .mh-occasion-card--2 .mh-occasion-cta-wrap .wp-block-button__link { color: var(--mh-ink); }
#mh-site .mh-homepage--gutenberg :is(.mh-occasion-card--1,.mh-occasion-card--3) .mh-occasion-copy { color: rgba(255,255,255,.76); }
#mh-site .mh-homepage--gutenberg .mh-occasion-card--2 .mh-occasion-copy { color: rgba(17,16,20,.74); }
#mh-site .mh-homepage--gutenberg .mh-occasion-cta-wrap .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin-top: auto;
  padding-top: 22px;
  font-size: .88rem;
  font-weight: 800;
  line-height: 1;
}

/* Numbers: reproduce last-column border without relying on :last-child(). */
#mh-site .mh-homepage--gutenberg .mh-number--4 { border-right: 0; }

/* Reviews */
#mh-site .mh-homepage--gutenberg .mh-review--1 {
  border-color: rgba(255,255,255,.13);
  color: var(--mh-white);
  background: linear-gradient(155deg,#25212b 0%,#17151c 100%);
}
#mh-site .mh-homepage--gutenberg .mh-review--1::after { color: rgba(182,36,100,.28); }
#mh-site .mh-homepage--gutenberg .mh-review--1 .mh-review-avatar {
  border: 1px solid rgba(255,255,255,.16);
  color: var(--mh-white);
  background: rgba(255,255,255,.10);
}
#mh-site .mh-homepage--gutenberg .mh-review--2 { border-color: rgba(182,36,100,.28); }
#mh-site .mh-homepage--gutenberg .mh-review--3 {
  border-color: rgba(122,66,255,.20);
  background: linear-gradient(180deg,#fff 0%,#f7f3ff 100%);
}
#mh-site .mh-homepage--gutenberg .mh-reviews-summary > .wp-block-heading {
  color: var(--mh-white);
  font-family: var(--mh-display);
  font-size: clamp(2.3rem,3.2vw,3.2rem);
  font-weight: 400;
  line-height: 1;
}
#mh-site .mh-homepage--gutenberg .mh-reviews-summary > p:not(.mh-reviews-summary__stars) {
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .72;
}

/* Process: reproduce last-column border without :last-child(). */
#mh-site .mh-homepage--gutenberg .mh-step--4 { border-right: 0; }

@media (max-width:980px) {
  #mh-site .mh-homepage--gutenberg .mh-emotion-shot--2 { transform: none; }
  #mh-site .mh-homepage--gutenberg .mh-number--2 { border-right: 0; }
  #mh-site .mh-homepage--gutenberg :is(.mh-number--1,.mh-number--2) { border-bottom: 2px solid var(--mh-line-light); }
  #mh-site .mh-homepage--gutenberg .mh-step--2 { border-right: 0; }
  #mh-site .mh-homepage--gutenberg :is(.mh-step--1,.mh-step--2) { border-bottom: 3px solid var(--mh-ink); }
}
@media (max-width:640px) {
  #mh-site .mh-homepage--gutenberg .mh-emotion-shot--2 { transform: none; }
}


/* Gutenberg makes each native child the only element inside its selectable
   wrapper, so frontend :last-child/:first-child selectors can accidentally
   match every card. Explicit variants restore the intended desktop borders. */
#mh-site .mh-homepage--gutenberg :is(.mh-number--1,.mh-number--2,.mh-number--3) {
  border-right: 2px solid var(--mh-line-light);
}
#mh-site .mh-homepage--gutenberg :is(.mh-step--1,.mh-step--2,.mh-step--3) {
  border-right: 3px solid var(--mh-ink);
}
#mh-site .mh-homepage--gutenberg :is(.mh-review--2,.mh-review--3)::after {
  color: rgba(182,36,100,.14);
}
#mh-site .mh-homepage--gutenberg :is(.mh-review--2,.mh-review--3) .mh-review-avatar {
  border: 0;
  color: var(--mh-white);
  background: linear-gradient(145deg,var(--mh-pink),var(--mh-violet));
}

@media (max-width:1100px) {
  #mh-site .mh-homepage--gutenberg :is(.mh-review--1,.mh-review--2,.mh-review--3) { grid-column: auto; }
  #mh-site .mh-homepage--gutenberg .mh-review--3 { grid-column: span 2; }
}
@media (max-width:980px) {
  #mh-site .mh-homepage--gutenberg :is(.mh-number--1,.mh-number--3) { border-right: 2px solid var(--mh-line-light); }
  #mh-site .mh-homepage--gutenberg :is(.mh-number--2,.mh-number--4) { border-right: 0; }
  #mh-site .mh-homepage--gutenberg :is(.mh-step--1,.mh-step--3) { border-right: 3px solid var(--mh-ink); }
  #mh-site .mh-homepage--gutenberg :is(.mh-step--2,.mh-step--4) { border-right: 0; }
  #mh-site .mh-homepage--gutenberg .mh-emotion-shot--1 { grid-column: 1 / -1; }
  #mh-site .mh-homepage--gutenberg :is(.mh-emotion-shot--2,.mh-emotion-shot--3) { grid-column: auto; }
}
@media (max-width:860px) {
  #mh-site .mh-homepage--gutenberg :is(.mh-review--1,.mh-review--2,.mh-review--3) { grid-column: auto; }
}
@media (max-width:640px) {
  #mh-site .mh-homepage--gutenberg :is(.mh-emotion-shot--1,.mh-emotion-shot--2,.mh-emotion-shot--3) { grid-column: auto; }
}


/* =========================================================
   v3.6.3 — let the Marcel layout, not Core's contentSize, own geometry.

   Core Group can render an is-layout-constrained wrapper even though the
   section itself is intentionally controlled by Marcel's CSS. That silently
   caps nested groups at the global content width (760px). The hero already had
   an explicit override, which is why it looked correct while identity/process
   and other blocks appeared narrow or displaced. Keep .mh-container centred,
   but remove Core's nested content cap everywhere inside the Gutenberg pilot.
   ========================================================= */
#mh-site .mh-homepage--gutenberg .mh-container.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-container.wp-block-columns {
  width: min(calc(100% - 48px), var(--mh-max)) !important;
  max-width: var(--mh-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

#mh-site .mh-homepage--gutenberg .is-layout-constrained > :where(
  :not(.alignleft):not(.alignright):not(.alignfull):not(.mh-container)
) {
  width: auto !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* The named Marcel layout groups always fill their owning container. */
#mh-site .mh-homepage--gutenberg :is(
  .mh-hero-grid,
  .mh-numbers,
  .mh-marquee,
  .mh-marquee-track,
  .mh-identity-grid,
  .mh-emotion-strip,
  .mh-heading-row,
  .mh-occasion-grid,
  .mh-reviews-grid,
  .mh-process,
  .mh-faq-grid,
  .mh-home-inline-cta,
  .mh-show-cta-inner
) {
  width: 100% !important;
  max-width: none !important;
}

/* The marquee is a viewport stripe, never a Gutenberg content-width block. */
#mh-site .mh-homepage--gutenberg .mh-marquee-shell,
#mh-site .mh-homepage--gutenberg .mh-marquee-shell > .wp-block-group {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* =========================================================
   v3.7.0 — exact frontend parity for native Gutenberg markup.
   These rules only translate semantic differences introduced by Core blocks;
   all visual values are copied from the production front-page selectors.
   ========================================================= */

/* Numbers: Core headings/paragraphs stand in for production strong/span. */
#mh-site .mh-homepage--gutenberg .mh-home-stats .mh-number > .wp-block-heading {
  display: block;
  margin: 0;
  color: var(--mh-white);
  font-family: var(--mh-display);
  font-size: clamp(2.9rem,5vw,4.7rem);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.06em;
}
#mh-site .mh-homepage--gutenberg .mh-home-stats .mh-number > p {
  display: block;
  max-width: 220px;
  margin: 14px 0 0;
  color: rgba(255,255,255,.72);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* Marquee: production uses span; Gutenberg uses editable Paragraph blocks. */
#mh-site .mh-homepage--gutenberg .mh-marquee-track > p,
#mh-site .mh-homepage--gutenberg .mh-marquee-track > .wp-block-paragraph {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 22px;
  margin: 0;
  padding-right: 22px;
  color: var(--mh-ink);
  font-family: var(--mh-display);
  font-size: clamp(1.15rem,2.4vw,2rem);
  font-weight: 400;
  letter-spacing: -.03em;
  line-height: 1.2;
  text-transform: uppercase;
  white-space: nowrap;
}
#mh-site .mh-homepage--gutenberg .mh-marquee-track > p::after,
#mh-site .mh-homepage--gutenberg .mh-marquee-track > .wp-block-paragraph::after {
  content: "✦";
  font-family: var(--mh-serif);
  font-size: 1.2em;
}

/* Video block lives inside the same production media shell. */
#mh-site .mh-homepage--gutenberg .mh-identity-video.wp-block-group,
#mh-site .mh-homepage--gutenberg .mh-identity-video .wp-block-embed,
#mh-site .mh-homepage--gutenberg .mh-identity-video .wp-block-embed__wrapper,
#mh-site .mh-homepage--gutenberg .mh-identity-video iframe {
  width: 100%;
  height: 100%;
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-identity-video .wp-block-embed { min-height: 100%; }
#mh-site .mh-homepage--gutenberg .mh-identity-video iframe { display:block; border:0; }

/* Process numbers are Paragraph blocks but visually identical to production spans. */
#mh-site .mh-homepage--gutenberg .mh-step > .mh-step-num {
  display: block;
  margin: 0;
  color: var(--mh-ink);
  font-family: var(--mh-display);
  font-size: 3.8rem;
  font-weight: 400;
  line-height: 1;
}

/* Production CTAs use .mh-button; Core Button links receive the same geometry. */
#mh-site .mh-homepage--gutenberg :is(.mh-hero-actions,.mh-home-inline-cta,.mh-home-faq-cta,.mh-show-cta-panel) .wp-block-button__link {
  font-family: var(--mh-sans);
}


/* =========================================================
   v3.7.2 — Gutenberg homepage rhythm + clean CTA buttons.
   Keep the native block page visually close to the frontend,
   without stacking spacing from both parent and child modules.
   ========================================================= */

/* Pink CTAs: no heavy black outline. The secondary hero button remains
   deliberately outlined because it is the visual secondary action. */
#mh-site .mh-homepage--gutenberg .mh-hero-actions .wp-block-button:not(.mh-button-outline) .wp-block-button__link,
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta:not(.mh-home-inline-cta--dark) .wp-block-button__link,
#mh-site .mh-homepage--gutenberg .mh-process-inline-cta .wp-block-button__link,
#mh-site .mh-homepage--gutenberg .mh-home-faq-cta .wp-block-button__link {
  border: 0 !important;
  box-shadow: none;
}

/* One consistent vertical rhythm for the editable homepage. */
#mh-site .mh-homepage--gutenberg .mh-section {
  padding-top: 96px;
  padding-bottom: 96px;
}

/* Heading → following content. The original CSS gave both elements their own
   large margin, which doubled the visual gap in Gutenberg. */
#mh-site .mh-homepage--gutenberg .mh-heading-row {
  margin-bottom: 44px;
}
#mh-site .mh-homepage--gutenberg .mh-reviews-grid,
#mh-site .mh-homepage--gutenberg .mh-process {
  margin-top: 0;
}

/* Video / impression section. */
#mh-site .mh-homepage--gutenberg .mh-identity-grid {
  gap: 64px;
}
#mh-site .mh-homepage--gutenberg .mh-emotion-strip {
  margin-top: 40px;
}

/* Cards: compact enough to belong together, still comfortably separated. */
#mh-site .mh-homepage--gutenberg .mh-occasion-grid,
#mh-site .mh-homepage--gutenberg .mh-reviews-grid {
  gap: 20px;
}

/* Editorial CTA strips should read as the end of the section, not as a new
   oversized section of their own. */
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta {
  margin-top: 38px;
  padding-top: 22px;
}

/* Process rhythm. */
#mh-site .mh-homepage--gutenberg .mh-process {
  margin-top: 0;
}
#mh-site .mh-homepage--gutenberg .mh-step {
  min-height: 310px;
  padding-top: 30px;
  padding-bottom: 30px;
}
#mh-site .mh-homepage--gutenberg .mh-step h3 {
  margin-top: 44px;
}

/* FAQ: slightly tighter two-column relationship. */
#mh-site .mh-homepage--gutenberg .mh-faq-grid {
  gap: 64px;
}
#mh-site .mh-homepage--gutenberg .mh-home-faq-cta {
  margin-top: 26px;
}

/* Gutenberg editor uses the same class names/stylesheets, so these values
   automatically mirror there as well. */
@media (max-width: 980px) {
  #mh-site .mh-homepage--gutenberg .mh-section {
    padding-top: 78px;
    padding-bottom: 78px;
  }
  #mh-site .mh-homepage--gutenberg .mh-heading-row {
    margin-bottom: 34px;
  }
  #mh-site .mh-homepage--gutenberg .mh-identity-grid,
  #mh-site .mh-homepage--gutenberg .mh-faq-grid {
    gap: 40px;
  }
}
@media (max-width: 640px) {
  #mh-site .mh-homepage--gutenberg .mh-section {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  #mh-site .mh-homepage--gutenberg .mh-heading-row {
    margin-bottom: 28px;
  }
  #mh-site .mh-homepage--gutenberg .mh-home-inline-cta {
    margin-top: 30px;
  }
}


/* =========================================================
   v3.7.3 — homepage spacing pass.
   Tighten internal relationships without changing the layout system.
   ========================================================= */

/* HERO: label, headline, lead and actions should read as one compact unit. */
#mh-site .mh-homepage--gutenberg .mh-hero {
  padding-top: 116px;
  padding-bottom: 68px;
}
#mh-site .mh-homepage--gutenberg .mh-hero-copy {
  padding-top: 20px;
  padding-bottom: 12px;
}
#mh-site .mh-homepage--gutenberg .mh-hero-label {
  margin-bottom: 20px;
}
#mh-site .mh-homepage--gutenberg .mh-hero h1 {
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-hero-lead {
  margin-top: 20px;
}
#mh-site .mh-homepage--gutenberg .mh-hero-actions {
  margin-top: 22px;
}

/* REGULAR SECTIONS: one calmer, consistent desktop rhythm. */
#mh-site .mh-homepage--gutenberg .mh-section {
  padding-top: 88px;
  padding-bottom: 88px;
}
#mh-site .mh-homepage--gutenberg .mh-heading-row {
  margin-bottom: 36px;
}
#mh-site .mh-homepage--gutenberg .mh-emotion-strip {
  margin-top: 34px;
}
#mh-site .mh-homepage--gutenberg .mh-home-inline-cta {
  margin-top: 32px;
  padding-top: 20px;
}

/* LARGE IMAGE CTA: compact the pink panel and its internal text rhythm. */
#mh-site .mh-homepage--gutenberg .mh-show-cta-section,
#mh-site .mh-homepage--gutenberg .mh-show-cta-inner {
  min-height: 500px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-image img {
  min-height: 500px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-inner {
  padding-top: 64px;
  padding-bottom: 64px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel {
  width: min(100%, 560px);
  padding: 34px 38px 36px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel .mh-kicker {
  margin: 0 0 14px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel .wp-block-heading {
  margin: 0;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel > p:not(.mh-kicker) {
  margin-top: 18px;
}
#mh-site .mh-homepage--gutenberg .mh-show-cta-panel .wp-block-buttons {
  margin-top: 20px;
}

/* PROCESS + FAQ: remove the last remaining oversized gaps. */
#mh-site .mh-homepage--gutenberg .mh-process-inline-cta {
  margin-top: 28px;
}
#mh-site .mh-homepage--gutenberg .mh-home-faq-cta {
  margin-top: 22px;
}

/* Buttons on accent/CTA surfaces should never pick up a dark outline. */
#mh-site .mh-homepage--gutenberg :is(
  .mh-hero-actions .wp-block-button:not(.mh-button-outline),
  .mh-show-cta-panel .wp-block-button,
  .mh-process-inline-cta .wp-block-button,
  .mh-home-faq-cta .wp-block-button
) .wp-block-button__link {
  border: 0 !important;
  outline: 0;
  box-shadow: none;
}

@media (max-width: 980px) {
  #mh-site .mh-homepage--gutenberg .mh-hero {
    padding-top: 108px;
    padding-bottom: 62px;
  }
  #mh-site .mh-homepage--gutenberg .mh-section {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  #mh-site .mh-homepage--gutenberg .mh-heading-row {
    margin-bottom: 30px;
  }
  #mh-site .mh-homepage--gutenberg .mh-show-cta-inner {
    padding-top: 52px;
    padding-bottom: 52px;
  }
}
@media (max-width: 640px) {
  #mh-site .mh-homepage--gutenberg .mh-hero {
    padding-top: 102px;
    padding-bottom: 52px;
  }
  #mh-site .mh-homepage--gutenberg .mh-hero-label {
    margin-bottom: 16px;
  }
  #mh-site .mh-homepage--gutenberg .mh-hero-lead {
    margin-top: 16px;
  }
  #mh-site .mh-homepage--gutenberg .mh-hero-actions {
    margin-top: 18px;
  }
  #mh-site .mh-homepage--gutenberg .mh-section {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  #mh-site .mh-homepage--gutenberg .mh-show-cta-panel {
    padding: 28px 24px 30px;
  }
}
