
@media (max-width:767px){
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,body input,body select,body textarea,body button,body table,body th,body td,body label,body a,body span{font-size:clamp(10px,2.75vw,13px)}
body input[type=checkbox],body input[type=radio]{width:13px!important;height:13px!important;min-width:13px!important;min-height:13px!important;max-width:13px!important;max-height:13px!important;flex:0 0 13px!important;margin:1px 3px!important}
body th,body td{padding:4px 5px!important}
body button,body .button,body input[type=button],body input[type=submit],body input[type=reset]{padding:6px 8px!important}
body [style*="display:grid"],body .opa-month-grid,body .opa-exam-month-grid,body .opa-monthly-month-grid{gap:5px 4px!important}
body [style*="display:flex"]{gap:5px!important}
body th,body td,body label,body button,body .button,body input[type=submit],body input[type=button],body .opa-month-grid label,body .opa-exam-month-grid label,body .opa-monthly-month-grid label{white-space:nowrap!important}
body .opa-month-grid.opa-exam-month-grid,body .opa-exam-month-grid,body .opa-monthly-month-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body table{max-width:100%}
body .opa-table-wrap,body .table-responsive{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media (max-width:420px){
body,body input,body select,body textarea,body button,body table,body th,body td,body label,body a,body span{font-size:clamp(9px,2.55vw,11px)}
body th,body td{padding:3px 4px!important}
body button,body .button,body input[type=button],body input[type=submit],body input[type=reset]{padding:5px 6px!important}
body input[type=checkbox],body input[type=radio]{width:12px!important;height:12px!important;min-width:12px!important;min-height:12px!important;max-width:12px!important;max-height:12px!important;flex:0 0 12px!important}
body [style*="display:grid"],body [style*="display:flex"],body .opa-month-grid,body .opa-exam-month-grid,body .opa-monthly-month-grid{gap:4px 3px!important}
}

/* v1.10.99: keep mobile website menu/sub-menu text comfortably readable. */
@media (max-width:767px){
body .sub-menu,body .sub-menu li,body .sub-menu a,body .sub-menu a span,
body .submenu,body .submenu li,body .submenu a,body .submenu a span,
body nav .children,body nav .children li,body nav .children a,body nav .children a span,
body .main-navigation .sub-menu a,body .primary-navigation .sub-menu a,
body .elementor-nav-menu--dropdown a,body .elementor-nav-menu--dropdown a span{
font-size:14px!important;line-height:1.45!important;
}
body .sub-menu a,body .submenu a,body nav .children a,body .elementor-nav-menu--dropdown a{padding-top:8px!important;padding-bottom:8px!important}
}
@media (max-width:420px){
body .sub-menu,body .sub-menu li,body .sub-menu a,body .sub-menu a span,
body .submenu,body .submenu li,body .submenu a,body .submenu a span,
body nav .children,body nav .children li,body nav .children a,body nav .children a span,
body .main-navigation .sub-menu a,body .primary-navigation .sub-menu a,
body .elementor-nav-menu--dropdown a,body .elementor-nav-menu--dropdown a span{font-size:13px!important;line-height:1.45!important}
}


/* v1.11.00: keep lower mobile submenus fully inside the viewport. */
@media (max-width:767px){
body .sub-menu,
body .submenu,
body nav .children,
body .main-navigation .sub-menu,
body .primary-navigation .sub-menu,
body .elementor-nav-menu--dropdown,
body .elementor-nav-menu--dropdown .sub-menu{
    max-height:min(70vh,520px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain;
    box-sizing:border-box!important;
}
body .sub-menu,
body .submenu,
body nav .children{
    max-width:calc(100vw - 16px)!important;
}
body .sub-menu .sub-menu,
body .submenu .submenu,
body nav .children .children{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
    transform:none!important;
}
}


/* v1.11.01: final mobile-menu fix — do not clip the last menu's child items. */
@media (max-width:767px){
body .sub-menu,
body .submenu,
body nav .children,
body .main-navigation .sub-menu,
body .primary-navigation .sub-menu,
body .elementor-nav-menu--dropdown,
body .elementor-nav-menu--dropdown .sub-menu{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    clip:auto!important;
    contain:none!important;
}
body .elementor-nav-menu--dropdown{
    max-height:calc(100dvh - 70px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
}
body .sub-menu .sub-menu,
body .submenu .submenu,
body nav .children .children,
body .main-navigation .sub-menu .sub-menu,
body .primary-navigation .sub-menu .sub-menu,
body .elementor-nav-menu--dropdown .sub-menu{
    display:block;
    position:static!important;
    inset:auto!important;
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    transform:none!important;
}
body .sub-menu li,
body .submenu li,
body nav .children li,
body .elementor-nav-menu--dropdown li{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
}
}


/* v1.11.02: mobile menu bottom-edge fix.
   The scroll belongs to the WHOLE opened mobile menu, not to each submenu. */
@media (max-width:767px){
html,body{overflow-x:hidden!important}

/* Common WordPress/theme/Elementor mobile-menu outer containers */
body .main-navigation,
body .main-navigation > div,
body .main-navigation .menu,
body .main-navigation ul.menu,
body .primary-navigation,
body .primary-navigation > div,
body .primary-navigation .menu,
body .primary-navigation ul.menu,
body .site-navigation,
body .site-navigation > div,
body .site-navigation .menu,
body .site-navigation ul.menu,
body .mobile-navigation,
body .mobile-menu,
body .mobile-menu-container,
body .menu-primary-container,
body .elementor-nav-menu--dropdown{
    box-sizing:border-box!important;
}

/* Only opened/visible menu panels get viewport scrolling. */
body .main-navigation.toggled > div,
body .main-navigation.toggled .menu,
body .main-navigation.toggled ul.menu,
body .primary-navigation.toggled > div,
body .primary-navigation.toggled .menu,
body .primary-navigation.toggled ul.menu,
body .site-navigation.toggled > div,
body .site-navigation.toggled .menu,
body .site-navigation.toggled ul.menu,
body .mobile-navigation,
body .mobile-menu-container,
body .elementor-nav-menu--dropdown{
    max-height:calc(100dvh - 56px)!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    padding-bottom:24px!important;
}

/* Never let a menu item or submenu ancestor clip descendants. */
body nav li.menu-item,
body nav li.page_item,
body .main-navigation li,
body .primary-navigation li,
body .site-navigation li,
body .mobile-menu li,
body .elementor-nav-menu--dropdown li{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
}

/* Mobile submenus always expand downward in document flow. */
body nav ul.sub-menu,
body nav ul.children,
body .main-navigation ul.sub-menu,
body .primary-navigation ul.sub-menu,
body .site-navigation ul.sub-menu,
body .mobile-menu ul.sub-menu,
body .elementor-nav-menu--dropdown ul.sub-menu{
    position:static!important;
    inset:auto!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    display:block;
    float:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    margin:0!important;
    transform:none!important;
    clip:auto!important;
}

/* Give the final expanded item enough breathing room above the screen edge. */
body nav ul.menu > li:last-child,
body .main-navigation ul.menu > li:last-child,
body .primary-navigation ul.menu > li:last-child,
body .site-navigation ul.menu > li:last-child,
body .mobile-menu > li:last-child,
body .elementor-nav-menu--dropdown > ul > li:last-child{
    padding-bottom:32px!important;
}
}


/* v1.11.04: screenshot-confirmed FRONT-END hamburger menu bottom submenu fix. */
@media (max-width:782px){
body li.menu-item-has-children,
body li.page_item_has_children{max-height:none!important}
body li.menu-item-has-children > ul.sub-menu,
body li.page_item_has_children > ul.children{
    height:auto;
    max-height:none!important;
}
}


/* v1.11.05: visually separate main menu and submenu on mobile. */
@media (max-width:782px){
/* Main/top-level menu keeps the site's dark navy mobile-menu background. */
body nav ul.menu > li > a,
body .main-navigation ul.menu > li > a,
body .primary-navigation ul.menu > li > a,
body .site-navigation ul.menu > li > a,
body .mobile-menu > li > a,
body .elementor-nav-menu--dropdown > ul > li > a{
    background:#0d285b!important;
}

/* Submenu items use a clearly different, slightly lighter navy. */
body nav ul.sub-menu > li > a,
body nav ul.children > li > a,
body .main-navigation ul.sub-menu > li > a,
body .primary-navigation ul.sub-menu > li > a,
body .site-navigation ul.sub-menu > li > a,
body .mobile-menu ul.sub-menu > li > a,
body .elementor-nav-menu--dropdown ul.sub-menu > li > a{
    background:#183d78!important;
}

/* Keep nested submenu levels visually consistent with submenu color. */
body nav ul.sub-menu,
body nav ul.children,
body .main-navigation ul.sub-menu,
body .primary-navigation ul.sub-menu,
body .site-navigation ul.sub-menu,
body .mobile-menu ul.sub-menu,
body .elementor-nav-menu--dropdown ul.sub-menu{
    background:#183d78!important;
}
}


/* v1.11.06: theme-independent mobile menu colors.
   JS tags the real opened submenu, so these rules work even when the theme
   does not use WordPress's standard .sub-menu selectors. */
@media (max-width:782px){
body .opa-mobile-real-main-item,
body .opa-mobile-real-main-item > a,
body .opa-mobile-parent-item,
body .opa-mobile-parent-item > a{
    background-color:#0d285b!important;
}
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a{
    background-color:#234b86!important;
}
/* Make the difference unmistakable while preserving white menu text. */
body .opa-mobile-real-submenu-item > a{
    color:#fff!important;
    border-color:rgba(255,255,255,.10)!important;
}
}


/* v1.11.07: mobile submenu uses a clearly light-white background. */
@media (max-width:782px){
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a{
    background-color:#f7f7f7!important;
}
body .opa-mobile-real-submenu-item > a{
    color:#0d285b!important;
    border-color:#e1e5ea!important;
}
}


/* v1.11.08: force readable navy text on the runtime-detected light submenu. */
@media (max-width:782px){
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu li,
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu li > a:link,
body .opa-mobile-real-submenu li > a:visited,
body .opa-mobile-real-submenu li > a:hover,
body .opa-mobile-real-submenu li > a:focus,
body .opa-mobile-real-submenu li > a:active,
body .opa-mobile-real-submenu li > a *,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a,
body .opa-mobile-real-submenu-item > a *{
    color:#0d285b!important;
    -webkit-text-fill-color:#0d285b!important;
    opacity:1!important;
    visibility:visible!important;
}
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu li,
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a{
    background:#f7f7f7!important;
}
}


/* v1.11.09: mobile submenu light-green background. */
@media (max-width:782px){
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu li,
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a{
    background:#e8f5e9!important;
}
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu li > a *,
body .opa-mobile-real-submenu-item > a,
body .opa-mobile-real-submenu-item > a *{
    color:#0d285b!important;
    -webkit-text-fill-color:#0d285b!important;
}
}


/* v1.11.10: mobile submenu clear solid-green background. */
@media (max-width:782px){
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu li,
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a{
    background:#2e7d32!important;
}
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu li > a *,
body .opa-mobile-real-submenu-item > a,
body .opa-mobile-real-submenu-item > a *{
    color:#ffffff!important;
    -webkit-text-fill-color:#ffffff!important;
    opacity:1!important;
}
}


/* v1.11.11: mobile submenu text exactly 16px. */
@media (max-width:782px){
body .opa-mobile-real-submenu,
body .opa-mobile-real-submenu li,
body .opa-mobile-real-submenu li > a,
body .opa-mobile-real-submenu li > a *,
body .opa-mobile-real-submenu-item,
body .opa-mobile-real-submenu-item > a,
body .opa-mobile-real-submenu-item > a *{
    font-size:16px!important;
}
}


/* v1.11.30: hard-lock monthly fee selector to exactly 3 columns on every screen. */
body #opa-payment-app #opa-fee-months.opa-monthly-month-grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-auto-flow:row!important;
}
body #opa-payment-app #opa-fee-months.opa-monthly-month-grid > label{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    grid-column:auto!important;
    flex-basis:auto!important;
    box-sizing:border-box!important;
}
@media (max-width:767px){
    body #opa-payment-app #opa-fee-months.opa-monthly-month-grid{
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
}
@media (max-width:420px){
    body #opa-payment-app #opa-fee-months.opa-monthly-month-grid{
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
}

/* v1.11.31: structural 3-column lock using flex; immune to theme grid breakpoints. */
body #opa-payment-app #opa-fee-months.opa-monthly-month-grid{
 display:flex!important;flex-wrap:wrap!important;align-items:stretch!important;
 grid-template-columns:none!important;
}
body #opa-payment-app #opa-fee-months.opa-monthly-month-grid > label{
 flex:0 0 33.333333%!important;width:33.333333%!important;max-width:33.333333%!important;
 min-width:0!important;box-sizing:border-box!important;
}
@media(max-width:767px){
 body #opa-payment-app #opa-fee-months.opa-monthly-month-grid > label{
  flex-basis:33.333333%!important;width:33.333333%!important;max-width:33.333333%!important;
 }
}
@media(max-width:420px){
 body #opa-payment-app #opa-fee-months.opa-monthly-month-grid > label{
  flex-basis:33.333333%!important;width:33.333333%!important;max-width:33.333333%!important;
 }
}

