.gg-hero {
    overflow: hidden;
    isolation: isolate;
}

body.gg-wedding-page #wp--skip-link--target > .wp-block-group.alignfull {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.gg-hero > .gg-monogram,
.gg-hero > .gg-names,
.gg-hero > .gg-invited,
.gg-hero > .gg-scroll-cue {
    position: relative;
    z-index: 2;
}


/* HERO / LOGO */
.gg-panel.gg-hero {
    padding-top: 20pxpx !important;
    padding-bottom: 20px !important;
    padding-left: 0 !important;
    padding-right: 0 !important;

    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
    gap: 0 !important;
    justify-content: center !important;
}

.gg-logo {
    position: static !important;
    z-index: 2;

    display: block !important;

    width: min(560px, 80vw) !important;
    max-width: none !important;
    height: auto !important;

    object-fit: contain !important;

    margin: 0 auto 20px auto !important;
    transform: none !important;
}

.gg-hero .gg-names {
    margin: 0 0 20px 0 !important;
}

.gg-hero .gg-invited {
    margin: 120px 0 25px 0 !important;
}


/* DECORATIVE CORNERS */
.gg-pdf-ornament {
    position: absolute;
    z-index: 1;

    display: block;

    width: auto;
    max-width: none !important;
    height: 420px !important;

    object-fit: contain;

    margin: 0 !important;
    opacity: 1;

    pointer-events: none;
    user-select: none;
}

.gg-pdf-ornament-top {
    top: 0;
    right: -2.5%;
    bottom: auto;
    left: auto;
}

.gg-pdf-ornament-bottom {
    top: auto;
    right: auto;
    bottom: 0;
    left: -2.5%;
}


/* SCROLL INDICATOR */
.gg-hero > .gg-scroll-cue {
    position: relative !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;

    align-self: center;

    width: 28px;
    height: 44px;

    margin: 0 auto !important;

    transform: none !important;
    flex: 0 0 auto;
}


/* OPENING VIDEO */
.gg-video-scene {
    background: #fffdf9;
}

.gg-opening-video {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: cover;
    background: #fffdf9;
}

.gg-video-open {
    position: relative;
    z-index: 2;

    border: 1px solid #c69f45;
    border-radius: 999px;

    background: rgba(255, 253, 249, .88);
    color: #9b761f;

    padding: 15px 30px;

    font: 500 14px var(--gg-sans);
    letter-spacing: .14em;
    text-transform: uppercase;

    cursor: pointer;

    transition: opacity .3s, transform .3s;
}

.gg-video-scene.is-playing .gg-video-open {
    opacity: 0;
    transform: scale(.96);
    pointer-events: none;
}

.gg-envelope-scene > .gg-video-skip {
    position: absolute;
    z-index: 2;

    top: auto;
    right: 24px;
    bottom: 24px;
    left: auto;

    transform: none;

    color: #766a5c;
    text-shadow: 0 1px 6px #fffdf9;
}

.gg-video-scene.is-fading {
    opacity: 0;
}


/* INTRO */
.gg-panel.gg-intro {
    min-height: 0 !important;
    height: auto !important;

    justify-content: center !important;

    padding-top: 30px !important;
    padding-bottom: 30px !important;
}

.gg-intro > .gg-lead {
    margin-top: 45px !important;
}


/* PHONE */
@media (max-width: 700px) {

    .gg-panel.gg-hero {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .gg-logo {
        width: 72vw !important;
        max-width: 300px !important;

        margin: 0 auto 15px auto !important;
    }

    .gg-pdf-ornament {
        height: 240px !important;
    }

    .gg-hero > .gg-names {
        font-size: clamp(22px, 6.4vw, 25px);
        letter-spacing: .08em;
        white-space: nowrap;

        margin: 0 0 15px 0 !important;
    }

    .gg-hero .gg-invited {
        margin: 70px 0 20px 0 !important;
    }

    .gg-hero > .gg-scroll-cue {
        margin: 0 auto !important;
    }

    .gg-panel.gg-intro {
        padding-top: 30px !important;
        padding-bottom: 30px !important;
    }
}

/* Typography and logo refinements */
.gg-logo {
      width: min(250px, 50vw) !important;
        max-width: 250px !important;
          margin-bottom: 18px !important;
}
.gg-family h2,
.gg-event-card h3 {
      font-family: var(--gg-serif) !important;
        font-weight: 400 !important;
          font-style: normal !important;
            letter-spacing: .09em !important;
              text-transform: uppercase !important;
                line-height: .95 !important;
                  font-size: clamp(38px, 7vw, 64px) !important;
}
@media (max-width: 700px) {
      .gg-logo {
              width: min(210px, 52vw) !important;
                  max-width: 210px !important;
      }
}

      }
}
}

/* Definitive hero/logo fix: outrank the page's legacy inline styles. */
html body.gg-wedding-page #gg-main .gg-panel.gg-hero {
  min-height: 100vh !important;
  height: 100vh !important;
  box-sizing: border-box !important;
}

html body.gg-wedding-page #gg-main .gg-panel.gg-hero img.gg-logo {
  display: block !important;
  width: 210px !important;
  max-width: 58vw !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 0 auto 18px !important;
}

html body.gg-wedding-page #gg-main .gg-panel.gg-hero > .gg-scroll-cue {
  position: absolute !important;
  top: auto !important;
  bottom: 22px !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
}

/* Repeated after the first parsed override because the legacy file contains
   unmatched closing braces from earlier editor saves. */
html body.gg-wedding-page #gg-main .gg-panel.gg-hero {
  min-height: 100vh !important;
  height: 100vh !important;
  box-sizing: border-box !important;
}

@media (max-width: 700px) {
  html body.gg-wedding-page #gg-main .gg-panel.gg-hero {
    min-height: 100svh !important;
    height: 100svh !important;
  }

  html body.gg-wedding-page #gg-main .gg-panel.gg-hero img.gg-logo {
    width: 175px !important;
    max-width: 52vw !important;
    height: auto !important;
  }
}
}

/* Override homepage inline logo dimensions */
body.gg-wedding-page .gg-logo {
      width: min(250px, 50vw) !important;
        max-width: 250px !important;
          height: auto !important;
            object-fit: contain !important;
              margin-bottom: 18px !important;
}
@media (max-width: 700px) {
      body.gg-wedding-page .gg-logo {
              width: min(210px, 52vw) !important;
                  max-width: 210px !important;
      }
}

      }
}
}

/* Full, centered logo — preserve the entire artwork */
body.gg-wedding-page .gg-logo {
      width: 210px !important;
        max-width: 58vw !important;
          height: 210px !important;
            object-fit: contain !important;
              object-position: center !important;
                margin: 0 auto 18px !important;
}
@media (max-width: 700px) {
      body.gg-wedding-page .gg-logo {
              width: 175px !important;
                  max-width: 52vw !important;
                      height: 175px !important;
      }
}

      }
}
}

/* First section always fills the visible phone screen */
body.gg-wedding-page .gg-panel.gg-hero {
      min-height: 100svh !important;
        height: 100svh !important;
          box-sizing: border-box !important;
}
body.gg-wedding-page .gg-hero > .gg-scroll-cue {
      position: absolute !important;
      top: auto !important;
      bottom: 22px !important;
      left: 50% !important;
      right: auto !important;
      transform: translateX(-50%) !important;
      margin: 0 !important;
}

}
}