/* =====================================================================
   PTAA Texas — Header & Navigation Redesign
   Added by request (header/menu revamp). Pure CSS overrides only.
   Loaded LAST so it overrides earlier theme CSS and the inline
   wp_head color block. No markup, menu items, or links changed.
   Created: 2026-06-17. Backups: *.manusbak-20260617-013515
   ===================================================================== */

:root{
  --ptaa-blue:#416ca3;
  --ptaa-blue-deep:#2f5482;
  --ptaa-blue-dark:#27466e;
  --ptaa-gold:#f5b733;
  --ptaa-gold-deep:#e0a000;
  --ptaa-ink:#1f2d3d;
  --ptaa-ease:cubic-bezier(0.23,1,0.32,1);
}

/* ------------------------------------------------------------------ */
/* 1) TOP UTILITY BAR (.top-header)                                    */
/* ------------------------------------------------------------------ */
body .top-header{
  background:linear-gradient(90deg,var(--ptaa-blue-dark),var(--ptaa-blue-deep)) !important;
  padding:0 24px !important;
  min-height:40px;
}
body .top-header .connect-with-us,
body .top-header .navigation-links{
  max-width:1180px;
}
.top-header .connect-label{
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:11px;
  letter-spacing:.12em;
  opacity:.9;
}
.top-header .connect-with-us .social-link{
  font-size:14px;
  margin-right:16px;
  transition:color .2s var(--ptaa-ease), transform .2s var(--ptaa-ease);
}
.top-header .connect-with-us .social-link:hover{
  color:var(--ptaa-gold);
}
.top-header .navigation-links .nav-button{
  font-family:'Montserrat',sans-serif !important;
  font-weight:600;
  font-size:12.5px;
  letter-spacing:.03em;
  padding:7px 12px;
  border-radius:6px;
  margin-left:6px;
  transition:background .2s var(--ptaa-ease), color .2s var(--ptaa-ease);
}
.top-header .navigation-links .nav-button:not(:last-child){
  border-right:1px solid rgba(255,255,255,.28);
  padding-right:14px;
  margin-right:6px;
}
.top-header .navigation-links .nav-button:hover{
  background:rgba(255,255,255,.14);
  color:#fff;
}

/* ------------------------------------------------------------------ */
/* 2) MAIN BRAND ROW (logo + title + quick links)  secondary-header   */
/* ------------------------------------------------------------------ */
.header .wrapper{
  max-width:1180px;
  margin:0 auto;
  align-items:center !important;
  padding:14px 24px !important;
  gap:18px;
}

/* Logo: tidy size + remove the odd top margin */
.custom-logo{
  max-width:190px !important;
  margin-top:0 !important;
  margin-left:0 !important;
}

