:root {
    color-scheme: only light;
    --gmb-navy: #1B2A4D;
    --gmb-navy-deep: #101D3B;
    --gmb-gold: #C2A14A;
    --gmb-gold-light: #E1C978;
    --gmb-cream: #FAF6EE;
    --gmb-soft-blue: #DCE6F3;
    --gmb-charcoal: #2B2B33;
    --gmb-white: #FFFFFF;
    --gmb-border: rgba(27, 42, 77, 0.13);
    --gmb-shadow: 0 18px 50px rgba(27, 42, 77, 0.12);
    --gmb-shadow-soft: 0 10px 30px rgba(27, 42, 77, 0.08);
    --gmb-radius-xl: 30px;
    --gmb-radius-lg: 22px;
    --gmb-radius-md: 14px;
    --gmb-container: 1240px;
    --gmb-heading: "Lora", Georgia, serif;
    --gmb-body: "Source Sans 3", Arial, sans-serif;
    --gmb-brand: "Cinzel", Georgia, serif;
}

html {
    background-color: #FAF6EE;
    scroll-behavior: smooth;
    scroll-padding-top: 92px;
}

body.gmbh-page {
    margin: 0;
    background: var(--gmb-cream);
    color: var(--gmb-charcoal);
    font-family: var(--gmb-body);
    font-size: 18px;
    line-height: 1.62;
    overflow-x: hidden;
}

body.gmbh-page *,
body.gmbh-page *::before,
body.gmbh-page *::after {
    box-sizing: border-box;
}

body.gmbh-page img {
    display: block;
    max-width: 100%;
    height: auto;
}

body.gmbh-page a {
    color: inherit;
    text-decoration: none;
}

body.gmbh-page button,
body.gmbh-page input {
    font: inherit;
}

body.gmbh-page h1,
body.gmbh-page h2,
body.gmbh-page h3,
body.gmbh-page p {
    margin-top: 0;
}

body.gmbh-page h1,
body.gmbh-page h2,
body.gmbh-page h3 {
    color: var(--gmb-navy);
    font-family: var(--gmb-heading);
    line-height: 1.15;
}

body.gmbh-page h1 {
    font-size: clamp(2.75rem, 5vw, 5.15rem);
    letter-spacing: -0.035em;
    margin-bottom: 24px;
}

body.gmbh-page h2 {
    font-size: clamp(2rem, 3.4vw, 3.4rem);
    letter-spacing: -0.025em;
    margin-bottom: 18px;
}

body.gmbh-page h3 {
    font-size: clamp(1.25rem, 1.7vw, 1.65rem);
    margin-bottom: 10px;
}

body.gmbh-page p:last-child {
    margin-bottom: 0;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.gmb-skip-link {
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 99999;
    transform: translateY(-160%);
    background: var(--gmb-navy);
    color: var(--gmb-cream) !important;
    padding: 12px 18px;
    border-radius: 8px;
    font-weight: 700;
}

.gmb-skip-link:focus {
    transform: translateY(0);
}

.gmb-container {
    width: min(calc(100% - 40px), var(--gmb-container));
    margin-inline: auto;
}

.gmb-section {
    padding: 90px 0;
}

.gmb-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    color: var(--gmb-gold);
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.25;
    text-transform: uppercase;
}

.gmb-eyebrow::before,
.gmb-eyebrow::after {
    content: "";
    width: 24px;
    height: 1px;
    background: currentColor;
    opacity: 0.85;
}

.gmb-lead {
    max-width: 660px;
    color: rgba(43, 43, 51, 0.84);
    font-size: clamp(1.1rem, 1.6vw, 1.32rem);
    line-height: 1.65;
}

.gmb-section-heading {
    max-width: 760px;
    margin: 0 auto 42px;
    text-align: center;
}

.gmb-section-heading p:last-child {
    color: rgba(43, 43, 51, 0.74);
    font-size: 1.08rem;
}

.gmb-button-row,
.gmb-card-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
}

.gmb-button {
    display: inline-flex;
    min-height: 50px;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 22px;
    border: 2px solid var(--gmb-navy);
    border-radius: 999px;
    background: var(--gmb-navy);
    color: var(--gmb-cream) !important;
    font-family: var(--gmb-body);
    font-size: 0.98rem;
    font-weight: 600;
    line-height: 1.1;
    box-shadow: 0 8px 18px rgba(27, 42, 77, 0.18);
    transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

.gmb-button:hover,
.gmb-button:focus-visible {
    transform: translateY(-2px);
    border-color: var(--gmb-gold);
    background: var(--gmb-navy-deep);
    box-shadow: 0 12px 26px rgba(27, 42, 77, 0.24);
}

.gmb-button:focus-visible,
.gmb-text-link:focus-visible,
.gmb-primary-nav a:focus-visible,
.gmb-menu-toggle:focus-visible {
    outline: 3px solid var(--gmb-gold-light);
    outline-offset: 3px;
}

.gmb-button-secondary {
    border-color: var(--gmb-gold);
    background: rgba(250, 246, 238, 0.9);
    color: var(--gmb-navy) !important;
    box-shadow: none;
}

.gmb-button-secondary:hover,
.gmb-button-secondary:focus-visible {
    background: var(--gmb-white);
    color: var(--gmb-navy-deep) !important;
}

.gmb-button-light {
    border-color: rgba(250, 246, 238, 0.75);
    background: var(--gmb-cream);
    color: var(--gmb-navy) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2);
}

.gmb-button-small {
    min-height: 40px;
    padding: 10px 16px;
    font-size: 0.88rem;
}

.gmb-text-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--gmb-navy) !important;
    font-size: 0.98rem;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-color: rgba(194, 161, 74, 0.72);
    text-decoration-thickness: 2px;
    text-underline-offset: 5px;
}

.gmb-text-link span {
    transition: transform 180ms ease;
}

.gmb-text-link:hover span {
    transform: translateX(4px);
}

.gmb-text-link-large {
    font-size: 1.06rem;
}

.gmb-center-action {
    margin-top: 36px;
    text-align: center;
}

/* Header */
.gmb-header-marker {
    height: 1px;
}

.gmb-site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid transparent;
    background: rgba(250, 246, 238, 0.94);
    backdrop-filter: blur(14px);
    transition: box-shadow 180ms ease, border-color 180ms ease;
}

.gmb-site-header.is-scrolled {
    border-color: var(--gmb-border);
    box-shadow: 0 10px 24px rgba(27, 42, 77, 0.08);
}

.gmb-header-inner {
    display: flex;
    min-height: 82px;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.gmb-brand {
    flex: 0 0 auto;
}

.gmb-brand img {
    width: clamp(220px, 20vw, 310px);
}

.gmb-primary-nav {
    display: flex;
    align-items: center;
    gap: clamp(12px, 1.4vw, 24px);
    font-size: 0.96rem;
    font-weight: 600;
}

.gmb-primary-nav > a:not(.gmb-button) {
    position: relative;
    padding: 28px 0;
    color: var(--gmb-navy);
}

.gmb-primary-nav > a:not(.gmb-button)::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    height: 2px;
    transform: scaleX(0);
    transform-origin: center;
    background: var(--gmb-gold);
    transition: transform 180ms ease;
}

.gmb-primary-nav > a:not(.gmb-button):hover::after,
.gmb-primary-nav > a:not(.gmb-button):focus-visible::after {
    transform: scaleX(1);
}

