/* ===== FINAL MERGED CUSTOM.CSS ===== */

/* ===== Shared variables / resets ===== */
:root{
  --bg:#fbf7ef;
  --card:#ffffff;
  --text:#0d1220;
  --muted:#5c667a;
  --line:rgba(10,18,32,.10);
  --royal1:#0b3c7a;
  --royal2:#1a5fd0;
  --pill:#ffffff;
  --pillHover:#f3f7ff;
  --shadow:0 16px 40px rgba(0,0,0,.10);
  --radius:18px;
  --gold1:#f7d768;
  --gold2:#e7b92f;
  --goldBorder:#d6a51e;
  --goldShadow:rgba(183,121,31,.22);
}

*{ box-sizing:border-box; }

body{
  margin:0;
  color:var(--text);
}

/* ===== GLOBAL LAYOUT ===== */
.wrap{
  max-width:1160px;
  margin:0 auto;
  padding:0 16px;
}

/* ===== ELITE STICKY HEADER ===== */
header{
  position:sticky !important;
  top:0;
  z-index:80;
  background:rgba(255,255,255,.92) !important;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(0,0,0,.06) !important;
  transition:all .25s ease;
}

header.shrink{
  background:rgba(255,255,255,.98) !important;
  box-shadow:0 10px 30px rgba(0,0,0,.08);
}

/* ===== HEADER LAYOUT FIX ===== */
.topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 0 8px;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:260px;
}

.logo{
  width:52px;
  height:52px;
  border-radius:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:16px;
  color:#fff;
  background:linear-gradient(135deg,#1a5fd0,#f7d768);
  box-shadow:0 12px 28px rgba(0,0,0,.18);
  letter-spacing:1px;
}
header.shrink .logo{
  width:44px;
  height:44px;
}

.brand .name{
  font-weight:900;
  font-size:18px;
  line-height:1.1;
}

.brand .tag{
  font-size:13px;
  color:var(--muted);
  margin-top:2px;
}

.cta{
  display:flex;
  gap:10px;
  align-items:center;
}

/* ===== NAV LAYOUT ===== */
.mainNav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:6px 0 12px;
  flex-wrap:nowrap;
  overflow:visible;
}

.navLeft,
.navRight{
  display:flex;
  align-items:center;
  gap:8px;
}

/* ===== NAV LOOK ===== */
.navLink,
.navDropBtn{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  background:#fff;
  font-size:13px;
  font-weight:800;
  transition:all .2s ease;
  white-space:nowrap;
}

.navLink:hover,
.navDropBtn:hover,
.navDrop:focus-within .navDropBtn{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#fff;
  border-color:var(--goldBorder);
  box-shadow:0 14px 28px var(--goldShadow);
}

.activeNav{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#fff !important;
  border-color:var(--goldBorder) !important;
}

.navLink.strong{
  background:linear-gradient(135deg, rgba(26,95,208,.12), rgba(11,60,122,.06));
  color:#0b2b55;
  border-color:rgba(26,95,208,.18);
}
.navLink.strong:hover{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#fff;
  border-color:var(--goldBorder);
}

.navCaret{
  font-size:11px;
  opacity:.85;
  margin-top:1px;
}

/* ===== DROPDOWN ===== */
.navDrop{
  position:relative;
  display:inline-block;
}

.navDrop::after{
  content:"";
  position:absolute;
  top:100%;
  left:0;
  width:100%;
  height:14px;
}

.navDropMenu{
  position:absolute;
  top:calc(100% + 6px);
  left:0;
  min-width:230px;
  background:#fff;
  border-radius:14px;
  box-shadow:0 20px 40px rgba(0,0,0,.12);
  padding:6px;
  display:none;
  z-index:999;
}

.navDrop:hover .navDropMenu,
.navDrop.open .navDropMenu,
.navDrop:focus-within .navDropMenu{
  display:block;
}

