/* ============================================================
   CWS Modern Design System
   Child theme overrides for Astra
   ============================================================ */

:root {
  --cws-navy: #0F1E3D;
  --cws-navy-2: #1A2D5C;
  --cws-gold: #D4A24C;
  --cws-gold-2: #B8862E;
  --cws-cream: #FAF7F2;
  --cws-paper: #FFFFFF;
  --cws-slate: #475569;
  --cws-slate-2: #64748B;
  --cws-line: #E5E7EB;
  --cws-ink: #0B1224;
  --cws-success: #16A34A;

  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 22px;
  --r-xl: 32px;

  --shadow-1: 0 2px 8px rgba(15, 30, 61, 0.06);
  --shadow-2: 0 10px 30px rgba(15, 30, 61, 0.10);
  --shadow-3: 0 18px 50px rgba(15, 30, 61, 0.14);

  --container: 1200px;
}

/* ---------- Global typography ---------- */
html, body {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif !important;
  color: var(--cws-ink);
  background: var(--cws-paper);
  -webkit-font-smoothing: antialiased;
}

body, p, li, a, span, label, input, textarea, button, .ast-container {
  font-family: "Inter", system-ui, sans-serif !important;
}

h1, h2, h3, h4, h5, h6,
.entry-title, .site-title, .ast-builder-html-element,
.menu-item, .ast-builder-menu-1 .menu-item > a {
  font-family: "Plus Jakarta Sans", "Inter", sans-serif !important;
  color: var(--cws-navy);
  letter-spacing: -0.01em;
}

h1 { font-weight: 800; line-height: 1.08; }
h2 { font-weight: 700; line-height: 1.15; }
h3 { font-weight: 700; line-height: 1.25; }

/* ---------- Header / nav ---------- */
.site-header,
.ast-primary-header-bar,
header.site-header .main-header-bar {
  background: var(--cws-paper) !important;
  box-shadow: var(--shadow-1) !important;
  border-bottom: 1px solid var(--cws-line);
}

.main-header-menu .menu-item > a,
.ast-builder-menu .menu-item > a {
  font-weight: 600 !important;
  font-size: 15px !important;
  color: var(--cws-ink) !important;
  letter-spacing: 0.01em;
  transition: color .2s ease;
}
.main-header-menu .menu-item > a:hover,
.ast-builder-menu .menu-item > a:hover,
.main-header-menu .current-menu-item > a {
  color: var(--cws-gold) !important;
}

.main-header-menu .sub-menu {
  border-radius: var(--r-md) !important;
  box-shadow: var(--shadow-2) !important;
  border: 1px solid var(--cws-line) !important;
  padding: 8px !important;
  overflow: hidden;
}
.main-header-menu .sub-menu a {
  border-radius: var(--r-sm) !important;
  padding: 10px 14px !important;
}
.main-header-menu .sub-menu a:hover {
  background: var(--cws-cream) !important;
  color: var(--cws-navy) !important;
}

/* Site title fallback */
.site-title a { color: var(--cws-navy) !important; }

/* ---------- Buttons ---------- */
.wp-block-button__link,
.ast-button, .menu-item.ast-masthead-custom-menu-items a.menu-link,
button, input[type="submit"], .button {
  border-radius: 999px !important;
  font-weight: 600 !important;
  font-family: "Plus Jakarta Sans", sans-serif !important;
  letter-spacing: 0.01em;
  padding: 14px 26px !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease !important;
  border: none !important;
}
.wp-block-button__link {
  background: var(--cws-navy) !important;
  color: #fff !important;
  box-shadow: var(--shadow-1);
}
.wp-block-button__link:hover {
  background: var(--cws-navy-2) !important;
  transform: translateY(-2px);
  box-shadow: var(--shadow-2);
}
.wp-block-button.is-style-outline .wp-block-button__link {
  background: transparent !important;
  color: var(--cws-navy) !important;
  border: 2px solid var(--cws-navy) !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background: var(--cws-navy) !important;
  color: #fff !important;
}
.is-style-gold .wp-block-button__link {
  background: var(--cws-gold) !important;
  color: var(--cws-ink) !important;
}
.is-style-gold .wp-block-button__link:hover {
  background: var(--cws-gold-2) !important;
  color: #fff !important;
}

/* ---------- Content width ---------- */
.ast-container, .site-content > .ast-container,
.entry-content > .alignwide { max-width: var(--container); }

/* ---------- Section utility classes (for home rebuild) ---------- */
.cws-section { padding: 96px 24px; }
.cws-section.tight { padding: 72px 24px; }
.cws-wrap { max-width: var(--container); margin: 0 auto; }
.cws-eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 13px; font-weight: 700; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--cws-gold);
  margin-bottom: 16px;
}
.cws-eyebrow:before {
  content: ""; width: 28px; height: 2px; background: var(--cws-gold); border-radius: 2px;
}
.cws-h2 {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1.12;
  color: var(--cws-navy);
  margin: 0 0 16px;
}
.cws-lead {
  color: var(--cws-slate);
  font-size: 17px;
  line-height: 1.7;
  max-width: 720px;
}

/* ---------- Hero ---------- */
.cws-hero {
  position: relative;
  background: radial-gradient(1200px 600px at 80% -20%, rgba(212,162,76,0.18) 0%, transparent 60%),
              linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 60%, #243C82 100%);
  color: #fff;
  padding: 120px 24px 110px;
  overflow: hidden;
  isolation: isolate;
}
.cws-hero:before {
  content: "";
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 20% 80%, rgba(212,162,76,0.15) 0%, transparent 40%),
    radial-gradient(circle at 90% 20%, rgba(255,255,255,0.06) 0%, transparent 40%);
  z-index: -1;
}
.cws-hero .cws-wrap { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 56px; align-items: center; }
.cws-hero h1 {
  font-size: clamp(36px, 5.2vw, 64px);
  line-height: 1.05;
  font-weight: 800;
  color: #fff;
  margin: 0 0 22px;
  letter-spacing: -0.02em;
}
.cws-hero h1 .accent { color: var(--cws-gold); }
.cws-hero p.lead {
  font-size: 19px; line-height: 1.65;
  color: rgba(255,255,255,0.82);
  max-width: 560px;
  margin: 0 0 32px;
}
.cws-hero .cws-eyebrow { color: var(--cws-gold); }
.cws-hero .cws-eyebrow:before { background: var(--cws-gold); }
.cws-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.cws-btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 16px 28px; border-radius: 999px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 700; font-size: 15px;
  text-decoration: none !important;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.cws-btn.primary { background: var(--cws-gold); color: var(--cws-ink); box-shadow: 0 12px 26px rgba(212,162,76,0.35); }
.cws-btn.primary:hover { transform: translateY(-2px); background: #E5B25C; box-shadow: 0 18px 36px rgba(212,162,76,0.45); }
.cws-btn.ghost { background: rgba(255,255,255,0.08); color: #fff; border: 1.5px solid rgba(255,255,255,0.25); }
.cws-btn.ghost:hover { background: rgba(255,255,255,0.15); }

.cws-hero-card {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--shadow-3);
  aspect-ratio: 4/5;
  background: linear-gradient(180deg, rgba(15,30,61,0) 30%, rgba(15,30,61,0.5) 100%), url(/wp-content/uploads/2024/09/13-1.jpg) center/cover no-repeat;
}
.cws-hero-card .badge {
  position: absolute; left: 22px; bottom: 22px;
  background: rgba(255,255,255,0.95);
  color: var(--cws-navy);
  padding: 14px 18px;
  border-radius: var(--r-md);
  font-family: "Plus Jakarta Sans", sans-serif;
  box-shadow: var(--shadow-2);
}
.cws-hero-card .badge strong { display: block; font-size: 22px; font-weight: 800; color: var(--cws-navy); }
.cws-hero-card .badge span { font-size: 13px; color: var(--cws-slate); font-weight: 500; }

@media (max-width: 900px) {
  .cws-hero .cws-wrap { grid-template-columns: 1fr; gap: 40px; }
  .cws-hero { padding: 80px 20px; }
  .cws-hero-card { aspect-ratio: 4/3; }
}

/* ---------- Stats strip ---------- */
.cws-stats {
  background: var(--cws-paper);
  margin-top: -50px;
  position: relative;
  z-index: 3;
}
.cws-stats .cws-wrap {
  background: #fff;
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-2);
  padding: 36px 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  border: 1px solid var(--cws-line);
}
.cws-stat { text-align: center; }
.cws-stat .num {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
  font-size: 40px;
  color: var(--cws-navy);
  line-height: 1;
  display: block;
}
.cws-stat .label {
  font-size: 13px;
  color: var(--cws-slate);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-top: 8px;
  display: block;
}
.cws-stat + .cws-stat { border-left: 1px solid var(--cws-line); }
@media (max-width: 800px) {
  .cws-stats .cws-wrap { grid-template-columns: repeat(2, 1fr); }
  .cws-stat + .cws-stat { border-left: none; }
  .cws-stat:nth-child(odd) { border-right: 1px solid var(--cws-line); }
}