/* v1.11.44: short-screen mobile menu must remain vertically scrollable. */
@media (max-width:782px){
 html,body{max-width:100%;overflow-x:hidden}
 body .opa-mobile-parent-item,
 body .opa-mobile-real-main-item,
 body .opa-mobile-real-submenu,
 body .opa-mobile-real-submenu-item{
   height:auto!important;max-height:none!important;
 }
 body .opa-mobile-real-submenu{
   position:static!important;overflow:visible!important;width:100%!important;
 }
 body .opa-mobile-real-submenu-item{display:list-item!important;visibility:visible!important;opacity:1!important}
}

/* v1.11.45: do not clip opened navigation on short mobile screens. */
@media (max-width:782px){
 body nav,
 body header nav,
 body [role="navigation"]{
   max-height:100dvh;
 }
 body nav ul,
 body header nav ul,
 body [role="navigation"] ul{
   max-height:none;
 }
 body nav li,
 body header nav li,
 body [role="navigation"] li{
   max-height:none!important;
 }
}

/* v1.11.46: extra scroll space after the final main-menu item on mobile. */
@media(max-width:782px){
 body nav ul.menu,
 body header ul.menu,
 body .main-navigation ul.menu,
 body .site-navigation ul.menu,
 body .mobile-menu ul.menu,
 body ul.nav-menu{
   padding-bottom:180px!important;
   box-sizing:border-box!important;
 }
}

