#gmHeroCarousel .gm-hero-slider{display:grid;touch-action:pan-y}
#gmHeroCarousel .gm-hero-slide{grid-area:1/1;min-width:0;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .5s ease,transform .5s ease,visibility .5s}
#gmHeroCarousel .gm-hero-slide.is-current{opacity:1;visibility:visible;pointer-events:auto;transform:none;z-index:1}
#gmHeroCarousel .gm-hero-slide .gm-hero-grid{height:100%}
#gmHeroCarousel .gm-hero-controls{display:flex;justify-content:flex-start;align-items:center;gap:12px;position:relative;z-index:3;margin-top:32px}
#gmHeroCarousel .gm-hero-control{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #dce3f7;border-radius:50%;color:var(--color-teal,#4a5bf7);background:#fff;cursor:pointer;transition:background .2s,color .2s}
#gmHeroCarousel .gm-hero-control:hover{background:var(--color-teal,#4a5bf7);color:#fff}
#gmHeroCarousel .gm-hero-control svg{width:18px;height:18px}
#gmHeroCarousel .gm-hero-dots{display:flex;align-items:center;gap:8px;margin:0 6px}
#gmHeroCarousel .gm-hero-dot{width:9px;height:9px;padding:0;border:0;border-radius:99px;background:#bcc7e8;cursor:pointer;transition:width .2s,background .2s}
#gmHeroCarousel .gm-hero-dot[aria-current=true]{width:28px;background:var(--color-teal,#4a5bf7)}
#gmHeroCarousel .gm-hero-dot:focus-visible{outline-offset:5px}
@media(max-width:767px){#gmHeroCarousel .gm-hero-controls{justify-content:center;margin-top:26px}#gmHeroCarousel .gm-hero-slide .gm-hero-grid{height:auto;align-content:start}#gmHeroCarousel .gm-hero-stat-val{max-width:185px}#gmHeroCarousel .gm-hero-slide .gm-hero-headline{font-size:clamp(30px,8.5vw,39px)}}
@media(prefers-reduced-motion:reduce){#gmHeroCarousel .gm-hero-slide{transition:none;transform:none}}

/* Center the native School Demo dialog despite the global margin reset. */
dialog.gm-schedule {
  position: fixed;
  inset: 0;
  margin: auto;
  box-sizing: border-box;
  width: min(480px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  height: fit-content;
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
@media (max-width: 540px) {
  dialog.gm-schedule { padding: 28px 22px; }
}
