/* Runtime-safe fixes for the static WordPress export. */

/* Elementor normally reveals these menus with JavaScript. Keep that behavior
   in the static build with hover, keyboard focus, and an explicit open class. */
@media (min-width: 1025px) {
  .elementor-nav-menu--main,
  .elementor-nav-menu--main .elementor-nav-menu,
  .elementor-location-header {
    overflow: visible !important;
  }

  .elementor-nav-menu--main .menu-item-has-children {
    position: relative;
  }

  .elementor-nav-menu--main .menu-item-has-children > .sub-menu {
    display: block !important;
    position: absolute;
    top: 100% !important;
    left: 0 !important;
    min-width: 240px;
    margin: 0;
    padding: 8px 0;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 12px 30px rgba(12, 49, 79, 0.16);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
    z-index: 9999;
  }

  /* Parent links need a visible cue that they open a dropdown. */
  .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .elementor-item {
    padding-right: 28px !important;
  }

  .elementor-nav-menu--main > .elementor-nav-menu > .menu-item-has-children > .elementor-item::after {
    content: "" !important;
    position: relative !important;
    top: -2px;
    display: block !important;
    width: 7px !important;
    height: 7px !important;
    margin: 0 0 0 10px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    color: currentColor;
    align-self: center;
    opacity: 1 !important;
    transform: rotate(45deg) !important;
  }

  .elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
  .elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu,
  .elementor-nav-menu--main .menu-item-has-children.is-submenu-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
  }

  .elementor-nav-menu--main .sub-menu .menu-item-has-children > .sub-menu {
    top: -8px !important;
    left: 100% !important;
  }

  .elementor-nav-menu--main .sub-menu a {
    width: 100%;
    color: #0c314f;
    background: #fff;
    white-space: normal !important;
    overflow-wrap: anywhere;
    height: auto;
    min-height: 52px;
  }

  .elementor-nav-menu--main .sub-menu a:hover,
  .elementor-nav-menu--main .sub-menu a:focus {
    color: #0c314f;
    background: #e9f8f6;
  }
}