/* v1.11.47 screenshot-targeted: opened mobile menu grows beyond viewport and page scrolls. */
@media(max-width:782px){
 html.opa-mobile-menu-open,body.opa-mobile-menu-open{height:auto!important;max-height:none!important;overflow-y:auto!important;overflow-x:hidden!important}
 body.opa-mobile-menu-open .opa-mobile-scroll-root{height:auto!important;max-height:none!important;overflow:visible!important}
 body.opa-mobile-menu-open .opa-mobile-scroll-list{height:auto!important;max-height:none!important;overflow:visible!important;padding-bottom:160px!important}
 body.opa-mobile-menu-open .opa-mobile-scroll-list>li{height:auto!important;max-height:none!important;visibility:visible!important;opacity:1!important}
}

/* v1.11.48: a runtime-detected submenu that is explicitly collapsed must occupy no space. */
@media(max-width:782px){
 body .opa-mobile-real-submenu[style*="max-height: 0"],
 body .opa-mobile-real-submenu[style*="max-height:0"]{
   min-height:0!important;
   padding-top:0!important;
   padding-bottom:0!important;
   margin-top:0!important;
   margin-bottom:0!important;
   overflow:hidden!important;
 }
}

/* v1.11.49 — consolidated authoritative mobile navigation.
   This block supersedes all earlier mobile-menu experiments above it. */