.navDropItem{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border-radius:10px;
  font-size:13px;
  font-weight:700;
  transition:all .16s ease;
}

.navDropItem:hover{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#fff;
  transform:translateX(2px);
}

/* ===== BUTTONS ===== */
.btn{
  border-radius:999px;
  transition:all .2s ease;
}

.btn:hover{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#fff;
}

/* ===== HOMEPAGE HERO ENHANCEMENTS ===== */
main#home{
  margin-top:0 !important;
  padding-top:0 !important;
}

.heroSection{
  margin-top:0 !important;
  padding:10px 0 24px !important;
}

.heroGrid{
  grid-template-columns:1fr 360px !important;
  align-items:stretch;
  gap:18px !important;
}

.heroGrid > .card:first-child{
  padding:0 !important;
  overflow:hidden;
}

.heroGrid > .card:first-child .slideshow{
  height:min(82vh, 860px);
  min-height:620px;
  border-radius:22px;
  border:none !important;
  box-shadow:0 26px 70px rgba(15,23,42,.14);
}

.heroGrid > .card:first-child .slide{
  min-height:100%;
}

.heroGrid > .card:first-child .slideOverlay{
  background:
    linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.18) 50%, rgba(0,0,0,.48) 100%),
    linear-gradient(180deg, rgba(0,0,0,.16) 0%, rgba(0,0,0,.12) 100%);
}

.noticeOverlay{
  justify-content:flex-end !important;
  padding:clamp(120px, 18vh, 180px) 42px 90px !important;
}

.noticeTitle{
  font-size:clamp(40px, 5.4vw, 72px) !important;
  line-height:1.02 !important;
  max-width:820px !important;
  letter-spacing:-.04em !important;
}

.noticeText{
  max-width:740px !important;
  font-size:18px !important;
  line-height:1.7 !important;
}

.slideCaption{
  left:42px !important;
  right:42px !important;
  bottom:78px !important;
}

.capBox{
  max-width:760px !important;
}

.capBox h3{
  font-size:clamp(36px, 4.6vw, 64px) !important;
  line-height:1.02 !important;
  letter-spacing:-.04em !important;
  margin:0 !important;
}

.capBox p{
  margin-top:12px !important;
  font-size:18px !important;
  line-height:1.65 !important;
  max-width:700px !important;
}

.slideControls{
  top:auto !important;
  bottom:28px !important;
  right:34px !important;
  z-index:5;
  gap:10px !important;
}

.iconBtn{
  width:44px !important;
  height:44px !important;
  border-radius:14px !important;
  backdrop-filter:blur(8px);
  background:rgba(255,255,255,.12) !important;
  border:1px solid rgba(255,255,255,.25) !important;
  transition:transform .18s ease, background .18s ease, border-color .18s ease !important;
}

.iconBtn:hover{
  transform:translateY(-1px);
  background:rgba(255,255,255,.22) !important;
}

.heroPauseBtn{
  min-width:52px;
  font-size:16px !important;
  font-weight:900;
}

.dots{
  top:auto !important;
  bottom:44px !important;
  left:50% !important;
  transform:translateX(-50%);
  z-index:5;
}

.dot{
  width:11px !important;
  height:11px !important;
}

.slide.isActive .noticeBadge,
.slide.isActive .noticeTitle,
.slide.isActive .noticeText,
.slide.isActive .noticeActions,
.slide.isActive .capBox{
  animation:heroFadeUp .75s ease both;
}

.slide.isActive .noticeTitle,
.slide.isActive .capBox h3{ animation-delay:.08s; }

.slide.isActive .noticeText,
.slide.isActive .capBox p{ animation-delay:.16s; }

.slide.isActive .noticeActions{ animation-delay:.24s; }