.gmb-menu-toggle {
    display: none;
    width: 48px;
    height: 48px;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gmb-border);
    border-radius: 50%;
    background: var(--gmb-white);
    color: var(--gmb-navy);
    cursor: pointer;
}

.gmb-menu-toggle-lines {
    display: grid;
    gap: 5px;
}

.gmb-menu-toggle-lines span {
    display: block;
    width: 21px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transition: transform 180ms ease, opacity 180ms ease;
}

.gmb-menu-toggle[aria-expanded="true"] .gmb-menu-toggle-lines span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.gmb-menu-toggle[aria-expanded="true"] .gmb-menu-toggle-lines span:nth-child(2) {
    opacity: 0;
}

.gmb-menu-toggle[aria-expanded="true"] .gmb-menu-toggle-lines span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Hero */
.gmb-hero {
    position: relative;
    overflow: hidden;
    padding: 60px 0 76px;
    background:
        radial-gradient(circle at 82% 28%, rgba(220, 230, 243, 0.78), transparent 32%),
        radial-gradient(circle at 10% 80%, rgba(194, 161, 74, 0.10), transparent 30%),
        var(--gmb-cream);
}

.gmb-hero::before,
.gmb-hero::after {
    content: "";
    position: absolute;
    width: 380px;
    height: 380px;
    border-radius: 50%;
    filter: blur(30px);
    pointer-events: none;
}

.gmb-hero::before {
    top: -230px;
    left: -150px;
    background: rgba(220, 230, 243, 0.45);
}

.gmb-hero::after {
    right: -180px;
    bottom: -240px;
    background: rgba(194, 161, 74, 0.16);
}

.gmb-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    min-height: 590px;
    grid-template-columns: minmax(0, 1fr) minmax(430px, 0.92fr);
    align-items: center;
    gap: clamp(34px, 6vw, 84px);
}

.gmb-hero-copy {
    padding: 28px 0;
}

.gmb-hero-copy .gmb-button-row {
    margin: 32px 0 24px;
}

.gmb-hero-art {
    position: relative;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gmb-hero-art::before {
    content: "";
    position: absolute;
    inset: 12% 4% 8%;
    z-index: -1;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(220, 230, 243, 0.9) 0%, rgba(220, 230, 243, 0.22) 48%, transparent 72%);
}

.gmb-door-stage {
    --gmb-door-width: min(100%, 440px);
    position: relative;
    width: var(--gmb-door-width);
    max-width: 100%;
    aspect-ratio: 836 / 1221;
    isolation: isolate;
}

.gmb-door-portal {
    position: absolute;
    left: 30.86%;
    top: 8.44%;
    width: 42.94%;
    height: 73.30%;
    overflow: hidden;
    z-index: 1;
    -webkit-mask-image: var(--gmb-door-mask);
    mask-image: var(--gmb-door-mask);
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    background: #101d3b;
}

.gmb-door-portal img,
.gmb-door-portal video {
    position: absolute;
    inset: -3%;
    width: 106%;
    height: 106%;
    object-fit: cover;
    object-position: center 44%;
}

.gmb-door-final {
    z-index: 1;
}

/* v3.6.1: override the site's global image height:auto rule inside the portal. */
body.gmbh-page .gmb-door-portal .gmb-door-final {
    display: block;
    width: 106%;
    max-width: none;
    height: 106%;
    object-fit: cover;
    object-position: center 44%;
}

.gmb-door-video {
    z-index: 2;
    opacity: 1;
    transition: opacity .7s ease;
}

.gmb-door-video.is-finished {
    opacity: 0;
}

.gmb-door-frame {
    position: absolute;
    inset: 0;
    z-index: 3;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 24px 24px rgba(27, 42, 77, 0.17));
}

.gmb-door-sparkles {
    position: absolute;
    z-index: 4;
    width: 11%;
    left: 43%;
    top: 58%;
    opacity: 0;
    pointer-events: none;
    transform-origin: 20% 50%;
    transform: translate3d(0, 0, 0) scale(0.08) rotate(-5deg);
    filter: drop-shadow(0 0 12px rgba(255, 223, 130, 0.32));
    will-change: transform, opacity;
}

body.gmb-door-static .gmb-door-video {
    display: none;
}

body.gmb-door-static .gmb-door-sparkles {
    opacity: .98;
    transform: translate3d(118px, -10px, 0) scale(2.4) rotate(2.6deg);
}

/* v3.7.1: responsive final-state moon and star interactions.
   Keep the hotspots invisible and animate only a soft halo/twinkle,
   so the artwork glows instead of being replaced by a colored circle. */
.gmb-door-hotspots { position:absolute; inset:0; z-index:5; pointer-events:none; }
.gmb-door-hotspots.is-active { pointer-events:auto; }
.gmb-door-hotspot {
    position:absolute;
    display:block;
    padding:0;
    border:0;
    border-radius:50%;
    background:none !important;
    box-shadow:none !important;
    color:transparent;
    cursor:pointer;
    opacity:1;
    appearance:none;
    -webkit-appearance:none;
    -webkit-tap-highlight-color:transparent;
}
.gmb-door-hotspot:disabled { cursor:default; }
.gmb-door-hotspot::before,
.gmb-door-hotspot::after {
    content:"";
    position:absolute;
    pointer-events:none;
    opacity:0;
    transform:scale(.84);
}
.gmb-door-hotspot::before {
    inset:-12%;
    border-radius:50%;
    background:radial-gradient(circle,
        rgba(255,248,214,0) 0 24%,
        rgba(255,248,214,.52) 31%,
        rgba(249,224,128,.28) 46%,
        rgba(249,224,128,.14) 58%,
        rgba(249,224,128,0) 72%);
    filter:blur(8px);
    mix-blend-mode:screen;
}
.gmb-door-hotspot-star::before {
    inset:-18%;
    background:radial-gradient(circle,
        rgba(255,249,225,0) 0 16%,
        rgba(255,249,225,.78) 24%,
        rgba(248,220,122,.24) 40%,
        rgba(248,220,122,0) 62%);
    filter:blur(5px);
}
.gmb-door-hotspot-star::after {
    inset:30%;
    border-radius:0;
    background:
        linear-gradient(90deg, transparent 40%, rgba(255,252,232,.98) 47% 53%, transparent 60%),
        linear-gradient(0deg, transparent 40%, rgba(255,252,232,.98) 47% 53%, transparent 60%);
    filter:drop-shadow(0 0 7px rgba(255,223,116,.95));
}
.gmb-door-hotspot.is-glowing::before { animation:gmbDoorGlow 1s ease-out; }
.gmb-door-hotspot-star.is-glowing::after { animation:gmbDoorTwinkle .9s ease-out; }
.gmb-door-hotspot:focus-visible { outline:3px solid rgba(255,224,120,.95); outline-offset:3px; }
.gmb-door-hotspot-moon { left:39.5%; top:21.2%; width:17.5%; aspect-ratio:1/1; }
.gmb-door-hotspot-star-one { left:56.5%; top:14.2%; width:10.5%; aspect-ratio:1/1; }
.gmb-door-hotspot-star-two { left:34.3%; top:32.4%; width:8.5%; aspect-ratio:1/1; }
.gmb-door-hotspot-star-three { left:57.2%; top:57.8%; width:8.5%; aspect-ratio:1/1; }
@keyframes gmbDoorGlow {
    0% { opacity:0; transform:scale(.84); }
    30% { opacity:1; transform:scale(1.01); }
    70% { opacity:.62; transform:scale(1.14); }
    100% { opacity:0; transform:scale(1.28); }
}
@keyframes gmbDoorTwinkle {
    0% { opacity:0; transform:scale(.55) rotate(0deg); }
    35% { opacity:1; transform:scale(1.12) rotate(18deg); }
    70% { opacity:.76; transform:scale(.95) rotate(32deg); }
    100% { opacity:0; transform:scale(1.34) rotate(48deg); }
}