@media(max-width:782px){
 html.opa-mobile-menu-open,body.opa-mobile-menu-open{
   max-width:100%!important;
   overflow-x:hidden!important;
 }
 body .opa-mobile-menu-root{
   min-height:0!important;
   box-sizing:border-box!important;
 }
 body .opa-mobile-menu-root[style*="--opa-mobile-menu-top"]{
   height:calc(100dvh - var(--opa-mobile-menu-top))!important;
   max-height:calc(100dvh - var(--opa-mobile-menu-top))!important;
   overflow-y:auto!important;
   overflow-x:hidden!important;
   -webkit-overflow-scrolling:touch!important;
   overscroll-behavior-y:contain!important;
   padding-bottom:100px!important;
 }
 body .opa-mobile-menu-list{
   display:block!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   overflow:visible!important;
   padding-bottom:100px!important;
   box-sizing:border-box!important;
 }
 body .opa-mobile-menu-list>li{
   display:block!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   visibility:visible!important;
   opacity:1!important;
   box-sizing:border-box!important;
 }
 body .opa-mobile-menu-list>li>a{
   visibility:visible!important;
   opacity:1!important;
 }
 /* Closed submenu: zero footprint — no stale blank gap. */
 body .opa-mobile-menu-list>li>.opa-mobile-submenu:not(.opa-mobile-submenu-open){
   display:none!important;
   height:0!important;
   min-height:0!important;
   max-height:0!important;
   overflow:hidden!important;
   padding-top:0!important;
   padding-bottom:0!important;
   margin-top:0!important;
   margin-bottom:0!important;
 }
 /* Open submenu: natural height inside the same scrollable drawer. */
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open{
   display:block!important;
   position:static!important;
   inset:auto!important;
   transform:none!important;
   width:100%!important;
   max-width:100%!important;
   height:auto!important;
   min-height:0!important;
   max-height:none!important;
   overflow:visible!important;
   margin:0!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li{
   display:block!important;
   height:auto!important;
   max-height:none!important;
   visibility:visible!important;
   opacity:1!important;
   background:#2e7d32!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a,
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a *{
   background:#2e7d32!important;
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
   font-size:16px!important;
   opacity:1!important;
 }
}

/* v1.11.84 — compact top-level mobile menu buttons.
   Keep the drawer scroll behavior from v1.11.49, but do not stretch main buttons full width. */
@media(max-width:782px){
 body .opa-mobile-menu-list>li{
   width:260px!important;
   max-width:calc(100% - 24px)!important;
   margin-left:12px!important;
   margin-right:auto!important;
 }
 body .opa-mobile-menu-list>li>a{
   display:flex!important;
   width:100%!important;
   max-width:100%!important;
   box-sizing:border-box!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open{
   width:100%!important;
   max-width:100%!important;
 }
}

/* v1.11.86 — submenu indicator sits immediately after the menu text.
   The theme may render the indicator as a sibling toggle, not inside <a>.
   Therefore submenu parent <li> is a wrapping flex row: link + toggle, then submenu on next row. */
@media(max-width:782px){
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu){
   display:flex!important;
   flex-wrap:wrap!important;
   align-items:center!important;
   justify-content:flex-start!important;
   column-gap:5px!important;
 }
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>a{
   display:inline-flex!important;
   flex:0 0 auto!important;
   width:auto!important;
   max-width:calc(100% - 34px)!important;
   justify-content:flex-start!important;
   align-items:center!important;
   gap:4px!important;
 }
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>button,
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>.dropdown-toggle,
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>.submenu-toggle,
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>.menu-item-arrow,
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>.sub-arrow,
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>[aria-expanded]{
   position:static!important;
   inset:auto!important;
   transform:none!important;
   float:none!important;
   flex:0 0 auto!important;
   width:auto!important;
   min-width:20px!important;
   max-width:28px!important;
   margin:0!important;
   padding-left:2px!important;
   padding-right:2px!important;
 }
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>a *{
   margin-left:0!important;
   margin-right:0!important;
 }
 body .opa-mobile-menu-list>li:has(>.opa-mobile-submenu)>.opa-mobile-submenu{
   flex:0 0 100%!important;
   width:100%!important;
   max-width:100%!important;
 }
}

/* v1.11.87 — normalized inline submenu indicator created by the mobile runtime. */
@media(max-width:782px){
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu{
   display:block!important;
 }
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link{
   display:inline-flex!important;
   width:auto!important;
   max-width:100%!important;
   align-items:center!important;
   justify-content:flex-start!important;
   gap:5px!important;
 }
 body .opa-mobile-menu-list .opa-inline-submenu-indicator{
   display:inline-block!important;
   position:static!important;
   inset:auto!important;
   transform:none!important;
   float:none!important;
   flex:0 0 auto!important;
   width:auto!important;
   height:auto!important;
   margin:0!important;
   padding:0!important;
   font-size:11px!important;
   line-height:1!important;
 }
 body .opa-mobile-menu-list .opa-hide-theme-submenu-indicator{
   display:none!important;
 }
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>.opa-mobile-submenu.opa-mobile-submenu-open{
   display:block!important;
   width:100%!important;
   max-width:100%!important;
 }
}

/* v1.11.88 — definitive mobile submenu arrow placement.
   Runtime marks the REAL parent anchor, so no :has() or theme-specific selector is required. */
@media(max-width:782px){
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link{
   display:inline-flex!important;
   flex:0 0 auto!important;
   width:max-content!important;
   max-width:calc(100% - 12px)!important;
   align-items:center!important;
   justify-content:flex-start!important;
   position:relative!important;
   padding-right:8px!important;
 }
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link::after{
   content:"▼"!important;
   display:inline-block!important;
   position:static!important;
   inset:auto!important;
   left:auto!important;
   right:auto!important;
   top:auto!important;
   bottom:auto!important;
   transform:none!important;
   float:none!important;
   flex:0 0 auto!important;
   width:auto!important;
   height:auto!important;
   min-width:0!important;
   margin:0 0 0 5px!important;
   padding:0!important;
   border:0!important;
   background:none!important;
   font-size:11px!important;
   line-height:1!important;
   opacity:1!important;
   visibility:visible!important;
 }
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link .dropdown-toggle,
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link .submenu-toggle,
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link .menu-item-arrow,
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link .sub-arrow,
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link .caret{
   display:none!important;
 }
}

/* v1.11.89 — slightly larger mobile main-menu text for easier reading. */
@media(max-width:782px){
 body .opa-mobile-menu-list>li>a,
 body .opa-mobile-menu-list>li>a:link,
 body .opa-mobile-menu-list>li>a:visited{
   font-size:18px!important;
   line-height:1.35!important;
 }
 body .opa-mobile-menu-list>li>a *{
   font-size:18px!important;
   line-height:1.35!important;
 }
}

/* v1.11.91 — reference-inspired full-width dark-green mobile drawer. */
@media(max-width:782px){
 html.opa-mobile-menu-open,body.opa-mobile-menu-open{overflow-x:hidden!important}
 body .opa-mobile-menu-root[style*="--opa-mobile-menu-top"]{
   background:linear-gradient(155deg,#063f34 0%,#075746 52%,#043d35 100%)!important;
   border-radius:0 0 20px 20px!important;
   box-shadow:0 18px 45px rgba(0,0,0,.22)!important;
   padding:12px 12px 92px!important;
 }
 body .opa-mobile-menu-list{
   width:100%!important;
   max-width:100%!important;
   margin:0!important;
   padding:0 0 90px!important;
   background:transparent!important;
 }
 body .opa-mobile-menu-list>li{
   width:100%!important;
   max-width:100%!important;
   margin:0!important;
   padding:0!important;
   background:transparent!important;
   border-bottom:1px solid rgba(255,255,255,.11)!important;
   border-radius:0!important;
 }
 body .opa-mobile-menu-list>li>a,
 body .opa-mobile-menu-list>li>a:link,
 body .opa-mobile-menu-list>li>a:visited,
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link{
   display:flex!important;
   width:100%!important;
   max-width:100%!important;
   min-height:56px!important;
   box-sizing:border-box!important;
   align-items:center!important;
   justify-content:flex-start!important;
   padding:13px 14px!important;
   margin:0!important;
   border:0!important;
   border-radius:12px!important;
   background:transparent!important;
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
   font-size:18px!important;
   font-weight:600!important;
   line-height:1.35!important;
   text-decoration:none!important;
 }
 body .opa-mobile-menu-list>li>a *,
 body .opa-mobile-menu-list>li>a:link *,
 body .opa-mobile-menu-list>li>a:visited *{
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
 }
 body .opa-mobile-menu-list>li>a:active,
 body .opa-mobile-menu-list>li.opa-mobile-submenu-open>a{
   background:rgba(84,190,147,.30)!important;
 }
 /* Parent arrow at the far right, matching the supplied reference. */
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu>a.opa-mobile-parent-link::after{
   content:"›"!important;
   margin-left:auto!important;
   font-size:32px!important;
   font-weight:300!important;
   line-height:1!important;
   color:#fff!important;
   transform:none!important;
 }
 body .opa-mobile-menu-list>li.opa-has-mobile-submenu.opa-mobile-submenu-open>a.opa-mobile-parent-link::after{
   content:"⌄"!important;
   font-size:24px!important;
 }
 body .opa-mobile-menu-list .opa-hide-theme-submenu-indicator{display:none!important}
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open{
   display:block!important;
   position:static!important;
   width:100%!important;
   max-width:100%!important;
   margin:0!important;
   padding:5px 12px 12px 28px!important;
   box-sizing:border-box!important;
   background:rgba(0,0,0,.08)!important;
   border-radius:0 0 12px 12px!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li{
   display:block!important;
   background:transparent!important;
   border:0!important;
   border-bottom:1px solid rgba(255,255,255,.07)!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a,
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a *{
   display:block!important;
   background:transparent!important;
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
   font-size:16px!important;
   font-weight:500!important;
   line-height:1.4!important;
   padding:10px 8px!important;
   text-decoration:none!important;
 }
 body .opa-mobile-menu-list>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a:before{
   content:"•"!important;
   display:inline-block!important;
   margin-right:10px!important;
   color:#53c991!important;
   font-size:20px!important;
   vertical-align:-1px!important;
 }
}

/* v1.11.92 — actual-theme mobile menu override based on runtime-marked real rows. */
@media(max-width:782px){
 body .opa-mobile-menu-actual{
   width:100%!important;max-width:100%!important;margin:0!important;padding:8px 10px 90px!important;
   background:linear-gradient(155deg,#063f34 0%,#075746 55%,#043d35 100%)!important;
   box-sizing:border-box!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row{
   display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;
   background:transparent!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.12)!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row>a.opa-mobile-row-link{
   display:flex!important;width:100%!important;min-height:56px!important;box-sizing:border-box!important;
   align-items:center!important;padding:13px 14px!important;margin:0!important;border:0!important;border-radius:11px!important;
   background:transparent!important;color:#fff!important;-webkit-text-fill-color:#fff!important;
   font-size:18px!important;font-weight:600!important;line-height:1.35!important;text-decoration:none!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row>a.opa-mobile-row-link *{
   color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:18px!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>a.opa-mobile-row-link::after{
   content:"›"!important;display:block!important;position:static!important;inset:auto!important;
   margin-left:auto!important;padding:0!important;border:0!important;background:none!important;
   color:#fff!important;font-size:30px!important;line-height:1!important;transform:none!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent.opa-mobile-submenu-open>a.opa-mobile-row-link{
   background:rgba(85,190,148,.32)!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent.opa-mobile-submenu-open>a.opa-mobile-row-link::after{
   content:"⌄"!important;font-size:23px!important;
 }
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>a.opa-mobile-row-link>button,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>a.opa-mobile-row-link>.dropdown-toggle,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>a.opa-mobile-row-link>.submenu-toggle,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>a.opa-mobile-row-link>.caret,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>button,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>.dropdown-toggle,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent>.submenu-toggle{
   display:none!important;
 }
 body .opa-mobile-menu-actual>li>.opa-mobile-submenu.opa-mobile-submenu-open{
   display:block!important;position:static!important;width:100%!important;max-width:100%!important;
   margin:0!important;padding:5px 10px 12px 28px!important;box-sizing:border-box!important;
   background:rgba(0,0,0,.10)!important;border:0!important;border-radius:0 0 11px 11px!important;
 }
 body .opa-mobile-menu-actual>li>.opa-mobile-submenu.opa-mobile-submenu-open>li{
   display:block!important;background:transparent!important;border:0!important;
 }
 body .opa-mobile-menu-actual>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a{
   display:block!important;padding:10px 8px!important;background:transparent!important;
   color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:16px!important;font-weight:500!important;
 }
 body .opa-mobile-menu-actual>li>.opa-mobile-submenu.opa-mobile-submenu-open>li>a::before{
   content:"•"!important;margin-right:10px!important;color:#55c995!important;font-size:20px!important;
 }
}

/* v1.11.93 — Educare/ESchool Stellarnav exact mobile-menu redesign.
   header.php confirms: .menu-section > .stellarnav > wp_nav_menu output. */
@media(max-width:782px){
 body .menu-section .stellarnav.mobile,
 body .menu-section .stellarnav{
   background:#064c3f!important;
 }
 body .menu-section .stellarnav.mobile>ul,
 body .menu-section .stellarnav>ul{
   width:100%!important;
   max-width:100%!important;
   margin:0!important;
   padding:8px 10px 80px!important;
   box-sizing:border-box!important;
   background:linear-gradient(155deg,#063f34 0%,#075746 55%,#043d35 100%)!important;
 }
 body .menu-section .stellarnav.mobile>ul>li,
 body .menu-section .stellarnav>ul>li{
   display:block!important;
   float:none!important;
   width:100%!important;
   max-width:100%!important;
   margin:0!important;
   padding:0!important;
   border:0!important;
   border-bottom:1px solid rgba(255,255,255,.12)!important;
   background:transparent!important;
 }
 body .menu-section .stellarnav.mobile>ul>li>a,
 body .menu-section .stellarnav>ul>li>a{
   display:flex!important;
   align-items:center!important;
   width:100%!important;
   min-height:56px!important;
   box-sizing:border-box!important;
   padding:13px 14px!important;
   margin:0!important;
   border:0!important;
   border-radius:11px!important;
   background:transparent!important;
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
   font-size:18px!important;
   font-weight:600!important;
   line-height:1.35!important;
   text-decoration:none!important;
 }
 body .menu-section .stellarnav.mobile>ul>li>a:hover,
 body .menu-section .stellarnav.mobile>ul>li.open>a,
 body .menu-section .stellarnav.mobile>ul>li.active>a{
   background:rgba(85,190,148,.30)!important;
 }
 /* Stellarnav creates .dd-toggle as the submenu touch control. */
 body .menu-section .stellarnav.mobile li.has-sub>a{
   padding-right:54px!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle{
   display:flex!important;
   align-items:center!important;
   justify-content:center!important;
   position:absolute!important;
   top:0!important;
   right:0!important;
   width:52px!important;
   height:56px!important;
   margin:0!important;
   padding:0!important;
   border:0!important;
   background:transparent!important;
   color:#fff!important;
   z-index:5!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus{
   position:relative!important;
   width:18px!important;
   height:18px!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:after{
   background:#fff!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub.open>.dd-toggle{
   background:rgba(85,190,148,.22)!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>ul{
   width:100%!important;
   margin:0!important;
   padding:5px 10px 12px 28px!important;
   box-sizing:border-box!important;
   background:rgba(0,0,0,.10)!important;
   border:0!important;
   box-shadow:none!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>ul>li{
   background:transparent!important;
   border-bottom:1px solid rgba(255,255,255,.07)!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>ul>li>a{
   padding:10px 8px!important;
   background:transparent!important;
   color:#fff!important;
   -webkit-text-fill-color:#fff!important;
   font-size:16px!important;
   font-weight:500!important;
 }
 body .menu-section .stellarnav.mobile .menu-toggle{
   color:#fff!important;
   background:#064c3f!important;
 }
}
/* v1.11.94 — force direct Stellarnav submenus to obey our mobile controller. */
@media(max-width:782px){
 body .menu-section .stellarnav li.opa-stellar-parent{position:relative!important}
 body .menu-section .stellarnav li.opa-stellar-parent>.opa-stellar-sub{
   display:none!important;height:0!important;max-height:0!important;visibility:hidden!important;
   opacity:0!important;overflow:hidden!important
 }
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>.opa-stellar-sub,
 body .menu-section .stellarnav li.opa-stellar-parent>.opa-stellar-sub.opa-stellar-sub-open{
   display:block!important;position:static!important;height:auto!important;max-height:none!important;
   visibility:visible!important;opacity:1!important;overflow:visible!important;width:100%!important;
   margin:0!important;padding:5px 10px 12px 28px!important;box-sizing:border-box!important;
   background:rgba(0,0,0,.10)!important
 }
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>a{
   background:rgba(85,190,148,.30)!important
 }
}

/* v1.11.95 — dark-blue Educare/ESchool mobile menu palette. */
@media(max-width:782px){
 body .menu-section .stellarnav.mobile,
 body .menu-section .stellarnav{
   background:#082b52!important;
 }
 body .menu-section .stellarnav.mobile>ul,
 body .menu-section .stellarnav>ul,
 body .opa-mobile-menu-actual{
   background:linear-gradient(155deg,#061f3d 0%,#0a3564 55%,#071b35 100%)!important;
 }
 body .menu-section .stellarnav.mobile>ul>li,
 body .menu-section .stellarnav>ul>li,
 body .opa-mobile-menu-actual>li.opa-mobile-row{
   border-bottom-color:rgba(255,255,255,.12)!important;
 }
 body .menu-section .stellarnav.mobile>ul>li>a:hover,
 body .menu-section .stellarnav.mobile>ul>li.open>a,
 body .menu-section .stellarnav.mobile>ul>li.active>a,
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>a,
 body .opa-mobile-menu-actual>li.opa-mobile-row-parent.opa-mobile-submenu-open>a.opa-mobile-row-link{
   background:rgba(52,120,196,.38)!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub.open>.dd-toggle{
   background:rgba(52,120,196,.28)!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>ul,
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>.opa-stellar-sub,
 body .menu-section .stellarnav li.opa-stellar-parent>.opa-stellar-sub.opa-stellar-sub-open{
   background:rgba(1,13,29,.24)!important;
 }
 body .menu-section .stellarnav.mobile .menu-toggle{
   background:#082b52!important;
   color:#fff!important;
 }
}

/* v1.11.96 — exact solid mobile menu bar color requested: #051A39 */
@media(max-width:782px){
 body .menu-section,
 body .menu-section .stellarnav,
 body .menu-section .stellarnav.mobile,
 body .menu-section .stellarnav .menu-toggle,
 body .menu-section .stellarnav.mobile .menu-toggle,
 body .menu-section .stellarnav>ul,
 body .menu-section .stellarnav.mobile>ul,
 body .opa-mobile-menu-actual{
   background:#051A39!important;
   background-image:none!important;
 }
}

/* v1.11.97 — replace Stellarnav mobile plus icon with down/up chevron. */
@media(max-width:782px){
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus{
   width:12px!important;height:12px!important;
   border:0!important;background:none!important;
   transform:rotate(45deg)!important;
   transition:transform .2s ease!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:after,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:after{
   content:""!important;position:absolute!important;background:#fff!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:before{
   width:2px!important;height:10px!important;right:0!important;bottom:0!important;left:auto!important;top:auto!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus:after,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:after{
   width:10px!important;height:2px!important;right:0!important;bottom:0!important;left:auto!important;top:auto!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub.open>.dd-toggle .icon-plus,
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>.dd-toggle .icon-plus{
   transform:rotate(225deg)!important;
 }
}

/* v1.11.98 — submenu down arrow immediately after menu text. */
@media(max-width:782px){
 body .menu-section .stellarnav.mobile li.has-sub>a,
 body .menu-section .stellarnav li.opa-stellar-parent>a{
   display:inline-flex!important;
   align-items:center!important;
   width:auto!important;
   padding-right:4px!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle{
   display:inline-flex!important;
   position:static!important;
   vertical-align:middle!important;
   width:auto!important;
   height:auto!important;
   min-width:0!important;
   min-height:0!important;
   margin-left:7px!important;
   padding:0!important;
   background:transparent!important;
   transform:none!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle .icon-plus,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus{
   display:none!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub>.dd-toggle:after,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle:after{
   content:"▼"!important;
   display:inline-block!important;
   color:#fff!important;
   font-size:11px!important;
   line-height:1!important;
   transform:none!important;
 }
 body .menu-section .stellarnav.mobile li.has-sub.open>.dd-toggle:after,
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>.dd-toggle:after{
   content:"▲"!important;
 }
}

/* v1.11.99 — show ONLY one down-arrow after submenu parent text. */
@media(max-width:782px){
 /* Completely suppress every native Stellarnav plus/chevron drawing layer. */
 body .menu-section .stellarnav li.has-sub>.dd-toggle .icon-plus,
 body .menu-section .stellarnav li.has-sub>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav li.has-sub>.dd-toggle .icon-plus:after,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:before,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle .icon-plus:after{
   display:none!important;
   content:none!important;
   width:0!important;height:0!important;
   border:0!important;background:none!important;
   box-shadow:none!important;
 }
 /* Hide any theme-generated marker on the parent anchor itself. */
 body .menu-section .stellarnav li.has-sub>a:before,
 body .menu-section .stellarnav li.has-sub>a:after,
 body .menu-section .stellarnav li.opa-stellar-parent>a:before,
 body .menu-section .stellarnav li.opa-stellar-parent>a:after{
   display:none!important;
   content:none!important;
 }
 body .menu-section .stellarnav li.has-sub>.dd-toggle,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle{
   font-size:0!important;
   line-height:1!important;
   overflow:visible!important;
 }
 body .menu-section .stellarnav li.has-sub>.dd-toggle:before,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle:before{
   display:none!important;
   content:none!important;
 }
 body .menu-section .stellarnav li.has-sub>.dd-toggle:after,
 body .menu-section .stellarnav li.opa-stellar-parent>.dd-toggle:after,
 body .menu-section .stellarnav li.has-sub.open>.dd-toggle:after,
 body .menu-section .stellarnav li.opa-stellar-parent.opa-stellar-open>.dd-toggle:after{
   content:"▼"!important;
   display:inline-block!important;
   position:static!important;
   width:auto!important;height:auto!important;
   margin:0!important;padding:0!important;
   border:0!important;background:none!important;
   color:#fff!important;
   font-family:Arial,sans-serif!important;
   font-size:11px!important;
   font-weight:700!important;
   line-height:1!important;
   transform:none!important;
   box-shadow:none!important;
 }
}