/* smaller welcome card on right */
.heroGrid > .card:nth-child(2){
  position:relative;
  margin:24px 0 0 !important;
  z-index:4;
  align-self:end;
  background:rgba(255,255,255,.96) !important;
  backdrop-filter:blur(10px);
  border:1px solid rgba(255,255,255,.6) !important;
  box-shadow:0 18px 44px rgba(15,23,42,.10) !important;
  max-width:360px;
}

.heroGrid > .card:nth-child(2) .hTitle{
  font-size:24px !important;
  line-height:1.12 !important;
  margin-bottom:10px !important;
}

.heroGrid > .card:nth-child(2) .hSub{
  font-size:14px !important;
  line-height:1.7 !important;
  margin-bottom:12px !important;
}

.heroGrid > .card:nth-child(2) .pillRow{
  gap:6px !important;
  margin-bottom:10px !important;
}

.heroGrid > .card:nth-child(2) .pill{
  font-size:11px !important;
  padding:6px 8px !important;
}

.heroGrid > .card:nth-child(2) .quickLinks{ gap:8px !important; }
.heroGrid > .card:nth-child(2) .qItem{
  padding:10px 12px !important;
  border-radius:14px !important;
}
.heroGrid > .card:nth-child(2) .qItem strong{ font-size:13px !important; }
.heroGrid > .card:nth-child(2) .qItem .muted{ font-size:12px !important; }
.heroGrid > .card:nth-child(2) .counterBar{
  margin-top:12px !important;
  padding:12px 14px !important;
}
.heroGrid > .card:nth-child(2) .counterLabel{ font-size:11px !important; }
.heroGrid > .card:nth-child(2) .counterNumber{ font-size:24px !important; }
.heroGrid > .card:nth-child(2) .metaRow{ margin-top:10px !important; }

.heroBanner{ margin-top:10px !important; }
.principalWelcome{ margin-top:6px !important; }

@keyframes heroFadeUp{
  from{ opacity:0; transform:translateY(18px); }
  to{ opacity:1; transform:translateY(0); }
}

/* ===== SCHOOLS PAGE LAYOUT RESTORED ===== */
.pageWrap{
  max-width:1160px;
  margin:0 auto;
  padding:24px 16px 40px;
}

.innerLayout{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
  align-items:start;
}

.sectionSideNav{ width:100%; }

.sectionNavCard{
  background:linear-gradient(180deg, #223064, #1a274f);
  color:#fff;
  padding:18px 22px;
  box-shadow:0 14px 36px rgba(0,0,0,.14);
}

.sectionNavGroup{
  border-bottom:1px solid rgba(255,255,255,.22);
  padding:14px 0;
}

.sectionNavGroup:last-child{ border-bottom:none; }

.sectionNavTop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:#fff;
  text-decoration:none;
  font-size:15px;
  font-weight:800;
  line-height:1.3;
  transition:all .16s ease;
  padding:4px 0;
}

.sectionNavTop:hover,
.sectionNavGroup.active .sectionNavTop{
  color:#fff5cf;
}

.sectionNavIcon{
  font-size:26px;
  font-weight:400;
  line-height:1;
  flex:0 0 auto;
}

.sectionNavSub{
  display:none;
  margin-top:14px;
  padding-left:18px;
  gap:12px;
}

.sectionNavGroup.active .sectionNavSub{ display:grid; }

.sectionNavSubItem{
  color:#fff;
  text-decoration:none;
  font-size:14px;
  font-weight:500;
  line-height:1.4;
  padding:6px 8px;
  border-radius:10px;
  transition:all .16s ease;
}

.sectionNavSubItem:hover,
.sectionNavSubItem.active{
  background:linear-gradient(180deg,var(--gold1),var(--gold2));
  color:#ffffff;
}

.schoolsContentCard{
  background:#fff;
  border:1px solid rgba(10,18,32,.10);
  border-radius:18px;
  padding:24px;
  box-shadow:0 16px 40px rgba(0,0,0,.08);
}

.pageEyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(43,108,176,.95);
  font-size:12px;
  margin-bottom:8px;
}