/* Title block: legible, no wrapping into the logo */
.logo-school-district{
  align-items:center !important;
}
.school-district-text{
  margin-top:0 !important;
  margin-left:18px !important;
  padding-left:18px;
  border-left:2px solid #e2e8f0;
  justify-content:center;
}
.logo-text{
  font-family:'Montserrat',sans-serif !important;
  font-weight:800 !important;
  font-size:20px !important;
  line-height:1.12 !important;
  color:var(--ptaa-blue-dark) !important;
  margin-bottom:3px !important;
  max-width:none !important;
  white-space:nowrap;
}
.district-text{
  font-family:'Source Sans 3','Montserrat',sans-serif !important;
  font-size:13px !important;
  font-style:normal !important;
  color:#64748b !important;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* Quick links (Calendar / HR / Contact / Skyward / ENROLL) */
.nav-main{
  margin-right:0 !important;
  align-items:center !important;
}
.nav-main ul li{
  margin:0 2px !important;
}
.nav-main ul li a{
  font-family:'Montserrat',sans-serif !important;
  font-weight:600 !important;
  font-size:14px !important;
  color:var(--ptaa-blue-deep) !important;
  padding:9px 13px !important;
  border-radius:8px !important;
  transition:background .2s var(--ptaa-ease), color .2s var(--ptaa-ease) !important;
}
.nav-main ul li a:not(.enroll-btn a):hover{
  text-decoration:none !important;
  background:#eef3f9;
  color:var(--ptaa-blue-dark) !important;
}
/* keep "underline on hover" away from button */
.nav-main ul li:not(.enroll-btn) a:hover{
  text-decoration:none !important;
  background:#eef3f9;
}

/* Gold ENROLL button */
.nav-main ul li.enroll-btn a{
  background:linear-gradient(180deg,var(--ptaa-gold),var(--ptaa-gold-deep)) !important;
  color:#3b2c00 !important;
  font-weight:800 !important;
  letter-spacing:.03em;
  padding:10px 22px !important;
  border-radius:8px !important;
  box-shadow:0 6px 14px -6px rgba(224,160,0,.8);
  margin-left:8px;
  transition:transform .16s var(--ptaa-ease), filter .2s var(--ptaa-ease) !important;
}
.nav-main ul li.enroll-btn a:hover{
  background:linear-gradient(180deg,var(--ptaa-gold),var(--ptaa-gold-deep)) !important;
  filter:brightness(1.05);
  transform:translateY(-1px);
}

/* ------------------------------------------------------------------ */
/* 3) PRIMARY NAV BAR (.third-level-header / .nav-third-level)         */
/* ------------------------------------------------------------------ */
body .third-level-header{
  background:linear-gradient(90deg,var(--ptaa-blue),var(--ptaa-blue-deep)) !important;
  height:auto !important;
  font-family:'Montserrat',sans-serif !important;
  box-shadow:0 2px 10px -4px rgba(20,40,70,.4);
}
.nav-third-level{
  height:auto !important;
  max-width:1180px;
  margin:0 auto;
}
.nav-third-level ul{
  flex-wrap:wrap;
  justify-content:center;
}
.nav-third-level ul li{
  margin:0 !important;
  padding:0 !important;
  border:none !important;
  transition:background .18s var(--ptaa-ease);
}
.nav-third-level ul li a{
  font-family:'Montserrat',sans-serif !important;
  font-weight:600 !important;
  font-size:14.5px !important;
  letter-spacing:.02em;
  padding:15px 17px !important;
  display:block;
}
/* hover state on top-level items (override inline #345a84) */
body .nav-third-level ul li:hover{
  background:rgba(255,255,255,.12) !important;
}

/* Dropdown: card style — anchored to LEFT edge of its menu item so the
   first item (About Us) is never cut off, and labels never wrap awkwardly */
body .nav-third-level ul li > ul.submenu-third{
  background:#fff !important;
  width:auto !important;
  min-width:300px;
  max-width:none !important;
  display:block;
  gap:0;
  padding:10px !important;
  border-radius:12px !important;
  box-shadow:0 24px 48px -16px rgba(20,40,70,.45) !important;
  border:1px solid #eef1f5;
  margin-top:6px;
  left:0 !important;
  right:auto !important;
  transform:translateX(0) translateY(8px) !important;
  transition:opacity .2s var(--ptaa-ease), visibility .2s var(--ptaa-ease), transform .2s var(--ptaa-ease) !important;
}
.nav-third-level ul li:hover > ul.submenu-third{
  transform:translateX(0) translateY(0) !important;
}
.nav-third-level ul li > ul.submenu-third li{
  padding:0 !important;
  width:100%;
}
.nav-third-level ul li > ul.submenu-third li a{
  color:var(--ptaa-ink) !important;
  font-family:'Source Sans 3',sans-serif !important;
  font-weight:500 !important;
  font-size:14px !important;
  line-height:1.35 !important;
  padding:10px 14px !important;
  border-radius:8px;
  white-space:nowrap !important;
  transition:background .15s var(--ptaa-ease), color .15s var(--ptaa-ease);
}
.nav-third-level ul li > ul.submenu-third li a:hover{
  background:#eef3f9 !important;
  color:var(--ptaa-blue-dark) !important;
}
/* Last menu items: align dropdown to the RIGHT edge so it never overflows screen */
.nav-third-level ul li:nth-last-child(-n+2) > ul.submenu-third{
  left:auto !important;
  right:0 !important;
}
/* remove the old grey underline pseudo-element */
.nav-third-level ul li > ul.submenu-third li a::after{
  display:none !important;
}

/* Active page indicator (gold underline) */
.nav-third-level ul li.current-menu-item > a,
.nav-third-level ul li.current_page_item > a,
.nav-third-level ul li.current-menu-parent > a,
.nav-third-level ul li.current-menu-ancestor > a{
  box-shadow:inset 0 -3px 0 var(--ptaa-gold);
}

/* ------------------------------------------------------------------ */
/* 4) Subtle sticky header on scroll (the primary nav bar)            */
/* ------------------------------------------------------------------ */
@media (min-width:1101px){
  body .third-level-header{
    position:sticky;
    top:0;
    z-index:900;
  }
}

/* ------------------------------------------------------------------ */
/* 5) MOBILE MENU polish (<=1100px)                                    */
/* ------------------------------------------------------------------ */
.menu-text{
  font-family:'Montserrat',sans-serif !important;
  color:var(--ptaa-blue-deep) !important;
}
.hamburger-menu-button .fa-bars{ color:var(--ptaa-blue-deep) !important; }

.mobile-menu-container{
  max-width:380px;
  box-shadow:-10px 0 40px -10px rgba(20,40,70,.35);
}
.mobile-search{
  background:linear-gradient(90deg,var(--ptaa-blue-dark),var(--ptaa-blue-deep)) !important;
  border-bottom:none !important;
}
.mobile-search input[type="text"]{
  background:transparent;
  color:#fff;
}
.mobile-search input[type="text"]::placeholder{ color:rgba(255,255,255,.7); }
.mobile-search button{ color:#fff !important; }

.mobile-nav-menu li{
  border-bottom:1px solid #eef1f5 !important;
  padding-top:4px;
  padding-bottom:4px;
}
.mobile-nav-menu li a{
  font-family:'Montserrat',sans-serif !important;
  font-weight:600 !important;
  color:var(--ptaa-blue-dark) !important;
  font-size:16px !important;
  padding:8px 6px !important;
}
.mobile-nav-menu li a:hover,
.mobile-nav-menu li a.active{
  background:#eef3f9 !important;
  color:var(--ptaa-blue-dark) !important;
  border-radius:8px;
}
.submenu-indicator{ color:var(--ptaa-blue-deep) !important; }
.submenu-header{
  background:linear-gradient(90deg,var(--ptaa-blue-dark),var(--ptaa-blue-deep)) !important;
  color:#fff !important;
  font-family:'Montserrat',sans-serif !important;
}
.submenu-header .back-button{ color:#fff !important; }
.second-level-button{
  background:linear-gradient(180deg,var(--ptaa-gold),var(--ptaa-gold-deep)) !important;
  color:#3b2c00 !important;
  font-family:'Montserrat',sans-serif !important;
  font-weight:800 !important;
  border-radius:8px !important;
}
.second-level-button:hover{
  filter:brightness(1.05);
  background:linear-gradient(180deg,var(--ptaa-gold),var(--ptaa-gold-deep)) !important;
  color:#3b2c00 !important;
}

/* ------------------------------------------------------------------ */
/* 6) Mobile header layout (<=1100px): tighten the tall white block,   */
/*    size the logo, align the MENU button beside the logo, and show   */
/*    a compact district title so the header is not bare.              */
/* ------------------------------------------------------------------ */
@media (max-width:1100px){
  /* Lay the brand row as: logo (left) + title, MENU button (right) */
  .header .wrapper{
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:10px 16px !important;
    gap:10px !important;
  }
  /* DOM order is [menu-button-wrapper, logo, nav-main]; reorder visually */
  .header .wrapper .menu-button-wrapper{ order:3 !important; flex:0 0 auto !important; }
  .header .wrapper .logo-school-district{ order:1 !important; }
  .header .wrapper .nav-main{ order:2 !important; }
  .logo-school-district{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    flex:1 1 auto;
    min-width:0;
  }
  .custom-logo{ max-width:150px !important; }

  /* Bring back a compact title on mobile (theme hides it by default) */
  .school-district-text{
    display:flex !important;
    flex-direction:column !important;
    margin-left:10px !important;
    padding-left:10px !important;
    border-left:2px solid #e2e8f0 !important;
    min-width:0;
  }
  .logo-text{
    display:block !important;
    font-size:12.5px !important;
    line-height:1.2 !important;
    white-space:normal !important;
    margin-bottom:0 !important;
    max-width:13ch;
  }
  .district-text{ display:none !important; } /* keep the slogan off on small screens */

  /* MENU / hamburger: compact pill on the right, not full-width block */
  .hamburger-menu-button{
    flex:0 0 auto !important;
    padding:8px 12px !important;
    border:1px solid #e2e8f0 !important;
    border-radius:8px !important;
    background:#f7fafc !important;
  }
}

@media (max-width:480px){
  .custom-logo{ max-width:128px !important; }
  .logo-text{ font-size:12px !important; }
  .school-district-text{ margin-left:8px !important; padding-left:8px !important; }
}
/* ================================================================== */
/* PTAA DROPDOWN SUBMENU FIX  (appended 2026-06-17)                    */
/* Goal: submenu items must NEVER overlap, at any viewport width.      */
/* Strategy: force a robust CSS grid with real column widths + gaps.   */
/* Short menus collapse to 1 column; long menus use 2 columns cleanly. */
/* ================================================================== */

/* Reset any inherited grid/column behaviour from the base theme and
   rebuild the dropdown as a predictable grid that auto-fills columns
   with a guaranteed minimum width, so labels can never collide. */
body .nav-third-level ul li > ul.submenu-third{
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(230px, 1fr)) !important;
  grid-auto-rows:auto !important;
  column-gap:8px !important;
  row-gap:2px !important;
  width:auto !important;
  min-width:260px !important;
  max-width:640px !important;
  padding:12px !important;
  align-items:start !important;
}

/* Each item occupies its own grid cell — relative, never absolute,
   so it can never sit on top of a neighbour. */
body .nav-third-level ul li > ul.submenu-third li{
  position:relative !important;
  float:none !important;
  display:block !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  top:auto !important; left:auto !important;
  margin:0 !important;
  padding:0 !important;
}

/* Links: allow normal wrapping inside a cell instead of forcing nowrap
   (nowrap + narrow column was a contributor to visual collisions). */
body .nav-third-level ul li > ul.submenu-third li a{
  display:block !important;
  width:auto !important;
  white-space:normal !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
  line-height:1.3 !important;
  padding:9px 14px !important;
  font-size:14px !important;
  border-radius:8px !important;
}

/* Single-column dropdowns (few items) stay narrow & tidy.
   When there are 5 or fewer items, keep one column. */
body .nav-third-level ul li > ul.submenu-third:not(:has(li:nth-child(6))){
  grid-template-columns:minmax(240px, 320px) !important;
  max-width:340px !important;
}

/* Nested third-level (li that itself has a child ul) — show its children
   inline beneath, indented, so they don't overlay the parent column. */
body .nav-third-level ul li > ul.submenu-third li > ul{
  position:static !important;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:auto !important;
  background:transparent !important;
  box-shadow:none !important;
  border:none !important;
  padding:0 0 0 12px !important;
  margin:2px 0 4px !important;
  transform:none !important;
}
body .nav-third-level ul li > ul.submenu-third li > ul li a{
  font-size:13px !important;
  opacity:.92;
  padding:6px 12px !important;
}

/* Safety: kill any leftover grey underline pseudo element */
body .nav-third-level ul li > ul.submenu-third li a::after{
  display:none !important;
}