/* ---------- Feature cards ---------- */
.cws-features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.cws-feature {
  background: var(--cws-paper);
  border: 1px solid var(--cws-line);
  border-radius: var(--r-lg);
  padding: 32px 28px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position: relative;
  overflow: hidden;
}
.cws-feature:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-2);
  border-color: rgba(212,162,76,0.4);
}
.cws-feature .icon {
  width: 54px; height: 54px;
  border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--cws-navy) 0%, var(--cws-navy-2) 100%);
  color: var(--cws-gold);
  font-size: 26px;
  margin-bottom: 18px;
  box-shadow: 0 8px 18px rgba(15,30,61,0.18);
}
.cws-feature h3 {
  font-size: 20px; font-weight: 700;
  color: var(--cws-navy);
  margin: 0 0 10px;
}
.cws-feature p {
  color: var(--cws-slate);
  font-size: 15px; line-height: 1.65;
  margin: 0;
}
@media (max-width: 900px) { .cws-features-grid { grid-template-columns: 1fr; } }

/* ---------- Programs grid ---------- */
.cws-section.alt { background: var(--cws-cream); }
.cws-programs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 48px;
}
.cws-program {
  background: #fff;
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-1);
  transition: transform .25s ease, box-shadow .25s ease;
}
.cws-program:hover { transform: translateY(-4px); box-shadow: var(--shadow-2); }
.cws-program .img {
  aspect-ratio: 4/3;
  background-size: cover; background-position: center;
}
.cws-program .body { padding: 24px 22px; }
.cws-program .tag {
  font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--cws-gold);
  margin-bottom: 8px;
}
.cws-program h3 { font-size: 19px; color: var(--cws-navy); margin: 0 0 8px; }
.cws-program p { color: var(--cws-slate); font-size: 14.5px; line-height: 1.6; margin: 0 0 14px; }
.cws-program a.more {
  color: var(--cws-navy); font-weight: 700; font-size: 14px;
  text-decoration: none; display: inline-flex; align-items: center; gap: 6px;
}
.cws-program a.more:after { content: "→"; transition: transform .2s ease; }
.cws-program a.more:hover:after { transform: translateX(4px); }
@media (max-width: 900px) { .cws-programs { grid-template-columns: 1fr; } }

/* ---------- Principal section ---------- */
.cws-principal { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 56px; align-items: center; }
.cws-principal .img-wrap {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  aspect-ratio: 4/5;
  box-shadow: var(--shadow-3);
}
.cws-principal .img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cws-principal .quote-mark {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 96px; line-height: 0.8;
  color: var(--cws-gold);
  margin-bottom: 0;
}
.cws-principal blockquote {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 22px; line-height: 1.5;
  font-weight: 500;
  color: var(--cws-navy);
  margin: 12px 0 24px;
  border: none; padding: 0;
}
.cws-principal .sig { font-weight: 700; color: var(--cws-navy); }
.cws-principal .sig span { display: block; font-weight: 500; color: var(--cws-slate); font-size: 14px; }
@media (max-width: 900px) {
  .cws-principal { grid-template-columns: 1fr; }
}

/* ---------- Gallery preview ---------- */
.cws-gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 16px;
  margin-top: 48px;
  height: 540px;
}
.cws-gallery .tile {
  border-radius: var(--r-lg);
  overflow: hidden;
  background-size: cover; background-position: center;
  position: relative;
  transition: transform .3s ease;
  cursor: pointer;
}
.cws-gallery .tile:hover { transform: scale(1.02); }
.cws-gallery .tile.big { grid-row: span 2; }
@media (max-width: 900px) {
  .cws-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: repeat(3, 200px); height: auto; }
  .cws-gallery .tile.big { grid-row: span 2; grid-column: span 2; }
}

/* ---------- CTA band ---------- */
.cws-cta {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%);
  color: #fff;
  border-radius: var(--r-xl);
  padding: 64px 56px;
  margin: 0 24px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cws-cta:before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 80% 30%, rgba(212,162,76,0.25) 0%, transparent 50%);
}
.cws-cta > * { position: relative; }
.cws-cta h2 {
  color: #fff;
  font-size: clamp(28px, 4vw, 42px);
  margin: 0 0 16px;
  font-family: "Plus Jakarta Sans", sans-serif;
  font-weight: 800;
}
.cws-cta p { color: rgba(255,255,255,0.85); font-size: 18px; max-width: 640px; margin: 0 auto 32px; }
.cws-cta .cws-btn.primary { display: inline-flex; }

/* ---------- Footer ---------- */
.site-footer, footer.site-footer {
  background: var(--cws-navy) !important;
  color: rgba(255,255,255,0.78);
}
.site-footer a { color: rgba(255,255,255,0.85) !important; }
.site-footer a:hover { color: var(--cws-gold) !important; }
.site-footer h2, .site-footer h3, .site-footer h4,
.site-footer .widget-title { color: #fff !important; }
.site-footer hr { border-color: rgba(255,255,255,0.08) !important; }

/* ---------- Page hero (interior pages) ---------- */
.entry-header.ast-no-title-container { display: none; }
.ast-page-builder-template .entry-header {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%);
  color: #fff;
  padding: 60px 24px;
  margin-bottom: 0;
  text-align: center;
}
.ast-page-builder-template .entry-header h1 {
  color: #fff;
  font-size: clamp(28px, 4vw, 44px);
}

/* ---------- Scroll reveal ---------- */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .8s ease, transform .8s ease;
}
[data-reveal].in {
  opacity: 1;
  transform: none;
}

/* ---------- Small fixes ---------- */
img { max-width: 100%; height: auto; }
.ast-builder-grid-row > div { align-items: center; }


/* ============================================================
   Menu visibility patch (stronger selectors)
   ============================================================ */
.site-header,
.ast-primary-header-bar,
header.site-header .main-header-bar,
.ast-above-header,
.ast-below-header {
  background: #ffffff !important;
}

.main-header-bar,
.main-header-bar-wrap {
  background: #ffffff !important;
}

/* Menu links — explicit + high specificity */
.main-header-menu .menu-link,
.ast-builder-menu .menu-link,
.main-header-menu .menu-item > a,
.ast-builder-menu-1 .menu-item > a,
.main-header-menu a.menu-link {
  color: #0B1224 !important;
  font-family: "Plus Jakarta Sans", "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0.01em;
  background: transparent !important;
  transition: color .2s ease;
  padding: 12px 16px !important;
}

.main-header-menu .menu-link:hover,
.ast-builder-menu .menu-link:hover,
.main-header-menu .menu-item:hover > a,
.main-header-menu .current-menu-item > a {
  color: #D4A24C !important;
  background: transparent !important;
}

/* Dropdown caret + arrow icon visible */
.main-header-menu .menu-link svg,
.main-header-menu .dropdown-menu-toggle {
  color: #0B1224 !important;
  fill: #0B1224 !important;
}
.main-header-menu .menu-link:hover svg,
.main-header-menu .menu-item:hover .dropdown-menu-toggle {
  color: #D4A24C !important;
  fill: #D4A24C !important;
}

/* Sub menu items */
.main-header-menu .sub-menu .menu-link,
.main-header-menu .sub-menu a {
  color: #0B1224 !important;
  background: transparent !important;
}
.main-header-menu .sub-menu .menu-link:hover {
  background: #FAF7F2 !important;
  color: #0F1E3D !important;
}

/* Mobile hamburger / toggle */
.ast-mobile-menu-buttons-fill,
.ast-mobile-menu-buttons-outline,
.menu-toggle {
  color: #0F1E3D !important;
  background: transparent !important;
}
.menu-toggle .menu-toggle-icon:before,
.ast-mobile-menu-trigger-fill svg,
.ast-mobile-menu-trigger-outline svg,
.menu-toggle svg {
  fill: #0F1E3D !important;
  color: #0F1E3D !important;
}