.pageEyebrow::before{
  content:"";
  display:inline-block;
  width:22px;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(200,166,74,.95), rgba(200,166,74,.45));
}

.pageTitle{
  margin:0 0 10px;
  font-size:38px;
  line-height:1.08;
  font-weight:950;
}

.pageText{
  margin:0 0 12px;
  color:#5c667a;
  line-height:1.65;
  max-width:72ch;
}

.schoolGrid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:18px;
  margin-top:20px;
}

.schoolCard{
  display:block;
  overflow:hidden;
  border-radius:18px;
  border:1px solid rgba(10,18,32,.10);
  background:#fff;
  text-decoration:none;
  color:inherit;
  box-shadow:0 12px 30px rgba(0,0,0,.08);
  transition:.2s ease;
}

.schoolCard:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 40px rgba(0,0,0,.12);
}

.schoolImage{
  height:210px;
  background:center/cover no-repeat;
}

.schoolImageOne{
  background-image:
    linear-gradient(135deg, rgba(11,60,122,.72), rgba(26,95,208,.28)),
    url('assets/img/wee-wisdom.jpg');
  background-color:#dfe8f7;
}

.schoolImageTwo{
  background-image:
    linear-gradient(135deg, rgba(11,60,122,.62), rgba(255,211,106,.22)),
    url('assets/img/elementary.jpg');
  background-color:#e7edf7;
}

.schoolImageThree{
  background-image:
    linear-gradient(135deg, rgba(11,60,122,.68), rgba(26,95,208,.22)),
    url('assets/img/high-school.jpg');
  background-color:#d9e5f5;
}

.schoolBody{ padding:18px; }

.schoolKicker{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(26,95,208,.18);
  background:#f3f7ff;
  color:#0b2b55;
  font-size:12px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  margin-bottom:10px;
}

.schoolBody h3{
  margin:0 0 8px;
  font-size:24px;
  font-weight:950;
  line-height:1.2;
}

.schoolBody p{
  margin:0;
  color:#5c667a;
  line-height:1.6;
}

/* ===== MOBILE ===== */
@media (max-width:980px){
  .topbar{
    flex-wrap:wrap;
  }

  .brand{
    min-width:auto;
  }

  .cta{
    flex-wrap:wrap;
  }

  .mainNav{
    flex-wrap:wrap !important;
    justify-content:flex-start !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
  }

  .navLeft,
  .navRight{
    flex-wrap:wrap;
  }

  .navLink,
  .navDropBtn{
    font-size:12px;
    padding:8px 10px;
  }

  .navDropMenu{
    position:relative;
    top:8px;
    min-width:100%;
  }

  .navDrop::after{ display:none; }

  .heroGrid{ grid-template-columns:1fr !important; }

  .heroGrid > .card:first-child .slideshow{
    height:min(70vh, 620px);
    min-height:500px;
    border-radius:18px;
  }

  .noticeOverlay{ padding:110px 20px 82px !important; }
  .noticeTitle{ font-size:clamp(30px, 8vw, 46px) !important; }
  .noticeText,
  .capBox p{ font-size:15px !important; }

  .slideCaption{
    left:20px !important;
    right:20px !important;
    bottom:76px !important;
  }

  .capBox h3{ font-size:clamp(28px, 7vw, 42px) !important; }

  .slideControls{
    right:20px !important;
    bottom:20px !important;
  }

  .dots{ bottom:32px !important; }

  .heroGrid > .card:nth-child(2){
    max-width:none;
    margin-top:0 !important;
  }

  .innerLayout{ grid-template-columns:1fr; }
  .sectionNavCard{ padding:16px 18px; }
  .sectionNavTop{ font-size:14px; }
  .sectionNavSubItem{ font-size:13px; }
  .schoolGrid{ grid-template-columns:1fr; }
  .pageTitle{ font-size:30px; }
}
/* ===== SCHOOLS PAGE: FINAL CLEAN CARD SYSTEM ===== */
/* old experimental school card systems removed:
   - schoolRevealCard
   - schoolPremiumTopDownCard
   - duplicate schoolGrid overrides
   keep only this Windsor-style top-to-bottom reveal
*/

