/* Prep Site Menu: the main menu (desktop panels, phone menu, search). Every rule is scoped to .prep-site-menu.
   Built from the approved mock-up; Gotham is the site's font (Montserrat is the fallback). */
.prep-site-menu{--navy:#002b54;--navy-2:#0a3a6b;--gold:#b8860b;--gold-soft:#f7efdc;--muted:#4a5d70;--line:#f2f5f7;
  --spring:cubic-bezier(.34,1.45,.55,1);--swoop:cubic-bezier(.22,1,.36,1);
  --book:'Gotham Book','Montserrat',Arial,sans-serif;--bold:'Gotham Bold','Montserrat',Arial,sans-serif;--ultra:'Gotham Ultra','Montserrat',Arial,sans-serif;}
.prep-site-menu,.prep-site-menu *{box-sizing:border-box}
.prep-site-menu{font-family:var(--book);color:var(--navy)}
.prep-site-menu a{color:inherit;text-decoration:none}
.prep-site-menu button{font:inherit;color:inherit}
.prep-site-menu svg.i{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prep-site-menu img.si{display:block;object-fit:contain}
.prep-site-menu .hdr{position:sticky;top:0;z-index:50;background:var(--navy);transition:box-shadow .3s ease}
.prep-site-menu .hdr.is-scrolled{box-shadow:0 8px 24px rgba(0,26,51,.28)}
.prep-site-menu .hdr-in{height:49px;padding:0 13px;display:flex;align-items:center}
.prep-site-menu .logo img{display:block;height:23px;width:auto}
.prep-site-menu .nav{position:relative;display:flex;align-items:center;margin-left:auto}
.prep-site-menu .top{position:relative;z-index:1;display:flex;align-items:center;gap:5px;height:49px;padding:14px 8px;border:0;background:none;color:#fff;font:400 13px/20px var(--book);white-space:nowrap;cursor:pointer}
.prep-site-menu .top .car{width:11px;height:11px;stroke-width:2.6;opacity:.85;transition:transform .45s var(--spring)}
.prep-site-menu .top[aria-expanded="true"] .car{transform:rotate(180deg)}
.prep-site-menu .top:focus-visible{outline:2px solid #fff;outline-offset:-4px;border-radius:8px}
.prep-site-menu .glide{position:absolute;z-index:0;top:8px;left:0;height:33px;width:var(--w,0);border-radius:10px;background:var(--gold);transform:translateX(var(--x,0));opacity:0;pointer-events:none;transition:transform .45s var(--spring),width .45s var(--spring),opacity .2s ease}
.prep-site-menu .nav.has-glide .glide{opacity:1}
.prep-site-menu .search-btn{display:grid;place-items:center;width:36px;height:36px;margin-left:6px;border:0;border-radius:50%;background:none;color:#fff;cursor:pointer;transition:background-color .2s ease,transform .35s var(--spring)}
.prep-site-menu .search-btn svg{width:19px;height:19px;stroke-width:2.2}
.prep-site-menu .search-btn:hover{background:rgba(255,255,255,.12);transform:rotate(-12deg) scale(1.08)}
.prep-site-menu .panel{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:var(--pw,600px);height:var(--ph,300px);transform:translateX(var(--px,0)) translateY(8px) scale(.97);transform-origin:var(--ox,50%) top;opacity:0;visibility:hidden;border-radius:20px;background:#fff;box-shadow:0 30px 70px -10px rgba(0,26,51,.35),0 0 0 1px rgba(0,43,84,.07);overflow:hidden;
  transition:transform .5s var(--swoop),width .5s var(--swoop),height .5s var(--swoop),opacity .22s ease,visibility 0s linear .5s}
.prep-site-menu .panel.is-open{opacity:1;visibility:visible;transform:translateX(var(--px,0)) translateY(0) scale(1);transition:transform .5s var(--swoop),width .5s var(--swoop),height .5s var(--swoop),opacity .18s ease,visibility 0s}
.prep-site-menu .pane{position:absolute;top:0;left:0;display:grid;gap:20px;padding:22px;opacity:0;pointer-events:none;transition:opacity .22s ease,transform .45s var(--swoop)}
.prep-site-menu .pane.is-on{opacity:1;pointer-events:auto;transform:none}
.prep-site-menu .pane.from-right{transform:translateX(56px)}
.prep-site-menu .pane.from-left{transform:translateX(-56px)}
.prep-site-menu .pane.to-left{transform:translateX(-56px);opacity:0}
.prep-site-menu .pane.to-right{transform:translateX(56px);opacity:0}
.prep-site-menu .feature{position:relative;display:flex;flex-direction:column;gap:8px;min-height:190px;padding:20px;border-radius:16px;background:linear-gradient(150deg,var(--navy),var(--navy-2));color:#fff;overflow:hidden;isolation:isolate}
.prep-site-menu .feature::after{content:"";position:absolute;z-index:-1;right:-70px;top:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(184,134,11,.5),rgba(184,134,11,0) 70%);transition:transform .8s var(--swoop)}
.prep-site-menu .feature:hover::after{transform:translate(-30px,30px) scale(1.2)}
.prep-site-menu .feature .tile{display:grid;place-items:center;width:64px;height:64px;margin-bottom:auto;border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.18);transition:transform .5s var(--spring)}
.prep-site-menu .feature:hover .tile{transform:rotate(-6deg) scale(1.06)}
.prep-site-menu .feature .tile img{width:48px;height:48px}
.prep-site-menu .feature .tiles{display:flex;gap:8px;margin-bottom:auto}
.prep-site-menu .feature h3{margin:0;font:900 22px/1.1 var(--ultra)}
.prep-site-menu .feature .go{display:inline-flex;align-items:center;gap:6px;color:#f1d48a;font:400 13px/1 var(--bold)}
.prep-site-menu .feature .go svg{width:14px;height:14px;transition:transform .35s var(--spring)}
.prep-site-menu .feature:hover .go svg{transform:translateX(5px)}
.prep-site-menu .col{min-width:0}
.prep-site-menu .col h4{display:flex;align-items:center;gap:8px;min-height:30px;margin:0 0 6px;padding:0 10px;color:var(--gold);font:400 11px/1.2 var(--bold);letter-spacing:.1em;text-transform:uppercase}
.prep-site-menu .col h4 a:hover{text-decoration:underline}
.prep-site-menu .col h4 img{width:26px;height:26px}
.prep-site-menu .lk{position:relative;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--navy);font:400 13px/20px var(--bold);transition:background-color .2s ease,padding .35s var(--spring)}
.prep-site-menu .lk img{width:26px;height:26px}
.prep-site-menu .lk::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:3px;background:var(--gold);transform:scaleY(0);transition:transform .35s var(--spring)}
.prep-site-menu .lk .ext{width:12px;height:12px;margin-left:auto;opacity:0;transform:translate(-3px,3px);transition:opacity .2s ease,transform .35s var(--spring)}
.prep-site-menu .lk:hover,.prep-site-menu .lk:focus-visible{background:var(--gold-soft);padding-left:14px;outline:none}
.prep-site-menu .lk:hover::before,.prep-site-menu .lk:focus-visible::before{transform:scaleY(1)}
.prep-site-menu .lk:hover .ext,.prep-site-menu .lk:focus-visible .ext{opacity:.7;transform:none}
.prep-site-menu .pane .stag{opacity:0;transform:translateY(10px)}
.prep-site-menu .pane.is-on .stag{animation:psm-rise .5s var(--swoop) forwards;animation-delay:calc(var(--n,0) * 24ms + 60ms)}
@keyframes psm-rise{to{opacity:1;transform:none}}
.prep-site-menu .rail{display:flex;flex-direction:column;gap:2px}
.prep-site-menu .rail .feature{min-height:120px;margin-bottom:8px}
.prep-site-menu .rail .feature .tile{width:52px;height:52px}
.prep-site-menu .rail .feature .tile img{width:40px;height:40px}
.prep-site-menu .rail-btn{display:flex;align-items:center;gap:10px;padding:6px 10px;border:0;border-radius:10px;background:none;color:var(--navy);font:400 13px/20px var(--bold);text-align:left;cursor:pointer;transition:background-color .2s ease}
.prep-site-menu .rail-btn img,.prep-site-menu .rail-btn .dot{width:26px;height:26px;flex:0 0 auto;transition:transform .45s var(--spring)}
.prep-site-menu .rail-btn .dot{display:grid;place-items:center;border-radius:8px;background:var(--line)}
.prep-site-menu .rail-btn .dot::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
.prep-site-menu .rail-btn .n{margin-left:auto;color:var(--muted);font:400 11px/1 var(--book)}
.prep-site-menu .rail-btn.is-on{background:var(--gold-soft)}
.prep-site-menu .rail-btn.is-on img,.prep-site-menu .rail-btn.is-on .dot{transform:rotate(-8deg) scale(1.1)}
.prep-site-menu .rail-body{display:grid}
.prep-site-menu .rail-set{grid-area:1/1;display:grid;grid-template-columns:repeat(3,1fr);gap:2px 10px;align-content:start;visibility:hidden}
.prep-site-menu .rail-set h4{grid-column:1/-1}
.prep-site-menu .rail-set>*{opacity:0;transform:translateX(16px);transition:opacity .25s ease,transform .45s var(--swoop),background-color .2s ease,padding .35s var(--spring)}
.prep-site-menu .rail-set.is-on{visibility:visible}
.prep-site-menu .rail-set.is-on>*{opacity:1;transform:none;transition-delay:calc(var(--k,0) * 16ms),calc(var(--k,0) * 16ms),0s,0s}
.prep-site-menu .school{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:16px;background:#f7f9fb;border:1px solid #e3e8ee}
.prep-site-menu .school-head{display:flex;align-items:center;gap:12px;padding:4px;border-radius:12px;font:900 18px/1.1 var(--ultra);transition:background-color .2s ease}
.prep-site-menu .school-head:hover{background:#fff}
.prep-site-menu .school-head img{width:48px;height:48px;transition:transform .5s var(--spring)}
.prep-site-menu .school-head:hover img{transform:rotate(-10deg) scale(1.08)}
.prep-site-menu .chips{display:flex;flex-wrap:wrap;gap:6px}
.prep-site-menu .chip{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #e3e8ee;color:var(--navy);font:400 12px/1 var(--bold);transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .3s var(--spring)}
.prep-site-menu .chip:hover{background:var(--gold);border-color:var(--gold);color:#fff;transform:translateY(-2px)}
.prep-site-menu .chip{display:inline-flex;align-items:center;gap:6px}
.prep-site-menu .chip img{width:22px;height:22px}
.prep-site-menu .lk img,.prep-site-menu .rail-btn img,.prep-site-menu .m-row img{flex-shrink:0}
.prep-site-menu .feature .tile:empty{display:none}
.prep-site-menu .search{position:fixed;inset:0;z-index:80;display:grid;place-items:start center;padding-top:12vh;background:rgba(0,26,51,.5);backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility 0s linear .25s}
.prep-site-menu .search.is-open{opacity:1;visibility:visible;transition:opacity .25s ease}
.prep-site-menu .search-box{display:flex;align-items:center;gap:10px;width:min(620px,92vw);padding:8px 8px 8px 18px;border-radius:16px;background:#fff;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(-24px) scale(.96);transition:transform .5s var(--spring)}
.prep-site-menu .search.is-open .search-box{transform:none}
.prep-site-menu .search-box input{flex:1;height:44px;border:0;outline:0;font:400 16px var(--book);color:var(--navy)}
.prep-site-menu .search-box button{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:10px;background:var(--line);color:var(--navy);cursor:pointer}
.prep-site-menu .burger{display:none;position:relative;width:40px;height:40px;margin-left:4px;border:0;border-radius:50%;background:none;cursor:pointer}
.prep-site-menu .burger span{position:absolute;left:11px;width:18px;height:2px;border-radius:2px;background:#fff;transition:transform .45s var(--spring),opacity .2s ease,top .45s var(--spring)}
.prep-site-menu .burger span:nth-child(1){top:13px}
.prep-site-menu .burger span:nth-child(2){top:19px}
.prep-site-menu .burger span:nth-child(3){top:25px}
.prep-site-menu .burger[aria-expanded="true"] span:nth-child(1){top:19px;transform:rotate(45deg)}
.prep-site-menu .burger[aria-expanded="true"] span:nth-child(2){opacity:0;transform:scaleX(.2)}
.prep-site-menu .burger[aria-expanded="true"] span:nth-child(3){top:19px;transform:rotate(-45deg)}
.prep-site-menu .sheet{position:fixed;z-index:45;top:49px;left:0;right:0;bottom:0;background:#fff;clip-path:circle(0 at var(--cx,95%) 0);transition:clip-path .6s var(--swoop);overflow:hidden}
.prep-site-menu .sheet.is-open{clip-path:circle(150% at var(--cx,95%) 0)}
.prep-site-menu .level{position:absolute;inset:0;overflow:auto;padding:8px 12px 40px;background:#fff;transition:transform .45s var(--swoop)}
.prep-site-menu .level.is-right{transform:translateX(100%)}
.prep-site-menu .level.is-left{transform:translateX(-30%)}
.prep-site-menu .m-row{display:flex;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px;border:0;border-bottom:2px solid var(--line);background:none;color:var(--navy);font:400 13px/20px var(--bold);text-align:left;cursor:pointer}
.prep-site-menu .m-row img{width:34px;height:34px}
.prep-site-menu .m-row .more{margin-left:auto;width:14px;height:14px}
.prep-site-menu .m-back{display:inline-flex;align-items:center;gap:6px;margin:6px 0 4px;padding:8px 12px;border:0;border-radius:999px;background:var(--line);color:var(--navy);font:400 13px var(--bold);cursor:pointer}
.prep-site-menu .m-title{display:flex;align-items:center;gap:10px;margin:10px 8px 6px;color:var(--gold);font:400 11px/1 var(--bold);letter-spacing:.12em;text-transform:uppercase}
.prep-site-menu .m-title img{width:30px;height:30px}
@media(max-width:1100px){.prep-site-menu .nav,.prep-site-menu .panel,.prep-site-menu .search-btn.desk{display:none}
.prep-site-menu .burger{display:block}
.prep-site-menu .tools{margin-left:auto}}
.prep-site-menu .tools{display:flex;align-items:center}
.prep-site-menu .page{padding:60px 24px;text-align:center;color:var(--muted);font:400 15px/1.6 var(--book)}
.prep-site-menu .page h1{margin:0 0 8px;color:var(--navy);font:700 34px/1.1 var(--bold)}
@media(prefers-reduced-motion:reduce){.prep-site-menu,.prep-site-menu *,.prep-site-menu *::before,.prep-site-menu *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
.prep-site-menu .families-all{width:1190px}
.prep-site-menu .families-heading{display:flex;align-items:center;justify-content:space-between;padding:0 0 16px;margin-bottom:18px;border-bottom:1px solid #e2e8ee}
.prep-site-menu .families-heading>div{display:flex;align-items:center;gap:12px}
.prep-site-menu .families-heading img{width:40px;height:40px}
.prep-site-menu .families-heading h3{font-size:22px;margin:0 0 3px}
.prep-site-menu .families-heading p{font-size:12px;margin:0;color:var(--muted)}
.prep-site-menu .families-heading>a{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gold)}
.prep-site-menu .families-columns{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}
.prep-site-menu .families-columns>div+div{border-left:1px solid #e8edf1;padding-left:18px}
.prep-site-menu .family-group{margin:0 0 19px}
.prep-site-menu .family-group:last-child{margin-bottom:0}
.prep-site-menu .family-group h4{font-size:11px;line-height:1.5;letter-spacing:.055em;text-transform:uppercase;color:#956b08;margin:0 0 9px}
.prep-site-menu .family-link{display:flex;align-items:center;gap:8px;min-height:31px;padding:3px 5px;border-radius:7px;font-size:13px;line-height:1.35;transition:background .2s}
.prep-site-menu .family-link:hover,.prep-site-menu .family-link:focus-visible{background:var(--gold-soft)}
.prep-site-menu .family-link img{width:24px;height:24px;flex-shrink:0;object-fit:contain}
.prep-site-menu .family-ext{width:10px!important;height:10px!important;opacity:.4;margin-left:auto;flex-shrink:0}
.prep-site-menu .family-link span{min-width:0}
.prep-site-menu .mobile-family-group{margin:20px 8px}
.prep-site-menu .mobile-family-group h4{color:var(--gold);font-size:11px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #e2e8ee;padding-bottom:10px}
.prep-site-menu .mobile-family-group .m-row{font-size:13px;min-height:46px}
.prep-site-menu .mobile-family-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 6px;margin:24px 8px}
.prep-site-menu .mobile-family-group h4{grid-column:1/-1;margin:0 0 2px;padding-bottom:10px;line-height:1.5}
.prep-site-menu .mobile-family-group .m-row{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:9px;min-height:105px;padding:10px 4px;border:0;border-radius:10px;text-align:center;font-size:12px;line-height:1.4;overflow-wrap:normal;word-break:normal}
.prep-site-menu .mobile-family-group .m-row:hover,.prep-site-menu .mobile-family-group .m-row:focus-visible{background:var(--gold-soft)}
.prep-site-menu .mobile-family-group .m-row img{width:48px;height:48px;object-fit:contain;flex-shrink:0}
.prep-site-menu .mobile-family-group .m-row:not(:has(img))::before{content:"";display:block;width:48px;height:48px;flex-shrink:0}
.prep-site-menu .family-browser{width:100%;min-width:0}
.prep-site-menu .fb-heading{display:flex;gap:12px;align-items:center;margin-bottom:16px}
.prep-site-menu .fb-heading>img{width:40px;height:40px}
.prep-site-menu .fb-heading h3{margin:0 0 5px;font-size:22px}
.prep-site-menu .fb-heading a{font-size:12px;color:var(--gold)}
.prep-site-menu .fb-controls{display:flex;gap:8px;align-items:center}
.prep-site-menu .fb-controls label{display:flex;align-items:center;gap:10px;border:1px solid #cdd8e2;border-radius:10px;padding:10px 12px;flex:1;min-width:0;background:#f8fafc}
.prep-site-menu .fb-controls input{font:inherit;font-size:13px;border:0;outline:0;background:transparent;width:100%;min-width:0;color:var(--navy)}
.prep-site-menu .fb-controls label:focus-within{outline:2px solid var(--gold)}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]){padding:11px 12px;border:1px solid #dce3ea;background:white;border-radius:9px;font-size:12px;cursor:pointer;white-space:nowrap}
.prep-site-menu .fb-status{font-size:11px;color:var(--muted);margin:10px 0}
.prep-site-menu .fb-sections{max-height:475px;overflow:auto;overscroll-behavior:contain;padding:3px 10px 10px 3px}
.prep-site-menu .fb-sections details{border:1px solid #e0e7ed;border-radius:10px;margin-bottom:8px;overflow:hidden}
.prep-site-menu .fb-sections summary{list-style:none;display:flex;align-items:center;gap:12px;padding:13px 14px;cursor:pointer;background:#f7f9fb;font-size:13px;font-weight:700}
.prep-site-menu .fb-sections summary::-webkit-details-marker{display:none}
.prep-site-menu .fb-sections summary small{margin-left:auto;color:var(--muted);font-weight:400}
.prep-site-menu .fb-sections details[open] summary{background:#f7efdc}
.prep-site-menu .fb-sections details[open] summary svg{transform:rotate(180deg)}
.prep-site-menu .fb-links{display:flex;flex-direction:column;padding:8px 12px;gap:4px}
.prep-site-menu .fb-link{display:flex;align-items:center;gap:12px;min-height:42px;padding:7px 10px;border:1px solid transparent;border-radius:8px;font-size:13px;line-height:1.4;transition:opacity .25s,background .25s,border-color .25s,transform .25s}
.prep-site-menu .fb-link img{width:28px;height:28px;object-fit:contain;transition:transform .3s;flex-shrink:0}
.prep-site-menu .fb-link:hover{background:var(--gold-soft)}
.prep-site-menu .fb-ext{margin-left:auto;width:12px!important;height:12px!important;opacity:.4}
.prep-site-menu .fb-link.is-dim{opacity:.23}
.prep-site-menu .fb-link.is-match{background:#fff4d6;border-color:#d5ac47;box-shadow:0 2px 9px #b8860b18;transform:scale(1.012);font-weight:700}
.prep-site-menu .fb-link.is-match img{transform:scale(1.18)}
.prep-site-menu .fb-overview{display:block;font-size:12px;padding:12px 22px 0;color:var(--gold)}
@media(max-width:1100px){.prep-site-menu .level .family-browser{padding:6px 8px}
.prep-site-menu .level .fb-controls{flex-wrap:wrap}
.prep-site-menu .level .fb-controls label{flex-basis:100%}
.prep-site-menu .level .fb-controls button:not([class*="prep-meetings__"]){flex:1}
.prep-site-menu .level .fb-sections{max-height:none;overflow:visible;padding:3px 1px 12px}
.prep-site-menu .level .fb-heading h3{font-size:20px}
.prep-site-menu .level .fb-link{min-height:48px}
.prep-site-menu .level .fb-link img{width:32px;height:32px}}
.prep-site-menu .family-browser{display:flex;flex-direction:column}
.prep-site-menu .fb-controls{margin-top:14px;padding-top:14px;border-top:1px solid #e0e7ed}
.prep-site-menu .fb-status{margin-bottom:0}
.prep-site-menu .fb-controls label{background:#fff;border-color:#cdd8e2}
.prep-site-menu .fb-controls{margin:0;padding:0;border-top:0}
.prep-site-menu .fb-controls label{height:44px;padding:0 16px;border:1px solid #d4dce4;border-radius:999px;background:#fff;box-shadow:0 4px 18px #002b540a;gap:10px}
.prep-site-menu .fb-controls label:focus-within{outline:0;border-color:#002b54;box-shadow:0 0 0 2px #002b5412}
.prep-site-menu .fb-controls input{font-size:15px}
.prep-site-menu .fb-controls input::placeholder{color:#7d8fa1;opacity:1}
.prep-site-menu .fb-controls label svg{width:18px;height:18px}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]){border-radius:999px;border-color:#d4dce4}
.prep-site-menu .fb-status{margin:10px 0 12px}
.prep-site-menu .mobile-back-bar{position:sticky;top:-8px;z-index:10;background:#fff;margin:-8px -12px 8px;padding:8px 12px 6px;border-bottom:1px solid #edf1f5;box-shadow:0 3px 8px #002b5408}
.prep-site-menu .mobile-back-bar .m-back{margin:0}
.prep-site-menu .fb-heading a{display:inline-flex;align-items:center;padding:7px 12px;background:var(--gold-soft);border-radius:999px;color:#775608;font-size:12px}
.prep-site-menu .level .fb-heading{margin-bottom:14px}
.prep-site-menu .level .fb-controls input{font-size:16px}
.prep-site-menu .fb-link.is-dim{display:none}
.prep-site-menu .fb-link.is-match,.prep-site-menu .fb-link.is-match:hover,.prep-site-menu .fb-link:hover,.prep-site-menu .fb-link:focus-visible{background:#efe9df;border-color:transparent;box-shadow:none}
.prep-site-menu .fb-sections summary,.prep-site-menu .fb-sections details[open] summary{background:#f4f6f8}
.prep-site-menu .fb-sections summary:hover{background:#e9edf1}
.prep-site-menu .fb-sections details[hidden]{display:none}
.prep-site-menu .fb-link{font:400 13px/20px var(--bold);gap:10px;padding:9px 10px;min-height:0;border:0;border-radius:10px}
.prep-site-menu .fb-link img{width:26px;height:26px}
.prep-site-menu .fb-links{gap:0;padding:8px 12px}
.prep-site-menu .fb-link.is-match{font-weight:400}
.prep-site-menu .fb-sections summary{font:400 13px/20px var(--bold);padding:9px 10px}
.prep-site-menu .fb-sections summary small{font:400 11px/20px var(--book)}
@media(max-width:1100px){.prep-site-menu .level .fb-link{font:400 13px/20px var(--bold);min-height:52px;padding:8px;gap:12px}
.prep-site-menu .level .fb-link img{width:34px;height:34px}
.prep-site-menu .level .fb-sections summary{font:400 13px/20px var(--bold);padding:12px 10px}}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]){display:inline-flex;align-items:center;justify-content:center;gap:7px}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]) svg{width:18px;height:18px;stroke-width:2.2}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]):hover{background:#efe9df;border-color:#c9b99c}
@media(max-width:1100px){.prep-site-menu .level .fb-controls{flex-wrap:nowrap;gap:7px}
.prep-site-menu .level .fb-controls label{flex:1 1 0;min-width:0;flex-basis:0;height:40px;padding:0 12px;gap:8px}
.prep-site-menu .level .fb-controls button:not([class*="prep-meetings__"]){flex:0 0 40px;width:40px;height:40px;padding:0;border-radius:50%}
.prep-site-menu .level .fb-controls button:not([class*="prep-meetings__"]) span{display:none}
.prep-site-menu .level .fb-controls input{font-size:16px}
.prep-site-menu .level .fb-controls label svg{flex-shrink:0}}
.prep-site-menu .fb-controls{position:sticky;top:0;z-index:8;background:#efe9df;padding:12px;border-radius:12px;isolation:isolate}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]){background:#fff}
.prep-site-menu .level .fb-controls{top:42px;margin:0 -8px;padding:10px 8px;border-radius:0;box-shadow:0 3px 8px #002b5408}
@media(max-width:1100px){.prep-site-menu .level .fb-links{gap:5px}
.prep-site-menu .level .mobile-back-bar{top:-8px;min-height:44px;height:44px;padding:8px 12px;margin:-8px -12px 8px;box-shadow:none;z-index:12;box-sizing:border-box}
.prep-site-menu .level .fb-controls{top:36px;margin-left:-20px;margin-right:-20px;width:calc(100% + 40px);padding:10px 20px;background:#efe9df;opacity:1;border-radius:0;box-shadow:none;z-index:11}}
.prep-site-menu .mobile-group-icon{width:34px;height:34px;flex:0 0 34px}
.prep-site-menu .level .main-mobile-search{position:sticky;top:-8px;margin:-8px -12px 12px;width:calc(100% + 24px);padding:10px 12px;background:#efe9df;border-radius:0;z-index:15}
.prep-site-menu .level .main-mobile-search label{height:40px}
.prep-site-menu .level .main-mobile-search button{width:40px;height:40px;flex:0 0 40px;border-radius:50%}
.prep-site-menu .level .main-mobile-search button svg{width:18px;height:18px}
.prep-site-menu .fb-links{gap:5px;align-items:flex-start;background:#f7f9fb;padding:12px}
.prep-site-menu .fb-link{border:1px solid #e3e8ee;border-radius:999px;background:#fff;width:fit-content;max-width:100%;padding:7px 12px;font:400 13px/20px var(--bold);min-height:0}
.prep-site-menu .fb-link .fb-ext{margin-left:5px}
.prep-site-menu .fb-link img{width:24px;height:24px}
.prep-site-menu .fb-link.is-match{border-color:#d8c7aa}
.prep-site-menu .schools-browser .fb-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:start}
.prep-site-menu .schools-browser .fb-sections details{margin:0}
.prep-site-menu .schools-browser .fb-links{display:flex;flex-direction:column;gap:5px}
.prep-site-menu .schools-browser .fb-overview{background:#f7f9fb;margin:0;padding:12px 14px 0}
@media(max-width:1100px){.prep-site-menu .level .fb-link{padding:8px 12px;min-height:44px;border:1px solid #e3e8ee;gap:10px}
.prep-site-menu .level .fb-link img{width:28px;height:28px}
.prep-site-menu .level .schools-browser .fb-sections{display:flex;flex-direction:column;gap:8px}
.prep-site-menu .level .schools-browser .fb-sections details{width:100%}}
.prep-site-menu .schools-browser summary img{width:34px;height:34px;object-fit:contain}
.prep-site-menu .schools-browser summary{display:flex;align-items:center;gap:10px}
.prep-site-menu .custom-icon{width:26px;height:26px;flex:0 0 auto}
.prep-site-menu .fb-link .custom-icon{width:24px;height:24px}
.prep-site-menu .m-row .custom-icon{width:34px;height:34px}
.prep-site-menu .fb-home{margin:12px 12px 0;color:var(--navy)}
.prep-site-menu .fb-link.is-match .custom-icon{transform:scale(1.18)}
.prep-site-menu .fb-link .custom-icon{transition:transform .3s}
.prep-site-menu .level .fb-link .custom-icon{width:28px;height:28px}
.prep-site-menu .ext,.prep-site-menu .fb-ext,.prep-site-menu .family-ext{display:none!important}
.prep-site-menu .live-caption,.prep-site-menu .live-results,.prep-site-menu .live-close{display:none}
.prep-site-menu .level.mobile-searching{background:rgba(0,43,84,.97);isolation:isolate}
.prep-site-menu .level.mobile-searching::before{content:"";position:fixed;inset:0;z-index:-1;background:url('https://www.stcroixprep.org/wp-content/uploads/2024/02/seal-english-navy-gold-white-300x300.webp') center/auto 115% no-repeat;filter:blur(12px);opacity:.1;pointer-events:none}
.prep-site-menu .mobile-searching>.m-row{display:none}
.prep-site-menu .level.mobile-searching .main-mobile-search{background:transparent;padding:18px 16px;margin-bottom:0;box-shadow:none}
.prep-site-menu .level.mobile-searching .main-mobile-search label{height:44px;padding:0 14px}
.prep-site-menu .level.mobile-searching .main-mobile-search .live-close{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;background:transparent;border:0;padding:0}
.prep-site-menu .mobile-searching .live-caption{display:block;color:#abc0d2;font:400 12px/1.5 var(--book);margin:5px 4px 12px}
.prep-site-menu .mobile-searching .live-results:not(:empty){display:flex;flex-direction:column;padding:10px;border-radius:12px;background:#fff;margin:0 4px}
.prep-site-menu .live-result{display:flex;gap:12px;padding:13px 8px;border-radius:10px;color:var(--navy)}
.prep-site-menu .live-result:hover{background:#efe9df}
.prep-site-menu .live-result img{width:40px;height:40px;object-fit:cover;border-radius:5px;flex-shrink:0}
.prep-site-menu .live-result h4{font:700 14px/1.4 var(--book);margin:0 0 5px}
.prep-site-menu .live-result p{font:400 12px/1.5 var(--book);color:#526f8a;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.prep-site-menu .main-mobile-search input::-webkit-search-cancel-button{display:none}
.prep-site-menu .level .main-mobile-search .live-close{display:none}
.prep-site-menu .level.mobile-searching .main-mobile-search .live-close{display:grid}
.prep-site-menu .level .main-mobile-search,.prep-site-menu .level.mobile-searching .main-mobile-search{background:transparent;padding:18px 16px;margin:-8px -12px 0;width:calc(100% + 24px);box-shadow:none}
.prep-site-menu .level .main-mobile-search label,.prep-site-menu .level.mobile-searching .main-mobile-search label{height:44px;padding:0 14px}
.prep-site-menu .level.mobile-searching{background:#fff}
.prep-site-menu .level.mobile-searching::before{background:rgba(0,43,84,.97);filter:none;opacity:1;animation:psm-blue-search-down .42s cubic-bezier(.22,1,.36,1) both}
.prep-site-menu .level.mobile-searching::after{content:"";position:fixed;inset:0;z-index:-1;background:url('https://www.stcroixprep.org/wp-content/uploads/2024/02/seal-english-navy-gold-white-300x300.webp') center/auto 115% no-repeat;filter:blur(12px);opacity:.1;pointer-events:none;animation:psm-lion-search-down .5s ease both}
.prep-site-menu .mobile-searching .live-caption,.prep-site-menu .mobile-searching .live-results{animation:psm-search-content-down .35s ease both}
@keyframes psm-blue-search-down{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-14px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}
@keyframes psm-lion-search-down{from{opacity:0;transform:translateY(-20px)}to{opacity:.1;transform:translateY(0)}}
@keyframes psm-search-content-down{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.prep-site-menu .fb-heading>.custom-icon{width:40px;height:40px}
.prep-site-menu .fb-heading>img{object-fit:contain}
.prep-site-menu .fb-sections summary .custom-icon{width:26px;height:26px}
.prep-site-menu .fb-home{background:#fff}
.prep-site-menu .fb-sections details{background:#f7f9fb}
.prep-site-menu .level.mobile-searching::before,.prep-site-menu .level.mobile-searching::after{bottom:-40px}
.prep-site-menu .menu-website-results{display:flex;flex-direction:column;grid-column:1/-1;background:#fff;border-radius:12px;padding:8px}
.prep-site-menu .fb-status a{color:var(--navy);text-decoration:underline}
.prep-site-menu .level.mobile-search-closing::before{animation:psm-blue-search-up .32s cubic-bezier(.4,0,.6,1) both}
.prep-site-menu .level.mobile-search-closing::after{animation:psm-lion-search-up .3s ease both}
.prep-site-menu .mobile-search-closing .live-caption,.prep-site-menu .mobile-search-closing .live-results{animation:psm-search-content-up .24s ease both;pointer-events:none}
@keyframes psm-blue-search-up{from{opacity:1;clip-path:inset(0);transform:translateY(0)}to{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-14px)}}
@keyframes psm-lion-search-up{from{opacity:.1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}
@keyframes psm-search-content-up{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}
.prep-site-menu .horizontal-browser .fb-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.prep-site-menu .horizontal-about .fb-sections{grid-template-columns:repeat(3,minmax(0,1fr))}
.prep-site-menu .horizontal-browser .fb-sections details{margin:0}
@media(max-width:1100px){.prep-site-menu .level .horizontal-browser .fb-sections{display:flex;flex-direction:column;gap:8px}
.prep-site-menu .level .horizontal-browser .fb-sections details{width:100%}}
.prep-site-menu .services-browser .fb-sections{display:grid;grid-template-columns:1fr 1.3fr .85fr;gap:14px;max-height:none;overflow:visible;align-items:start}
.prep-site-menu .services-browser .fb-sections details{margin:0}
.prep-site-menu .services-browser .fb-sections details:nth-child(2) .fb-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:5px}
.prep-site-menu .services-browser .fb-link{font-size:12px;padding:6px 9px;gap:7px}
.prep-site-menu .services-browser .fb-link img,.prep-site-menu .services-browser .fb-link .custom-icon{width:22px;height:22px}
.prep-site-menu .services-browser .fb-home{margin:10px 12px 0}
@media(max-width:1100px){.prep-site-menu .level .services-browser .fb-sections{display:flex;flex-direction:column;gap:8px}
.prep-site-menu .level .services-browser .fb-sections details{width:100%}
.prep-site-menu .level .services-browser .fb-sections details:nth-child(2) .fb-links{display:flex;flex-direction:column}
.prep-site-menu .level .services-browser .fb-link{font-size:13px;padding:8px 12px;gap:10px}
.prep-site-menu .level .services-browser .fb-link img,.prep-site-menu .level .services-browser .fb-link .custom-icon{width:28px;height:28px}}
.prep-site-menu .board-document-result{padding:15px 12px;border-bottom:1px solid #e4e9ee}
.prep-site-menu .board-document-result:last-child{border:0}
.prep-site-menu .board-document-result h4{margin:0 0 7px;font:700 14px/1.4 var(--book);color:var(--navy)}
.prep-site-menu .board-document-result p{margin:0 0 10px;color:#526f8a;font:400 13px/1.5 var(--book)}
.prep-site-menu .board-document-links{display:flex;flex-wrap:wrap;gap:7px}
.prep-site-menu .board-document-links a{border:1px solid #d4dce4;border-radius:999px;background:#fff;padding:7px 12px;font:400 12px/1.3 var(--bold)}
.prep-site-menu .board-document-links a:hover{background:#efe9df}
.prep-site-menu .search-term{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;color:inherit;background:transparent}
.prep-site-menu .board-document-result,.prep-site-menu .menu-website-results>.live-result,.prep-site-menu .live-results>.live-result{position:relative;border-radius:10px;animation:psm-menu-result-fade-up .39s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--result-order,0)*32.5ms);transition:transform .24s cubic-bezier(.2,.7,.3,1),background-color .18s ease}
.prep-site-menu .board-document-result:hover,.prep-site-menu .board-document-result:focus-within,.prep-site-menu .menu-website-results>.live-result:hover,.prep-site-menu .menu-website-results>.live-result:focus-visible,.prep-site-menu .live-results>.live-result:hover,.prep-site-menu .live-results>.live-result:focus-visible{background:#efe9df;transform:scale(1.01);z-index:2}
@keyframes psm-menu-result-fade-up{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(max-width:767px){.prep-site-menu .board-document-result:hover,.prep-site-menu .board-document-result:focus-within,.prep-site-menu .live-result:hover{transform:none}}
@media(min-width:768px){.prep-site-menu .panel{border-radius:12px;box-shadow:0 14px 36px -8px #001a3333,0 0 0 1px #002b5412}
.prep-site-menu .pane{gap:12px;padding:14px}
.prep-site-menu .family-browser{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .fb-heading{gap:8px;margin-bottom:10px}
.prep-site-menu .fb-heading h3{font:600 18px/1.25 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .fb-heading>img,.prep-site-menu .fb-heading>.custom-icon{width:30px;height:30px}
.prep-site-menu .fb-controls{gap:6px;padding:8px;border-radius:8px}
.prep-site-menu .fb-controls label{height:32px;padding:0 11px;gap:7px;box-shadow:none}
.prep-site-menu .fb-controls input{font:400 13px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .fb-controls label svg{width:15px;height:15px}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]){height:30px;padding:0 10px;font:400 12px/1.2 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;gap:5px}
.prep-site-menu .fb-controls button:not([class*="prep-meetings__"]) svg{width:15px;height:15px}
.prep-site-menu .fb-status{font:400 11px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:7px 0 8px}
.prep-site-menu .fb-sections{padding:2px 5px 4px 2px;max-height:420px}
.prep-site-menu .fb-sections details{border-radius:7px;margin-bottom:6px}
.prep-site-menu .fb-sections summary{padding:7px 9px;gap:8px;font:600 12px/16px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .fb-sections summary small{font:400 11px/16px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .schools-browser summary img{width:26px;height:26px}
.prep-site-menu .fb-links,.prep-site-menu .schools-browser .fb-links{padding:8px;gap:4px}
.prep-site-menu .fb-link,.prep-site-menu .services-browser .fb-link{padding:4px 8px;gap:6px;font:500 12px/16px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;border-radius:999px;min-height:26px}
.prep-site-menu .fb-link img,.prep-site-menu .fb-link .custom-icon,.prep-site-menu .services-browser .fb-link img,.prep-site-menu .services-browser .fb-link .custom-icon{width:18px;height:18px}
.prep-site-menu .fb-home,.prep-site-menu .services-browser .fb-home{margin:8px 8px 0}
.prep-site-menu .horizontal-browser .fb-sections,.prep-site-menu .schools-browser .fb-sections,.prep-site-menu .services-browser .fb-sections{gap:10px}
.prep-site-menu .board-document-result{padding:10px 8px}
.prep-site-menu .board-document-result h4,.prep-site-menu .live-result h4{font:600 13px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .board-document-result p,.prep-site-menu .live-result p{font:400 12px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .board-document-links a{padding:5px 9px;font:500 12px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .live-result{padding:9px 7px;gap:9px}
.prep-site-menu .top{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .search-box input{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}}
.prep-site-menu .fb-link,.prep-site-menu .chip,.prep-site-menu .board-document-links a{transition:transform .2s cubic-bezier(.2,.7,.3,1),background-color .18s ease,border-color .18s ease;transform-origin:left center;position:relative}
@media(min-width:768px) and (hover:hover){.prep-site-menu .fb-link:hover,.prep-site-menu .chip:hover,.prep-site-menu .board-document-links a:hover{transform:scale(1.06);z-index:3;background:#efe9df}}
@media(max-width:767px),(hover:none){.prep-site-menu .fb-link:hover,.prep-site-menu .fb-link.is-match,.prep-site-menu .chip:hover,.prep-site-menu .board-document-links a:hover{transform:none}}
@media(min-width:1101px){.prep-site-menu .family-browser[data-menu="Families"] .fb-links{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
.prep-site-menu .family-browser[data-menu="Families"] .fb-link{flex:0 0 auto}}
@media(min-width:1101px){.prep-site-menu .family-browser[data-menu="Families"] .fb-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:column;grid-template-rows:repeat(var(--family-rows,5),auto);gap:5px 10px;align-items:start;justify-items:start}
.prep-site-menu .donate-browser .fb-sections{max-height:none;overflow:visible}
.prep-site-menu .donate-browser .fb-links{align-items:flex-start}
.prep-site-menu .donate-browser .fb-link{white-space:nowrap}
.prep-site-menu .donate-browser .fb-sections summary small{margin-left:auto}}
@media(min-width:1101px){.prep-site-menu .donate-browser{width:max-content}
.prep-site-menu .donate-browser .fb-sections{width:max-content}
.prep-site-menu .donate-browser .fb-heading{padding-right:12px}
.prep-site-menu .donate-browser .fb-sections details{min-width:185px}}
.prep-site-menu .level.mobile-searching::before{animation-duration:.65s}
.prep-site-menu .level.mobile-searching::after{animation-duration:.65s}
.prep-site-menu .level.mobile-search-closing::before,.prep-site-menu .level.mobile-search-closing::after{animation-duration:.65s}
.prep-site-menu .sheet.is-open .level.is-on.mobile-search-closing>.m-row{display:flex;animation:psm-mobile-menu-return .65s cubic-bezier(.22,1,.36,1) both;animation-delay:0s}
.prep-site-menu .mobile-search-closing .live-caption,.prep-site-menu .mobile-search-closing .live-results{display:none}
@keyframes psm-mobile-menu-return{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.prep-site-menu .sheet.is-open .level.is-on.mobile-search-closing>.m-row{display:flex;animation:psm-mobile-menu-bounce-back .65s cubic-bezier(.22,1,.36,1) both;animation-delay:0s;transform-origin:center bottom}
.prep-site-menu .sheet.is-open .level.is-on.mobile-menu-restored>.m-row{animation:none;opacity:1;transform:none}
.prep-site-menu .level.mobile-search-closing::before{animation:psm-blue-search-return-white .65s ease-in-out both}
.prep-site-menu .level.mobile-search-closing::after{animation:psm-lion-search-up .65s ease-in-out both}
@keyframes psm-mobile-menu-bounce-back{0%{opacity:0;transform:translateY(36px) scale(.9)}55%{opacity:1;transform:translateY(-5px) scale(1.025)}78%{opacity:1;transform:translateY(2px) scale(.995)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes psm-blue-search-return-white{from{opacity:1;clip-path:inset(0);transform:none}to{opacity:0;clip-path:inset(0);transform:none}}
.prep-site-menu .mobile-global-search{display:none;position:fixed;top:49px;bottom:0;left:0;right:0;z-index:70;padding:8px 12px 40px;overflow:auto}
.prep-site-menu .mobile-global-search.mobile-searching{display:block}
.prep-site-menu .mobile-global-search.mobile-searching::before,.prep-site-menu .mobile-global-search.mobile-searching::after{position:fixed;top:49px;bottom:0}
.prep-site-menu .mobile-global-search .main-mobile-search{top:-8px}
.prep-site-menu .tools .search-btn{flex-shrink:0}
.prep-site-menu .mobile-global-search.mobile-searching::before{animation:psm-global-search-drop .65s cubic-bezier(.22,1,.36,1) both;transform-origin:top center}
.prep-site-menu .mobile-global-search.mobile-search-closing::before{animation:psm-global-search-rise .65s cubic-bezier(.4,0,.6,1) both}
.prep-site-menu .mobile-global-search.mobile-searching::after{animation:psm-global-lion-drop .65s ease both}
.prep-site-menu .mobile-global-search.mobile-search-closing::after{animation:psm-global-lion-rise .65s ease both}
.prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search{animation:psm-global-field-drop .65s cubic-bezier(.22,1,.36,1) both;transform-origin:top center}
.prep-site-menu .mobile-global-search.mobile-search-closing .main-mobile-search{animation:psm-global-field-rise .5s ease both;pointer-events:none}
@keyframes psm-global-search-drop{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-18px)}75%{opacity:1;clip-path:inset(0);transform:translateY(3px)}100%{opacity:1;clip-path:inset(0);transform:none}}
@keyframes psm-global-search-rise{0%{opacity:1;clip-path:inset(0);transform:none}20%{opacity:1;transform:translateY(3px)}100%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-18px)}}
@keyframes psm-global-lion-drop{from{opacity:0;transform:translateY(-30px) scale(.97)}to{opacity:.1;transform:none}}
@keyframes psm-global-lion-rise{from{opacity:.1;transform:none}to{opacity:0;transform:translateY(-30px) scale(.97)}}
@keyframes psm-global-field-drop{0%{opacity:0;transform:translateY(-16px) scale(.96)}65%{opacity:1;transform:translateY(4px) scale(1.015)}100%{opacity:1;transform:none}}
@keyframes psm-global-field-rise{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-16px) scale(.97)}}
.prep-site-menu .mobile-global-search.mobile-searching::before{top:49px;bottom:0;animation:psm-mobile-blue-soft-in .65s ease both;transform:none;clip-path:none}
.prep-site-menu .mobile-global-search.mobile-searching::after{top:49px;bottom:0;animation:psm-mobile-lion-soft-in .65s ease both;transform:none}
.prep-site-menu .mobile-global-search.mobile-search-closing::before{animation:psm-mobile-blue-soft-out .65s ease both;transform:none;clip-path:none}
.prep-site-menu .mobile-global-search.mobile-search-closing::after{animation:psm-mobile-lion-soft-out .65s ease both;transform:none}
@keyframes psm-mobile-blue-soft-in{from{opacity:0}to{opacity:1}}
@keyframes psm-mobile-blue-soft-out{from{opacity:1}to{opacity:0}}
@keyframes psm-mobile-lion-soft-in{from{opacity:0}to{opacity:.1}}
@keyframes psm-mobile-lion-soft-out{from{opacity:.1}to{opacity:0}}
.prep-site-menu .mobile-global-search.mobile-searching::before,.prep-site-menu .mobile-global-search.mobile-searching::after,.prep-site-menu .mobile-global-search.mobile-search-closing::before,.prep-site-menu .mobile-global-search.mobile-search-closing::after,.prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search,.prep-site-menu .mobile-global-search.mobile-search-closing .main-mobile-search{animation-duration:.35s}
@media(min-width:1101px){.prep-site-menu .mobile-global-search{padding:24px 28px 32px}
.prep-site-menu .mobile-global-search .main-mobile-search,.prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search{position:sticky;top:-24px;width:100%;max-width:860px;margin:0 auto;padding:0 0 14px;border-radius:0;background:transparent;z-index:2}
.prep-site-menu .mobile-global-search .main-mobile-search label,.prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search label{height:44px;padding:0 16px;gap:14px;background:#fff;border:1px solid #d4dce4;box-shadow:none}
.prep-site-menu .mobile-global-search .main-mobile-search input{font:400 17px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .mobile-global-search .main-mobile-search label>svg{width:20px;height:20px}
.prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search .live-close{width:32px;height:32px;flex-basis:32px}
.prep-site-menu .mobile-global-search .live-close svg{width:20px;height:20px}
.prep-site-menu .mobile-global-search.mobile-searching .live-caption{max-width:860px;margin:0 auto 14px;font:400 14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .mobile-global-search.mobile-searching .live-results:not(:empty){max-width:860px;margin:0 auto;padding:14px;border-radius:14px}
.prep-site-menu .mobile-global-search .live-result{padding:16px 12px;gap:16px}
.prep-site-menu .mobile-global-search .live-result img{width:48px;height:48px}
.prep-site-menu .mobile-global-search .live-result h4{font:600 16px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.prep-site-menu .mobile-global-search .live-result p{font:400 14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}}
.prep-site-menu .sheet.is-open .level .m-row{animation:none}
@media(max-width:1100px){.prep-site-menu .sheet .level .fb-controls{display:flex}}
@media(min-width:1101px){.prep-site-menu .donate-browser,.prep-site-menu .donate-browser .fb-sections{width:100%}}
.prep-site-menu .rich-meeting{background:#f4f6f8;border:2px solid #fff!important;border-radius:10px;margin-bottom:6px;padding:12px}
.prep-site-menu .meeting-meta{color:#64798c}
.prep-site-menu .meeting-drawers{display:flex;flex-wrap:wrap;align-items:start;gap:8px}
.prep-site-menu .meeting-drawer{border:0!important;background:transparent!important;margin:0!important;overflow:visible!important}
.prep-site-menu .meeting-drawer>summary{display:flex;align-items:center;justify-content:space-between;gap:7px;background:#fff!important;border:2px solid #002b54;border-radius:999px!important;cursor:pointer;list-style:none;}
.prep-site-menu .meeting-drawer>summary::-webkit-details-marker{display:none}
.prep-site-menu .meeting-drawer:nth-child(2)>summary{border-color:#b79664}
.prep-site-menu .meeting-drawer>summary svg{width:12px;height:12px}
.prep-site-menu .meeting-drawer[open]{flex-basis:100%}
.prep-site-menu .meeting-drawer[open]>summary{width:fit-content;background:#efe9df!important}
.prep-site-menu .meeting-drawer[open]>summary svg{rotate:180deg}
.prep-site-menu .meeting-drawer-body{padding:12px;background:#fff;margin-top:8px;border-radius:10px;color:#002b54;font-size:12px;line-height:1.5}
.prep-site-menu .meeting-drawer-body>a{text-decoration:underline;display:inline-block;margin-bottom:7px}
.prep-site-menu .meeting-drawer-body ol{list-style:none;padding:0;margin:0}
.prep-site-menu .meeting-drawer-body li{padding:7px 0;border-bottom:1px solid #edf1f5}
.prep-site-menu .meeting-files{display:flex;flex-direction:column;gap:5px;padding:6px 0 0 10px}
.prep-site-menu .meeting-files a{text-decoration:underline;color:#526f8a}
.prep-site-menu .rich-faculty{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f4f6f8;border:2px solid #fff;border-radius:10px;padding:12px;margin-bottom:6px;color:#002b54;animation:psm-menu-result-fade-up .39s cubic-bezier(.2,.7,.3,1) both;animation-delay:calc(var(--result-order,0)*32.5ms);transition:transform .24s ease,background .18s}
.prep-site-menu .rich-faculty:hover{background:#efe9df;transform:scale(1.01)}
.prep-site-menu .rich-faculty h4{font:600 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0 0 4px}
.prep-site-menu .rich-faculty p{font:400 12px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;margin:0;color:#64798c}
.prep-site-menu .faculty-contacts{display:flex;flex-wrap:wrap;gap:7px}
.prep-site-menu .faculty-contacts a{border:2px solid #2f6db5;border-radius:999px;padding:5px 10px;background:#fff;font-size:12px;overflow-wrap:anywhere}
.prep-site-menu .faculty-contacts .faculty-phone{border-color:#4f9d3a}
.prep-site-menu .faculty-contacts .faculty-web{border-color:#b79664}
.prep-site-menu .live-results .rich-meeting,.prep-site-menu .live-results .rich-faculty{flex-shrink:0}
.prep-site-menu .family-browser .menu-website-results .meeting-drawer-body{max-height:340px;overflow:auto}
.prep-site-menu .fb-sections:has(.meeting-drawer[open]){scroll-behavior:smooth}
@media(max-width:767px){.prep-site-menu .rich-faculty{align-items:flex-start;flex-direction:column}
.prep-site-menu .rich-faculty:hover{transform:none}
.prep-site-menu .faculty-contacts{flex-direction:column;align-items:flex-start}
.prep-site-menu .meeting-drawers{gap:6px}}
.prep-site-menu .meeting-direct{border:2px solid #2f6db5;border-radius:999px;padding:6px 12px;background:#fff;color:#002b54}
.prep-site-menu .faculty-contacts .faculty-email::before{content:"✉ ";}
.prep-site-menu .faculty-contacts .faculty-phone::before{content:"☎ ";}
.prep-site-menu .panel .pane .family-browser{max-height:var(--menu-content-limit,calc(100dvh - 100px));min-height:0}
.prep-site-menu .panel .pane :is(.fb-heading,.fb-controls,.fb-status){flex-shrink:0}
.prep-site-menu .panel .pane .fb-sections{max-height:none;min-height:0;overflow-y:auto;flex-shrink:1}
.prep-site-menu .panel .pane .meeting-drawer-body{max-height:none;overflow:visible}
/* Open dropdowns use the same navy + soft lion watermark as the full blue search.
   This is behind (not inside) the white dropdown panel, so links remain readable. */
.prep-site-menu .menu-backdrop{position:fixed;inset:49px 0 0;z-index:45;isolation:isolate;overflow:hidden;background:#002b54;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .3s}
.prep-site-menu .menu-backdrop::before{content:"";position:absolute;inset:0;pointer-events:none;background:url('https://www.stcroixprep.org/wp-content/uploads/2024/02/seal-english-navy-gold-white-300x300.webp') center/auto 115% no-repeat;filter:blur(12px);opacity:.1}
body.menu-focused .prep-site-menu .menu-backdrop{opacity:1;visibility:visible;transition:opacity .3s ease,visibility 0s}
@media(prefers-reduced-motion:reduce){.prep-site-menu .menu-backdrop{transition:none}}
.prep-site-menu .meeting-action-icon{display:inline-flex;align-items:center;flex:0 0 auto}
.prep-site-menu .meeting-drawer>summary .meeting-action-icon svg,.prep-site-menu .meeting-direct .meeting-action-icon svg{width:16px;height:16px;rotate:0deg}
.prep-site-menu .meeting-direct{display:inline-flex;align-items:center;gap:7px}
.prep-site-menu .meeting-widget-source .meeting-drawers .prep-meetings__btn{box-sizing:border-box;align-items:center;vertical-align:top}
.prep-site-menu .meeting-widget-source :is(a,summary,button).prep-meetings__btn:is(:hover,:focus-visible),.prep-site-menu .meeting-widget-source details[open]>summary.prep-meetings__btn{color:var(--navy)}
.prep-site-menu .menu-plugin-widget{margin:4px 0 14px}
.prep-site-menu .menu-plugin-label{margin:10px 2px 6px;color:var(--gold,#b8860b);font:700 11px/1.2 var(--book);letter-spacing:.1em;text-transform:uppercase}
.prep-site-menu .mwb{display:contents}
.prep-site-menu .fb-controls .menu-widget-buttons button{flex:0 0 auto}
.prep-site-menu .fb-link.ev{display:grid!important;grid-template-columns:42px 1fr;align-items:center;gap:10px;width:100%;padding:8px 10px!important;border-radius:12px!important;text-align:left;white-space:normal}
.prep-site-menu .fb-link.ev .ev-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:42px;height:44px;border-radius:9px;background:#fff;border:1px solid #d4dce4;overflow:hidden;line-height:1}
.prep-site-menu .fb-link.ev .ev-tile b{display:block;width:100%;padding:3px 0;background:var(--navy,#002b54);color:#fff;font:700 9px/1 var(--book);letter-spacing:.08em;text-align:center;text-transform:uppercase}
.prep-site-menu .fb-link.ev .ev-tile span{padding-top:4px;color:var(--navy,#002b54);font:800 17px/1 var(--book)}
.prep-site-menu .fb-link.ev .ev-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.prep-site-menu .fb-link.ev .ev-text strong{color:var(--navy,#002b54);font:700 13px/1.25 var(--book)}
.prep-site-menu .fb-link.ev .ev-text small{color:#526f8a;font:400 12px/1.35 var(--book)}
.prep-site-menu .fb-link.ev-later:not(.is-match){display:none!important}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] .fb-sections{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:max-content;gap:10px;align-items:start}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] .fb-sections>details:not(.act-grid){grid-column:1/-1}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-grid{height:auto!important;margin:0}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-grid .fb-links{display:flex!important;flex-direction:column;flex-wrap:nowrap!important;gap:5px;height:auto!important;max-height:none!important;columns:auto!important}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-grid summary{display:flex;align-items:center;gap:10px}
@media(max-width:1100px){.prep-site-menu .family-browser[data-menu="Athletics/Activities"] .fb-sections{grid-template-columns:1fr}}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-links{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;gap:6px;overflow-x:auto;scrollbar-width:thin}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-link{flex:0 0 auto;white-space:nowrap}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-links{align-items:center!important}
.prep-site-menu .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-link.fb-home{margin:0!important}
.prep-site-menu .level .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-links{flex-wrap:wrap!important;justify-content:flex-start!important;align-items:flex-start;overflow:visible}
.prep-site-menu .level .family-browser[data-menu="Athletics/Activities"] details.act-quick .fb-link{margin:0!important}
.prep-site-menu .ev-day{display:flex;flex-direction:column;gap:4px}
.prep-site-menu .ev-day-head{margin:6px 2px 2px;color:var(--navy,#002b54);font:700 11px/1.2 var(--book);letter-spacing:.08em;text-transform:uppercase}
.prep-site-menu .ev-day:not(:has(.fb-link.ev:not(.ev-later))):not(:has(.is-match)){display:none}
.prep-site-menu .ev-day:has(.is-dim):not(:has(.is-match)){display:none}
.prep-site-menu .ev-days .fb-link.ev.is-dim{display:none!important}
.prep-site-menu .panel .ev-days{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;align-items:start;padding-top:4px}
.prep-site-menu .panel .ev-day{gap:10px;padding:0 10px 12px;border:1px solid #e0e7ed;border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 4px 14px #002b540d}
.prep-site-menu .panel .ev-day-head{margin:0 -10px 2px;padding:8px 12px;border:0;background:var(--navy,#002b54);color:#fff;letter-spacing:.1em}
.prep-site-menu .panel .ev-days .fb-link.ev{display:block!important;padding:10px 12px 10px 13px!important;border:0!important;border-left:4px solid var(--gold,#b8860b)!important;border-radius:8px!important;background:#efe9df!important}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-tile{display:none}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-text strong{font-size:12.5px}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-text small:first-of-type{color:var(--navy,#002b54);font-weight:700}
.prep-site-menu .panel .ev-days .fb-link.ev:hover{background:#e6dccb!important}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-text{gap:3px}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-text strong{color:var(--navy,#002b54)}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-text small:last-child{color:#4a5d70}
.prep-site-menu .fb-link.ev .ev-time{display:none}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-time{display:block;margin-bottom:2px;color:var(--gold,#b8860b);font:800 11px/1.2 var(--book);letter-spacing:.03em}
.prep-site-menu .panel .ev-days .fb-link.ev .ev-when{display:none}
.prep-site-menu .fb-link.meal{display:block!important;width:100%;padding:0!important;border:0!important;background:none!important;text-align:left;white-space:normal}
.prep-site-menu .fb-link.meal .menu-day{margin:0}
.prep-site-menu .fb-link.meal .menu-food-icon{min-width:1.6em;margin-right:6px;font-size:15px;line-height:1}
.prep-site-menu .fb-links:has(> .fb-link.meal){display:grid!important;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.prep-site-menu .panel details.menu-today .fb-links:has(> .fb-link.meal){grid-template-columns:1fr}
.prep-site-menu .panel details.menu-today .menu-day .prep-meetings__main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;align-items:start}
.prep-site-menu .panel details.menu-today .menu-day .prep-meetings__main>:is(.prep-meetings__title,.prep-meetings__buttons){grid-column:1/-1}
.prep-site-menu .panel details.menu-today .menu-day .prep-meetings__drawer{margin:0}
.prep-site-menu .family-browser[data-menu="Services"] details:has(.meal){grid-column:1/-1}
.prep-site-menu .family-browser[data-menu="Services"] .fb-sections{grid-auto-rows:max-content}
.prep-site-menu .sec-icon{display:inline-grid;place-items:center;width:30px;height:30px;margin-right:10px;flex:0 0 auto}
.prep-site-menu .sec-icon .si{width:28px!important;height:28px!important;object-fit:contain}
.prep-site-menu .fb-sections > details > summary:has(.sec-icon){display:flex;align-items:center}
.prep-site-menu .panel .sec-icon{width:24px;height:24px;margin-right:8px}
.prep-site-menu .panel .sec-icon .si{width:22px!important;height:22px!important}
.prep-site-menu .fb-link.meal .prep-meetings__buttons{display:none!important}
.prep-site-menu .level .fb-link.meal .prep-meetings__drawer{margin-top:8px}
.prep-site-menu .level .fb-link.meal .prep-meetings__drawer+.prep-meetings__drawer{margin-top:18px!important}
.prep-site-menu .fb-link.next-meeting-box{display:block!important;width:auto!important;max-width:100%;margin:0!important;box-sizing:border-box;padding:0!important;border:0!important;background:none!important;text-align:left;white-space:normal}
.prep-site-menu .next-meeting-box .prep-meetings__row{transform:none!important;margin:0!important;max-width:100%}
.prep-site-menu .fb-link.next-meeting-box,.prep-site-menu .fb-link.next-meeting-box:hover,.prep-site-menu .fb-link.meal,.prep-site-menu .fb-link.meal:hover{transform:none!important;background:none!important;box-shadow:none!important}
.prep-site-menu .next-meeting-wait{margin:4px 2px;color:#4a5d70;font:400 13px/1.4 var(--book)}
.prep-site-menu .fb-links:has(> .next-meeting-box){display:block!important}
.prep-site-menu .family-browser[data-menu="Board"] details:has(.next-meeting-box){grid-column:1/-1}
.prep-site-menu .family-browser[data-menu="Board"] .fb-sections{grid-auto-rows:max-content}
.prep-site-menu .family-browser[data-menu="Board"] details:has(.next-meeting-box)>summary,.prep-site-menu .family-browser[data-menu="Board"] details:has(.next-meeting-box) .fb-home{display:none!important}
.prep-site-menu .family-browser[data-menu="Board"] details:has(.next-meeting-box){border:0!important;background:none!important;padding:0!important}
.prep-site-menu .fb-sections details summary .sum-link svg,.prep-site-menu .fb-sections details summary .sec-icon svg{transform:none!important}
.prep-site-menu .fb-sections summary .fb-home.sum-link{margin:0 10px 0 auto;padding:4px 10px!important;font-size:12px}
.prep-site-menu .fb-sections summary:has(.sum-link) small{margin-left:0}
.prep-site-menu .sheet{transition:clip-path .45s cubic-bezier(.55,0,.75,.2)}
.prep-site-menu .sheet.is-open{transition:clip-path .75s cubic-bezier(.3,1.25,.5,1)}
@media(prefers-reduced-motion:reduce){.prep-site-menu .sheet .m-row,.prep-site-menu .sheet .m-row img,.prep-site-menu .sheet .m-row .custom-icon{animation:none!important}}
/* In an Elementor flex container a widget shrinks to its content; the menu always spans the header, so the logo sits
   at the left and the menu items and search at the right. */
.elementor-widget-prep_site_menu{width:100%;max-width:100%;flex:1 1 100%}
.elementor-widget-prep_site_menu>.elementor-widget-container,.prep-site-menu{width:100%}
/* Phone menu rows appear with their page; only whole menu pages slide. */
.prep-site-menu .sheet .level .m-row{animation:none;opacity:1;transform:none}
/* The site's form styles (theme and Elementor kit) give text fields a box, border and focus glow; the menu's search
   fields sit inside their own rounded field, so they stay plain. */
.prep-site-menu :is(.search-box,.fb-controls label,.main-mobile-search label) input,.prep-site-menu :is(.search-box,.fb-controls label,.main-mobile-search label) input:is(:focus,:hover){-webkit-appearance:none!important;appearance:none!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;outline:0!important;margin:0!important;padding:0!important;height:auto!important;min-height:0!important;line-height:normal!important}
/* Menu button lines are centered, so the widget's button size and line length settings keep them in the middle. */
.prep-site-menu .burger span{left:calc(50% - var(--psm-line,18px) / 2);width:var(--psm-line,18px)}
.prep-site-menu .burger span:nth-child(1){top:calc(50% - 7px)}.prep-site-menu .burger span:nth-child(2){top:calc(50% - 1px)}.prep-site-menu .burger span:nth-child(3){top:calc(50% + 5px)}
.prep-site-menu .burger[aria-expanded="true"] span:nth-child(1),.prep-site-menu .burger[aria-expanded="true"] span:nth-child(3){top:calc(50% - 1px)}
/* Use flex gap between search and menu icons rather than margin on just one button.
   Existing Elementor-generated styles that set --psm-gap remain compatible; regenerated
   widget styles set column-gap directly (important) through the responsive slider. */
.prep-site-menu .tools{column-gap:var(--psm-gap,4px)}
.prep-site-menu .tools>.burger{margin-left:0}
/* The theme styles every button (padding, borders, backgrounds); the header's search and menu buttons keep the
   menu's own look, and the widget's Style settings size and space them. */
.prep-site-menu :is(.search-btn,.burger){padding:0;min-width:0;min-height:0;border:0;border-radius:50%;background:none;box-shadow:none;line-height:1;text-transform:none;letter-spacing:0;-webkit-tap-highlight-color:transparent;touch-action:manipulation;flex:0 0 auto}
.prep-site-menu .burger span{height:var(--psm-thick,2px);top:auto}
.prep-site-menu .burger span:nth-child(1){top:calc(50% - var(--psm-thick,2px) / 2 - var(--psm-space,6px))}
.prep-site-menu .burger span:nth-child(2){top:calc(50% - var(--psm-thick,2px) / 2)}
.prep-site-menu .burger span:nth-child(3){top:calc(50% - var(--psm-thick,2px) / 2 + var(--psm-space,6px))}
.prep-site-menu .burger[aria-expanded="true"] span:nth-child(1),.prep-site-menu .burger[aria-expanded="true"] span:nth-child(3){top:calc(50% - var(--psm-thick,2px) / 2)}
.prep-site-menu .tools{position:relative;z-index:2}
/* Going into or back out of a menu, the whole page slides (the level's own transition, nothing else). */
.prep-site-menu .sheet .level{animation:none;will-change:transform}
/* The menu sits above everything on the page (sticky search bars, page widgets): the header containers holding it
   are raised over the page content, whatever z-index the header template gives them. */
.elementor-location-header:has(.prep-site-menu){position:relative;z-index:9990!important}
.e-con:has(.prep-site-menu),.elementor-section:has(.prep-site-menu),.elementor-widget-prep_site_menu{z-index:9990!important}
.prep-site-menu .fb-sections summary .sum-link,.prep-site-menu .fb-sections summary{white-space:nowrap}
.prep-site-menu .level .fb-sections .fb-home.ev-home{display:inline-flex;margin:10px 12px 0;white-space:nowrap}
/* Event date tiles: the navy month band fills the top of the tile edge to edge; the day centers in the rest. */
.prep-site-menu .ev-tile{justify-content:flex-start!important;padding:0!important}
.prep-site-menu .ev-tile b{flex:0 0 auto;margin:0!important;border-radius:0!important}
.prep-site-menu .ev-tile span{flex:1 1 auto;display:flex;align-items:center;justify-content:center;padding:0 0 1px!important}
/* Bound Calendar link: GoBound's logo in place of the home icon. */
.prep-site-menu .fb-home .bound-logo{width:24px;height:24px;flex:0 0 24px;object-fit:contain;transform:none!important}
/* Page sub-menus (Elementor menus in the page, like the School Board bar's Committees dropdown) open above the plugin
   widgets' frozen search bars (z-index up to 60): their container is lifted over the page content. */
.e-con:has(:is(.elementor-widget-nav-menu,.elementor-widget-n-menu,.elementor-widget-mega-menu)):not(:has(.prep-site-menu)),.elementor-section:has(:is(.elementor-widget-nav-menu,.elementor-widget-n-menu)):not(:has(.prep-site-menu)){position:relative;z-index:100!important}

/* 1.9.39: No sweeping menu/glide animation during header initialization.
   Preserve dropdown interactions, keyboard access and responsive menu behavior. */
.prep-site-menu .panel{transition:opacity .12s ease, visibility 0s linear .12s!important;transform:translateX(var(--px,0))!important;}
.prep-site-menu .panel.is-open{transition:opacity .12s ease, visibility 0s!important;transform:translateX(var(--px,0))!important;}
.prep-site-menu .pane,.prep-site-menu .pane.from-right,.prep-site-menu .pane.from-left,.prep-site-menu .pane.to-left,.prep-site-menu .pane.to-right{transition:opacity .12s ease!important;transform:none!important;}
.prep-site-menu .pane.is-on .stag{animation:none!important;opacity:1!important;transform:none!important;}
.prep-site-menu .glide{transition:opacity .12s ease!important;}


/* 1.9.43 — Submenu stability.
   The School Board secondary bar is an Elementor WordPress Menu / Menu widget,
   not the plugin's Prep Site Menu.  Earlier .prep-site-menu overrides did not
   affect its flyout.  Remove only opening/closing animation, never Elementor's
   own display, visibility or aria state (needed for pointer and keyboard use). */
.elementor-widget-nav-menu .elementor-nav-menu--main ul.sub-menu,
.elementor-widget-nav-menu .elementor-nav-menu--dropdown,
.elementor-widget-n-menu .e-n-menu-content,
.elementor-widget-mega-menu .e-n-menu-content {
  animation: none !important;
  transition: none !important;
  transition-delay: 0s !important;
}
.elementor-widget-nav-menu .elementor-nav-menu--main ul.sub-menu > li,
.elementor-widget-n-menu .e-n-menu-content > *,
.elementor-widget-mega-menu .e-n-menu-content > * {
  animation: none !important;
  transition: none !important;
}
/* Avoid first-paint swoop in the main menu. Panels still respond to button,
   pointer and keyboard interaction; transitions are no longer involved. */
.prep-site-menu .panel,
.prep-site-menu .panel.is-open,
.prep-site-menu .pane,
.prep-site-menu .pane.is-on,
.prep-site-menu .pane.from-left,
.prep-site-menu .pane.from-right,
.prep-site-menu .pane.to-left,
.prep-site-menu .pane.to-right {
  animation: none !important;
  transition: none !important;
}
/* Second layer of the same fix, for browsers that don't apply the container rule above: the open sub-menu itself is
   lifted above the widgets' gold search bars (Elementor's menu sets it to z-index 3). */
.elementor-widget-nav-menu .elementor-nav-menu--main ul.sub-menu,.elementor-widget-nav-menu .elementor-nav-menu--dropdown{z-index:9000!important}
/* While a page sub-menu (an Elementor menu in the page, such as the School Board bar's Committees) is open, the
   widgets' frozen gold search bars and headings step behind everything, in every browser. They also stop being
   sticky for that moment: Safari draws a sticky bar (with its full-width band) on its own layer above everything,
   whatever its z-index. Sub-menus open at the top of the page, where the bar isn't stuck; its sticky offset (top) is reset so it stays put. The class is set by
   site-menu.js from the menu's own open/close events; :has() covers the same case where scripts are slow. */
:is(body.prep-page-submenu-open,body:has(.elementor-nav-menu--main ul.sub-menu[aria-hidden="false"])) :is(.prep-directory__controls,.prep-directory__searchbar,.prep-directory__filters,.prep-directory__division>h3,.prep-directory__section>h4,.prep-meetings__bar,.prep-meetings__heading,.prep-policies__bar,.prep-policies__heading,.prep-weekly__bar,.prep-weekly__heading,.prep-testing__bar,.prep-testing__heading){z-index:auto!important;position:relative!important;top:0!important;bottom:auto!important}
/* Main search: upcoming calendar events (School Year, Public Events, GoBound) above the website results. */
.prep-site-menu .calendar-results{display:flex;flex-direction:column}
.prep-site-menu .calendar-heading{margin:4px 8px 2px;font:700 11px/1.4 var(--bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
/* Main search: one left-aligned list. Each group (Calendars, Prep Weekly, Board meetings, Faculty, Website) starts with
   its small gold label; the widgets' own copies drop their centered width, year headings and folding, so their rows
   line up with the other results. */
.prep-site-menu .live-results .menu-plugin-label{margin:14px 8px 4px}
.prep-site-menu .live-results>.menu-plugin-label:first-child,.prep-site-menu .live-results>.calendar-results:first-child>.menu-plugin-label{margin-top:4px}
.prep-site-menu .live-results .menu-plugin-widget :is(.prep-weekly,.prep-meetings,.prep-policies,.prep-testing,.prep-directory){max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
.prep-site-menu .live-results .menu-plugin-widget :is(.elementor-widget-container,.e-con,.e-con-inner,.elementor-element){max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
.prep-site-menu .live-results :is(.prep-weekly__heading,.prep-meetings__heading,.prep-policies__heading,.prep-testing__heading,.prep-weekly__meta,.prep-directory__division>h3,.prep-directory__section>h4){display:none!important}
.prep-site-menu .live-results :is(.prep-weekly__section,.prep-meetings__section,.prep-policies__section,.prep-testing__section)>:not([class*="heading"])[hidden],.prep-site-menu .live-results .prep-directory__division-body[hidden]{display:block!important}
.prep-site-menu .live-results :is(.prep-weekly__section,.prep-meetings__section,.prep-policies__section,.prep-testing__section,.prep-directory__division,.prep-directory__section){margin:0!important;padding:0!important}
.prep-site-menu .live-results .prep-weekly__row{padding-left:8px!important;padding-right:8px!important;margin-left:0!important}
.prep-site-menu .live-results .prep-weekly__row{gap:12px!important;padding-top:13px!important;padding-bottom:13px!important;border-radius:10px}
.prep-site-menu .live-results .prep-weekly__image{width:40px!important;height:40px!important;flex:0 0 40px!important;border-radius:5px!important;object-fit:cover}
.prep-site-menu .live-results .prep-weekly__title,.prep-site-menu .live-results .prep-weekly__name{font:700 14px/1.4 var(--book)!important;margin:0 0 5px!important;color:var(--navy)!important}
.prep-site-menu .live-results .prep-weekly__snippet{font:400 12px/1.5 var(--book)!important;color:#526f8a!important}
/* Calendar results: a small calendar page (navy month band, day, year) where other results have a photo. */
.prep-site-menu .date-tile{display:flex;flex-direction:column;align-items:center;flex:0 0 40px;width:40px;height:48px;border:1px solid #d4dce4;border-radius:6px;background:#fff;overflow:hidden;line-height:1}
.prep-site-menu .date-tile b{display:block;width:100%;padding:3px 0 2px;background:var(--navy);color:#fff;font:700 9px/1 var(--bold);letter-spacing:.08em;text-align:center;text-transform:uppercase}
.prep-site-menu .date-tile span{display:flex;flex:1 1 auto;align-items:center;justify-content:center;color:var(--navy);font:800 16px/1 var(--bold)}
.prep-site-menu .date-tile small{padding:0 0 3px;color:var(--gold);font:700 8px/1 var(--bold);letter-spacing:.04em}
/* Phone search: once results show, the search box and the white results card stay in place and only the list inside
   the card scrolls (instead of the whole overlay scrolling the results under the search box). */
.prep-site-menu .level.mobile-searching{display:flex!important;flex-direction:column;overflow:hidden!important;padding-bottom:0!important}
.prep-site-menu .level.mobile-searching>:is(.main-mobile-search,.live-caption){flex:0 0 auto}
.prep-site-menu .level.mobile-searching .main-mobile-search{position:relative!important;top:auto!important}
.prep-site-menu .level.mobile-searching>.live-results:not(:empty){flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;margin-bottom:max(16px,env(safe-area-inset-bottom))}
/* The results line under the search box is for screen readers only. */
.prep-site-menu .level.mobile-searching>.live-caption{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;animation:none!important}
/* Results fade in when they first appear; later refreshes while typing swap in place without replaying it. */
.prep-site-menu .live-results.is-steady>*,.prep-site-menu .live-results.is-steady .live-result{animation:none!important}
.prep-site-menu .live-results .live-empty{margin:8px;color:var(--muted);font:400 13px/1.5 var(--book)}
.prep-site-menu .live-results{animation:none}
/* The phone's blue search is its own layer over the page: no white panel behind the blue, so it drops in and rises out over the page itself. */
.prep-site-menu .level.mobile-global-search,.prep-site-menu .level.mobile-global-search.mobile-searching{background:transparent}
/* The blue search fully covers the page: solid navy (the frosted lion sits on it), with the page behind blurred while it fades. */
.prep-site-menu .level.mobile-searching::before,.prep-site-menu .level.mobile-search-closing::before{background:#002b54!important;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.prep-site-menu .psm-off{display:none!important}

/* Blue search: pages/content first, then calendar and widget accordions. */
.prep-site-menu .live-results .psm-search-group-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 9px;border-bottom:1px solid #e8edf2}
.prep-site-menu .psm-search-group-toolbar__label{color:var(--navy);font:700 12px/1.4 var(--book)}
.prep-site-menu .psm-search-toggle-all{appearance:none;border:1px solid #c9d5df;background:#fff;border-radius:999px;color:var(--navy);font:700 12px/1.4 var(--book);padding:6px 12px;cursor:pointer;white-space:nowrap}
.prep-site-menu .psm-search-toggle-all:hover,.prep-site-menu .psm-search-toggle-all:focus-visible{background:#eef3f7;border-color:var(--navy)}
.prep-site-menu .psm-search-toggle-all:disabled{opacity:.55;cursor:default}
.prep-site-menu .live-results .psm-search-group{display:block;width:100%;margin:0;padding:0;border:0;background:transparent;min-width:0}
.prep-site-menu .live-results .psm-search-group__heading{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;cursor:pointer;color:var(--gold,#b8860b);font:700 11px/1.4 var(--book);letter-spacing:.1em;text-transform:uppercase;padding:14px 8px 8px;margin:0;border-radius:7px}
.prep-site-menu .live-results .psm-search-group__heading::-webkit-details-marker{display:none}
.prep-site-menu .live-results .psm-search-group__heading:hover,.prep-site-menu .live-results .psm-search-group__heading:focus-visible{background:#f4f6f8}
.prep-site-menu .psm-search-group__chevron{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--navy);transition:transform .18s ease}
.prep-site-menu .psm-search-group__chevron svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prep-site-menu .psm-search-group:not([open])>.psm-search-group__heading .psm-search-group__chevron{transform:rotate(-90deg)}
.prep-site-menu .live-results .psm-search-group:not([open])>.psm-search-group__body{display:none!important}
.prep-site-menu .live-results .psm-search-group__body{width:100%;min-width:0}
.prep-site-menu .live-results .psm-search-group__body>.live-result{border-radius:10px;transition:transform .24s cubic-bezier(.2,.7,.3,1),background-color .18s ease}
.prep-site-menu .live-results .psm-search-group__body>.live-result:hover,.prep-site-menu .live-results .psm-search-group__body>.live-result:focus-visible{background:#efe9df;transform:scale(1.01)}
.prep-site-menu .live-results .psm-search-group__body.menu-plugin-widget{margin:0 0 8px}
.prep-site-menu .live-results .psm-search-group .calendar-results{width:100%}
@media(prefers-reduced-motion:reduce){.prep-site-menu .psm-search-group__chevron{transition:none}}
/* Keep the expanded results card at the full menu width, rather than shrinking to an accordion label. */
.prep-site-menu .mobile-global-search.mobile-searching>.live-results:not(:empty){width:calc(100% - 8px);box-sizing:border-box}
@media(min-width:1101px){.prep-site-menu .mobile-global-search.mobile-searching>.live-results:not(:empty){width:100%}}

/* 2.0.11 — Mobile results use ONE solid card, exactly like tablet/desktop.
   The phone's overlay must not turn each individual search hit into a separate white tile.
   Keep the section toolbar/chevrons inside that card and scroll its contents, not the page. */
@media (max-width:767px) {
 .prep-site-menu .level.mobile-global-search.mobile-searching > .live-results:not(:empty),
 .prep-site-menu .sheet .level.mobile-searching > .live-results:not(:empty) {
  display:flex!important;flex-direction:column!important;
  flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;
  width:100%;max-width:100%;box-sizing:border-box;
  margin:6px 0 max(12px,env(safe-area-inset-bottom))!important;
  padding:12px 10px 16px!important;
  background:#fff!important;border-radius:14px!important;
  box-shadow:0 10px 26px rgba(0,23,47,.12);
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
 }
 .prep-site-menu .mobile-searching .live-results .psm-search-group-toolbar,
 .prep-site-menu .mobile-searching .live-results .psm-search-group,
 .prep-site-menu .mobile-searching .live-results .psm-search-group__body,
 .prep-site-menu .mobile-searching .live-results .live-slot {background:transparent!important;width:100%;max-width:100%;}
 .prep-site-menu .mobile-searching .live-results .psm-search-group__body > .live-result,
 .prep-site-menu .mobile-searching .live-results .calendar-result {
  margin:0!important;background:transparent!important;border:0!important;
  box-shadow:none!important;border-radius:9px!important;
 }
 .prep-site-menu .mobile-searching .live-results .psm-search-group__body > .live-result:focus-visible,
 .prep-site-menu .mobile-searching .live-results .psm-search-group__body > .live-result:active {
  background:#efe9df!important;
 }
 .prep-site-menu .mobile-searching .live-results .psm-search-group__heading {
  padding:12px 6px 9px;min-height:38px;
 }
 .prep-site-menu .mobile-searching .live-results .psm-search-group-toolbar {padding:3px 6px 9px;}
 .prep-site-menu .mobile-searching .live-results .live-result {min-width:0;}
 .prep-site-menu .mobile-searching .live-results .live-result > div {min-width:0;}
}

/* 2.0.11 — Faster, compositor-friendly mobile menu entrance/exit.  The old
   circular clip-path animated for .75s and repainted the full viewport.
   Transform + opacity animate on the compositor and respond to taps promptly. */
@media(max-width:1100px){
 .prep-site-menu .sheet{
  clip-path:none!important;
  opacity:0;visibility:hidden;pointer-events:none;
  transform:translate3d(0,-12px,0) scale(.995);
  transform-origin:top center;
  transition:transform .27s cubic-bezier(.22,1,.36,1),opacity .22s ease,visibility 0s linear .27s!important;
  contain:layout paint;
 }
 .prep-site-menu .sheet.is-open{
  clip-path:none!important;
  opacity:1;visibility:visible;pointer-events:auto;
  transform:translate3d(0,0,0) scale(1);
  transition:transform .27s cubic-bezier(.22,1,.36,1),opacity .22s ease,visibility 0s!important;
 }
 .prep-site-menu .sheet .level{transition:transform .28s cubic-bezier(.22,1,.36,1)}
 .prep-site-menu .sheet .level.is-left{transform:translate3d(-15%,0,0)}
 .prep-site-menu .sheet .level.is-right{transform:translate3d(100%,0,0)}
 .prep-site-menu .sheet .level:not(.is-left):not(.is-right){transform:translate3d(0,0,0)}
}
@media(max-width:1100px) and (prefers-reduced-motion:reduce){
 .prep-site-menu .sheet,.prep-site-menu .sheet.is-open,.prep-site-menu .sheet .level{
  transition:none!important;transform:none;
 }
 .prep-site-menu .sheet .level.is-right{transform:translateX(100%)}
 .prep-site-menu .sheet .level.is-left{transform:translateX(-100%)}
}

/* 2.0.12 — Compact calendar and PREP Weekly groups: one preview by default.
   The extra results stay inside the same solid white mobile search panel. */
.prep-site-menu .live-results .psm-search-more__item[hidden]{display:none!important}
.prep-site-menu .live-results .psm-search-more__button{
 display:inline-flex;align-items:center;gap:7px;align-self:flex-start;
 margin:5px 8px 12px;padding:7px 11px;border:1px solid #c9d5df;
 border-radius:999px;background:#fff;color:var(--navy);
 font:700 12px/1.3 var(--book);cursor:pointer;white-space:nowrap;
}
.prep-site-menu .live-results .psm-search-more__button:hover,
.prep-site-menu .live-results .psm-search-more__button:focus-visible{
 background:#eef3f7;border-color:var(--navy);outline-offset:2px;
}
.prep-site-menu .psm-search-more__chevron{display:inline-flex;transition:transform .18s ease}
.prep-site-menu .psm-search-more__chevron svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prep-site-menu .psm-search-more__button[aria-expanded="true"] .psm-search-more__chevron{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.prep-site-menu .psm-search-more__chevron{transition:none}}

/* 2.0.13 - Taher school menu preview within the solid search panel. */
.prep-site-menu .psm-meal-slot{min-width:0}
.prep-site-menu .psm-meal-card{padding:5px 8px 12px;color:var(--navy);font-family:var(--book)}
.prep-site-menu .psm-meal-head{display:flex;align-items:center;gap:13px;margin:0 0 12px}
.prep-site-menu .psm-meal-head h4{margin:0 0 3px;font:700 15px/1.3 var(--bold);color:var(--navy)}
.prep-site-menu .psm-meal-date{margin:0;color:var(--muted);font-size:13px}
.prep-site-menu .psm-meal-section{margin:8px 0;padding:12px 14px;border-radius:10px;background:#f1f4f7}
.prep-site-menu .psm-meal-section h5{margin:0 0 7px;font:700 14px/1.3 var(--bold);color:var(--navy)}
.prep-site-menu .psm-meal-items{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(225px,1fr));gap:5px 15px}
.prep-site-menu .psm-meal-items li{display:flex;align-items:flex-start;gap:7px;font-size:13px;line-height:1.4}
.prep-site-menu .psm-meal-icon{flex:0 0 auto}
.prep-site-menu .psm-meal-status{margin:6px 0;color:var(--muted);font:400 13px/1.5 var(--book)}
.prep-site-menu .psm-meal-full{display:inline-block;margin:8px 0 0;color:var(--navy);font:700 12px/1.4 var(--bold);text-decoration:underline;text-underline-offset:2px}
@media(max-width:620px){.prep-site-menu .psm-meal-card{padding:4px 2px 12px}.prep-site-menu .psm-meal-items{grid-template-columns:1fr}}

/* v2.0.15: readable matching-word underlines in the search evidence snippets. */
.prep-site-menu .live-results .live-result .search-term{color:inherit!important;background:transparent!important;text-decoration-line:underline!important;text-decoration-color:currentColor!important;text-decoration-thickness:1.5px!important;text-underline-offset:3px!important;font-weight:inherit}

/* v2.0.16 — Mobile navigation as an inset desktop-style dropdown.
   Let the shared navy/seal background show in the side gutters and beneath
   short menus; only the white menu card scrolls when its content is long.
   Scoped to #psm-sheet so the separate full-screen blue search is unchanged. */
@media(max-width:1100px){
 .prep-site-menu #psm-sheet{
  isolation:isolate;
  background:#002b54;
  -webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px);
 }
 .prep-site-menu #psm-sheet::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url('https://www.stcroixprep.org/wp-content/uploads/2024/02/seal-english-navy-gold-white-300x300.webp') center/auto 115% no-repeat;
  filter:blur(12px);opacity:.1;
 }
 .prep-site-menu #psm-sheet>.level{
  top:8px;bottom:auto;left:20px;right:20px;
  width:auto;max-height:calc(100% - 24px - env(safe-area-inset-bottom,0px));
  z-index:1;overflow-x:hidden;overflow-y:auto;
  overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  background:#fff;border-radius:16px;
  box-shadow:0 18px 44px rgba(0,20,42,.22),0 0 0 1px rgba(0,43,84,.08);
  transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .18s ease;
 }
 /* Hide the prior card during drill-down: translating by only 15% leaves
    a distracting white sliver visible in the new 20px navy gutter. */
 .prep-site-menu #psm-sheet>.level.is-left{
  transform:translate3d(-100%,0,0);opacity:0;pointer-events:none;
 }
 .prep-site-menu #psm-sheet>.level.is-right{opacity:0;pointer-events:none;}
 .prep-site-menu #psm-sheet>.level.is-on{opacity:1;pointer-events:auto;}
}


/* v2.0.18 — Calm mobile menu motion. The former 180ms panel fade ended well
   before its 280ms slide, causing the inset white cards to blink against the
   navy seal backdrop. Keep fades and slides synchronized and avoid springy
   scaling; the search overlay and desktop dropdowns are intentionally untouched. */
@media(max-width:1100px){
 .prep-site-menu #psm-sheet{
  transform:translate3d(0,-8px,0);
  opacity:0;
  transition:transform .44s cubic-bezier(.22,1,.36,1),
             opacity .40s ease,
             visibility 0s linear .44s!important;
 }
 .prep-site-menu #psm-sheet.is-open{
  transform:translate3d(0,0,0);
  opacity:1;
  transition:transform .44s cubic-bezier(.22,1,.36,1),
             opacity .40s ease,
             visibility 0s!important;
 }
 .prep-site-menu #psm-sheet>.level{
  transition:transform .42s cubic-bezier(.22,1,.36,1),
             opacity .38s cubic-bezier(.22,1,.36,1);
  will-change:transform,opacity;
  backface-visibility:hidden;
 }
 /* Shift only a small distance while crossfading, instead of flinging cards
    fully offscreen or abruptly hiding the previous card in the blue gutter. */
 .prep-site-menu #psm-sheet>.level.is-left{
  transform:translate3d(-38px,0,0);opacity:0;pointer-events:none;
 }
 .prep-site-menu #psm-sheet>.level.is-right{
  transform:translate3d(38px,0,0);opacity:0;pointer-events:none;
 }
 .prep-site-menu #psm-sheet>.level.is-on{
  transform:translate3d(0,0,0);opacity:1;pointer-events:auto;
 }
}
@media(max-width:1100px) and (prefers-reduced-motion:reduce){
 .prep-site-menu #psm-sheet,
 .prep-site-menu #psm-sheet.is-open,
 .prep-site-menu #psm-sheet>.level{transition:none!important;}
}

/* v2.0.18 — macOS-style default search fields across breakpoints.
   Keep Elementor controls optional: custom field typography, height, radius and
   colors still win when the editor explicitly sets them. The text input is
   unstyled inside its pill; focus belongs to the visible field container. */
.prep-site-menu :is(.fb-controls input,.search-box input,.main-mobile-search input){
 font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;
 font-weight:400;
 letter-spacing:normal;
 -webkit-font-smoothing:antialiased;
}
.prep-site-menu :is(.fb-controls label,.search-box,.main-mobile-search label){
 border:1px solid #d3dce5;
 background:#fff;
 border-radius:999px;
 transition:border-color .18s ease,box-shadow .18s ease;
}
.prep-site-menu :is(.fb-controls label,.search-box,.main-mobile-search label):focus-within{
 border-color:#7095bc;
 box-shadow:0 0 0 3px rgba(0,95,180,.14);
}
@media(min-width:1101px){
 .prep-site-menu .fb-controls label{height:36px;padding:0 12px;}
 .prep-site-menu .fb-controls input{font-size:13px;}
 .prep-site-menu .search-box input,.prep-site-menu .mobile-global-search .main-mobile-search input{font-size:16px;}
 .prep-site-menu .search-box{border-radius:999px;}
}
@media(min-width:768px) and (max-width:1100px){
 .prep-site-menu .level .fb-controls label{height:40px;}
 .prep-site-menu .level .fb-controls input{font-size:16px;}
 .prep-site-menu .main-mobile-search label{height:44px;}
 .prep-site-menu .main-mobile-search input{font-size:16px;}
}
@media(max-width:767px){
 .prep-site-menu .level .fb-controls label{height:44px;}
 .prep-site-menu .level .fb-controls input,.prep-site-menu .main-mobile-search input{font-size:16px;}
 .prep-site-menu .main-mobile-search label{min-height:44px;}
}
@media(prefers-reduced-motion:reduce){
 .prep-site-menu :is(.fb-controls label,.search-box,.main-mobile-search label){transition:none;}
}


.prep-site-menu .psm-mobile-shared-backdrop{display:none;}
/* v2.0.19 — One uninterrupted backdrop when toggling mobile menu ↔ search.
   Both foregrounds start 8px below the 49px nav and have 20px side gutters.
   Only cards/search content animate; never crossfade or recreate the backdrop. */
@media(max-width:1100px){
 .prep-site-menu .psm-mobile-shared-backdrop{
  display:block;position:fixed;top:49px;right:0;bottom:0;left:0;
  z-index:44;pointer-events:none;visibility:hidden;opacity:0;
  background:#002b54;
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
  transition:opacity .28s ease,visibility 0s linear .28s;
  overflow:hidden;isolation:isolate;
 }
 .prep-site-menu .psm-mobile-shared-backdrop::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:url('https://www.stcroixprep.org/wp-content/uploads/2024/02/seal-english-navy-gold-white-300x300.webp') center/auto 115% no-repeat;
  filter:blur(12px);opacity:.1;
 }
 .prep-site-menu .psm-mobile-shared-backdrop.is-active{
  visibility:visible;opacity:1;transition:opacity .28s ease,visibility 0s;
 }
 /* The sheet and search are transparent foreground layers. No duplicate seal or
    independently fading navy pseudo-element is allowed on either of them. */
 .prep-site-menu #psm-sheet{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;}
 .prep-site-menu #psm-sheet::before,
 .prep-site-menu .level.mobile-global-search::before,
 .prep-site-menu .level.mobile-global-search::after{content:none!important;display:none!important;animation:none!important;}
 .prep-site-menu .mobile-global-search,
 .prep-site-menu .mobile-global-search.mobile-searching{
  position:fixed!important;top:49px!important;left:0!important;right:0!important;bottom:0!important;
  padding:8px 20px 0!important;margin:0!important;
  width:100%!important;height:auto!important;background:transparent!important;
  overflow:hidden!important;z-index:70;
  transform:none!important;isolation:auto!important;
  opacity:0;pointer-events:none;
  transition:opacity .38s cubic-bezier(.22,1,.36,1)!important;
 }
 .prep-site-menu .mobile-global-search.mobile-searching:not(.mobile-search-closing){opacity:1;pointer-events:auto;}
 .prep-site-menu .mobile-global-search.mobile-search-closing{opacity:0;pointer-events:none;}
 .prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search,
 .prep-site-menu .mobile-global-search.mobile-search-closing .main-mobile-search{
  position:relative!important;top:auto!important;
  margin:0!important;padding:0!important;
  width:100%!important;max-width:100%!important;flex:0 0 auto;
  background:transparent!important;box-shadow:none!important;
  animation:none!important;transform:none!important;
 }
 .prep-site-menu .mobile-global-search .main-mobile-search label,
 .prep-site-menu .mobile-global-search.mobile-searching .main-mobile-search label{
  box-sizing:border-box;width:100%;height:44px!important;min-height:44px!important;
  border-radius:999px;max-width:none;
 }
 .prep-site-menu .mobile-global-search.mobile-searching>.live-results:not(:empty){
  width:100%!important;margin:12px 0 max(12px,env(safe-area-inset-bottom))!important;
  max-width:100%!important;
 }
}
@media(max-width:1100px) and (prefers-reduced-motion:reduce){
 .prep-site-menu .psm-mobile-shared-backdrop,
 .prep-site-menu .mobile-global-search{transition:none!important;}
}

/* v2.0.20: indicate whether a calendar result opens the exact event or the full calendar. */

/* v2.0.22 — Calendar results link to the authoritative event source. */
.prep-site-menu .live-results .calendar-result{cursor:pointer;text-decoration:none;}
.prep-site-menu .live-results .calendar-result:focus-visible{outline:2px solid #1675bc;outline-offset:3px;}
.prep-site-menu .live-results .psm-meetings-more{
 display:inline-flex;align-items:center;margin:8px 8px 15px;
 padding:7px 12px;border:1px solid #ccd8e4;border-radius:999px;
 color:var(--navy,#002b54);background:#fff;
 font:600 12px/1.35 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
 text-decoration:none;
}
.prep-site-menu .live-results .psm-meetings-more:is(:hover,:focus-visible){background:#edf3f8;text-decoration:underline}

/* v2.0.25 — Native calendar actions, using the same three rounded
   Google / Apple / Outlook icons as the school's Calendars page. */
.prep-site-menu .live-results .calendar-result{display:flex;align-items:flex-start;gap:12px;cursor:default!important;padding:10px 8px;border-radius:10px;box-sizing:border-box}
.prep-site-menu .live-results .calendar-result:hover{transform:none!important;background:transparent}
.prep-site-menu .live-results .calendar-result-details{min-width:0;flex:1}
.prep-site-menu .live-results .calendar-result-title{display:inline-block;color:var(--navy,#002b54);font:700 14px/1.45 var(--book);text-decoration:none}
.prep-site-menu .live-results .calendar-result-title:is(:hover,:focus-visible){text-decoration:underline;text-underline-offset:3px}
.prep-site-menu .live-results .calendar-result-details>p{margin:4px 0 0;color:#567390;font:400 12px/1.5 var(--book)}
.prep-site-menu .live-results .calendar-result-actions{display:flex;align-items:center;gap:10px;margin-top:9px}
.prep-site-menu .live-results .calendar-platform-actions{display:flex;gap:11px;align-items:center;flex-wrap:wrap}
.prep-site-menu .live-results .calendar-platform-link{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 40px;border-radius:50%;background:#4385f5;color:#fff;box-sizing:border-box;transition:transform .18s ease,box-shadow .18s ease;text-decoration:none!important}
.prep-site-menu .live-results .calendar-platform-link--apple{background:#585858}
.prep-site-menu .live-results .calendar-platform-link--outlook{background:#0074c8}
.prep-site-menu .live-results .calendar-platform-link:is(:hover,:focus-visible){transform:translateY(-1px);box-shadow:0 2px 8px rgba(0,30,65,.2)}
.prep-site-menu .live-results .calendar-platform-link:focus-visible{outline:3px solid #e5ac33;outline-offset:3px}
.prep-site-menu .live-results .calendar-platform-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;flex:0 0 24px;line-height:0}
.prep-site-menu .live-results .calendar-platform-icon svg{display:block;width:100%;height:100%}
.prep-site-menu .live-results .calendar-platform-icon--apple svg{width:20px;height:27px}
.prep-site-menu .live-results .calendar-platform-icon--google svg{width:28px;height:28px}
.prep-site-menu .live-results .calendar-platform-icon--outlook svg{width:27px;height:27px}
@media(prefers-reduced-motion:reduce){.prep-site-menu .live-results .calendar-platform-link{transition:none}}
.prep-site-menu .live-results .calendar-resource-result{display:flex;align-items:center;gap:12px;padding:10px 8px;text-decoration:none;border-radius:10px}
.prep-site-menu .calendar-resource-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#edf3f8;color:#002b54;border-radius:8px;font:700 21px/1 sans-serif;flex:0 0 40px}
.prep-site-menu .calendar-resource-icon--document svg{display:block;width:23px;height:23px;flex:none}
.prep-site-menu .calendar-resource-result h4{color:#002b54;font:700 14px/1.4 var(--book);margin:0 0 3px}
.prep-site-menu .calendar-resource-result p{color:#567390;font:400 12px/1.4 var(--book);margin:0}
@media(max-width:600px){
 .prep-site-menu .live-results .calendar-result{padding:12px 6px}
}

@media(max-width:600px){
 /* Keep iOS calendar choices inside the scrolling results card; no popover gets cut off by the bottom toolbar. */
 .prep-site-menu .live-results .calendar-add-options{position:static;min-width:0;width:max-content;max-width:100%;margin-top:6px;box-shadow:none;}
}


/* v2.0.26 — Coordinated mobile exit: one shared navy/seal layer remains fully
   visible until the foreground starts closing, then dissolves smoothly.
   The legacy circular sheet clip-path used to shrink at a different speed
   than the opacity fade, causing a white/blue flash on exit. */
@media(max-width:1100px){
 .prep-site-menu .psm-mobile-shared-backdrop{
  transition:opacity .48s cubic-bezier(.22,.61,.36,1),visibility 0s linear .48s;
 }
 .prep-site-menu .psm-mobile-shared-backdrop.is-active{
  transition:opacity .48s cubic-bezier(.22,.61,.36,1),visibility 0s;
 }
 .prep-site-menu #psm-sheet{
  clip-path:none!important;
  -webkit-clip-path:none!important;
  visibility:hidden;
  pointer-events:none;
  transition:transform .40s cubic-bezier(.22,.61,.36,1),
             opacity .40s cubic-bezier(.22,.61,.36,1),
             visibility 0s linear .40s!important;
 }
 .prep-site-menu #psm-sheet.is-open{
  visibility:visible;
  pointer-events:auto;
  transition:transform .40s cubic-bezier(.22,1,.36,1),
             opacity .40s cubic-bezier(.22,1,.36,1),
             visibility 0s!important;
 }
}
@media(max-width:1100px) and (prefers-reduced-motion:reduce){
 .prep-site-menu .psm-mobile-shared-backdrop,
 .prep-site-menu .psm-mobile-shared-backdrop.is-active,
 .prep-site-menu #psm-sheet,
 .prep-site-menu #psm-sheet.is-open{transition:none!important;}
}