/* Audience panels */
.gmb-audience-section {
    padding: 24px 0 78px;
}

.gmb-audience-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 34px;
}

.gmb-audience-card {
    position: relative;
    aspect-ratio: 16 / 9;
    min-height: 0;
    overflow: hidden;
    border: 1px solid var(--gmb-border);
    border-radius: var(--gmb-radius-xl);
    box-shadow: var(--gmb-shadow);
    isolation: isolate;
}

.gmb-audience-art {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.gmb-audience-art img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.gmb-audience-kids {
    background: #FAF6EE;
}

.gmb-audience-tweens {
    background: #071A35;
}

.gmb-audience-card::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
}

.gmb-audience-kids::after {
    background: radial-gradient(circle at 50% 48%, rgba(250, 246, 238, 0.28), transparent 34%);
}

.gmb-audience-tweens::after {
    background: linear-gradient(90deg, rgba(7, 26, 53, 0.34) 0%, rgba(7, 26, 53, 0.12) 42%, transparent 64%);
}

.gmb-audience-copy {
    position: absolute;
    top: 50%;
    z-index: 2;
    width: min(38%, 470px);
    transform: translateY(-50%);
    padding: clamp(24px, 3.2vw, 48px);
}

.gmb-audience-kids .gmb-audience-copy {
    left: 30%;
    text-align: center;
}

.gmb-audience-tweens .gmb-audience-copy {
    left: 4.5%;
    color: rgba(250, 246, 238, 0.94);
    border: 1px solid rgba(250, 246, 238, 0.12);
    border-radius: 22px;
    background: rgba(7, 26, 53, 0.34);
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.14);
    backdrop-filter: blur(3px);
}

.gmb-audience-tweens h2,
.gmb-audience-tweens .gmb-eyebrow {
    color: var(--gmb-cream) !important;
}

.gmb-audience-tweens p:not(.gmb-eyebrow) {
    color: rgba(250, 246, 238, 0.92);
}

.gmb-audience-copy p:not(.gmb-eyebrow) {
    margin-bottom: 24px;
    font-size: 1.08rem;
}

/* Books */
.gmb-books-section {
    background: rgba(255, 255, 255, 0.5);
    border-top: 1px solid rgba(194, 161, 74, 0.14);
    border-bottom: 1px solid rgba(194, 161, 74, 0.14);
}

.gmb-book-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(240px, 1fr));
    gap: 22px;
}

.gmb-book-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--gmb-border);
    border-radius: var(--gmb-radius-lg);
    background: var(--gmb-white);
    box-shadow: var(--gmb-shadow-soft);
    transition: transform 180ms ease, box-shadow 180ms ease;
}

.gmb-book-card:hover {
    transform: translateY(-5px);
    box-shadow: var(--gmb-shadow);
}

.gmb-book-cover-link {
    display: block;
    padding: 20px 20px 0;
}

.gmb-book-cover-wrap {
    display: flex;
    aspect-ratio: 4 / 5;
    min-height: 300px;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 16px;
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(220, 230, 243, 0.76), rgba(250, 246, 238, 0.9));
}

.gmb-book-cover-wrap img {
    width: auto;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 12px 12px rgba(27, 42, 77, 0.2));
}


.gmb-book-card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 22px;
}

.gmb-book-card-copy h3 a:hover {
    color: #314B7A;
}

.gmb-book-card-copy > p:not(.gmb-book-subtitle) {
    color: rgba(43, 43, 51, 0.76);
    font-size: 0.96rem;
    line-height: 1.52;
}

.gmb-book-subtitle {
    margin-bottom: 12px;
    color: rgba(43, 43, 51, 0.64);
    font-size: 0.86rem;
    font-style: italic;
    line-height: 1.42;
}

.gmb-age-chip {
    display: inline-flex;
    width: fit-content;
    margin-bottom: 12px;
    padding: 5px 10px;
    border: 1px solid rgba(194, 161, 74, 0.45);
    border-radius: 999px;
    background: rgba(194, 161, 74, 0.1);
    color: var(--gmb-navy);
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1;
}

.gmb-card-actions {
    margin-top: auto;
    padding-top: 14px;
    justify-content: space-between;
}

/* Coming Soon */
.gmb-coming-section {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 90% 20%, rgba(220, 230, 243, 0.6), transparent 26%),
        var(--gmb-cream);
}

.gmb-coming-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
}

.gmb-coming-card {
    display: grid;
    grid-template-columns: minmax(170px, 0.38fr) minmax(0, 0.62fr);
    gap: 28px;
    align-items: center;
    padding: 24px;
    border: 1px solid var(--gmb-border);
    border-radius: var(--gmb-radius-xl);
    background: rgba(255, 255, 255, 0.84);
    box-shadow: var(--gmb-shadow-soft);
}

.gmb-coming-cover {
    position: relative;
    display: flex;
    height: 370px;
    align-items: center;
    justify-content: center;
    padding: 12px;
    overflow: hidden;
    border-radius: 18px;
    background: linear-gradient(145deg, rgba(220, 230, 243, 0.8), rgba(250, 246, 238, 0.94));
}

.gmb-coming-cover img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 12px 12px rgba(27, 42, 77, 0.2));
}

.gmb-coming-ribbon {
    position: absolute;
    top: 18px;
    left: -39px;
    z-index: 2;
    width: 168px;
    transform: rotate(-34deg);
    background: var(--gmb-gold);
    color: var(--gmb-navy-deep);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 30px;
    text-align: center;
    text-transform: uppercase;
    box-shadow: 0 4px 10px rgba(27, 42, 77, 0.16);
}

.gmb-release {
    margin-bottom: 8px;
    color: var(--gmb-gold);
    font-size: 0.84rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.gmb-coming-copy > p:not(.gmb-release) {
    color: rgba(43, 43, 51, 0.76);
    font-size: 0.98rem;
}

/* Feature panels */
.gmb-feature-section {
    padding-top: 30px;
    padding-bottom: 54px;
}

.gmb-feature-card,
.gmb-image-feature {
    min-height: 500px;
    overflow: hidden;
    border: 1px solid var(--gmb-border);
    border-radius: var(--gmb-radius-xl);
    box-shadow: var(--gmb-shadow);
}

.gmb-feature-card {
    display: grid;
    grid-template-columns: 0.38fr 0.62fr;
}

.gmb-games-card {
    background: linear-gradient(145deg, #F7FBFF, #EEF5FF 45%, #DCE6F3);
}

.gmb-feature-copy {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    padding: clamp(34px, 5vw, 62px);
}

.gmb-feature-copy p:not(.gmb-eyebrow),
.gmb-image-feature-copy p:not(.gmb-eyebrow) {
    margin-bottom: 26px;
    color: rgba(43, 43, 51, 0.78);
    font-size: 1.08rem;
}

.gmb-games-art {
    min-height: 500px;
    overflow: hidden;
}

.gmb-games-art img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 54% center;
}

.gmb-image-feature {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    background-image: var(--gmb-feature-image);
    background-position: center;
    background-size: cover;
}

.gmb-image-feature::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 34%, rgba(250, 246, 238, 0.42) 58%, rgba(250, 246, 238, 0.96) 82%);
}