.sideBlueCard{
  background:linear-gradient(180deg,#1f3478 0%, #17285f 100%) !important;
}

.sectionNavTop{
  color:#ffffff !important;
  font-size:16px !important;
  font-weight:800 !important;
}

.sectionNavTop:hover,
.sectionNavGroup.active .sectionNavTop{
  color:#dfe9ff !important;
}

.sectionNavSubItem{
  color:#d7e4ff !important;
}

.sectionNavSubItem:hover,
.sectionNavSubItem.active{
  background:rgba(255,255,255,.12) !important;
  color:#ffffff !important;
}

/* final schools card grid */
.schoolGridWindsorTop{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:0;
  margin-top:26px;
  overflow:hidden;
}

.schoolWindsorTopCard{
  position:relative;
  overflow:hidden;
  border-radius:0;
  box-shadow:none;
  border:0;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transform:none;
}

.schoolWindsorTopCard:hover{
  transform:none;
  box-shadow:none;
}

.schoolWindsorTopCard .schoolImage{
  height:360px;
  background-position:center;
  background-size:cover;
  border-radius:0;
  position:relative;
}

.schoolWindsorTopCard .schoolImage::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(8,20,50,.05), rgba(8,20,50,.12));
}

.schoolTopBand{
  position:absolute;
  top:0;
  left:0;
  right:0;
  z-index:3;
  background:linear-gradient(180deg, rgba(5,10,24,.97), rgba(8,18,44,.94));
  color:#fff;
  padding:16px 18px 14px;
  min-height:96px;
  max-height:96px;
  overflow:hidden;
  transition:max-height .30s ease, background .22s ease;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.schoolWindsorTopCard:hover .schoolTopBand{
  max-height:245px;
  background:linear-gradient(180deg, rgba(3,8,20,.98), rgba(8,18,44,.96));
}

.schoolBottomStrip{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  background:#1f2b5a;
  color:#fff;
  padding:14px 20px;
  font-size:14px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
  transition:opacity .2s ease;
}

.schoolWindsorTopCard:hover .schoolBottomStrip{
  opacity:0;
}

.schoolPanelKicker{
  display:inline-block;
  margin-bottom:8px;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid rgba(247,215,104,.25);
  background:rgba(247,215,104,.10);
  color:#f7d768;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.schoolPanelTitle{
  margin:0;
  font-size:18px;
  line-height:1.18;
  font-weight:900;
  letter-spacing:-.02em;
  color:#fff;
}

.schoolPanelText,
.schoolPanelLink{
  opacity:0;
  transform:translateY(8px);
  transition:opacity .24s ease, transform .24s ease;
}

.schoolPanelText{
  margin:12px 0 16px;
  max-width:30ch;
  color:rgba(255,255,255,.88);
  font-size:13px;
  line-height:1.65;
}

.schoolPanelLink{
  display:inline-block;
  color:#f7d768;
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-decoration:underline;
}

.schoolWindsorTopCard:hover .schoolPanelText,
.schoolWindsorTopCard:hover .schoolPanelLink{
  opacity:1;
  transform:translateY(0);
}

@media (max-width:980px){
  .schoolGridWindsorTop{
    grid-template-columns:1fr;
    gap:16px;
  }

  .schoolWindsorTopCard{
    border-radius:18px;
    overflow:hidden;
  }

  .schoolWindsorTopCard .schoolImage{
    height:280px;
  }

  .schoolTopBand{
    position:relative;
    min-height:auto;
    max-height:none;
  }

  .schoolBottomStrip{
    display:none;
  }

  .schoolPanelText,
  .schoolPanelLink{
    opacity:1;
    transform:none;
  }
}