/* Mobile slide-in / off-canvas menu */
.ast-mobile-popup-drawer .menu-item a,
.ast-mobile-popup-drawer .menu-link {
  color: #0B1224 !important;
}
.ast-mobile-popup-drawer { background: #ffffff !important; }

/* Site title fallback */
.site-title a, .site-title { color: #0F1E3D !important; }
.site-description { color: #475569 !important; }

/* Ensure header isn't pushed behind hero */
header.site-header,
.site-header.ast-replace-site-logo-transparent {
  position: relative !important;
  z-index: 1000 !important;
}


/* ============================================================
   Header rows — force white across ALL Astra header containers
   ============================================================ */
header.site-header,
.site-primary-header-wrap,
.site-below-header-wrap,
.ast-primary-header-bar,
.ast-below-header,
.ast-below-header-bar,
.ast-below-header-wrap,
.ast-above-header,
.ast-above-header-bar,
.ast-above-header-wrap,
.main-header-bar,
.main-header-bar-wrap,
.ast-main-header-wrap,
.ast-mobile-header-wrap,
.main-header-bar-navigation,
.ast-builder-html-element,
.ast-main-header-bar-alignment {
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

/* Soft hairline between rows */
.ast-below-header-bar,
.site-below-header-wrap {
  border-top: 1px solid #E5E7EB !important;
}

/* Strong menu link colors */
.main-header-menu .menu-link,
.ast-builder-menu .menu-link,
.main-header-menu .menu-item > a,
.ast-builder-menu-1 .menu-item > a {
  color: #0B1224 !important;
  background: transparent !important;
}
.main-header-menu .menu-link:hover,
.main-header-menu .menu-item:hover > a,
.main-header-menu .current-menu-item > a {
  color: #D4A24C !important;
}
.main-header-menu .menu-link svg,
.main-header-menu .dropdown-menu-toggle svg,
.ast-arrow-svg {
  fill: currentColor !important;
}

/* Header social icons (YouTube/Facebook on right) -> navy */
.ast-header-social-1-wrap a,
.ast-header-social-wrap a,
.ast-social-color-type-custom a {
  color: #0F1E3D !important;
}
.ast-header-social-1-wrap a:hover,
.ast-header-social-wrap a:hover {
  color: #D4A24C !important;
}

/* Bottom hairline at the bottom of full header */
header.site-header {
  border-bottom: 1px solid #E5E7EB !important;
  box-shadow: 0 1px 0 rgba(15,30,61,0.04) !important;
}


/* ============================================================
   Full-width content overrides
   ============================================================ */
:root {
  --container: 1480px;
}

.cws-wrap { max-width: var(--container) !important; padding: 0 32px; }

/* Astra global containers — widen */
.ast-container,
.site-content > .ast-container,
.site .ast-container,
.ast-container-fluid {
  max-width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/* Page-builder template: no max-width on entry */
.ast-page-builder-template .entry-content,
.ast-no-sidebar.ast-page-builder-template .entry-content {
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
.ast-page-builder-template .site-content,
.ast-page-builder-template #primary {
  padding: 0 !important;
  margin: 0 !important;
}

/* Hero edge-to-edge */
.cws-hero { padding-left: 0; padding-right: 0; }
.cws-hero .cws-wrap {
  padding-left: 32px;
  padding-right: 32px;
}

/* Stats strip — let it use full container */
.cws-stats { padding: 0 32px; }
.cws-stats .cws-wrap { padding: 36px 40px; }

/* Sections: full-bleed background, inner content respects container */
.cws-section { padding-left: 0; padding-right: 0; padding-top: 96px; padding-bottom: 96px; }
.cws-section.tight { padding-top: 64px; padding-bottom: 64px; }
.cws-section > .cws-wrap { padding-left: 32px; padding-right: 32px; }

/* Header bar: full bleed but inner content centered to wider container */
.site-header .ast-builder-grid-row,
.main-header-bar .ast-builder-grid-row,
.ast-below-header .ast-builder-grid-row {
  max-width: 100% !important;
  padding-left: 32px !important;
  padding-right: 32px !important;
}

/* Footer full width */
.site-footer .ast-container { max-width: 100% !important; padding-left: 32px !important; padding-right: 32px !important; }

/* CTA band: keep wider with rounded card */
.cws-cta { margin-left: 32px; margin-right: 32px; max-width: calc(100% - 64px); }

@media (max-width: 720px) {
  .cws-wrap, .cws-section > .cws-wrap, .ast-container { padding-left: 18px !important; padding-right: 18px !important; }
  .cws-stats { padding: 0 18px; }
  .cws-cta { margin-left: 18px; margin-right: 18px; max-width: calc(100% - 36px); padding: 44px 24px; }
}


/* ============================================================
   MENU BAR REDESIGN — full-width, modern, sticky
   ============================================================ */

/* Outer wrapper of below-header (menu row) - full bleed dark navy */
.site-below-header-wrap,
.ast-below-header-wrap {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%) !important;
  background-color: #0F1E3D !important;
  background-image: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%) !important;
  width: 100% !important;
  border-top: none !important;
  border-bottom: 3px solid #D4A24C !important;
  box-shadow: 0 4px 16px rgba(15,30,61,0.18) !important;
  position: relative;
  z-index: 999;
}

.ast-below-header-bar {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  width: 100% !important;
  padding: 0 !important;
}

/* Inner grid row inside menu bar - centered to wider container */
.ast-below-header .ast-builder-grid-row,
.site-below-header-wrap .ast-builder-grid-row,
.ast-below-header-bar .ast-builder-grid-row {
  max-width: 1480px !important;
  margin: 0 auto !important;
  padding: 4px 32px !important;
  background: transparent !important;
}

/* Section wrappers inside menu bar - transparent */
.site-header-below-section-left,
.site-header-below-section-center,
.site-header-below-section-right,
.site-header-below-section {
  background: transparent !important;
}

/* Menu links - white text on dark background, modern spacing */
.ast-below-header .main-header-menu .menu-link,
.ast-below-header .ast-builder-menu .menu-link,
.ast-below-header .main-header-menu .menu-item > a,
.ast-below-header .ast-builder-menu-1 .menu-item > a,
.site-below-header-wrap .menu-link,
.site-below-header-wrap .menu-item > a {
  color: rgba(255,255,255,0.92) !important;
  background: transparent !important;
  font-family: "Plus Jakarta Sans", "Inter", sans-serif !important;
  font-weight: 600 !important;
  font-size: 14.5px !important;
  letter-spacing: 0.02em !important;
  padding: 22px 18px !important;
  position: relative;
  transition: color .25s ease;
}

/* Animated underline on hover */
.ast-below-header .main-header-menu .menu-item > a::after,
.site-below-header-wrap .main-header-menu .menu-item > a::after {
  content: "";
  position: absolute;
  left: 18px; right: 18px; bottom: 16px;
  height: 2px;
  background: #D4A24C;
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform .3s ease;
}
.ast-below-header .main-header-menu .menu-item:hover > a::after,
.ast-below-header .main-header-menu .current-menu-item > a::after,
.site-below-header-wrap .main-header-menu .menu-item:hover > a::after,
.site-below-header-wrap .main-header-menu .current-menu-item > a::after {
  transform: scaleX(1);
}

/* Hover / active link color */
.ast-below-header .main-header-menu .menu-link:hover,
.ast-below-header .main-header-menu .menu-item:hover > a,
.ast-below-header .main-header-menu .current-menu-item > a,
.site-below-header-wrap .menu-link:hover,
.site-below-header-wrap .current-menu-item > a {
  color: #D4A24C !important;
}

/* Dropdown caret colors */
.ast-below-header .main-header-menu .menu-link svg,
.ast-below-header .main-header-menu .dropdown-menu-toggle svg,
.ast-below-header .ast-arrow-svg {
  fill: rgba(255,255,255,0.7) !important;
  color: rgba(255,255,255,0.7) !important;
}
.ast-below-header .main-header-menu .menu-item:hover .dropdown-menu-toggle svg,
.ast-below-header .main-header-menu .menu-item:hover .ast-arrow-svg,
.ast-below-header .main-header-menu .current-menu-item .ast-arrow-svg {
  fill: #D4A24C !important;
  color: #D4A24C !important;
}

/* Sub-menu (dropdown) styling */
.ast-below-header .main-header-menu .sub-menu,
.site-below-header-wrap .sub-menu {
  background: #ffffff !important;
  border-radius: 12px !important;
  box-shadow: 0 18px 50px rgba(15,30,61,0.22) !important;
  border: 1px solid rgba(15,30,61,0.06) !important;
  padding: 8px !important;
  margin-top: 6px !important;
  min-width: 240px !important;
  overflow: hidden;
}
.ast-below-header .main-header-menu .sub-menu .menu-link,
.ast-below-header .main-header-menu .sub-menu a,
.site-below-header-wrap .sub-menu a {
  color: #0B1224 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 10px 14px !important;
  border-radius: 8px !important;
  background: transparent !important;
}
.ast-below-header .main-header-menu .sub-menu .menu-link:hover,
.ast-below-header .main-header-menu .sub-menu .menu-item:hover > a,
.site-below-header-wrap .sub-menu a:hover {
  background: #FAF7F2 !important;
  color: #0F1E3D !important;
}
.ast-below-header .main-header-menu .sub-menu .menu-link::after {
  display: none !important;
}

/* Center the menu list horizontally on desktop */
.ast-below-header .main-navigation { width: 100%; }
.ast-below-header .main-header-menu {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  flex-wrap: wrap;
  gap: 0;
}

/* Sticky menu bar */
.site-below-header-wrap {
  position: sticky !important;
  top: 0 !important;
  z-index: 1000 !important;
}

/* Logo row (above menu) - clean white, generous padding */
.site-primary-header-wrap,
.ast-primary-header-bar {
  padding: 14px 0 !important;
  background: #ffffff !important;
}
.site-primary-header-wrap .ast-builder-grid-row,
.ast-primary-header-bar .ast-builder-grid-row {
  max-width: 1480px !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
}

/* Site title styling */
.site-title { font-weight: 800 !important; letter-spacing: -0.02em; }
.site-title a { color: #0F1E3D !important; }

/* Mobile responsive — stack-on-mobile already collapses; ensure visible hamburger */
@media (max-width: 922px) {
  .site-below-header-wrap { display: none !important; }
}


/* ============================================================
   COMPACT HEADER + MENU BAR
   ============================================================ */

/* Top logo row — shorter */
.site-primary-header-wrap,
.ast-primary-header-bar {
  padding: 6px 0 !important;
  min-height: 0 !important;
}
.site-primary-header-wrap .ast-builder-grid-row,
.ast-primary-header-bar .ast-builder-grid-row {
  padding: 4px 32px !important;
  min-height: 0 !important;
}

/* Logo image size cap */
.site-branding img.custom-logo,
.site-logo-img img,
.ast-header-logo img,
header .custom-logo-link img {
  max-height: 50px !important;
  width: auto !important;
}

/* Site title smaller */
.site-title { font-size: 22px !important; line-height: 1.2 !important; margin: 0 !important; }
.site-description { font-size: 12px !important; margin: 0 !important; }

/* Header social icons row spacing */
.ast-header-social-1-wrap a,
.ast-header-social-wrap a {
  padding: 6px !important;
}

/* Menu bar - shorter */
.ast-below-header .ast-builder-grid-row,
.site-below-header-wrap .ast-builder-grid-row,
.ast-below-header-bar .ast-builder-grid-row {
  padding: 0 32px !important;
  min-height: 0 !important;
}

/* Menu links - reduced vertical padding */
.ast-below-header .main-header-menu .menu-link,
.ast-below-header .ast-builder-menu .menu-link,
.ast-below-header .main-header-menu .menu-item > a,
.ast-below-header .ast-builder-menu-1 .menu-item > a,
.site-below-header-wrap .menu-link,
.site-below-header-wrap .menu-item > a {
  padding: 12px 16px !important;
  font-size: 14px !important;
}

/* Underline accent — repositioned for shorter bar */
.ast-below-header .main-header-menu .menu-item > a::after,
.site-below-header-wrap .main-header-menu .menu-item > a::after {
  bottom: 8px !important;
  left: 16px !important;
  right: 16px !important;
}

/* Menu bar bottom accent border thinner */
.site-below-header-wrap,
.ast-below-header-wrap {
  border-bottom-width: 2px !important;
}

/* Mobile header bar — also compact */
.ast-mobile-header-wrap .ast-builder-grid-row {
  padding: 4px 18px !important;
}
.ast-mobile-header-wrap .custom-logo-link img,
.ast-mobile-header-wrap .ast-header-logo img {
  max-height: 44px !important;
}


/* ============================================================
   LOGO + SCHOOL NAME — bigger
   ============================================================ */

/* Top logo row - a bit more breathing room */
.site-primary-header-wrap,
.ast-primary-header-bar {
  padding: 12px 0 !important;
}
.site-primary-header-wrap .ast-builder-grid-row,
.ast-primary-header-bar .ast-builder-grid-row {
  padding: 6px 32px !important;
}

/* Logo image — larger */
.site-branding img.custom-logo,
.site-logo-img img,
.ast-header-logo img,
header .custom-logo-link img,
.ast-builder-html-element img,
.site-header .site-logo-img img {
  max-height: 92px !important;
  height: 92px !important;
  width: auto !important;
}

/* Site title — bigger and bolder */
.site-title {
  font-size: 36px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.02em;
  margin: 0 !important;
}
.site-title a { color: #0F1E3D !important; }

/* Site description (tagline) below title — visible if exists */
.site-description {
  font-size: 13px !important;
  color: #475569 !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin: 4px 0 0 !important;
}

/* Mobile header logo — also bigger */
.ast-mobile-header-wrap .custom-logo-link img,
.ast-mobile-header-wrap .ast-header-logo img,
.ast-mobile-header-wrap .site-logo-img img {
  max-height: 64px !important;
  height: 64px !important;
}
.ast-mobile-header-wrap .site-title { font-size: 22px !important; }

@media (max-width: 600px) {
  .site-title { font-size: 24px !important; }
  .site-branding img.custom-logo,
  .ast-header-logo img { max-height: 60px !important; height: 60px !important; }
}


/* ============================================================
   HEADER — match production captwilliamsschooltura.com proportions
   ============================================================ */

/* Rubik font like prod */
@import url('https://fonts.googleapis.com/css2?family=Rubik:wght@400;500;600;700&display=swap');

/* Top logo+title row */
.site-primary-header-wrap,
.ast-primary-header-bar {
  padding: 0 !important;
  background: #ffffff !important;
  border-bottom: 4px solid #D4A24C !important;
  min-height: 100px !important;
}
.ast-primary-header-bar .ast-builder-grid-row,
.site-primary-header-wrap .ast-builder-grid-row {
  padding: 0 20px !important;
  min-height: 100px !important;
  align-items: center !important;
}

/* Logo width matches prod (100px) */
.site-branding img.custom-logo,
.site-logo-img img,
.custom-logo-link img,
.ast-header-logo img,
header .custom-logo-link img {
  max-width: 100px !important;
  width: 100px !important;
  height: auto !important;
  max-height: none !important;
}
.site-logo-img { padding-right: 1em !important; }

/* Site identity / branding flex alignment like prod */
.ast-site-identity {
  padding: 1em 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle;
  transition: all .2s linear;
}
.site-branding {
  line-height: 1;
  align-self: center;
  flex: 1;
}

/* Site title — Rubik, weight 600 */
.site-title {
  font-family: 'Rubik', sans-serif !important;
  font-weight: 600 !important;
  font-size: 30px !important;
  line-height: 1.2 !important;
  margin-bottom: 0 !important;
  margin: 0 !important;
  letter-spacing: -0.005em;
}
.site-title,
.site-title a {
  font-family: 'Rubik', sans-serif !important;
  font-weight: 600 !important;
  color: #0F1E3D !important;
}
.site-description {
  font-family: 'Rubik', sans-serif !important;
  font-size: 13px !important;
  color: #475569 !important;
  margin: 0 !important;
  font-weight: 400;
  letter-spacing: normal;
  text-transform: none;
}

/* Header social icons */
.ast-header-social-1-wrap a,
.ast-header-social-wrap a {
  color: #0F1E3D !important;
  padding: 8px !important;
}
.ast-header-social-1-wrap a:hover { color: #D4A24C !important; }

/* Below-header (menu bar) — keep modern dark, but adjust the existing top accent */
.site-below-header-wrap,
.ast-below-header-wrap {
  border-top: none !important;
  border-bottom: 2px solid #D4A24C !important;
}

/* Responsive: smaller on tablet/mobile like prod (80px / 50px min-heights) */
@media (max-width: 921px) {
  .site-primary-header-wrap,
  .ast-primary-header-bar { min-height: 80px !important; }
  .ast-primary-header-bar .ast-builder-grid-row { min-height: 80px !important; }
  .site-title { font-size: 24px !important; }
  .custom-logo-link img,
  .ast-header-logo img { width: 80px !important; max-width: 80px !important; }
}
@media (max-width: 600px) {
  .site-primary-header-wrap,
  .ast-primary-header-bar { min-height: 50px !important; }
  .site-title { font-size: 20px !important; }
  .custom-logo-link img,
  .ast-header-logo img { width: 64px !important; max-width: 64px !important; }
}


/* ============================================================
   Essential Blocks — modern overrides (keeps original content)
   ============================================================ */

/* Page background — soft cream like a modern site */
body.page-id-1171,
body.page-id-1171 .site-content,
body.page-id-1171 #primary,
body.page-id-1171 main {
  background: #FAF7F2 !important;
}

/* Row containers — give consistent spacing and remove gradient/overlay backgrounds */
.eb-row-root-container {
  background-color: transparent !important;
  background-image: none !important;
  margin: 0 !important;
  padding: 72px 0 !important;
  position: relative;
}
.eb-row-root-container:before {
  display: none !important;
}
.eb-row-root-container + .eb-row-root-container { padding-top: 0; }

/* Alternate row backgrounds for visual rhythm */
.eb-row-root-container:nth-of-type(odd) { background: #FFFFFF !important; }
.eb-row-root-container:nth-of-type(even) { background: #FAF7F2 !important; }

/* Inner row width — match site container */
.eb-row-wrapper {
  max-width: 1480px !important;
  margin: 0 auto !important;
  padding: 0 32px !important;
}
.eb-row-inner {
  gap: 32px !important;
  align-items: center;
}

/* Column wrappers — clean, no extra background unless intended */
.eb-column-wrapper {
  background-color: transparent !important;
  background-image: none !important;
  padding: 0 !important;
  min-height: 0 !important;
}

/* Typography inside content */
.eb-row-root-container h1,
.eb-row-root-container h2 {
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;
  font-weight: 800 !important;
  color: #0F1E3D !important;
  letter-spacing: -0.02em !important;
  line-height: 1.1 !important;
  margin: 0 0 16px !important;
}
.eb-row-root-container h1 { font-size: clamp(34px, 4.5vw, 52px) !important; }
.eb-row-root-container h2 { font-size: clamp(28px, 3.5vw, 40px) !important; }
.eb-row-root-container h3,
.eb-row-root-container h4 {
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;
  font-weight: 700 !important;
  color: #0F1E3D !important;
}
.eb-row-root-container p {
  font-family: 'Inter', sans-serif !important;
  color: #475569 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}
.eb-row-root-container strong { color: #0F1E3D !important; }

/* Infoboxes — modern cards */
.wp-block-essential-blocks-infobox,
.eb-infobox-wrapper {
  background: #ffffff !important;
  border-radius: 18px !important;
  padding: 32px 28px !important;
  border: 1px solid #E5E7EB !important;
  box-shadow: 0 2px 8px rgba(15,30,61,0.05) !important;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease !important;
  height: 100% !important;
}
.wp-block-essential-blocks-infobox:hover {
  transform: translateY(-4px);
  box-shadow: 0 14px 36px rgba(15,30,61,0.10) !important;
  border-color: rgba(212,162,76,0.45) !important;
}
.eb-infobox-image-wrapper { margin-bottom: 18px !important; }
.eb-infobox-image-wrapper img {
  border-radius: 12px !important;
  width: 64px !important;
  height: 64px !important;
  object-fit: contain;
}
.eb-infobox-title-wrapper h2,
.eb-infobox-title-wrapper h3,
.eb-infobox-title-wrapper h4 {
  font-size: 20px !important;
  margin: 0 0 8px !important;
}

/* Feature list items — modern row cards */
.eb-feature-list-item {
  background: #ffffff !important;
  border: 1px solid #E5E7EB !important;
  border-radius: 14px !important;
  padding: 18px 22px !important;
  margin-bottom: 14px !important;
  display: flex; align-items: flex-start;
  transition: background .2s ease, border-color .2s ease;
}
.eb-feature-list-item:hover {
  background: #FAF7F2 !important;
  border-color: rgba(212,162,76,0.45) !important;
}
.eb-feature-list-icon-box {
  background: linear-gradient(135deg, #0F1E3D, #1A2D5C) !important;
  color: #D4A24C !important;
  border-radius: 12px !important;
  padding: 10px !important;
  flex-shrink: 0;
}
.eb-feature-list-icon {
  color: #D4A24C !important;
  fill: #D4A24C !important;
}
.eb-feature-list-title-wrapper { margin-bottom: 4px !important; }
.eb-feature-list-title {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 17px !important;
  color: #0F1E3D !important;
}
.eb-feature-list-content {
  color: #475569 !important;
  font-size: 14.5px !important;
}

/* Flipbox — modern rounded with accent shadow */
.eb-flipbox-items-container {
  border-radius: 18px !important;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(15,30,61,0.10) !important;
}
.eb-flipbox-front, .eb-flipbox-back {
  border-radius: 18px !important;
}
.eb-flipbox-icon-wrapper svg,
.eb-flipbox-icon-wrapper i {
  color: #D4A24C !important;
}

/* Slider — rounded, soft */
.eb-slider-wrapper,
.wp-block-essential-blocks-slider {
  border-radius: 22px !important;
  overflow: hidden !important;
  box-shadow: 0 18px 50px rgba(15,30,61,0.14) !important;
}
.eb-slider-image { border-radius: 0 !important; }

/* Buttons — anywhere inside content */
.eb-row-root-container .wp-block-button__link,
.eb-row-root-container button,
.eb-row-root-container .eb-button-wrapper a {
  border-radius: 999px !important;
  background: #0F1E3D !important;
  color: #ffffff !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  padding: 14px 28px !important;
  border: none !important;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease !important;
  box-shadow: 0 8px 20px rgba(15,30,61,0.18);
}
.eb-row-root-container .wp-block-button__link:hover,
.eb-row-root-container .eb-button-wrapper a:hover {
  background: #D4A24C !important;
  color: #0B1224 !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(212,162,76,0.35);
}

/* Images inside content — gentle radius */
.eb-row-root-container img,
.eb-image-wrapper-inner img,
.wp-block-image img {
  border-radius: 14px !important;
}

/* Section eyebrow / small heading accent */
.eb-row-root-container .has-text-align-center { text-align: center; }

/* Reveal animation on scroll */
.eb-row-root-container,
.eb-column-wrapper {
  opacity: 1;
}

/* Remove the heavy purple/pink default overlays often baked into EB rows */
.eb-row-root-container [style*="radial-gradient"],
.eb-row-root-container [style*="linear-gradient(135deg"] {
  background-image: none !important;
}

/* Spacer/divider blocks — tighten */
.wp-block-spacer { height: 24px !important; }

/* Mobile responsive */
@media (max-width: 900px) {
  .eb-row-root-container { padding: 56px 0 !important; }
  .eb-row-wrapper { padding: 0 18px !important; }
  .eb-row-inner { flex-direction: column !important; }
}


/* ============================================================
   Tighter home page spacing
   ============================================================ */
.eb-row-root-container {
  padding: 24px 0 !important;
  margin: 0 !important;
}
.eb-row-root-container + .eb-row-root-container { padding-top: 0 !important; }
.eb-row-root-container:first-of-type { padding-top: 0 !important; }
.eb-row-root-container:last-of-type { padding-bottom: 32px !important; }

.eb-row-wrapper { padding: 0 24px !important; }
.eb-row-inner { gap: 20px !important; }

/* Reduce spacer block heights */
.wp-block-spacer { height: 12px !important; }

/* Tighten infobox padding */
.wp-block-essential-blocks-infobox,
.eb-infobox-wrapper {
  padding: 22px 20px !important;
}

/* Tighten feature list items */
.eb-feature-list-item {
  padding: 12px 16px !important;
  margin-bottom: 10px !important;
}

/* Tighten heading margins */
.eb-row-root-container h1,
.eb-row-root-container h2 {
  margin: 0 0 10px !important;
}
.eb-row-root-container h3,
.eb-row-root-container h4 {
  margin: 0 0 8px !important;
}
.eb-row-root-container p {
  margin: 0 0 10px !important;
}

/* Column wrapper padding override */
.eb-column-wrapper,
.eb-column-inner {
  padding: 0 !important;
  min-height: 0 !important;
}

/* Site content base padding off (page-builder layout) */
.ast-page-builder-template .site-content,
.ast-page-builder-template #primary,
.ast-page-builder-template .entry-content {
  padding: 0 !important;
  margin: 0 !important;
}

@media (max-width: 900px) {
  .eb-row-root-container { padding: 16px 0 !important; }
  .eb-row-wrapper { padding: 0 16px !important; }
}


/* ============================================================
   FANCY HOME — gradients, decor, animations, micro-interactions
   ============================================================ */

/* Page-level soft gradient backdrop with decorative blobs */
body.page-id-1171 {
  background:
    radial-gradient(800px 600px at 90% -5%, rgba(212,162,76,0.10) 0%, transparent 50%),
    radial-gradient(700px 700px at -10% 30%, rgba(15,30,61,0.05) 0%, transparent 55%),
    radial-gradient(900px 800px at 110% 80%, rgba(212,162,76,0.06) 0%, transparent 55%),
    #FAF7F2 !important;
  background-attachment: fixed !important;
}

/* Override the alternating row colors to be more subtle and let backdrop show */
body.page-id-1171 .eb-row-root-container:nth-of-type(odd),
body.page-id-1171 .eb-row-root-container:nth-of-type(even) {
  background: transparent !important;
}

/* Decorative section dividers — gold gradient hairline */
.eb-row-root-container + .eb-row-root-container::before {
  content: "";
  display: block;
  width: 120px;
  height: 2px;
  margin: 0 auto 28px;
  background: linear-gradient(90deg, transparent, #D4A24C, transparent);
  border-radius: 2px;
  opacity: 0.55;
}

/* Heading accent — gold underline bar */
.eb-row-root-container h2 {
  position: relative;
  padding-bottom: 16px !important;
  margin-bottom: 18px !important;
}
.eb-row-root-container h2::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 56px; height: 4px;
  border-radius: 4px;
  background: linear-gradient(90deg, #D4A24C, #B8862E);
  box-shadow: 0 4px 12px rgba(212,162,76,0.4);
}
.eb-row-root-container .has-text-align-center h2::after,
.eb-row-root-container h2[style*="text-align:center"]::after,
.eb-row-root-container h2[style*="text-align: center"]::after {
  left: 50%; transform: translateX(-50%);
}

/* Strong gradient text accent for big H1/H2 (subtle) */
.eb-row-root-container h1 {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 60%, #2A4080 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent !important;
}

/* INFOBOX cards — fancier */
.wp-block-essential-blocks-infobox,
.eb-infobox-wrapper {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff 0%, #FCFBF8 100%) !important;
  border: 1px solid rgba(15,30,61,0.08) !important;
  box-shadow: 0 4px 14px rgba(15,30,61,0.06) !important;
}
.wp-block-essential-blocks-infobox::before,
.eb-infobox-wrapper::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #0F1E3D, #D4A24C, #0F1E3D);
  background-size: 200% 100%;
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity .35s ease, transform .35s ease;
}
.wp-block-essential-blocks-infobox:hover::before,
.eb-infobox-wrapper:hover::before {
  opacity: 1;
  transform: translateY(0);
  animation: cwsShimmer 2.5s linear infinite;
}
@keyframes cwsShimmer {
  0% { background-position: 0% 50%; }
  100% { background-position: 200% 50%; }
}
.wp-block-essential-blocks-infobox::after,
.eb-infobox-wrapper::after {
  content: "";
  position: absolute;
  right: -40px; bottom: -40px;
  width: 140px; height: 140px;
  background: radial-gradient(circle, rgba(212,162,76,0.20) 0%, transparent 70%);
  border-radius: 50%;
  opacity: 0;
  transition: opacity .35s ease, transform .35s ease;
  transform: scale(0.7);
}
.wp-block-essential-blocks-infobox:hover::after,
.eb-infobox-wrapper:hover::after {
  opacity: 1;
  transform: scale(1);
}
.wp-block-essential-blocks-infobox:hover,
.eb-infobox-wrapper:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 20px 50px rgba(15,30,61,0.16) !important;
  border-color: rgba(212,162,76,0.5) !important;
}

/* Infobox image circle with gradient ring */
.eb-infobox-image-wrapper {
  display: inline-flex !important;
  align-items: center; justify-content: center;
  padding: 8px;
  border-radius: 50% !important;
  background: linear-gradient(135deg, rgba(212,162,76,0.18), rgba(15,30,61,0.08));
  position: relative;
}
.eb-infobox-image-wrapper img {
  border-radius: 50% !important;
  background: #fff;
}

/* Feature list — fancy icon tile with gradient + glow */
.eb-feature-list-icon-box {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 60%, #243C82 100%) !important;
  box-shadow: 0 8px 22px rgba(15,30,61,0.25), inset 0 0 0 1px rgba(255,255,255,0.06) !important;
  position: relative;
  overflow: hidden;
}
.eb-feature-list-icon-box::before {
  content: "";
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 20%, rgba(212,162,76,0.45) 0%, transparent 60%);
  opacity: 0.85;
}
.eb-feature-list-icon-box * { position: relative; z-index: 1; }

.eb-feature-list-item {
  position: relative;
  overflow: hidden;
}
.eb-feature-list-item::after {
  content: "→";
  position: absolute;
  right: 18px; top: 50%;
  transform: translateY(-50%) translateX(8px);
  color: #D4A24C;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 22px;
  font-weight: 700;
  opacity: 0;
  transition: opacity .25s ease, transform .25s ease;
}
.eb-feature-list-item:hover::after {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
}

/* Slider — gradient overlay & soft glow */
.eb-slider-wrapper,
.wp-block-essential-blocks-slider {
  position: relative;
}
.eb-slider-wrapper::before,
.wp-block-essential-blocks-slider::before {
  content: "";
  position: absolute;
  inset: -10px;
  border-radius: 28px;
  background: linear-gradient(135deg, rgba(212,162,76,0.35), rgba(15,30,61,0.25));
  z-index: -1;
  filter: blur(20px);
  opacity: 0.45;
}

/* Flipbox — gradient front, accent back */
.eb-flipbox-front {
  background: linear-gradient(135deg, #ffffff 0%, #FCFBF8 100%) !important;
  border: 1px solid rgba(15,30,61,0.08) !important;
}
.eb-flipbox-back {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 60%, #2A4080 100%) !important;
  color: #fff !important;
}
.eb-flipbox-back h2, .eb-flipbox-back h3, .eb-flipbox-back h4, .eb-flipbox-back p {
  color: #fff !important;
}
.eb-flipbox-items-container:hover {
  transform: translateY(-4px);
  transition: transform .3s ease;
}

/* Images — soft frame and zoom on hover */
.eb-row-root-container img,
.wp-block-image img {
  transition: transform .5s ease, box-shadow .3s ease !important;
}
.wp-block-image:hover img,
.eb-image-wrapper-inner:hover img {
  transform: scale(1.02);
  box-shadow: 0 16px 40px rgba(15,30,61,0.12) !important;
}

/* Buttons — fancier with shine sweep */
.eb-row-root-container .wp-block-button__link,
.eb-row-root-container .eb-button-wrapper a {
  position: relative;
  overflow: hidden;
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%) !important;
}
.eb-row-root-container .wp-block-button__link::after,
.eb-row-root-container .eb-button-wrapper a::after {
  content: "";
  position: absolute;
  top: 0; left: -100%;
  width: 100%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transition: left .6s ease;
}
.eb-row-root-container .wp-block-button__link:hover::after,
.eb-row-root-container .eb-button-wrapper a:hover::after {
  left: 100%;
}
.eb-row-root-container .wp-block-button__link:hover,
.eb-row-root-container .eb-button-wrapper a:hover {
  background: linear-gradient(135deg, #D4A24C 0%, #B8862E 100%) !important;
}

/* Scroll-reveal: animate EB rows in on scroll */
body.page-id-1171 .eb-row-root-container {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1);
}
body.page-id-1171 .eb-row-root-container.in {
  opacity: 1;
  transform: none;
}
body.page-id-1171 .eb-row-root-container:first-of-type { opacity: 1; transform: none; }

/* Subtle stagger for infoboxes inside a revealed row */
.eb-row-root-container.in .wp-block-essential-blocks-infobox,
.eb-row-root-container.in .eb-feature-list-item {
  animation: cwsFadeUp .7s both;
}
.eb-row-root-container.in .wp-block-essential-blocks-infobox:nth-child(2),
.eb-row-root-container.in .eb-feature-list-item:nth-child(2) { animation-delay: .08s; }
.eb-row-root-container.in .wp-block-essential-blocks-infobox:nth-child(3),
.eb-row-root-container.in .eb-feature-list-item:nth-child(3) { animation-delay: .16s; }
.eb-row-root-container.in .wp-block-essential-blocks-infobox:nth-child(4),
.eb-row-root-container.in .eb-feature-list-item:nth-child(4) { animation-delay: .24s; }
.eb-row-root-container.in .wp-block-essential-blocks-infobox:nth-child(5) { animation-delay: .32s; }
.eb-row-root-container.in .wp-block-essential-blocks-infobox:nth-child(6) { animation-delay: .40s; }
@keyframes cwsFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}

/* Glowing accent dot inside section eyebrow / first column lead text */
.eb-row-root-container .eb-column-inner > *:first-child h2::before {
  content: "";
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #D4A24C;
  box-shadow: 0 0 0 4px rgba(212,162,76,0.15), 0 0 14px rgba(212,162,76,0.5);
  margin-right: 12px;
  vertical-align: middle;
  animation: cwsPulse 2.2s ease-in-out infinite;
}
@keyframes cwsPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(212,162,76,0.15), 0 0 10px rgba(212,162,76,0.5); }
  50%      { box-shadow: 0 0 0 8px rgba(212,162,76,0.05), 0 0 20px rgba(212,162,76,0.75); }
}


/* ============================================================
   INFOBOX FIX — single layer + circular aligned image
   ============================================================ */

/* Inner wrapper transparent — outer block is the only card */
.wp-block-essential-blocks-infobox .eb-infobox-wrapper,
.eb-infobox-wrapper {
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  transform: none !important;
}
.wp-block-essential-blocks-infobox .eb-infobox-wrapper:hover,
.eb-infobox-wrapper:hover {
  transform: none !important;
  box-shadow: none !important;
  border-color: transparent !important;
}
.eb-infobox-wrapper::before,
.eb-infobox-wrapper::after {
  display: none !important;
  content: none !important;
}

/* Outer block keeps the card styling (already set), make sure it lifts */
.wp-block-essential-blocks-infobox {
  background: linear-gradient(180deg, #ffffff 0%, #FCFBF8 100%) !important;
  border: 1px solid rgba(15,30,61,0.08) !important;
  border-radius: 18px !important;
  padding: 28px 24px !important;
  box-shadow: 0 4px 14px rgba(15,30,61,0.06) !important;
  text-align: center;
  height: 100%;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
}

/* Image wrapper — clean fixed circle */
.eb-infobox-image-wrapper {
  width: 96px !important;
  height: 96px !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  margin: 0 auto 16px !important;
  padding: 0 !important;
  background: linear-gradient(135deg, rgba(212,162,76,0.18), rgba(15,30,61,0.08)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative;
  flex-shrink: 0;
  box-shadow: 0 6px 18px rgba(15,30,61,0.10);
}

/* Inner image wrapper */
.eb-infobox-image-wrapper .eb-image-wrapper,
.eb-infobox-image-wrapper .eb-image-wrapper-inner,
.eb-infobox-image-wrapper .eb-infobox-image {
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 50% !important;
  overflow: hidden !important;
  display: block !important;
  background: transparent !important;
}

/* The actual image — fill the circle, cropped to cover */
.eb-infobox-image-wrapper img,
.eb-infobox-image-wrapper .eb-image-wrapper img,
.eb-infobox-image-wrapper .eb-image-wrapper-inner img {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: 50% !important;
  display: block !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Centered text below image */
.eb-infobox-title-wrapper {
  text-align: center !important;
  width: 100%;
}
.eb-infobox-title-wrapper h2,
.eb-infobox-title-wrapper h3,
.eb-infobox-title-wrapper h4 {
  font-size: 20px !important;
  margin: 0 0 10px !important;
  text-align: center !important;
}
.eb-infobox-title-wrapper h2::after,
.eb-infobox-title-wrapper h3::after,
.eb-infobox-title-wrapper h4::after { display: none !important; }

.wp-block-essential-blocks-infobox p,
.eb-infobox-content-wrapper p,
.eb-infobox-content {
  text-align: center !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
  color: #475569 !important;
  margin: 0 !important;
}

/* Hover lift (outer only) */
.wp-block-essential-blocks-infobox:hover {
  transform: translateY(-6px) !important;
  box-shadow: 0 18px 40px rgba(15,30,61,0.14) !important;
  border-color: rgba(212,162,76,0.5) !important;
}


/* ============================================================
   Activities list — chip grid + nicer links section
   ============================================================ */

/* Heading wrapper accent — centered cleanly */
body.page-id-1171 .eb-ah-title {
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;
  font-weight: 800 !important;
  font-size: clamp(28px, 3.6vw, 42px) !important;
  color: #0F1E3D !important;
  text-align: center !important;
  position: relative;
  padding-bottom: 14px !important;
  margin: 0 auto 18px !important;
}
body.page-id-1171 .eb-ah-title::after {
  content: "";
  position: absolute;
  left: 50%; transform: translateX(-50%);
  bottom: 0;
  width: 64px; height: 4px;
  background: linear-gradient(90deg, #D4A24C, #B8862E);
  border-radius: 4px;
}
/* Kill pulsing dot before this heading (if applied) */
body.page-id-1171 .eb-ah-title::before { content: none !important; display: none !important; }

/* Convert the wp-block-list into a chip grid */
body.page-id-1171 ul.wp-block-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 24px auto !important;
  max-width: 1100px;
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 14px;
}
body.page-id-1171 ul.wp-block-list > li {
  list-style: none !important;
  background: #ffffff !important;
  border: 1px solid rgba(15,30,61,0.10) !important;
  border-radius: 14px !important;
  padding: 16px 18px !important;
  font-family: 'Plus Jakarta Sans', 'Inter', sans-serif !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  color: #0F1E3D !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  margin: 0 !important;
  position: relative;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
  cursor: default;
  box-shadow: 0 2px 6px rgba(15,30,61,0.04);
}
body.page-id-1171 ul.wp-block-list > li::marker { content: "" !important; }
body.page-id-1171 ul.wp-block-list > li::before {
  content: "";
  flex-shrink: 0;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: linear-gradient(135deg, #D4A24C 0%, #B8862E 100%);
  box-shadow: 0 0 0 4px rgba(212,162,76,0.18);
  display: inline-block;
}
body.page-id-1171 ul.wp-block-list > li:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(15,30,61,0.10) !important;
  border-color: rgba(212,162,76,0.55) !important;
  background: linear-gradient(180deg, #ffffff, #FCFBF8) !important;
}

/* Intro paragraph — calmer, centered */
body.page-id-1171 .eb-ah-title + * + .wp-block-paragraph,
body.page-id-1171 .wp-block-essential-blocks-advanced-heading + .wp-block-paragraph,
body.page-id-1171 .wp-block-essential-blocks-advanced-heading + p {
  text-align: center !important;
  max-width: 940px;
  margin: 0 auto 6px !important;
  color: #475569 !important;
  font-size: 16px !important;
  line-height: 1.7 !important;
}

/* Closing paragraph (Mass PT) — pull-quote style */
body.page-id-1171 ul.wp-block-list + p {
  text-align: center !important;
  max-width: 820px;
  margin: 26px auto !important;
  padding: 18px 24px;
  background: linear-gradient(135deg, rgba(15,30,61,0.04), rgba(212,162,76,0.06));
  border-left: 4px solid #D4A24C;
  border-radius: 12px;
  color: #0F1E3D !important;
  font-weight: 500;
  font-style: italic;
}

/* Underlined inline action links -> pill buttons (admission + contact) */
body.page-id-1171 p > a[href*="admission"],
body.page-id-1171 p > a[href*="contact"] {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%) !important;
  color: #ffffff !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 15px !important;
  padding: 12px 24px !important;
  border-radius: 999px !important;
  text-decoration: none !important;
  box-shadow: 0 8px 20px rgba(15,30,61,0.18);
  margin: 6px 8px 6px 0 !important;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
body.page-id-1171 p > a[href*="admission"]::after {
  content: " →";
}
body.page-id-1171 p > a[href*="admission"]:hover,
body.page-id-1171 p > a[href*="contact"]:hover {
  background: linear-gradient(135deg, #D4A24C 0%, #B8862E 100%) !important;
  color: #0B1224 !important;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(212,162,76,0.35);
}
/* Wrapping paragraph for the buttons - center align */
body.page-id-1171 ul.wp-block-list + p + p,
body.page-id-1171 p:has(> a[href*="admission"]),
body.page-id-1171 p:has(> a[href*="contact"]) {
  text-align: center !important;
}

/* "Articles about us in popular Sites" heading + links — refined */
body.page-id-1171 h2:has(+ p > a[href*="medium"]),
body.page-id-1171 h2:has(+ p > a[href*="linkedin"]),
body.page-id-1171 h2 + p > a[href*="medium"],
body.page-id-1171 h2 + p > a[href*="linkedin"] {
  /* Touch */
}
body.page-id-1171 p > a[href*="medium"],
body.page-id-1171 p > a[href*="linkedin"] {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(15,30,61,0.06);
  color: #0F1E3D !important;
  padding: 8px 14px;
  border-radius: 999px;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  text-decoration: none !important;
  margin: 4px 6px;
  border: 1px solid rgba(15,30,61,0.08);
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
body.page-id-1171 p > a[href*="medium"]:hover,
body.page-id-1171 p > a[href*="linkedin"]:hover {
  background: #D4A24C;
  color: #0B1224 !important;
  border-color: #D4A24C;
}

@media (max-width: 600px) {
  body.page-id-1171 ul.wp-block-list { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  body.page-id-1171 ul.wp-block-list > li { padding: 12px 14px !important; font-size: 14px !important; }
}


/* ============================================================
   Horizontal line polish — remove redundant, refine heading accents
   ============================================================ */

/* 1) Remove the row-to-row decorative hairline divider entirely.
      The alternating section backgrounds already create rhythm. */
.eb-row-root-container + .eb-row-root-container::before {
  content: none !important;
  display: none !important;
}

/* 2) Remove the pulsing gold dot before first H2 in column — too noisy */
.eb-row-root-container .eb-column-inner > *:first-child h2::before {
  content: none !important;
  display: none !important;
  animation: none !important;
}
.eb-row-root-container h2::before { content: none !important; }

/* 3) Refined, consistent H2 accent — short centered gold pill underline */
.eb-row-root-container h2 {
  position: relative;
  padding-bottom: 18px !important;
  margin-bottom: 24px !important;
  text-align: inherit;
}
.eb-row-root-container h2::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 48px;
  height: 3px;
  background: linear-gradient(90deg, #D4A24C, #B8862E);
  border-radius: 99px;
  box-shadow: none;
}
/* Center the accent under centered headings */
.eb-row-root-container .has-text-align-center > h2::after,
.eb-row-root-container h2.has-text-align-center::after,
.eb-row-root-container [style*="text-align:center"] h2::after,
.eb-row-root-container [style*="text-align: center"] h2::after,
.eb-row-root-container .eb-ah-title::after {
  left: 50% !important;
  transform: translateX(-50%);
}

/* 4) Sometimes Astra/EB injects a 1-2px hairline border below rows on first-child or top of column.
      Neutralize stray hairlines on EB containers. */
.eb-row-root-container,
.eb-column-wrapper,
.eb-column-inner {
  border-top: none !important;
  border-bottom: none !important;
}

/* 5) Style any explicit <hr> consistently if present anywhere on the home */
body.page-id-1171 hr,
body.page-id-1171 .wp-block-separator {
  border: none !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(15,30,61,0.12) 30%, rgba(15,30,61,0.12) 70%, transparent) !important;
  margin: 32px auto !important;
  max-width: 380px;
}
body.page-id-1171 hr.is-style-dots,
body.page-id-1171 .wp-block-separator.is-style-dots {
  background: none !important;
  border: none !important;
  text-align: center;
  height: auto !important;
  color: rgba(15,30,61,0.35);
}
body.page-id-1171 hr.is-style-dots::before,
body.page-id-1171 .wp-block-separator.is-style-dots::before {
  content: "• • •";
  font-size: 14px;
  letter-spacing: 8px;
  color: #D4A24C;
}

/* 6) Astra primary header bottom border — refine to thin clean gold */
.ast-primary-header-bar,
.site-primary-header-wrap {
  border-bottom-width: 1px !important;
  border-bottom-style: solid !important;
  border-bottom-color: rgba(15,30,61,0.08) !important;
}
/* Move the gold accent to the bottom of the menu bar (single source of accent) */
.site-below-header-wrap,
.ast-below-header-wrap {
  border-bottom: 3px solid #D4A24C !important;
  border-top: none !important;
}


/* ============================================================
   v1.1.8 — Remove borders from home-page content blocks
   Keeps header/menu/footer accent borders intact.
   ============================================================ */

/* Essential Blocks: row container + columns */
.eb-row-root-container,
.eb-row-wrapper,
.eb-parent-wrapper,
.eb-column,
.eb-column-inner,
.wp-block-essential-blocks-row,
.wp-block-essential-blocks-column {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
}

/* Infoboxes — outer + inner wrapper */
.wp-block-essential-blocks-infobox,
.wp-block-essential-blocks-infobox > .eb-infobox-wrapper,
.eb-infobox-wrapper,
.eb-infobox {
  border: 0 !important;
}

/* Feature list / flipbox / cards */
.eb-feature-list-item,
.eb-flipbox-front,
.eb-flipbox-back,
.eb-flipbox-items-container,
.wp-block-essential-blocks-feature-list,
.wp-block-essential-blocks-flipbox {
  border: 0 !important;
}

/* Generic cards used by the design system */
.cws-card,
.cws-feature,
.cws-program,
.cws-stat-card,
.cws-chip,
.cws-link-card {
  border: 0 !important;
}

/* Remove the "+ row" hairline divider between sections, just in case */
.eb-row-root-container + .eb-row-root-container::before,
.eb-row-root-container::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: 0 !important;
}

/* ============================================================
   v1.1.9 — Strip borders from native wp-block-group sections
   (e.g. #reviews uses inline style="border-width:5px")
   ============================================================ */

.wp-block-group,
.wp-block-group[style*="border-width"],
#reviews,
.wp-block-group.alignfull,
.has-background.wp-block-group {
  border: 0 !important;
  border-width: 0 !important;
  border-style: none !important;
  outline: 0 !important;
}

/* Catch any block whose inline style sets border-width */
[style*="border-width:5px"],
[style*="border-width: 5px"],
[style*="border-width:4px"],
[style*="border-width: 4px"],
[style*="border-width:3px"],
[style*="border-width: 3px"] {
  border-width: 0 !important;
  border-style: none !important;
}

/* But preserve image rounded corners — only strip image borders if 0px specified */
img[style*="border-style:none"] { border: 0 !important; }

/* ============================================================
   v1.2.0 — Alternating section colors on home page
   Targets top-level home page sections: .eb-row-root-container
   and .wp-block-group.alignfull. Uses CSS counter-style nth on
   each, with a hash offset so the rhythm reads as alternating
   across both block types.
   ============================================================ */

/* Remove the page-canvas radial tints so plain alternation reads cleanly */
body.home .site-content,
body.home .ast-container {
  background: #ffffff !important;
}

/* Make sections full-bleed bands */
.entry-content > .eb-row-root-container,
.entry-content > .wp-block-group.alignfull,
.ast-page-builder-template .entry-content > .eb-row-root-container,
.ast-page-builder-template .entry-content > .wp-block-group.alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: clamp(20px, 5vw, 64px) !important;
  padding-right: clamp(20px, 5vw, 64px) !important;
  padding-top: clamp(40px, 6vw, 72px) !important;
  padding-bottom: clamp(40px, 6vw, 72px) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* Color palette — soft, school-aligned alternation
   1: warm cream
   2: white
   3: navy tint
   4: gold tint
*/
:root {
  --band-1: #FAF6EE;  /* warm cream */
  --band-2: #FFFFFF;  /* white */
  --band-3: #F1F4FA;  /* cool navy tint */
  --band-4: #FBF3E2;  /* soft gold tint */
}

/* eb-row alternation by document position */
.entry-content > .eb-row-root-container:nth-of-type(4n+1) {
  background: var(--band-2) !important;
}
.entry-content > .eb-row-root-container:nth-of-type(4n+2) {
  background: var(--band-1) !important;
}
.entry-content > .eb-row-root-container:nth-of-type(4n+3) {
  background: var(--band-3) !important;
}
.entry-content > .eb-row-root-container:nth-of-type(4n+4) {
  background: var(--band-4) !important;
}

/* wp-block-group alternation — offset so they don't collide with neighbors */
.entry-content > .wp-block-group.alignfull:nth-of-type(odd) {
  background: var(--band-1) !important;
}
.entry-content > .wp-block-group.alignfull:nth-of-type(even) {
  background: var(--band-3) !important;
}

/* Override the inline ast-global-color-4 background from #reviews so
   our alternation wins (keep the section readable). */
#reviews.has-background.has-ast-global-color-4-background-color {
  background-color: var(--band-3) !important;
}

/* Headings stay navy on light bands; readable on all four tints */
.entry-content > .eb-row-root-container h1,
.entry-content > .eb-row-root-container h2,
.entry-content > .eb-row-root-container h3,
.entry-content > .eb-row-root-container .eb-ah-title,
.entry-content > .wp-block-group.alignfull h1,
.entry-content > .wp-block-group.alignfull h2,
.entry-content > .wp-block-group.alignfull h3 {
  color: #0F1E3D !important;
}

/* Inner content widths centered within the full-bleed band */
.entry-content > .eb-row-root-container > .eb-parent-wrapper,
.entry-content > .eb-row-root-container > .eb-row-wrapper,
.entry-content > .wp-block-group.alignfull > .wp-block-group__inner-container,
.entry-content > .wp-block-group.alignfull {
  /* keep existing inner containers, just constrain content readability */
}
.entry-content > .eb-row-root-container .eb-parent-wrapper,
.entry-content > .wp-block-group.alignfull > * {
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
}

/* ============================================================
   v1.2.1 — Redesign trailing CTAs
   Targets the four end-of-page links:
     - Admission Process
     - Contact Us
     - Articles about us (h3 label)
     - Medium / Linkedin pills
   ============================================================ */

/* The two main h4 CTAs become pill buttons */
h4.wp-block-heading:has(> a[href*="admission-procedure"]),
h4.wp-block-heading:has(> a[href*="contact-us"]) {
  margin: 14px 0 !important;
  padding: 0 !important;
  background: none !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: 1 !important;
}

h4.wp-block-heading > a[href*="admission-procedure"],
h4.wp-block-heading > a[href*="contact-us"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  text-decoration: none !important;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 16px !important;
  letter-spacing: 0.01em !important;
  padding: 14px 28px !important;
  border-radius: 999px !important;
  transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease !important;
  border: 0 !important;
  box-shadow: 0 8px 22px -10px rgba(15, 30, 61, 0.35) !important;
}

/* Primary CTA — Admission */
h4.wp-block-heading > a[href*="admission-procedure"] {
  background: linear-gradient(135deg, #0F1E3D 0%, #1A2D5C 100%) !important;
  color: #ffffff !important;
}
h4.wp-block-heading > a[href*="admission-procedure"] strong {
  font-weight: 700 !important;
  color: #F0C674 !important;
}
h4.wp-block-heading > a[href*="admission-procedure"]::after {
  content: "→";
  font-size: 18px;
  transition: transform .25s ease;
}
h4.wp-block-heading > a[href*="admission-procedure"]:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px -10px rgba(15, 30, 61, 0.45) !important;
}
h4.wp-block-heading > a[href*="admission-procedure"]:hover::after {
  transform: translateX(4px);
}

/* Secondary CTA — Contact */
h4.wp-block-heading > a[href*="contact-us"] {
  background: #FFFFFF !important;
  color: #0F1E3D !important;
  border: 1.5px solid #0F1E3D !important;
  box-shadow: 0 4px 14px -8px rgba(15, 30, 61, 0.25) !important;
}
h4.wp-block-heading > a[href*="contact-us"]::after {
  content: "→";
  font-size: 18px;
  transition: transform .25s ease;
}
h4.wp-block-heading > a[href*="contact-us"]:hover {
  background: #0F1E3D !important;
  color: #ffffff !important;
  transform: translateY(-2px);
}
h4.wp-block-heading > a[href*="contact-us"]:hover::after {
  transform: translateX(4px);
}

/* Group the two CTA h4s onto one row visually */
h4.wp-block-heading:has(> a[href*="admission-procedure"]) {
  display: inline-block !important;
  margin-right: 12px !important;
}
h4.wp-block-heading:has(> a[href*="contact-us"]) {
  display: inline-block !important;
}

/* Section heading "Articles about us in popular Sites" */
h3.wp-block-heading:has(+ h4 > a[href*="medium.com"]),
h3.wp-block-heading:has(+ p + h4 > a[href*="medium.com"]) {
  margin-top: 56px !important;
  margin-bottom: 12px !important;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif !important;
  font-size: clamp(20px, 2.2vw, 26px) !important;
  font-weight: 700 !important;
  color: #0F1E3D !important;
  letter-spacing: -0.01em !important;
  position: relative;
  padding-bottom: 10px !important;
}
h3.wp-block-heading:has(+ h4 > a[href*="medium.com"])::after,
h3.wp-block-heading:has(+ p + h4 > a[href*="medium.com"])::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 48px; height: 3px;
  background: linear-gradient(90deg, #D4A24C, #B8862E);
  border-radius: 99px;
}

/* Medium / Linkedin chips */
h4.wp-block-heading:has(> a[href*="medium.com"]),
h4.wp-block-heading:has(> a[href*="linkedin.com"]) {
  margin: 8px 0 !important;
  font-size: inherit !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
}

/* Hide the comma separator between Medium and Linkedin (text node) */
h4.wp-block-heading > a[href*="medium.com"],
h4.wp-block-heading > a[href*="linkedin.com"] {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  text-decoration: none !important;
  font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 10px 18px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  border: 1px solid rgba(15, 30, 61, 0.12) !important;
  color: #0F1E3D !important;
  box-shadow: 0 4px 12px -8px rgba(15, 30, 61, 0.2) !important;
  transition: all .2s ease !important;
}

h4.wp-block-heading > a[href*="medium.com"]::before {
  content: "M";
  font-family: serif;
  font-weight: 900;
  font-size: 16px;
  width: 22px; height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #000;
  color: #fff;
  border-radius: 50%;
}
h4.wp-block-heading > a[href*="linkedin.com"]::before {
  content: "in";
  font-family: "Plus Jakarta Sans", system-ui, sans-serif;
  font-weight: 800;
  font-size: 11px;
  width: 22px; height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #0A66C2;
  color: #fff;
  border-radius: 4px;
  letter-spacing: 0;
  padding-top: 1px;
}

h4.wp-block-heading > a[href*="medium.com"]:hover,
h4.wp-block-heading > a[href*="linkedin.com"]:hover {
  transform: translateY(-2px);
  border-color: rgba(212, 162, 76, 0.5) !important;
  box-shadow: 0 8px 18px -8px rgba(15, 30, 61, 0.3) !important;
}