.gmb-image-feature-copy {
    position: relative;
    z-index: 2;
    width: min(46%, 520px);
    margin-right: clamp(26px, 6vw, 78px);
    padding: 38px;
    border: 1px solid rgba(194, 161, 74, 0.26);
    border-radius: 22px;
    background: rgba(250, 246, 238, 0.84);
    box-shadow: 0 14px 36px rgba(27, 42, 77, 0.12);
    backdrop-filter: blur(10px);
}

.gmb-shop-external {
    margin-top: 18px;
}

/* About */
.gmb-about-section {
    padding-bottom: 100px;
}

.gmb-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 0.55fr);
    align-items: center;
    gap: clamp(44px, 7vw, 90px);
    padding: clamp(40px, 6vw, 70px);
    border: 1px solid rgba(194, 161, 74, 0.22);
    border-radius: var(--gmb-radius-xl);
    background:
        radial-gradient(circle at 75% 40%, rgba(220, 230, 243, 0.82), transparent 42%),
        rgba(255, 255, 255, 0.74);
    box-shadow: var(--gmb-shadow-soft);
}

.gmb-about-copy p:not(.gmb-eyebrow) {
    max-width: 720px;
    margin-bottom: 28px;
    color: rgba(43, 43, 51, 0.8);
    font-size: 1.08rem;
}

.gmb-about-art {
    display: flex;
    align-items: center;
    justify-content: center;
}

.gmb-about-art img {
    width: min(100%, 330px);
    filter: drop-shadow(0 18px 18px rgba(27, 42, 77, 0.18));
}

/* Newsletter */
.gmb-newsletter-section {
    position: relative;
    overflow: hidden;
    padding: 86px 0;
    background: var(--gmb-navy);
    color: rgba(250, 246, 238, 0.86);
}

.gmb-newsletter-section::before,
.gmb-newsletter-section::after {
    content: "";
    position: absolute;
    width: 126px;
    height: 76px;
    opacity: .42;
    background-image: radial-gradient(circle, rgba(225,201,120,.8) 0 2px, transparent 3px);
    background-size: 24px 24px;
    transform: rotate(-8deg);
}

.gmb-newsletter-section::before {
    top: 14px;
    left: 4%;
}

.gmb-newsletter-section::after {
    right: 5%;
    bottom: 12px;
}

.gmb-newsletter-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(380px, 1.1fr);
    align-items: center;
    gap: clamp(36px, 7vw, 90px);
}

.gmb-newsletter-section h2,
.gmb-newsletter-section .gmb-eyebrow {
    display: inline-flex;
    color: var(--gmb-cream) !important;
    opacity: 1 !important;
    visibility: visible !important;
}

.gmb-newsletter-copy > p:not(.gmb-eyebrow) {
    max-width: 620px;
    font-size: 1.08rem;
}

.gmb-newsletter-audience {
    color: var(--gmb-gold-light);
    font-weight: 600;
}

.gmb-newsletter-form-wrap {
    padding: 28px;
    border: 3px solid var(--gmb-gold);
    border-radius: 22px;
    background: var(--gmb-cream);
    color: var(--gmb-charcoal);
    box-shadow: 0 0 0 4px rgba(194, 161, 74, 0.18), 0 18px 40px rgba(0, 0, 0, 0.2);
}

.gmb-form-note {
    margin: 14px 0 0;
    color: rgba(43, 43, 51, 0.76);
    font-size: 0.85rem;
    line-height: 1.45;
}

/* MailerLite style overrides */
.gmb-newsletter-form-wrap .ml-form-embedWrapper,
.gmb-newsletter-form-wrap .ml-form-embedBody,
.gmb-newsletter-form-wrap .ml-form-embedContent,
.gmb-newsletter-form-wrap .ml-form-formContent,
.gmb-newsletter-form-wrap .ml-form-embedContainer {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.gmb-newsletter-form-wrap .ml-form-embedContent h4,
.gmb-newsletter-form-wrap .ml-form-embedContent p {
    display: none !important;
}

.gmb-newsletter-form-wrap .ml-form-fieldRow input,
.gmb-newsletter-form-wrap input[type="email"] {
    min-height: 54px !important;
    border: 1px solid rgba(250, 246, 238, 0.35) !important;
    border-radius: 999px !important;
    background: var(--gmb-cream) !important;
    color: var(--gmb-charcoal) !important;
    font-family: var(--gmb-body) !important;
    font-size: 1rem !important;
    padding: 14px 20px !important;
}

.gmb-newsletter-form-wrap .ml-form-embedSubmit button,
.gmb-newsletter-form-wrap button.primary {
    min-height: 54px !important;
    border: 2px solid var(--gmb-navy) !important;
    border-radius: 999px !important;
    background: var(--gmb-navy) !important;
    color: var(--gmb-cream) !important;
    font-family: var(--gmb-body) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    padding: 13px 22px !important;
    cursor: pointer;
}

.gmb-newsletter-form-wrap .ml-form-embedSubmit button:hover,
.gmb-newsletter-form-wrap button.primary:hover {
    border-color: var(--gmb-gold) !important;
    background: var(--gmb-navy-deep) !important;
}



/* MailerLite can inject its own dark text and spacing. These rules keep it readable inside the cream card. */
.gmb-newsletter-form-wrap .ml-embedded,
.gmb-newsletter-form-wrap .ml-form-embedContainer,
.gmb-newsletter-form-wrap .ml-form-embedWrapper,
.gmb-newsletter-form-wrap .ml-form-embedBody {
    color: var(--gmb-charcoal) !important;
    font-family: var(--gmb-body) !important;
}

.gmb-newsletter-form-wrap label,
.gmb-newsletter-form-wrap p,
.gmb-newsletter-form-wrap span,
.gmb-newsletter-form-wrap small,
.gmb-newsletter-form-wrap .label-description,
.gmb-newsletter-form-wrap .ml-form-embedPermissions,
.gmb-newsletter-form-wrap .ml-form-checkboxRow label p,
.gmb-newsletter-form-wrap .ml-form-checkboxRow label,
.gmb-newsletter-form-wrap a {
    color: var(--gmb-charcoal) !important;
}

.gmb-newsletter-form-wrap input[type="email"]::placeholder {
    color: rgba(43, 43, 51, 0.68) !important;
    opacity: 1 !important;
}
/* Footer */
.gmb-site-footer {
    position: relative;
    overflow: hidden;
    padding: 70px 0 20px;
    border-top: 1px solid rgba(194, 161, 74, 0.4);
    background: var(--gmb-navy-deep);
    color: rgba(250, 246, 238, 0.72);
}

.gmb-footer-grid {
    display: grid;
    grid-template-columns: minmax(250px, 1.25fr) repeat(3, minmax(145px, 0.62fr)) minmax(220px, 0.9fr);
    gap: 36px;
    align-items: start;
}

.gmb-footer-brand img {
    display: block;
    width: min(100%, 340px);
    height: auto;
    margin-bottom: 18px;
    filter: none;
}

.gmb-footer-brand > p {
    max-width: 320px;
}

.gmb-footer-contact {
    display: grid;
    gap: 7px;
    margin-top: 18px;
}

.gmb-footer-contact a:hover,
.gmb-footer-column a:hover {
    color: var(--gmb-gold-light);
}

.gmb-footer-column {
    display: grid;
    align-content: start;
    gap: 8px;
}

.gmb-footer-column h2 {
    margin-bottom: 8px;
    color: var(--gmb-gold-light);
    font-family: var(--gmb-body);
    font-size: 0.84rem;
    font-weight: 700;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

.gmb-footer-column a,
.gmb-footer-contact a {
    font-size: 0.92rem;
}

.gmb-footer-art {
    align-self: end;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    min-width: 0;
    padding-top: 18px;
}

.gmb-footer-art img {
    display: block;
    width: min(100%, 280px);
    height: auto;
    max-height: 210px;
    object-fit: contain;
    object-position: right bottom;
}

.gmb-footer-bottom {
    margin-top: 42px;
    padding-top: 20px;
    border-top: 1px solid rgba(250, 246, 238, 0.12);
    text-align: center;
}

.gmb-footer-bottom p {
    margin: 0;
    font-size: 0.84rem;
}

/* Tablet and mobile */
/* Keep book cards wide enough for complete covers and readable copy. */
@media (max-width: 1320px) {
    .gmb-book-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1180px) {
    .gmb-menu-toggle {
        display: inline-flex;
    }

    .gmb-primary-nav {
        position: fixed;
        top: 82px;
        right: 18px;
        left: 18px;
        display: grid;
        max-height: calc(100vh - 104px);
        gap: 0;
        padding: 14px;
        overflow-y: auto;
        border: 1px solid var(--gmb-border);
        border-radius: 18px;
        background: var(--gmb-cream);
        box-shadow: var(--gmb-shadow);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-12px);
        transition: opacity 180ms ease, transform 180ms ease;
    }

    .gmb-primary-nav.is-open {
        opacity: 1;
        pointer-events: auto;
        transform: translateY(0);
    }

    .gmb-primary-nav > a:not(.gmb-button) {
        padding: 13px 12px;
        border-bottom: 1px solid rgba(27, 42, 77, 0.08);
    }

    .gmb-primary-nav > a:not(.gmb-button)::after {
        display: none;
    }

    .gmb-primary-nav .gmb-button {
        margin-top: 12px;
    }

    body.gmb-menu-open {
        overflow: hidden;
    }

    .gmb-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(360px, 0.78fr);
    }


    .gmb-coming-card {
        grid-template-columns: minmax(150px, 0.4fr) minmax(0, 0.6fr);
    }

    .gmb-footer-grid {
        grid-template-columns: 1.3fr repeat(3, 0.7fr);
    }

    .gmb-footer-art {
        grid-column: 1 / -1;
        width: 100%;
        max-width: 340px;
        margin-left: auto;
    }

    .gmb-footer-art img {
        width: min(100%, 300px);
    }
}