/* Prevent the footer SVGs from inheriting oversized global image dimensions. */
.elementor-location-footer .elementor-widget-social-icons .elementor-social-icons-wrapper {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.elementor-location-footer .elementor-widget-social-icons .elementor-grid-item {
  display: flex;
}

.elementor-location-footer .elementor-widget-social-icons .elementor-social-icon {
  display: inline-flex !important;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  padding: 0 !important;
  align-items: center;
  justify-content: center;
  font-size: 28px !important;
  line-height: 1 !important;
}

.elementor-location-footer .elementor-widget-social-icons .elementor-social-icon svg {
  display: block;
  width: 28px !important;
  height: 28px !important;
  max-width: 28px !important;
  max-height: 28px !important;
  flex: 0 0 28px;
}

@media (max-width: 767px) {
  .elementor-location-footer .elementor-widget-social-icons .elementor-social-icons-wrapper {
    gap: 14px;
  }

  .elementor-location-footer .elementor-widget-social-icons .elementor-social-icon {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    font-size: 24px !important;
  }

  .elementor-location-footer .elementor-widget-social-icons .elementor-social-icon svg {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
    flex-basis: 24px;
  }
}

/* The footer motif is a 3342 x 61px source image. Scale it down uniformly
   instead of cropping it, while keeping the duplicated marquee seamless. */
.elementor-location-footer .elementor-element-74007818 > .elementor-widget-container {
  height: 100%;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
}

.elementor-location-footer .elementor-element-74007818 .qodef-image-marquee {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-end;
  line-height: 0;
}

.elementor-location-footer .elementor-element-74007818 .qodef-m-content.qodef--desktop {
  height: 40px !important;
}

.elementor-location-footer .elementor-element-74007818 .qodef-m-content.qodef--desktop .qodef-m-image {
  width: 2191px !important;
  height: 40px !important;
  background-size: 2191px 40px !important;
}

@media (max-width: 680px) {
  .elementor-location-footer .elementor-element-74007818 .qodef-m-content.qodef--mobile {
    height: 24px !important;
  }

  .elementor-location-footer .elementor-element-74007818 .qodef-m-content.qodef--mobile .qodef-m-image {
    width: 1315px !important;
    height: 24px !important;
    background-size: 1315px 24px !important;
  }
}

/* The footer uses one pixel-exact asset made from two stitched motif copies.
   Animate by one half-image so the loop has no visible seam. */
.elementor-location-footer.elementor-45 .elementor-element.elementor-element-2bbcc197 {
  --min-height: 50px !important;
  --footer-motif-step: 496.5px;
  min-height: 50px !important;
  background-image: url("../images/2023/09/gb-motif-double.png") !important;
  background-repeat: repeat-x !important;
  background-position: 0 100%;
  background-size: 993px 50px !important;
  animation: pelican-footer-motif-scroll 80s linear infinite;
}

@keyframes pelican-footer-motif-scroll {
  from {
    background-position: 0 100%;
  }
  to {
    background-position: calc(-1 * var(--footer-motif-step)) 100%;
  }
}

/* Curriculum tiles use one consistent overlay so both headings and body copy
   remain readable regardless of the underlying photograph. */
.elementor-55 .elementor-element.elementor-element-4d0b2ba1,
.elementor-55 .elementor-element.elementor-element-20ebcc27,
.elementor-55 .elementor-element.elementor-element-6824c47e,
.elementor-55 .elementor-element.elementor-element-6f8e229b {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.elementor-55 .elementor-element.elementor-element-6824c47e {
  background-image: url("../images/2026-08-secondary-curriculum.webp") !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

.elementor-55 .elementor-element.elementor-element-4d0b2ba1::before,
.elementor-55 .elementor-element.elementor-element-20ebcc27::before,
.elementor-55 .elementor-element.elementor-element-6824c47e::before,
.elementor-55 .elementor-element.elementor-element-6f8e229b::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background: linear-gradient(180deg, rgba(3, 25, 42, 0.68) 0%, rgba(3, 25, 42, 0.82) 100%) !important;
  opacity: 1 !important;
  pointer-events: none;
}

.elementor-55 .elementor-element.elementor-element-4d0b2ba1::after,
.elementor-55 .elementor-element.elementor-element-20ebcc27::after,
.elementor-55 .elementor-element.elementor-element-6824c47e::after,
.elementor-55 .elementor-element.elementor-element-6f8e229b::after {
  content: none !important;
}

.elementor-55 .elementor-element.elementor-element-4d0b2ba1 .e-con-inner,
.elementor-55 .elementor-element.elementor-element-20ebcc27 .e-con-inner,
.elementor-55 .elementor-element.elementor-element-6824c47e .e-con-inner,
.elementor-55 .elementor-element.elementor-element-6f8e229b .e-con-inner {
  position: relative;
  z-index: 2;
}

.elementor-55 .elementor-element.elementor-element-c2629b1 > a .elementor-heading-title,
.elementor-55 .elementor-element.elementor-element-c2629b1 > a .elementor-widget-text-editor,
.elementor-55 .elementor-element.elementor-element-c2629b1 > a .elementor-widget-text-editor p,
.elementor-55 .elementor-element.elementor-element-c2629b1 > a .elementor-widget-text-editor span {
  color: #fff !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}

@media (max-width: 767px) {
  .elementor-location-footer.elementor-45 .elementor-element.elementor-element-2bbcc197 {
    --min-height: 36px !important;
    --footer-motif-step: 357.48px;
    min-height: 36px !important;
    background-size: 714.96px 36px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .elementor-location-footer.elementor-45 .elementor-element.elementor-element-2bbcc197 {
    animation: none;
  }
}
/* The WordPress entrance script is absent in the static build, so keep the
   Early Years subject showcase visible instead of leaving it pre-animation. */
#s-subjects .qodef-qi-item-showcase.qodef-qi--has-appear {
  visibility: visible !important;
}

#s-subjects .qodef-qi-item-showcase.qodef-qi--has-appear .qodef-m-image,
#s-subjects .qodef-qi-item-showcase.qodef-qi--has-appear .qodef-m-item {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

/* Keep every line of the left hero heading anchored to the same right edge.
   DISCOVER is wider than Elementor's original flex column, so the column must
   be wide enough to contain it instead of allowing the word to overflow. */
@media (min-width: 1201px) {
  .home .elementor-element-1659bc5a {
    flex-basis: 270px !important;
    width: 270px !important;
  }
}

@media (min-width: 1025px) and (max-width: 1200px) {
  .home .elementor-element-1659bc5a {
    flex-basis: 230px !important;
    width: 230px !important;
  }

  .home .elementor-element-faf8f13 .elementor-heading-title {
    font-size: 68px !important;
    line-height: 56px !important;
  }
}

.home .elementor-element-faf8f13,
.home .elementor-element-faf8f13 .elementor-heading-title {
  width: 100% !important;
  text-align: right !important;
}

/* Static, self-contained hero typewriter. It does not use the old WordPress
   typeout target, which was being cleared after the page loaded. */
.home .pgs-hero-typeout .qodef-m-text {
  color: var(--e-global-color-primary);
  font-family: "Barlow Condensed", barlow, sans-serif;
  font-size: 80px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 4.5rem;
  text-transform: uppercase;
  word-spacing: 0;
  margin: 0;
}

.home .pgs-typeout-holder {
  color: #1a968c !important;
}

.home .pgs-typeout::after {
  animation: pgs-typeout-cursor 800ms steps(1, end) infinite;
  content: "|";
  margin-left: 0.05em;
}

@keyframes pgs-typeout-cursor {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .home .pgs-typeout::after {
    animation: none;
  }
}

@media (min-width: 1025px) and (max-width: 1200px) {
  .home .pgs-hero-typeout .qodef-m-text {
    font-size: 68px;
    line-height: 56px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .home .pgs-hero-typeout {
    text-align: right;
  }

  .home .pgs-hero-typeout .qodef-m-text {
    font-size: 60px;
    line-height: 56px;
  }
}

@media (max-width: 767px) {
  .home .pgs-hero-typeout {
    text-align: right;
  }

  .home .pgs-hero-typeout .qodef-m-text {
    font-size: 52px;
    line-height: 56px;
  }
}
