/* SchoolDrive CMS 3.1.9 — Add-ons top-menu typography alignment.
   The Add-ons trigger inherits the exact typography of the main navigation. */
.cms-addons-nav-v313{position:relative;display:flex;align-self:stretch;align-items:stretch;flex:0 0 auto}
.main-nav-v163 .cms-addons-nav-v313__trigger{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  flex:0 0 auto!important;height:auto!important;margin:0!important;
  padding:13px clamp(8px,.82vw,16px) 12px!important;
  border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;
  background:transparent!important;color:#fff!important;
  font-family:inherit!important;font-size:clamp(.66rem,.73vw,.78rem)!important;font-weight:400!important;line-height:inherit!important;
  vertical-align:middle!important;text-decoration:none!important;white-space:nowrap!important;cursor:pointer!important;box-shadow:none!important
}
.main-nav-v163 .cms-addons-nav-v313__trigger .arrow{display:inline-flex!important;align-items:center!important;justify-content:center!important;margin-left:.25rem!important;line-height:1!important;vertical-align:middle!important}
.main-nav-v163 .cms-addons-nav-v313__trigger:hover,
.main-nav-v163 .cms-addons-nav-v313__trigger:focus-visible,
.cms-addons-nav-v313.is-open .cms-addons-nav-v313__trigger{
  background:#0a416f!important;color:#fff!important;border-bottom-color:#30aaf5!important
}
.cms-addons-nav-v313__menu{display:none;position:absolute;z-index:10000;top:100%;right:0;min-width:250px;padding:.45rem;background:#052e57;border-radius:0 0 16px 16px;box-shadow:0 18px 38px rgba(0,25,54,.26);border:1px solid rgba(255,255,255,.12);border-top:0}
.cms-addons-nav-v313.is-open .cms-addons-nav-v313__menu{display:grid}
.cms-addons-nav-v313__menu[hidden]{display:none!important}
.main-nav-v163 .cms-addons-nav-v313__item{display:block!important;width:100%!important;padding:.72rem .82rem!important;border-radius:8px!important;background:transparent!important;color:#fff!important;font:inherit!important;font-size:.76rem!important;font-weight:700!important;line-height:1.25!important;text-decoration:none!important;white-space:normal!important}
.main-nav-v163 .cms-addons-nav-v313__item:hover,.main-nav-v163 .cms-addons-nav-v313__item:focus-visible{background:#0a416f!important;color:#fff!important}
.cms-addons-mobile-v313__heading{font-weight:inherit!important}.cms-addons-mobile-v313__item{padding-left:1.7rem!important}

.cms-addon-modal-open-v313{overflow:hidden!important}
.cms-addon-modal-v313{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:24px 40px;opacity:0;transition:opacity .18s ease}
.cms-addon-modal-v313[hidden]{display:none!important}.cms-addon-modal-v313.is-open{opacity:1}
.cms-addon-modal-v313__backdrop{position:absolute;inset:0;background:rgba(2,24,48,.76);backdrop-filter:blur(3px)}

/* 3.1.5 RESTORE: compact width + content-driven height, no 98vw desktop/tablet stretch. */
.cms-addon-modal-v313__panel{position:relative;z-index:1;width:min(1380px,calc(100vw - 80px));height:auto;max-height:calc(100vh - 48px);display:grid;grid-template-rows:auto auto auto auto;background:#f5fafc;border-radius:18px;overflow:hidden;box-shadow:0 24px 70px rgba(0,22,48,.36);border:1px solid rgba(255,255,255,.45)}
.cms-addon-modal-v313__header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;background:#052e57;color:#fff}
.cms-addon-modal-v313__header h2{margin:0;color:#fff;font-size:clamp(1.05rem,2vw,1.4rem);line-height:1.2}
.cms-addon-modal-v313__close{flex:0 0 auto;width:42px;height:42px;border:1px solid rgba(255,255,255,.35);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;font:700 1.8rem/1 system-ui;cursor:pointer}
.cms-addon-modal-v313__close:hover,.cms-addon-modal-v313__close:focus-visible{background:#0a416f;outline:2px solid #30aaf5;outline-offset:2px}
.cms-addon-modal-v313__intro{padding:.75rem 1rem;background:#f7fbfd;border-bottom:1px solid #d7e8f0;color:#18394f;max-height:130px;overflow:auto;line-height:1.5}
.cms-addon-modal-v313__intro[hidden]{display:none!important}.cms-addon-modal-v313__intro>:first-child{margin-top:0}.cms-addon-modal-v313__intro>:last-child{margin-bottom:0}
.cms-addon-modal-v313__framewrap{min-height:0;height:clamp(540px,calc(100vh - 190px),760px);background:#fff;overflow:hidden}
.cms-addon-modal-v313__panel.has-intro .cms-addon-modal-v313__framewrap{height:clamp(430px,calc(100vh - 310px),650px)}
.cms-addon-modal-v313__frame{display:block;width:100%;height:100%;min-height:0;border:0;background:#fff}
.cms-addon-modal-v313__footer{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;gap:.75rem;padding:.8rem 1rem;background:#fff;border-top:1px solid #d7e8f0;min-height:66px}
.cms-addon-modal-v313__slot{display:flex;align-items:center;min-width:0}.cms-addon-modal-v313__slot.is-left{justify-content:flex-start}.cms-addon-modal-v313__slot.is-center{justify-content:center}.cms-addon-modal-v313__slot.is-right{justify-content:flex-end}
.cms-addon-modal-v313__button{display:inline-flex;align-items:center;justify-content:center;max-width:100%;padding:.65rem .9rem;border:0;border-radius:9px;background:#087da3;color:#fff!important;text-decoration:none!important;font:850 .93rem/1.2 system-ui;cursor:pointer;white-space:normal;text-align:center}
.cms-addon-modal-v313__button:hover,.cms-addon-modal-v313__button:focus-visible{background:#066b8c;outline:2px solid #30aaf5;outline-offset:2px}
.cms-addon-modal-v313__footer[hidden]{display:none!important}

@media(max-width:1450px) and (min-width:901px){
  .main-nav-v163 .cms-addons-nav-v313__trigger{font-size:.66rem!important;padding-left:7px!important;padding-right:7px!important}
  .main-nav-v163 .cms-addons-nav-v313__item{font-size:.66rem!important}
}
@media(max-width:900px){.cms-addons-nav-v313{display:none!important}.cms-addon-modal-v313{padding:20px 32px}.cms-addon-modal-v313__panel{width:calc(100vw - 64px);max-width:1380px;max-height:calc(100vh - 40px)}.cms-addon-modal-v313__framewrap{height:clamp(500px,calc(100vh - 175px),720px)}.cms-addon-modal-v313__panel.has-intro .cms-addon-modal-v313__framewrap{height:clamp(390px,calc(100vh - 295px),610px)}}
@media(max-width:620px){.cms-addon-modal-v313{padding:6px}.cms-addon-modal-v313__panel{width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:12px}.cms-addon-modal-v313__framewrap{height:clamp(360px,calc(100vh - 205px),620px)}.cms-addon-modal-v313__panel.has-intro .cms-addon-modal-v313__framewrap{height:clamp(300px,calc(100vh - 305px),520px)}.cms-addon-modal-v313__footer{grid-template-columns:1fr;gap:.5rem}.cms-addon-modal-v313__slot,.cms-addon-modal-v313__slot.is-left,.cms-addon-modal-v313__slot.is-center,.cms-addon-modal-v313__slot.is-right{justify-content:stretch}.cms-addon-modal-v313__button{width:100%}}

.cms-addons-mobile-v318__list[hidden]{display:none!important}
.cms-addons-mobile-v318__list{display:grid}


/* 3.1.12 authoritative menu parity: same hover underline and geometry as all top-level anchors. */
.main-nav-v163 .cms-addons-nav-v313__trigger{
  padding:13px clamp(8px,.82vw,16px) 12px!important;
  font-size:clamp(.66rem,.73vw,.78rem)!important;
  font-weight:400!important;
  border-bottom:3px solid transparent!important;
}
.main-nav-v163 .cms-addons-nav-v313__trigger:hover,
.main-nav-v163 .cms-addons-nav-v313__trigger:focus-visible,
.cms-addons-nav-v313.is-open .cms-addons-nav-v313__trigger{
  background:#0a416f!important;
  border-bottom-color:#30aaf5!important;
}
@media(max-width:1450px) and (min-width:901px){
  .main-nav-v163 .cms-addons-nav-v313__trigger{font-size:.66rem!important;padding-left:7px!important;padding-right:7px!important}
}

/* 3.2.6 — Add-ons in portrait/mobile drawer. */
@media(max-width:900px){
  .drawer-v163 .cms-addons-mobile-v318{display:block!important;width:100%}
  .drawer-v163 .cms-addons-mobile-v313__heading{display:flex!important;align-items:center!important;justify-content:space-between!important;color:#fff!important;text-decoration:none!important;padding:12px 20px!important;border-top:1px solid rgba(255,255,255,.08)!important;font-size:.9rem!important;font-weight:400!important;background:transparent!important}
  .drawer-v163 .cms-addons-mobile-v313__heading:hover,.drawer-v163 .cms-addons-mobile-v313__heading[aria-expanded="true"]{background:#0b4777!important}
  .drawer-v163 .cms-addons-mobile-v318__list{display:grid!important;background:#052e57}
  .drawer-v163 .cms-addons-mobile-v318__list[hidden]{display:none!important}
  .drawer-v163 .cms-addons-mobile-v313__item{display:block!important;color:#fff!important;text-decoration:none!important;padding:11px 20px 11px 36px!important;border-top:1px solid rgba(255,255,255,.06)!important;font-size:.84rem!important;background:#052e57!important}
  .drawer-v163 .cms-addons-mobile-v313__item:hover{background:#0b4777!important}
}


/* ==========================================================
   3.3.1 — Apprenticeship full-image Hero + Director CV card
   ========================================================== */
.static-hero-v320[data-static-hero="apprenticeship"]{
  aspect-ratio:auto!important;
  min-height:0!important;
  background:transparent!important;
}
.static-hero-v320[data-static-hero="apprenticeship"] .specialty-slide{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
  display:none!important;
}
.static-hero-v320[data-static-hero="apprenticeship"] .specialty-slide.visible,
.static-hero-v320[data-static-hero="apprenticeship"] .specialty-slide.active{
  display:block!important;
}
.apprenticeship-main-visual img{
  width:100%!important;
  height:auto!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center!important;
}
.apprenticeship-main-visual .apprenticeship-main-caption{
  position:static!important;
  border-radius:0!important;
}
.director-photo-float figcaption .director-card-cv-link{
  display:block;
  margin:16px 0 0;
  padding:10px 18px;
  border:1px solid #a8deef;
  border-radius:999px;
  background:#e7f7fc;
  color:#0085aa;
  text-decoration:none;
  font-weight:800;
  line-height:1.25;
}
.director-photo-float figcaption .director-card-cv-link:hover,
.director-photo-float figcaption .director-card-cv-link:focus-visible{
  background:#d8f1f9;
  text-decoration:none;
}
.welcome-actions .director-cv-link{display:none!important}


/* ==========================================================
   SchoolDrive CMS 3.3.2 — Add-ons FULLSIZE popup restore
   Authoritative override: restores the large modal geometry.
   ========================================================== */
.cms-addon-modal-v313{
  padding:36px 48px!important;
  align-items:center!important;
  justify-items:center!important;
}
.cms-addon-modal-v313__panel{
  width:calc(100vw - 96px)!important;
  max-width:1600px!important;
  height:calc(100vh - 72px)!important;
  height:calc(100dvh - 72px)!important;
  max-height:none!important;
  min-height:620px!important;
  display:grid!important;
  grid-template-rows:auto auto minmax(0,1fr) auto!important;
  overflow:hidden!important;
}
.cms-addon-modal-v313__header{
  min-height:70px!important;
  padding:14px 18px!important;
}
.cms-addon-modal-v313__intro{
  max-height:150px!important;
}
.cms-addon-modal-v313__framewrap,
.cms-addon-modal-v313__panel.has-intro .cms-addon-modal-v313__framewrap{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
}
.cms-addon-modal-v313__frame{
  width:100%!important;
  height:100%!important;
  min-height:100%!important;
  border:0!important;
}
.cms-addon-modal-v313__footer{
  min-height:74px!important;
  padding:12px 16px!important;
}

@media(max-width:1100px){
  .cms-addon-modal-v313{padding:20px!important}
  .cms-addon-modal-v313__panel{
    width:calc(100vw - 40px)!important;
    height:calc(100vh - 40px)!important;
    height:calc(100dvh - 40px)!important;
    min-height:0!important;
  }
}
@media(max-width:620px){
  .cms-addon-modal-v313{padding:6px!important}
  .cms-addon-modal-v313__panel{
    width:calc(100vw - 12px)!important;
    height:calc(100vh - 12px)!important;
    height:calc(100dvh - 12px)!important;
    max-height:none!important;
    min-height:0!important;
    border-radius:12px!important;
  }
  .cms-addon-modal-v313__header{min-height:58px!important;padding:10px 12px!important}
  .cms-addon-modal-v313__footer{min-height:0!important}
}


/* ============================================================
   SchoolDrive CMS 3.3.10 — mobile / landscape hierarchical menu
   ============================================================ */

/* Parent menu controls use the same visual language as normal nav links. */
.main-nav-v163 > .cms-menu-node-v3310{
  position:relative;display:flex;align-self:stretch;align-items:stretch;flex:0 0 auto;
}
.main-nav-v163 .cms-menu-root-trigger-v3310{
  display:flex;align-items:center;justify-content:center;gap:.28rem;
  border:0;border-bottom:3px solid transparent;background:transparent;color:#fff;
  white-space:nowrap;padding:13px clamp(8px,.82vw,16px) 12px;
  font:inherit;font-size:clamp(.66rem,.73vw,.78rem);cursor:pointer;
}
.main-nav-v163 .cms-menu-root-trigger-v3310:hover,
.main-nav-v163 .cms-menu-root-trigger-v3310[aria-expanded="true"]{
  background:#0a416f;border-bottom-color:#30aafd;
}
.cms-menu-arrow-v3310{display:inline-block;transition:transform .18s ease}
[aria-expanded="true"]>.cms-menu-arrow-v3310,
[aria-expanded="true"] .cms-menu-arrow-v3310{transform:rotate(180deg)}

.cms-menu-submenu-v3310{
  position:absolute;top:100%;left:0;z-index:10020;
  min-width:290px;max-width:min(390px,92vw);
  padding:.42rem;background:#052e57;border:1px solid rgba(255,255,255,.12);
  border-top:0;border-radius:0 0 14px 14px;
  box-shadow:0 18px 38px rgba(0,25,54,.28);
}
.cms-menu-submenu-v3310[hidden]{display:none!important}
.cms-menu-submenu-v3310:not([hidden]){display:grid!important}
.cms-menu-submenu-v3310 .cms-menu-node-v3310{display:block;width:100%}

/* Level-2/3 expand below the selected item, never as a fly-out. */
.cms-menu-submenu-v3310 .cms-menu-submenu-v3310{
  position:static;min-width:0;max-width:none;margin:2px 0 5px;padding:0;
  border:0;border-radius:8px;box-shadow:none;background:#041f3c;
}
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-leaf-v3310,
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-child-trigger-v3310{
  display:flex!important;align-items:center;justify-content:space-between;gap:10px;
  width:100%!important;box-sizing:border-box!important;
  border:0!important;border-bottom:1px solid rgba(255,255,255,.07)!important;
  background:transparent!important;color:#fff!important;text-align:left!important;
  white-space:normal!important;text-decoration:none!important;
  padding:11px 13px!important;font:inherit!important;font-size:.74rem!important;
  line-height:1.3!important;cursor:pointer!important;
}
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-leaf-v3310:hover,
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-child-trigger-v3310:hover,
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-child-trigger-v3310[aria-expanded="true"]{
  background:#0b4777!important;
}
.main-nav-v163 .cms-menu-submenu-v3310 .cms-menu-depth-3-v3310{
  padding-left:27px!important;background:rgba(0,0,0,.08)!important;
}
.main-nav-v163 .cms-menu-overview-v3310{
  font-weight:800!important;color:#8fe7ff!important;
}

/* Drawer: parents are buttons, therefore header-v163 will not close the drawer
   when the user only wants to expand level 2 or 3. */
.drawer-v163 .cms-drawer-node-v3310{display:block;width:100%}
.drawer-v163 .cms-drawer-toggle-v3310,
.drawer-v163 .cms-addons-mobile-v313__heading{
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  width:100%!important;box-sizing:border-box!important;
  border:0!important;border-top:1px solid rgba(255,255,255,.08)!important;
  border-radius:0!important;background:transparent!important;color:#fff!important;
  text-align:left!important;text-decoration:none!important;
  padding:12px 20px!important;font:inherit!important;font-size:.9rem!important;
  font-weight:400!important;cursor:pointer!important;
}
.drawer-v163 .cms-drawer-toggle-v3310:hover,
.drawer-v163 .cms-drawer-toggle-v3310[aria-expanded="true"],
.drawer-v163 .cms-addons-mobile-v313__heading:hover,
.drawer-v163 .cms-addons-mobile-v313__heading[aria-expanded="true"]{
  background:#0b4777!important;
}
.drawer-v163 .cms-drawer-submenu-v3310[hidden]{display:none!important}
.drawer-v163 .cms-drawer-submenu-v3310:not([hidden]){display:grid!important}
.drawer-v163 .cms-drawer-submenu-v3310{
  width:100%;background:#052744;
}
.drawer-v163 .cms-drawer-submenu-v3310 .cms-drawer-toggle-v3310,
.drawer-v163 .cms-drawer-submenu-v3310 .cms-drawer-leaf-v3310{
  font-size:.86rem!important;
}
.drawer-v163 .cms-drawer-depth-2-v3310{padding-left:36px!important}
.drawer-v163 .cms-drawer-depth-3-v3310{padding-left:54px!important;background:#041f3c!important}
.drawer-v163 .cms-drawer-overview-v3310{color:#8fe7ff!important;font-weight:750!important}

/* Existing Add-ons group in the drawer stays in normal menu flow. */
.drawer-v163 .cms-addons-mobile-v318{display:block!important;width:100%!important}
.drawer-v163 .cms-addons-mobile-v318__list:not([hidden]){display:grid!important}
.drawer-v163 .cms-addons-mobile-v318__list[hidden]{display:none!important}

/* Critical fix: Add-ons had been hidden by the generic max-width:900px rule.
   Landscape uses the desktop-style horizontal nav, so it must be visible there. */
@media (max-width:900px) and (orientation:landscape){
  .main-nav-v163 .cms-addons-nav-v313{
    display:flex!important;align-self:stretch!important;align-items:stretch!important;
    flex:0 0 auto!important;
  }
  .main-nav-v163 .cms-addons-nav-v313__trigger,
  .main-nav-v163 .cms-menu-root-trigger-v3310{
    font-size:.59rem!important;padding:16px 7px 14px!important;
  }

  /* Allow the open dropdown to extend below the horizontally scrollable nav. */
  .main-nav-v163:has(.cms-menu-root-trigger-v3310[aria-expanded="true"]),
  .main-nav-v163:has(.cms-addons-nav-v313.is-open){
    overflow:visible!important;
  }
}

/* Portrait keeps all level-1 entries visible while expanded children occupy
   natural space directly below their parent. */
@media (max-width:900px) and (orientation:portrait){
  .drawer-v163 nav{display:flex!important;flex-direction:column!important}
  .drawer-v163 .cms-drawer-submenu-v3310{position:static!important}
}


/* ============================================================
   SchoolDrive CMS 3.3.13 — Hero effects are authoritative
   ============================================================ */
.static-hero-v320{
  --hero-transition-ms:800ms;
}
.static-hero-v320 .specialty-slide{
  opacity:0;
  visibility:hidden;
  transition-property:opacity,transform,filter!important;
  transition-duration:var(--hero-transition-ms)!important;
  transition-timing-function:ease!important;
  will-change:opacity,transform!important;
}
.static-hero-v320 .specialty-slide.active,
.static-hero-v320 .specialty-slide.visible{
  opacity:1;
  visibility:visible;
  transform:none;
  filter:none;
  z-index:2;
}

/* Fade / crossfade */
.static-hero-v320[data-transition-effect="fade"] .specialty-slide,
.static-hero-v320[data-transition-effect="crossfade"] .specialty-slide{
  transform:none!important;
}
.static-hero-v320[data-transition-effect="crossfade"] .specialty-slide{
  transition-timing-function:linear!important;
}

/* Slides: inactive image waits slightly outside the frame and animates in. */
.static-hero-v320[data-transition-effect="slide-left"] .specialty-slide{transform:translate3d(10%,0,0)}
.static-hero-v320[data-transition-effect="slide-right"] .specialty-slide{transform:translate3d(-10%,0,0)}
.static-hero-v320[data-transition-effect="slide-up"] .specialty-slide{transform:translate3d(0,10%,0)}
.static-hero-v320[data-transition-effect="slide-down"] .specialty-slide{transform:translate3d(0,-10%,0)}

/* Zooms */
.static-hero-v320[data-transition-effect="zoom-in"] .specialty-slide{transform:scale(.93)}
.static-hero-v320[data-transition-effect="zoom-out"] .specialty-slide{transform:scale(1.08)}

/* Active target for all transformed effects. */
.static-hero-v320[data-transition-effect^="slide-"] .specialty-slide.active,
.static-hero-v320[data-transition-effect^="slide-"] .specialty-slide.visible,
.static-hero-v320[data-transition-effect="zoom-in"] .specialty-slide.active,
.static-hero-v320[data-transition-effect="zoom-in"] .specialty-slide.visible,
.static-hero-v320[data-transition-effect="zoom-out"] .specialty-slide.active,
.static-hero-v320[data-transition-effect="zoom-out"] .specialty-slide.visible{
  transform:none!important;
}

/* No effect means genuinely immediate change. */
.static-hero-v320[data-transition-effect="none"] .specialty-slide{
  transition:none!important;
  transform:none!important;
}

/* Respect accessibility settings. */
@media (prefers-reduced-motion:reduce){
  .static-hero-v320 .specialty-slide{transition-duration:0ms!important}
}

/* ============================================================
   SchoolDrive CMS 3.3.13 — Add-on iframe FULL HEIGHT fix
   The modal is a flex column so the iframe gets ALL remaining
   height and the footer can never consume the frame area.
   ============================================================ */
.cms-addon-modal-v313__panel{
  display:flex!important;
  flex-direction:column!important;
  grid-template-rows:none!important;
}
.cms-addon-modal-v313__header{
  flex:0 0 auto!important;
}
.cms-addon-modal-v313__intro{
  flex:0 0 auto!important;
}
.cms-addon-modal-v313__framewrap,
.cms-addon-modal-v313__panel.has-intro .cms-addon-modal-v313__framewrap{
  position:relative!important;
  flex:1 1 0!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  overflow:hidden!important;
  background:#fff!important;
}
.cms-addon-modal-v313__frame{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  border:0!important;
  overflow:auto!important;
}
.cms-addon-modal-v313__footer{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:74px!important;
  max-height:120px!important;
  align-self:stretch!important;
}
.cms-addon-modal-v313__footer[hidden]{
  display:none!important;
}

@media(max-width:620px){
  .cms-addon-modal-v313__footer{
    min-height:0!important;
    max-height:180px!important;
  }
}


/* ============================================================
   SchoolDrive CMS 3.3.14 — WebGL Hero renderer
   CSS effects remain only as the no-WebGL fallback.
   ============================================================ */
.static-hero-v320{
  position:relative!important;
  overflow:hidden!important;
}
.hero-webgl-canvas-v3314{
  position:absolute;
  inset:0;
  z-index:5;
  width:100%;
  height:100%;
  display:block;
  opacity:0;
  pointer-events:none;
  border-radius:inherit;
}
.hero-webgl-canvas-v3314.is-active{
  opacity:1;
}
.static-hero-v320.webgl-hero-enabled-v3314 .specialty-slide{
  transition:none!important;
  transform:none!important;
  filter:none!important;
}
.static-hero-v320.webgl-hero-transitioning-v3314 .specialty-slide{
  opacity:0!important;
  visibility:hidden!important;
}
.static-hero-v320.webgl-hero-enabled-v3314 .slide-dots{
  position:absolute!important;
  z-index:8!important;
}
.static-hero-v320.webgl-hero-enabled-v3314 .static-hero-dot{
  position:relative;
  z-index:9;
}

/* The apprenticeship Hero derives its dimensions from the current slide.
   Keep the current image in layout while the WebGL canvas overlays it. */
.static-hero-v320[data-static-hero="apprenticeship"].webgl-hero-transitioning-v3314 .specialty-slide.active{
  display:block!important;
  opacity:0!important;
  visibility:hidden!important;
}


/* ============================================================
   SchoolDrive CMS 3.3.15 — Hero random effects, captions,
   and preserved rounded corners during WebGL transitions
   ============================================================ */

.static-hero-v320{
  --hero-caption-edge-gap:18px;
  --hero-caption-right-reserve:220px;
  --hero-webgl-radius:24px;
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate!important;
  contain:paint;
}

/* Keep every rendered WebGL frame inside the exact Hero radius. */
.static-hero-v320 .hero-webgl-canvas-v3314{
  overflow:hidden!important;
  border-radius:var(--hero-webgl-radius)!important;
  clip-path:inset(0 round var(--hero-webgl-radius))!important;
  -webkit-clip-path:inset(0 round var(--hero-webgl-radius))!important;
}

/* Caption ribbon:
   - same bottom/left edge gap as the dots' bottom gap
   - right edge stops before the dots by that same gap
   - automatic height with symmetric vertical padding
   - long text wraps and grows upward
*/
.static-hero-caption-v3315{
  position:absolute!important;
  z-index:8!important;
  left:var(--hero-caption-edge-gap)!important;
  right:var(--hero-caption-right-reserve)!important;
  bottom:var(--hero-caption-edge-gap)!important;

  box-sizing:border-box!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;

  padding:.68rem 1rem!important;
  margin:0!important;

  background:#052e57!important;
  color:#fff!important;
  border:0!important;
  border-radius:10px!important;

  font:800 clamp(.82rem,1.05vw,1rem)/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  text-align:left!important;

  pointer-events:none!important;
  box-shadow:0 6px 18px rgba(0,22,48,.16)!important;
}

.static-hero-caption-v3315[hidden]{
  display:none!important;
}

/* Dots always sit above the ribbon and WebGL canvas. */
.static-hero-v320 .slide-dots{
  z-index:10!important;
}
.static-hero-v320 .static-hero-dot{
  z-index:11!important;
}

/* No visual geometry changes while random chooses the next effect. */
.static-hero-v320[data-transition-mode="random"]{
  overflow:hidden!important;
}

/* On very narrow screens keep the ribbon readable while still
   preserving a clear zone before the dot cluster. */
@media(max-width:620px){
  .static-hero-caption-v3315{
    padding:.55rem .72rem!important;
    font-size:.76rem!important;
    line-height:1.3!important;
  }
}

/* SchoolDrive CMS 3.3.19 — stacked add-ons above the homepage footer */
.cms-addons-home-stack-v3319{width:min(1380px,calc(100% - 48px));margin:28px auto 20px;display:grid;gap:12px;position:relative;z-index:3}
.cms-addon-home-v3319{background:#fff;border:1px solid #c8dbe8;border-radius:15px;overflow:hidden;box-shadow:0 5px 18px rgba(11,49,88,.08)}
.cms-addon-home-v3319__head{display:flex;align-items:center;gap:12px;padding:13px 16px;background:#f5f9fc;color:#0b3158}
.cms-addon-home-v3319__title{flex:1;margin:0;font:750 1.05rem/1.25 system-ui,-apple-system,"Segoe UI",sans-serif;color:inherit}
.cms-addon-home-v3319__toggle{border:1px solid #b8d1e2;background:#fff;color:#0b3158;border-radius:9px;padding:8px 12px;font:700 .9rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.cms-addon-home-v3319__toggle:hover,.cms-addon-home-v3319__toggle:focus-visible{background:#eaf5fb;outline:none}
.cms-addon-home-v3319__body[hidden]{display:none!important}
.cms-addon-home-v3319__intro{padding:16px 18px 4px;color:#173b57}
.cms-addon-home-v3319__framewrap{position:relative;width:100%;height:min(760px,72vh);min-height:420px;background:#fff}
.cms-addon-home-v3319__frame{position:absolute;inset:0;width:100%;height:100%;border:0;background:#fff}
.cms-addon-home-v3319__footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding:12px 16px;background:#f7fafc;border-top:1px solid #dbe7ef}
.cms-addon-home-v3319__slot{display:flex}.cms-addon-home-v3319__slot.is-center{justify-content:center}.cms-addon-home-v3319__slot.is-right{justify-content:flex-end}
.cms-addon-home-v3319__action{border:0;border-radius:9px;background:#0b5d8b;color:#fff;padding:9px 14px;font:700 .9rem/1 system-ui,-apple-system,"Segoe UI",sans-serif;cursor:pointer}
.cms-addon-home-v3319__action:hover{filter:brightness(1.06)}
@media(max-width:720px){.cms-addons-home-stack-v3319{width:calc(100% - 20px);margin:18px 10px 12px}.cms-addon-home-v3319__head{padding:11px 12px}.cms-addon-home-v3319__title{font-size:.98rem}.cms-addon-home-v3319__framewrap{height:68vh;min-height:360px}.cms-addon-home-v3319__footer{grid-template-columns:1fr}.cms-addon-home-v3319__slot,.cms-addon-home-v3319__slot.is-center,.cms-addon-home-v3319__slot.is-right{justify-content:stretch}.cms-addon-home-v3319__action{width:100%}}

/* 3.3.24 Canva add-on: iframe-free expanded body */
.cms-addon-home-v3324__canva{min-height:280px;display:grid;place-items:center;align-content:center;gap:18px;padding:38px;background:linear-gradient(135deg,#f4f8fc,#fff);text-align:center;border-top:1px solid #dbe7f2}
.cms-addon-home-v3324__canva p{max-width:780px;margin:0;color:#425d76;font-size:1.04rem;line-height:1.65}
.cms-addon-home-v3324__canva-open{justify-self:center;min-width:230px}


/* SchoolDrive CMS 3.3.29 — compact window-style controls for add-ons */
.cms-addon-home-v3319__toggle{
  width:38px!important;
  min-width:38px!important;
  height:32px!important;
  padding:0!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:1.28rem!important;
  line-height:1!important;
  font-weight:800!important;
  letter-spacing:0!important;
}

/* ============================================================
   SchoolDrive CMS 3.3.17 — wrapped-nav parity for button roots.
   addons.css loads after style.css, so dropdown/button roots need the
   same compact geometry as ordinary links when the main nav wraps.
   ============================================================ */
@media (min-width:901px), (max-width:900px) and (orientation:landscape){
  .main-nav-v163 > .cms-menu-node-v3310,
  .main-nav-v163 > .cms-addons-nav-v313{
    align-self:auto!important;
    flex:0 0 auto!important;
  }
}
@media (min-width:901px) and (max-width:1180px){
  .main-nav-v163 .cms-menu-root-trigger-v3310,
  .main-nav-v163 .cms-addons-nav-v313__trigger{
    padding:11px 7px 10px!important;
    font-size:.68rem!important;
    line-height:1.08!important;
  }
}
@media (min-width:901px) and (max-width:1020px){
  .main-nav-v163 .cms-menu-root-trigger-v3310,
  .main-nav-v163 .cms-addons-nav-v313__trigger{
    padding:9px 6px 8px!important;
    font-size:.64rem!important;
  }
}
@media (max-width:900px) and (orientation:landscape){
  .main-nav-v163 .cms-menu-root-trigger-v3310,
  .main-nav-v163 .cms-addons-nav-v313__trigger{
    padding:7px 6px 6px!important;
    font-size:.58rem!important;
    line-height:1.12!important;
  }
}