@media (max-width: 900px) {
    .gmb-section {
        padding: 72px 0;
    }

    .gmb-hero {
        padding-top: 38px;
    }

    .gmb-hero-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .gmb-hero-copy {
        max-width: 760px;
        margin-inline: auto;
    }

    .gmb-hero-copy .gmb-button-row {
        justify-content: center;
    }

    .gmb-hero-art {
        min-height: 430px;
    }

    .gmb-door-stage {
        --gmb-door-width: min(78vw, 420px);
    }

    .gmb-audience-copy {
        width: min(36%, 450px);
    }

    .gmb-coming-grid {
        grid-template-columns: 1fr;
    }

    .gmb-feature-card {
        grid-template-columns: 1fr;
    }

    .gmb-games-copy {
        order: 2;
    }

    .gmb-games-art {
        min-height: 390px;
    }

    .gmb-image-feature {
        min-height: 620px;
        align-items: flex-end;
        justify-content: stretch;
        background-position: 30% center;
    }

    .gmb-image-feature::after {
        background: linear-gradient(180deg, transparent 30%, rgba(250, 246, 238, 0.32) 49%, rgba(250, 246, 238, 0.97) 74%);
    }

    .gmb-image-feature-copy {
        width: auto;
        margin: 0 24px 24px;
        padding: 32px;
    }

    .gmb-about-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .gmb-about-copy .gmb-button {
        margin-inline: auto;
    }

    .gmb-about-art {
        order: -1;
    }

    .gmb-newsletter-grid {
        grid-template-columns: 1fr;
    }

    .gmb-footer-grid {
        grid-template-columns: 1.35fr repeat(2, 0.75fr);
    }

    .gmb-footer-column:nth-of-type(4) {
        grid-column: 2 / 4;
    }
}

@media (max-width: 640px) {
    body.gmbh-page {
        font-size: 17px;
    }

    .gmb-container {
        width: min(calc(100% - 26px), var(--gmb-container));
    }

    .gmb-header-inner {
        min-height: 70px;
    }

    .gmb-brand img {
        width: 220px;
    }

    .gmb-primary-nav {
        top: 70px;
    }

    .gmb-hero {
        padding: 28px 0 50px;
    }

    .gmb-hero-grid {
        min-height: 0;
        gap: 16px;
    }

    .gmb-hero-copy {
        padding-top: 10px;
    }

    .gmb-hero-copy .gmb-button-row {
        align-items: stretch;
        flex-direction: column;
    }

    .gmb-hero-copy .gmb-button {
        width: 100%;
    }

    .gmb-hero-art {
        min-height: 340px;
    }

    .gmb-audience-section {
        padding-bottom: 44px;
    }

    .gmb-audience-card {
        display: flex;
        aspect-ratio: auto;
        flex-direction: column;
    }

    .gmb-audience-art {
        position: relative;
        inset: auto;
        aspect-ratio: 16 / 9;
        flex: 0 0 auto;
    }

    .gmb-audience-card::after {
        display: none;
    }

    .gmb-audience-copy,
    .gmb-audience-kids .gmb-audience-copy,
    .gmb-audience-tweens .gmb-audience-copy {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        margin: 0;
        transform: none;
        padding: 30px 24px;
        text-align: center;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        backdrop-filter: none;
    }

    .gmb-audience-kids .gmb-audience-copy {
        background: var(--gmb-cream);
    }

    .gmb-audience-tweens .gmb-audience-copy {
        background: var(--gmb-navy-deep);
    }

    .gmb-audience-copy .gmb-button {
        width: 100%;
    }

    .gmb-book-cover-wrap {
        aspect-ratio: 4 / 5;
        min-height: 0;
    }

    .gmb-card-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .gmb-card-actions .gmb-button {
        width: 100%;
    }

    .gmb-coming-card {
        grid-template-columns: 1fr;
    }

    .gmb-coming-cover {
        height: 410px;
    }

    .gmb-coming-copy {
        text-align: center;
    }

    .gmb-coming-copy .gmb-age-chip {
        margin-inline: auto;
    }

    .gmb-feature-card,
    .gmb-image-feature {
        border-radius: 22px;
    }

    .gmb-games-art {
        min-height: 300px;
    }

    .gmb-feature-copy {
        padding: 32px 24px;
        text-align: center;
        align-items: center;
    }

    .gmb-image-feature {
        min-height: 600px;
    }

    .gmb-image-feature-copy {
        margin: 0 14px 14px;
        padding: 26px 22px;
        text-align: center;
    }

    .gmb-image-feature-copy .gmb-button {
        width: 100%;
    }

    .gmb-about-grid {
        padding: 32px 22px;
    }

    .gmb-newsletter-section {
        padding: 68px 0;
    }

    .gmb-newsletter-copy {
        text-align: center;
    }

    .gmb-newsletter-form-wrap {
        padding: 18px;
    }

    .gmb-footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gmb-footer-brand,
    .gmb-footer-art {
        grid-column: 1 / -1;
    }

    .gmb-footer-brand img {
        margin-inline: auto;
    }

    .gmb-footer-brand,
    .gmb-footer-bottom {
        text-align: center;
    }

    .gmb-footer-brand > p {
        margin-inline: auto;
    }

    .gmb-footer-column:nth-of-type(4) {
        grid-column: auto;
    }

    .gmb-footer-art {
        justify-content: center;
        max-width: 290px;
        margin: 16px auto 0;
        padding-top: 0;
    }

    .gmb-footer-art img {
        width: min(100%, 270px);
        max-height: none;
        object-position: center bottom;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* v1.1 readability safeguards */
.gmb-newsletter-section h2 { display: block !important; text-shadow: 0 2px 12px rgba(0,0,0,.18); }


/* Final overflow guards for unusual browser zoom and narrow embedded previews. */
.gmb-book-grid,
.gmb-book-card,
.gmb-book-card-copy,
.gmb-card-actions {
    min-width: 0;
}

.gmb-book-card h3,
.gmb-book-card p,
.gmb-book-card a {
    overflow-wrap: anywhere;
}


@media (max-width: 760px) {
    .gmb-audience-card {
        display: flex;
        aspect-ratio: auto;
        flex-direction: column;
    }

    .gmb-audience-art {
        position: relative;
        inset: auto;
        aspect-ratio: 16 / 9;
        flex: 0 0 auto;
    }

    .gmb-audience-card::after {
        display: none;
    }

    .gmb-audience-copy,
    .gmb-audience-kids .gmb-audience-copy,
    .gmb-audience-tweens .gmb-audience-copy {
        position: relative;
        top: auto;
        left: auto;
        width: 100%;
        margin: 0;
        transform: none;
        padding: 30px 24px;
        text-align: center;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        backdrop-filter: none;
    }

    .gmb-audience-kids .gmb-audience-copy {
        background: var(--gmb-cream);
    }

    .gmb-audience-tweens .gmb-audience-copy {
        background: var(--gmb-navy-deep);
    }

    .gmb-audience-copy .gmb-button {
        width: 100%;
    }

    .gmb-book-grid {
        grid-template-columns: 1fr;
    }
}



/* v1.2 footer specificity fix
   WordPress themes can apply page-level h2 rules with greater specificity than
   the footer component. These declarations intentionally reset the compact
   footer headings and keep every footer item readable. */
body.gmbh-page .gmb-site-footer,
body.gmbh-page .gmb-site-footer p,
body.gmbh-page .gmb-site-footer a {
    color: rgba(250, 246, 238, 0.82) !important;
}

body.gmbh-page .gmb-site-footer .gmb-footer-column h2 {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: var(--gmb-gold-light) !important;
    font-family: var(--gmb-body) !important;
    font-size: 0.84rem !important;
    font-style: normal !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0.11em !important;
    text-align: left !important;
    text-transform: uppercase !important;
    text-shadow: none !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.gmbh-page .gmb-site-footer .gmb-footer-column a,
body.gmbh-page .gmb-site-footer .gmb-footer-contact a {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: var(--gmb-body) !important;
    font-size: 0.92rem !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}

body.gmbh-page .gmb-site-footer .gmb-footer-column a:hover,
body.gmbh-page .gmb-site-footer .gmb-footer-contact a:hover {
    color: var(--gmb-gold-light) !important;
}

@media (max-width: 640px) {
    body.gmbh-page .gmb-site-footer .gmb-footer-column h2 {
        text-align: center !important;
    }

    body.gmbh-page .gmb-site-footer .gmb-footer-column {
        text-align: center;
    }
}


/* v1.3 footer artwork refresh: dedicated cream-and-gold logo and clean transparent accent. */

/* Shared current-page navigation state. */
.gmb-primary-nav > a.is-current:not(.gmb-button) {
    color: var(--gmb-navy-deep);
    font-weight: 700;
}

.gmb-primary-nav > a.is-current:not(.gmb-button)::after {
    transform: scaleX(1);
}

@media (max-width: 1180px) {
    .gmb-primary-nav > a.is-current:not(.gmb-button) {
        border-radius: 9px;
        background: rgba(194, 161, 74, 0.12);
    }
}


/*
 * Preserve the intentional Grace Matthews light palette when a browser or
 * device requests dark mode. Some mobile browsers try to recolor pages that
 * do not explicitly opt out, which can make the logo and artwork unreadable.
 */
@media (prefers-color-scheme: dark) {
    :root {
        color-scheme: only light;
        --gmb-navy: #1B2A4D;
        --gmb-navy-deep: #101D3B;
        --gmb-gold: #C2A14A;
        --gmb-gold-light: #E1C978;
        --gmb-cream: #FAF6EE;
        --gmb-soft-blue: #DCE6F3;
        --gmb-charcoal: #2B2B33;
        --gmb-white: #FFFFFF;
    }

    html,
    body.gmbh-page {
        background-color: #FAF6EE !important;
        color: #2B2B33 !important;
    }

    body.gmbh-page .gmb-site-header {
        background-color: rgba(250, 246, 238, 0.96) !important;
    }

    body.gmbh-page input,
    body.gmbh-page textarea,
    body.gmbh-page select,
    body.gmbh-page button {
        color-scheme: only light;
    }

    body.gmbh-page img,
    body.gmbh-page picture,
    body.gmbh-page svg,
    body.gmbh-page video {
        forced-color-adjust: none;
    }
}

/* v2.7 direct Maisie shortcut inside the approved homepage Kids panel. */
.gmb-maisie-corner-link {
    position: absolute;
    right: clamp(16px, 2.1vw, 30px);
    bottom: clamp(16px, 2vw, 28px);
    z-index: 3;
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 10px 16px;
    border: 1px solid rgba(27, 42, 77, 0.2);
    border-radius: 999px;
    background: rgba(250, 246, 238, 0.94);
    color: var(--gmb-navy) !important;
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.1;
    box-shadow: 0 8px 20px rgba(27, 42, 77, 0.16);
    backdrop-filter: blur(7px);
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.gmb-maisie-corner-link:hover,
.gmb-maisie-corner-link:focus-visible {
    transform: translateY(-2px);
    border-color: var(--gmb-gold);
    box-shadow: 0 12px 24px rgba(27, 42, 77, 0.22);
}

.gmb-maisie-corner-link:focus-visible {
    outline: 3px solid var(--gmb-gold-light);
    outline-offset: 3px;
}

.gmb-maisie-corner-link span {
    transition: transform 180ms ease;
}

.gmb-maisie-corner-link:hover span {
    transform: translateX(3px);
}

@media (max-width: 760px) {
    .gmb-maisie-corner-link {
        position: relative;
        right: auto;
        bottom: auto;
        width: calc(100% - 48px);
        margin: 0 24px 26px;
        background: var(--gmb-soft-blue);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gmb-maisie-corner-link,
    .gmb-maisie-corner-link span {
        transition: none !important;
    }
}

/* v2.8 full-panel audience links with independent direct shortcuts */
.gmb-audience-card-link{position:absolute;inset:0;z-index:3;border-radius:inherit}
.gmb-audience-card-link:focus-visible{outline:4px solid var(--gmb-gold);outline-offset:-5px}
.gmb-audience-copy{pointer-events:none}
.gmb-audience-copy a{position:relative;z-index:5;pointer-events:auto}
.gmb-maisie-corner-link,
.gmb-tween-shortcuts { z-index: 6; }

.gmb-tween-shortcuts {
    position: absolute;
    right: clamp(16px, 2.5vw, 34px);
    bottom: clamp(16px, 2.5vw, 30px);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
}

.gmb-stuffed-corner-link,
.gmb-money-corner-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 42px;
    padding: 10px 15px;
    border: 1px solid rgba(250,246,238,.58);
    border-radius: 999px;
    color: #fff !important;
    font-size: .76rem;
    font-weight: 800;
    line-height: 1.2;
    text-align: center;
    box-shadow: 0 10px 24px rgba(0,0,0,.24);
    backdrop-filter: blur(5px);
    transition: transform .18s ease, background .18s ease, color .18s ease;
}

.gmb-stuffed-corner-link { background: rgba(7,26,53,.86); }
.gmb-money-corner-link {
    border-color: rgba(225,201,120,.82);
    background: rgba(194,161,74,.92);
    color: #071a35 !important;
}

.gmb-stuffed-corner-link:hover,
.gmb-stuffed-corner-link:focus-visible,
.gmb-money-corner-link:hover,
.gmb-money-corner-link:focus-visible {
    transform: translateY(-2px);
}
.gmb-stuffed-corner-link:hover,
.gmb-stuffed-corner-link:focus-visible {
    background: #c2a14a;
    color: #071a35 !important;
}
.gmb-money-corner-link:hover,
.gmb-money-corner-link:focus-visible {
    background: #f0d783;
    color: #071a35 !important;
}
.gmb-stuffed-corner-link:focus-visible,
.gmb-money-corner-link:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

@media (max-width: 720px) {
    .gmb-maisie-corner-link { max-width: 100%; text-align: center; }
}
.gmb-audience-card-link{cursor:pointer}


/* v3.1 shared free-book paths */
.gmb-free-online-badge {
    position: absolute;
    z-index: 4;
    top: 12px;
    left: 12px;
    padding: 7px 11px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 999px;
    background: var(--gmb-gold);
    color: var(--gmb-navy-deep);
    box-shadow: 0 8px 18px rgba(27,42,77,.18);
    font-size: .7rem;
    font-weight: 900;
    letter-spacing: .02em;
}
.gmb-free-book-card .gmb-book-cover-wrap,
.gmb-full-free-book .gmb-full-book-cover { position: relative; }
.gmb-card-actions.gmb-free-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 9px;
    width: 100%;
}
.gmb-card-actions.gmb-free-actions .gmb-button { width: 100%; text-align: center; }

/* v3.1 Grace Matthews back-to-top control */
.gmb-back-to-top {
    position: fixed;
    right: max(18px, env(safe-area-inset-right));
    bottom: max(18px, calc(env(safe-area-inset-bottom) + 18px));
    z-index: 9998;
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    padding: 0;
    border: 2px solid var(--gmb-gold);
    border-radius: 50%;
    background: var(--gmb-navy);
    color: var(--gmb-gold-light);
    box-shadow: 0 12px 28px rgba(16,29,59,.28);
    cursor: pointer;
    opacity: 0;
    pointer-events: none;
    transform: translateY(12px);
    transition: opacity .18s ease, transform .18s ease, background .18s ease;
}
.gmb-back-to-top svg { width: 25px; height: 25px; }
.gmb-back-to-top.is-visible { opacity: 1; pointer-events: auto; transform: translateY(0); }
.gmb-back-to-top:hover,
.gmb-back-to-top:focus-visible { background: var(--gmb-navy-deep); outline: 3px solid rgba(225,201,120,.35); outline-offset: 3px; }
body.gmbh-page #scroll-to-top,
body.gmbh-page #back-to-top,
body.gmbh-page .scroll-to-top,
body.gmbh-page .back-to-top:not(.gmb-back-to-top),
body.gmbh-page .scroll-top,
body.gmbh-page .ast-scroll-top-icon,
body.gmbh-page .generate-back-to-top,
body.gmbh-page .ht-scroll-to-top { display: none !important; }
@media (max-width: 680px) {
    .gmb-back-to-top { width: 44px; height: 44px; right: 14px; bottom: max(14px, calc(env(safe-area-inset-bottom) + 14px)); }
}
@media (prefers-reduced-motion: reduce) {
    .gmb-back-to-top { transition: none; }
}


/* v3.2 Dental Health discovery links */
.gmb-dental-center-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 13px;
    color: var(--gmb-navy) !important;
    font-size: .9rem;
    font-weight: 800;
    line-height: 1.35;
}
.gmb-dental-center-link:hover,
.gmb-dental-center-link:focus-visible { color: #80651e !important; }
.gmb-learn-feature .gmb-button-row { align-items: stretch; }
.gmb-learn-feature .gmb-button-row .gmb-button { flex: 1 1 180px; text-align: center; }

/* v3.3 primary navigation adds Freebies; open the compact menu slightly earlier. */
@media (max-width: 1280px) {
    .gmb-menu-toggle { display: inline-flex; }
    .gmb-primary-nav {
        position: fixed;
        top: 82px;
        right: 18px;
        left: 18px;
        display: grid;
        max-height: calc(100vh - 104px);
        gap: 0;
        padding: 14px;
        overflow-y: auto;
        border: 1px solid var(--gmb-border);
        border-radius: 18px;
        background: var(--gmb-cream);
        box-shadow: var(--gmb-shadow);
        opacity: 0;
        pointer-events: none;
        transform: translateY(-12px);
        transition: opacity 180ms ease, transform 180ms ease;
    }
    .gmb-primary-nav.is-open { opacity: 1; pointer-events: auto; transform: translateY(0); }
    .gmb-primary-nav > a:not(.gmb-button) { padding: 13px 12px; border-bottom: 1px solid rgba(27,42,77,.08); }
    .gmb-primary-nav > a:not(.gmb-button)::after { display: none; }
    .gmb-primary-nav .gmb-button { margin-top: 12px; }
    .gmb-primary-nav > a.is-current:not(.gmb-button) { border-radius: 9px; background: rgba(194,161,74,.12); }
    body.gmb-menu-open { overflow: hidden; }
}
@media (max-width: 640px) { .gmb-primary-nav { top: 70px; } }

/* v3.6.1 mobile Tweens & Teens shortcuts
   Both series paths become full-width items below the main audience button. */
@media (max-width: 760px) {
    .gmb-tween-shortcuts {
        position: relative;
        right: auto;
        bottom: auto;
        display: grid;
        width: calc(100% - 48px);
        margin: 0 24px 26px;
        gap: 10px;
    }

    .gmb-stuffed-corner-link,
    .gmb-money-corner-link {
        width: 100%;
        min-height: 50px;
        font-size: .9rem;
    }
}


@media (max-width: 900px) {
    .gmb-hero-art {
        min-height: 430px;
    }

    .gmb-door-stage {
        --gmb-door-width: min(78vw, 420px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gmb-door-video {
        display: none;
    }
}

/* Forest Runner launch system — v3.9 */
.gmb-launch-bar{position:relative;z-index:1001;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.62rem 3rem .62rem 1rem;background:linear-gradient(90deg,#101a33,#1b2a4d 55%,#263e68);color:#fff;border-bottom:1px solid rgba(194,161,74,.65);font-size:.92rem}.gmb-launch-bar a{color:#fff;text-decoration:none;text-align:center}.gmb-launch-bar strong{color:#f6d875;letter-spacing:.05em}.gmb-launch-bar button{position:absolute;right:.7rem;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:1.35rem;line-height:1;cursor:pointer}.gmb-launch-bar button:hover,.gmb-launch-bar button:focus-visible{background:#fff;color:#1b2a4d}.gmb-launch-bar.is-closed{display:none}.gmb-home-forest-launch{padding-top:clamp(2.5rem,5vw,4.5rem);padding-bottom:clamp(2.5rem,5vw,4.5rem);background:#0d172b}.gmb-forest-feature{position:relative;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr);overflow:hidden;border-radius:28px;background:#111c33;color:#fff;border:1px solid rgba(194,161,74,.62);box-shadow:0 28px 70px rgba(4,11,24,.34)}.gmb-forest-image-link{display:block;min-height:410px;overflow:hidden}.gmb-forest-image-link picture,.gmb-forest-image-link img{display:block;width:100%;height:100%}.gmb-forest-image-link img{object-fit:cover;object-position:center;transition:transform .45s ease}.gmb-forest-image-link:hover img,.gmb-forest-image-link:focus-visible img{transform:scale(1.018)}.gmb-forest-feature-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.6rem,4vw,3.3rem);background:radial-gradient(circle at 90% 10%,rgba(194,161,74,.18),transparent 38%),linear-gradient(150deg,#172642,#0b1427)}.gmb-forest-feature-copy h2{color:#fff;font-size:clamp(2rem,4vw,3.25rem);line-height:1.02;margin:.3rem 0 .75rem}.gmb-forest-feature-copy>p{color:#dfe7f5}.gmb-forest-badge{align-self:flex-start;margin:0!important;padding:.42rem .72rem;border:1px solid rgba(246,216,117,.7);border-radius:999px;color:#f6d875!important;font-weight:800;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem}.gmb-forest-tagline{font-weight:800;font-size:1.1rem;color:#fff!important}.gmb-forest-support{margin:.85rem 0 0!important;font-size:.88rem}.gmb-forest-topten{font-weight:800;color:#f6d875!important}.gmb-forest-play-button{background:#c2a14a!important;color:#111c33!important;border-color:#f6d875!important}.gmb-forest-play-button:hover,.gmb-forest-play-button:focus-visible{background:#f0d47b!important}.gmbs-forest-runner,.gmb-tweens-forest,.gmbf-forest-feature,.gmbg-forest-launch{background:#0d172b}.gmbs-forest-runner .gmb-container,.gmb-tweens-forest .gmb-container,.gmbf-forest-feature .gmb-container{max-width:1280px}
@media(max-width:920px){.gmb-forest-feature{grid-template-columns:1fr}.gmb-forest-image-link{min-height:340px}.gmb-forest-feature-copy{padding:2rem}}
@media(max-width:620px){.gmb-launch-bar{font-size:.78rem;padding-left:.75rem;padding-right:2.8rem}.gmb-launch-bar em{display:inline}.gmb-forest-feature{border-radius:20px}.gmb-forest-image-link{min-height:360px}.gmb-forest-image-link img{object-position:center}.gmb-forest-feature-copy{padding:1.4rem}.gmb-forest-feature-copy .gmb-button-row{display:grid}.gmb-forest-feature-copy .gmb-button{width:100%;text-align:center}.gmb-home-forest-launch{padding-inline:0}}

/* v3.9.2 header-logo and homepage-promotion corrections */

.gmb-home-tweens-actions {
    align-items: stretch;
}

.gmb-home-tweens-actions .gmb-button {
    position: relative;
    z-index: 7;
}

/* The Stuffed Creatures hub keeps Forest Runner prominent without a tall empty card. */
.gmbs-forest-runner {
    padding-top: clamp(1.75rem, 3vw, 2.75rem);
    padding-bottom: clamp(1.75rem, 3vw, 2.75rem);
}

.gmbs-forest-runner .gmb-forest-feature-compact {
    height: clamp(335px, 30vw, 390px);
    grid-template-columns: minmax(0, 1.48fr) minmax(300px, .72fr);
    border-radius: 22px;
    background: #071225;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-image-link {
    min-height: 0;
    height: 100%;
    align-self: stretch;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-image-link picture,
.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-image-link img {
    width: 100%;
    height: 100%;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-image-link img {
    object-fit: cover;
    object-position: center;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-feature-copy {
    padding: clamp(1.35rem, 2.2vw, 2rem);
    background: radial-gradient(circle at 92% 6%, rgba(194, 161, 74, .12), transparent 34%), linear-gradient(150deg, #101d36, #061021 78%);
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-feature-copy h2 {
    margin: .28rem 0 .58rem;
    color: #fff !important;
    font-size: clamp(1.7rem, 2.5vw, 2.35rem);
    line-height: 1.05;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-feature-copy > p {
    margin-top: .45rem;
    margin-bottom: .45rem;
    color: #e8eef8 !important;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-topten {
    color: #f6d875 !important;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-button-row {
    margin-top: .75rem;
    gap: .65rem;
}

.gmbs-forest-runner .gmb-forest-feature-compact .gmb-button {
    min-height: 44px;
    padding: 11px 16px;
    font-size: .9rem;
}

/* New artwork is intentionally landscape on mobile so Forest Runner cards stay compact. */
@media (max-width: 920px) {
    .gmb-forest-image-link {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .gmbs-forest-runner .gmb-forest-feature-compact {
        height: auto;
        grid-template-columns: 1fr;
    }

    .gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-image-link {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 760px) {
    .gmb-home-tweens-actions {
        display: grid;
        width: 100%;
    }

    .gmb-home-tweens-actions .gmb-button {
        width: 100%;
        text-align: center;
    }
}

@media (max-width: 620px) {
    .gmb-forest-image-link {
        min-height: 0;
        aspect-ratio: 16 / 9;
    }

    .gmbs-forest-runner .gmb-forest-feature-compact .gmb-forest-feature-copy {
        padding: 1.25rem;
    }
}

@media (min-width: 921px) {
    .gmbs-forest-runner .gmb-forest-feature-compact .gmb-button-row {
        flex-wrap: nowrap;
    }

    .gmbs-forest-runner .gmb-forest-feature-compact .gmb-button {
        min-width: 0;
        padding: 10px 11px;
        font-size: .78rem;
        white-space: nowrap;
    }
}
