/*
Theme Name: MAMT
Theme URI:
Description: Manitoba Association of Mathematics Teachers custom WordPress theme
Author: MAMT
Version: 1.0
Tags: custom, education
*/

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
img, svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button, input, textarea, select { font: inherit; border: none; background: none; }
button { cursor: pointer; }

.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  background: #1A5C8E;
  color: #fff;
  padding: 0.75rem 1.5rem;
  font-weight: 600;
  font-size: 0.875rem;
  text-decoration: none;
  border-radius: 0 0 4px 4px;
}
.skip-link:focus {
  top: 0;
  outline: 3px solid #FFD700;
  outline-offset: 0;
}

:root {
  --blue-deep:    #1A5C8E;
  --blue-mid:     #2A7DB5;
  --blue-light:   #47A7C8;
  --blue-pale:    #EBF4FA;
  --green:        #6B9E5E;
  --green-light:  #8DB880;
  --paper:        #F7F4EE;
  --paper-warm:   #FCFBF8;
  --charcoal:     #1E1E1A;
  --text-mid:     #3A3A36;
  --text-light:   #6A6A64;
  --rule:         rgba(26, 92, 142, 0.10);
  --rule-mid:     rgba(26, 92, 142, 0.18);
  --rule-dark:    rgba(26, 92, 142, 0.28);
  --white:        #FFFFFF;
  --font-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-sans:  'DM Sans', system-ui, -apple-system, sans-serif;
  --nav-height: 68px;
  --max-width:  1200px;
  --gap:        clamp(1rem, 2vw, 1.5rem);
  --radius-sm: 2px;
  --radius:    4px;
  --shadow-sm: 0 1px 4px rgba(0,0,0,0.06);
  --shadow:    0 4px 20px rgba(0,0,0,0.08);
  --shadow-lg: 0 12px 40px rgba(0,0,0,0.10);
  --transition: 220ms ease;
}

body { font-family: var(--font-sans); font-size: 1rem; line-height: 1.75; color: var(--charcoal); background: var(--paper-warm); }

.math-grid {
  background-color: var(--paper);
  background-image: linear-gradient(rgba(26,92,142,0.065) 1px,transparent 1px), linear-gradient(90deg,rgba(26,92,142,0.065) 1px,transparent 1px);
  background-size: 28px 28px; background-position: -1px -1px;
}
.math-grid--subtle {
  background-color: var(--paper-warm);
  background-image: linear-gradient(rgba(26,92,142,0.045) 1px,transparent 1px), linear-gradient(90deg,rgba(26,92,142,0.045) 1px,transparent 1px);
  background-size: 28px 28px; background-position: -1px -1px;
}

.container { width: 100%; max-width: var(--max-width); margin-inline: auto; padding-inline: clamp(1.25rem,5vw,2.5rem); }
.container--narrow { max-width: 840px; }

h1,h2,h3,h4 { font-family: var(--font-serif); font-weight: 600; line-height: 1.15; letter-spacing: -0.01em; color: var(--charcoal); }
h1 { font-size: clamp(2.25rem,5vw,3.75rem); }
h2 { font-size: clamp(1.75rem,3.5vw,2.75rem); }
h3 { font-size: clamp(1.25rem,2.5vw,1.75rem); }
h4 { font-size: 1.125rem; }
p { color: var(--text-mid); max-width: 68ch; }
.lead { font-size: clamp(1rem,1.5vw,1.2rem); line-height: 1.7; color: var(--text-mid); }

.eyebrow { display: inline-flex; align-items: center; gap: 0.6em; font-family: var(--font-sans); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.15em; text-transform: uppercase; color: var(--blue-deep); margin-bottom: 0.875rem; }
.eyebrow::before { content: ''; display: block; width: 28px; height: 1px; background: var(--green); flex-shrink: 0; }
.eyebrow--light { color: rgba(255,255,255,0.85); }
.eyebrow--light::before { background: var(--green-light); }

.btn { display: inline-flex; align-items: center; gap: 0.5em; font-family: var(--font-sans); font-size: 0.875rem; font-weight: 600; letter-spacing: 0.025em; padding: 0.75rem 1.5rem; border-radius: var(--radius-sm); transition: background var(--transition), color var(--transition), border-color var(--transition); cursor: pointer; white-space: nowrap; text-decoration: none !important; }
.btn:focus-visible { outline: 2px solid var(--blue-light); outline-offset: 3px; }
.btn-primary { background: var(--blue-deep); color: var(--white); border: 1.5px solid var(--blue-deep); }
.btn-primary:hover { background: #134870; border-color: #134870; }
.btn-outline { background: transparent; color: var(--blue-deep); border: 1.5px solid var(--blue-deep); }
.btn-outline:hover { background: var(--blue-deep); color: var(--white); }
.btn-outline--white { color: var(--white); border-color: rgba(255,255,255,0.6); }
.btn-outline--white:hover { background: rgba(255,255,255,0.12); border-color: var(--white); }
.btn-text { background: transparent; color: var(--blue-deep); padding: 0; font-size: 0.875rem; font-weight: 500; border-bottom: 1px solid var(--blue-mid); border-radius: 0; padding-bottom: 1px; transition: color var(--transition), border-color var(--transition); }
.btn-text:hover { color: var(--charcoal); border-color: var(--charcoal); }

.site-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; height: var(--nav-height); background: var(--paper-warm); border-bottom: 1px solid var(--rule); transition: box-shadow var(--transition), background var(--transition); }
.site-nav.scrolled { box-shadow: 0 2px 16px rgba(0,0,0,0.07); }
/* WP admin bar is 32px tall on desktop, 46px on mobile — push fixed nav down */
.admin-bar .site-nav { top: 32px; }
/* On mobile the WP admin bar is position:absolute (scrolls away), so nav stays at top:0 */
@media screen and (max-width: 782px) { .admin-bar .site-nav { top: 0; } }
.site-nav .container { max-width: none; }
.nav-inner { height: 100%; display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 2rem; }
.nav-logo { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 0.625rem; flex-shrink: 0; }
.nav-logo img { height: 40px; width: auto; }

.nav-links { display: flex; align-items: center; gap: clamp(1.25rem,2.5vw,2rem); }
.nav-links a { font-size: 0.8125rem; font-weight: 500; letter-spacing: 0.04em; color: var(--text-mid); position: relative; padding-bottom: 2px; transition: color var(--transition); }
.nav-links a::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 1.5px; background: var(--blue-deep); transform: scaleX(0); transform-origin: left; transition: transform var(--transition); }
.nav-links a:hover { color: var(--blue-deep); }
.nav-links a:hover::after { transform: scaleX(1); }
.nav-links a.active { color: var(--blue-deep); }
.nav-links a.active::after { transform: scaleX(1); }
.nav-links a.nav-cta { background: var(--blue-deep); color: var(--white); padding: 0.45rem 1rem; border-radius: var(--radius-sm); letter-spacing: 0.02em; }
.nav-links a.nav-cta::after { display: none; }
.nav-links a.nav-cta:hover { background: #134870; color: var(--white); }

.nav-toggle { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 4px; background: none; border: none; }
.nav-toggle span { display: block; width: 22px; height: 1.5px; background: var(--charcoal); transition: transform var(--transition), opacity var(--transition); }
.nav-toggle.open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav-toggle.open span:nth-child(2) { opacity: 0; }
.nav-toggle.open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

.nav-mobile-drawer { display: flex; position: fixed; top: var(--nav-height); left: 0; right: 0; bottom: 0; background: var(--paper-warm); z-index: 99; padding: 2rem clamp(1.25rem,5vw,2.5rem); flex-direction: column; gap: 0; overflow-y: auto; opacity: 0; visibility: hidden; transform: translateY(-10px); pointer-events: none; transition: opacity 0.25s ease, transform 0.28s ease, visibility 0.25s; }
.nav-mobile-drawer.open { opacity: 1; visibility: visible; transform: translateY(0); pointer-events: auto; }
.nav-mobile-drawer a { display: block; font-size: 1.25rem; font-family: var(--font-sans); font-weight: 600; color: var(--charcoal); padding: 1rem 0; border-bottom: 1px solid var(--rule); opacity: 0; transform: translateX(-14px); transition: opacity 0.22s ease, transform 0.22s ease, color var(--transition), padding-left var(--transition); }
.nav-mobile-drawer.open a { opacity: 1; transform: translateX(0); }
.nav-mobile-drawer.open a:nth-child(1) { transition-delay: 0.06s; }
.nav-mobile-drawer.open a:nth-child(2) { transition-delay: 0.11s; }
.nav-mobile-drawer.open a:nth-child(3) { transition-delay: 0.16s; }
.nav-mobile-drawer.open a:nth-child(4) { transition-delay: 0.21s; }
.nav-mobile-drawer.open a:nth-child(5) { transition-delay: 0.26s; }
.nav-mobile-drawer.open a:nth-child(6) { transition-delay: 0.31s; }
.nav-mobile-drawer.open a:nth-child(7) { transition-delay: 0.36s; }
.nav-mobile-drawer a:hover { color: var(--blue-deep); }

.page-header { padding-top: calc(var(--nav-height) + clamp(3rem,6vw,5rem)); padding-bottom: clamp(2.5rem,5vw,4rem); background: var(--paper); border-bottom: 1px solid var(--rule-mid); position: relative; overflow: hidden; }
.page-header::before { content: ''; position: absolute; inset: 0; background-image: linear-gradient(rgba(26,92,142,0.06) 1px,transparent 1px), linear-gradient(90deg,rgba(26,92,142,0.06) 1px,transparent 1px); background-size: 28px 28px; background-position: -1px -1px; pointer-events: none; }
/* Page headers are title-only and centred on every page. Eyebrows and lead
   paragraphs were removed from the headers in the 2026-08 pass — the blurb now
   lives in the first content section instead. */
.page-header__inner { position: relative; z-index: 1; text-align: center; }
.page-header h1 { margin-top: 0; max-width: 22ch; margin-inline: auto; }
.page-header .lead { margin-top: 1rem; max-width: 56ch; margin-inline: auto; }

/* Centring utilities, applied via className on a core/group. */
/* Opt-in centring. Used sparingly — the site is left-aligned by default. */
.text-centre { text-align: center; }
.text-centre p { margin-inline: auto; }
.text-centre .wp-block-buttons { justify-content: center; }

.section { padding-block: clamp(3.5rem,7vw,6rem); }
.section--compact { padding-block: clamp(2.5rem,5vw,4rem); }
.section--blue { background: var(--blue-deep); color: var(--white); }
.section--blue h1,.section--blue h2,.section--blue h3,.section--blue h4 { color: var(--white); }
.section--blue p { color: rgba(255,255,255,0.8); }
.section--charcoal { background: var(--charcoal); color: var(--white); }
.section--charcoal h1,.section--charcoal h2,.section--charcoal h3,.section--charcoal h4 { color: var(--white); }
.section--charcoal p { color: rgba(255,255,255,0.72); }
.section--paper { background: var(--paper); }
.section--white { background: var(--paper-warm); }
.section-title { margin-top: 0.5rem; }
.section-rule { width: 100%; height: 1px; background: var(--rule-mid); margin-block: 3rem; border: none; }

.tag { display: inline-flex; align-items: center; font-size: 0.625rem; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; padding: 0.2em 0.6em; border-radius: var(--radius-sm); white-space: nowrap; }
p.tag { max-width: none !important; margin: 0 !important; }
.tag--grade { background: var(--blue-pale); color: var(--blue-deep); }
.tag--overview { background: #F0EDE5; color: var(--text-mid); }
.tag--support { background: rgba(107,158,94,0.12); color: #4A7A3E; }
.tag--rubric { background: rgba(71,167,200,0.12); color: #2A8AAA; }
.tag--toolkit { background: rgba(26,92,142,0.10); color: var(--blue-deep); }
.tag--free { background: rgba(107,158,94,0.15); color: #3D6B32; }
.tag--paid { background: rgba(180,120,60,0.12); color: #8A5A20; }
.tag--worksheet { background: #F0EDE5; color: var(--text-mid); }
.tag--calculator { background: var(--blue-pale); color: var(--blue-deep); }
.tag--quiz { background: rgba(180,80,160,0.10); color: #8A2080; }
.tag--manipulative { background: rgba(60,140,180,0.12); color: #1A6A90; }
.tag--estimation { background: rgba(200,160,60,0.12); color: #806020; }
.tag--problem { background: rgba(120,80,180,0.10); color: #602080; }

/* ── Footer ────────────────────────────────────────────────────────────────
   Same look as before, just smaller and down to three columns: the MAMT logo
   and blurb, Navigate, Connect. The old "Professional Links" column went —
   the group felt the outbound links read as filler. Contact Us sits under
   Connect, and the copyright year updates itself. */
.site-footer { background: var(--charcoal); color: rgba(255,255,255,0.75); padding-block: clamp(2.25rem,4vw,3.25rem) 1.5rem; }

.footer-grid { gap: clamp(1.75rem,4vw,3rem) !important; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,0.08); margin-bottom: 1.5rem; }
.footer-grid.wp-block-columns { flex-wrap: wrap !important; margin-bottom: 1.5rem; }
.footer-brand { flex-basis: 34% !important; }

.footer-brand .wp-block-site-logo { margin: 0 0 0.875rem; }
.footer-brand .wp-block-site-logo img { height: 34px; width: auto; filter: brightness(0) invert(1); opacity: 0.92; }
.footer-brand__tagline { font-size: 0.75rem; color: rgba(255,255,255,0.58); line-height: 1.65; max-width: 34ch; margin: 0; }

.footer-col__title { font-size: 0.5625rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin-bottom: 0.875rem; }
.footer-col__links { display: flex; flex-direction: column; gap: 0.4375rem; list-style: none; padding: 0; }
.footer-col__links li { margin: 0; }
.footer-col__links a { font-size: 0.8125rem; color: rgba(255,255,255,0.65); transition: color var(--transition); }
.footer-col__links a:hover { color: var(--white); }

.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; flex-wrap: wrap; }
.footer-bottom__text { font-size: 0.6875rem; color: rgba(255,255,255,0.45); max-width: none; margin: 0 !important; line-height: 1.6; }
.footer-bottom__text a { color: rgba(255,255,255,0.72); text-decoration: underline; text-underline-offset: 2px; transition: color var(--transition); }
.footer-bottom__text a:hover { color: var(--white); }

.reveal { opacity: 1; transform: none; }
.reveal.visible { opacity: 1; transform: none; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
:focus-visible { outline: 2px solid var(--blue-deep); outline-offset: 3px; border-radius: 2px; }

@media (max-width: 767px) {
  /* WP navigation block manages its own mobile display — do not hide .nav-links */
  .nav-toggle { display: none; } /* old standalone toggle not used in WP theme */
  .footer-grid.wp-block-columns { gap: 1.5rem !important; }
  .footer-brand { flex-basis: 100% !important; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
}

/* =====================================================
   BLOCK EDITOR CONTENT STYLES
   ===================================================== */
.wp-block-post-content { max-width: 100%; }
:root { --wp--style--block-gap: 0px; }
.wp-block-post-content > .wp-block-group,
.wp-block-post-content > .alignfull { margin-block: 0 !important; }
.wp-block-post-content h2 { font-family: var(--font-serif); font-size: clamp(1.5rem,3vw,2.25rem); font-weight: 600; color: var(--charcoal); line-height: 1.2; margin-top: 2.5rem; margin-bottom: 0.75rem; }
.wp-block-post-content h3 { font-family: var(--font-serif); font-size: clamp(1.125rem,2vw,1.5rem); font-weight: 600; color: var(--charcoal); margin-top: 2rem; margin-bottom: 0.5rem; }
.wp-block-post-content h4 { font-family: var(--font-sans); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-light); margin-bottom: 0.75rem; }
.wp-block-post-content p { color: var(--text-mid); line-height: 1.8; font-size: 1.0625rem; max-width: 68ch; }
.wp-block-post-content ul { list-style: disc; padding-left: 1.5rem; }
.wp-block-post-content ol { list-style: decimal; padding-left: 1.5rem; }
.wp-block-post-content li { color: var(--text-mid); margin-bottom: 0.5rem; font-size: 1.0625rem; line-height: 1.75; }
.wp-block-post-content a:not(.btn) { color: var(--blue-deep); text-decoration: underline; transition: color var(--transition); }
.wp-block-post-content a:not(.btn):hover { color: #134870; }
.wp-block-post-content strong { font-weight: 600; color: var(--charcoal); }
.wp-block-post-content em { font-style: italic; }
.wp-block-post-content hr,.wp-block-post-content .wp-block-separator { height: 1px; background: var(--rule-mid); border: none; margin-block: 2rem; }

/* WP Table block */
.wp-block-post-content figure.wp-block-table { margin-block: 2rem; overflow-x: auto; }
.wp-block-post-content .wp-block-table table { width: 100%; border-collapse: collapse; border: 1px solid var(--rule-dark); font-size: 1rem; }
.wp-block-post-content .wp-block-table thead th { font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.10em; text-transform: uppercase; color: var(--text-light); padding: 0.625rem 1rem; background: var(--paper); text-align: left; border-bottom: 1.5px solid var(--rule-mid); white-space: nowrap; }
.wp-block-post-content .wp-block-table td { padding: 0.9375rem 1.25rem; border-bottom: 1px solid var(--rule-mid); color: var(--text-mid); vertical-align: top; }
.wp-block-post-content .wp-block-table tr:last-child td { border-bottom: none; }
.wp-block-post-content .wp-block-table tbody tr:hover td { background: var(--blue-pale); }
.wp-block-post-content .wp-block-table td:first-child { font-size: 0.9375rem; font-weight: 500; border-right: 1px solid var(--rule-mid); }
.wp-block-post-content .wp-block-table td:last-child { font-weight: 600; color: var(--charcoal); }
/* 2-col exec tables (about page) — first col fixed width like original */
.wp-block-post-content .exec-table td:first-child { width: 42%; }

/* WP Buttons */
.wp-block-button__link { display: inline-flex !important; align-items: center; font-family: var(--font-sans) !important; font-size: 0.875rem !important; font-weight: 600 !important; letter-spacing: 0.025em; padding: 0.75rem 1.5rem !important; border-radius: var(--radius-sm) !important; text-decoration: none !important; background: var(--blue-deep) !important; color: var(--white) !important; border: 1.5px solid var(--blue-deep) !important; transition: background var(--transition), color var(--transition), border-color var(--transition); white-space: nowrap; }
.wp-block-button__link:hover { background: #134870 !important; border-color: #134870 !important; color: var(--white) !important; }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent !important; color: var(--blue-deep) !important; border: 1.5px solid var(--blue-deep) !important; }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--blue-deep) !important; color: var(--white) !important; }
.mission-block .wp-block-button.is-style-outline .wp-block-button__link,
.section--blue .wp-block-button.is-style-outline .wp-block-button__link { color: var(--white) !important; border-color: rgba(255,255,255,0.6) !important; }
.mission-block .wp-block-button.is-style-outline .wp-block-button__link:hover,
.section--blue .wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255,255,255,0.12) !important; border-color: var(--white) !important; }
.wp-block-buttons { display: flex; gap: 0.875rem; flex-wrap: wrap; margin-top: 1.5rem; }

/* WP Columns */
.wp-block-columns { gap: clamp(1.5rem, 3vw, 3rem) !important; }
.wp-block-column > * + * { margin-top: 1rem; }

/* WP Quote */
.wp-block-post-content blockquote,.wp-block-post-content .wp-block-quote { border-left: 3px solid var(--green); padding-left: 1.5rem; margin-block: 1.5rem; }
.wp-block-post-content blockquote p,.wp-block-post-content .wp-block-quote p { font-family: var(--font-serif); font-size: 1.25rem; font-style: italic; color: var(--charcoal); }

/* WP Pullquote */
.wp-block-post-content .wp-block-pullquote { background: var(--blue-pale); border: 1px solid var(--rule-mid); padding: 1.5rem; border-top: 3px solid var(--blue-deep); margin-block: 2rem; }
.wp-block-post-content .wp-block-pullquote p { font-family: var(--font-serif); font-size: 1.125rem; color: var(--blue-deep); max-width: none; }

/* Section heading pattern */
.wp-block-post-content h4 + h2 { margin-top: 0.5rem; }

/* Headings carry a 2.5rem top margin for rhythm between blocks. With the small
   uppercase eyebrow labels removed from every section, an h2 is now the first
   thing inside most section containers, where that margin just doubles up on
   the section's own padding and pushes the content off-centre. */
.wp-block-post-content .wp-block-group > .wp-block-heading:first-child,
.wp-block-post-content .wp-block-group > h2:first-child,
.wp-block-post-content .wp-block-group > h3:first-child { margin-top: 0; }
.wp-block-post-content h4 + h3 { margin-top: 0.5rem; }

/* Eyebrow paragraphs: override WP post-content p size/color at higher specificity */
.wp-block-post-content p.eyebrow,
.wp-block-post-content .eyebrow { color: var(--blue-deep) !important; font-size: 0.6875rem !important; font-weight: 600 !important; letter-spacing: 0.15em; text-transform: uppercase; }
.wp-block-post-content p.eyebrow--light,
.wp-block-post-content .eyebrow.eyebrow--light { color: rgba(255,255,255,0.85) !important; }

/* Mission block blockquote — match standalone large italic size */
.wp-block-group.mission-block .wp-block-quote p,
.wp-block-group.mission-block blockquote p { font-size: clamp(1.5rem, 3vw, 2.25rem) !important; font-style: italic; color: rgba(255,255,255,0.90) !important; }

/* =====================================================
   WP NAVIGATION BLOCK — styled to match original nav
   ===================================================== */

/* Remove WP's default nav ul/li resets that conflict */
.site-nav .wp-block-navigation ul { list-style: none; margin: 0; padding: 0; }

/* Desktop nav links */
.site-nav .wp-block-navigation-item__content {
  font-family: var(--font-sans);
  font-size: 0.8125rem !important;
  font-weight: 500;
  letter-spacing: 0.04em;
  color: var(--text-mid);
  position: relative;
  padding-bottom: 2px;
  transition: color var(--transition);
  text-decoration: none !important;
}
.site-nav .wp-block-navigation-item__content::after {
  content: '';
  position: absolute;
  bottom: -1px; left: 0; right: 0;
  height: 1.5px;
  background: var(--blue-deep);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.site-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content { color: var(--blue-deep); }
.site-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.site-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.site-nav .wp-block-navigation-item > [aria-current="page"] { color: var(--blue-deep); }
.site-nav .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1) !important; }

/* nav-cta class on a nav item */
.site-nav .wp-block-navigation-item.nav-cta > .wp-block-navigation-item__content {
  background: var(--blue-deep);
  color: var(--white) !important;
  padding: 0.45rem 1rem;
  border-radius: var(--radius-sm);
  letter-spacing: 0.02em;
}
.site-nav .wp-block-navigation-item.nav-cta > .wp-block-navigation-item__content::after { display: none; }
.site-nav .wp-block-navigation-item.nav-cta:hover > .wp-block-navigation-item__content { background: #134870; }

/* Mobile hamburger button (WP nav block renders this) */
.site-nav .wp-block-navigation__responsive-container-open {
  background: none !important;
  border: none !important;
  padding: 4px;
  cursor: pointer;
  display: none;
}
.site-nav .wp-block-navigation__responsive-container-open svg { color: var(--charcoal); width: 22px; height: 22px; }
.site-nav .wp-block-navigation__responsive-container-open:hover svg { color: var(--blue-deep); }

/* Mobile overlay — full-screen, covers nav bar too (z-index above nav) */
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
  background: var(--paper-warm);
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  z-index: 200 !important;
  display: flex !important;
  flex-direction: column !important;
  position: fixed !important;
}
/* Make all wrapper divs fill width */
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { width: 100%; flex: 1; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  padding: 5rem clamp(1.25rem,5vw,2.5rem) 2rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
/* Full-width stacked list */
.site-nav .wp-block-navigation__responsive-container.is-menu-open ul,
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100% !important; gap: 0 !important; padding: 0 !important; margin: 0 !important; list-style: none !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { width: 100% !important; display: block !important; }
/* All link text — centered, full-width, large */
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--charcoal) !important;
  padding: 1rem 0 !important;
  border-bottom: 1px solid var(--rule) !important;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}
.site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after { display: none !important; }
/* Nominate CTA — full-width blue bar, centered white text */
.site-nav .wp-block-navigation__responsive-container.is-menu-open .nav-cta { margin-top: 1.5rem !important; border-bottom: none !important; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open .nav-cta .wp-block-navigation-item__content {
  background: var(--blue-deep) !important;
  color: var(--white) !important;
  border-radius: var(--radius-sm) !important;
  border-bottom: none !important;
  padding: 1rem !important;
  width: 100% !important;
  text-align: center !important;
  display: block !important;
}
/* Close (X) button — top right, above links */
.site-nav .wp-block-navigation__responsive-container-close {
  position: absolute !important;
  top: 1.25rem !important;
  right: 1.25rem !important;
  color: var(--charcoal) !important;
  background: none !important;
  border: none !important;
  font-size: 1.5rem !important;
}

/* WP nav block override: must be a flex item that fills remaining space */
.nav-links.wp-block-navigation { flex: 1 !important; display: flex !important; justify-content: flex-end !important; align-items: center !important; }
/* Override WP's generated inline flex direction on the nav block's inner list */
.nav-links.wp-block-navigation > ul,
.nav-links.wp-block-navigation > .wp-block-navigation__container { display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; gap: clamp(1.25rem, 2.5vw, 2rem) !important; list-style: none !important; margin: 0 !important; padding: 0 !important; }

/* Active page underline */
.site-nav .wp-block-navigation-item > [aria-current="page"]::after { transform: scaleX(1) !important; }
.site-nav .wp-block-navigation-item > [aria-current="page"] { color: var(--blue-deep) !important; }

/* site-nav__brand (site title in header) */
.site-nav__brand { font-family: var(--font-sans) !important; font-size: 1rem !important; font-weight: 700 !important; color: var(--charcoal) !important; letter-spacing: -0.01em; line-height: 1.2 !important; margin: 0 !important; }
.site-nav__brand a { color: inherit !important; text-decoration: none !important; }
/* wp:site-title renders as .wp-block-site-title — override WP global heading size */
.site-nav .wp-block-site-title { font-family: var(--font-sans) !important; font-size: 1rem !important; font-weight: 700 !important; color: var(--charcoal) !important; line-height: 1.2 !important; margin: 0 !important; padding: 0 !important; }
.site-nav .wp-block-site-title a,
.site-nav .wp-block-site-title a:visited { color: var(--charcoal) !important; text-decoration: none !important; font-size: inherit !important; }

/* nav-inner layout reinforcement (also set at top of file) */
.site-nav .nav-inner,
.wp-block-group.nav-inner { height: 100%; display: flex !important; flex-direction: row !important; flex-wrap: nowrap !important; align-items: center !important; justify-content: space-between !important; gap: 2rem; }

/* Footer nav block */
.footer-col__links.wp-block-navigation,
.footer-col__links { display: flex; flex-direction: column; gap: 0; }
.footer-col__links li { list-style: none; }
.footer-col__links .wp-block-navigation-item__content,
.footer-col__links a {
  font-size: 0.875rem;
  color: rgba(255,255,255,0.65);
  transition: color var(--transition);
  text-decoration: none;
  padding: 0.25rem 0;
  display: block;
}
.footer-col__links .wp-block-navigation-item__content:hover,
.footer-col__links a:hover { color: var(--white); }
.footer-col__links .wp-block-navigation-item__content::after { display: none !important; }

/* Block theme: remove WP's default body padding/margin from post-content */
.wp-block-post-content { padding: 0 !important; margin: 0 !important; }

/* Sections as Group blocks */
.wp-block-group.section { padding-block: clamp(3.5rem,7vw,6rem); }
.wp-block-group.section--blue { background: var(--blue-deep); color: var(--white); }
.wp-block-group.section--blue h1,.wp-block-group.section--blue h2,.wp-block-group.section--blue h3,.wp-block-group.section--blue h4,.wp-block-group.section--blue .wp-block-heading { color: var(--white) !important; }
.wp-block-group.section--blue p { color: rgba(255,255,255,0.80) !important; }
.wp-block-group.section--blue li { color: rgba(255,255,255,0.80) !important; }
.wp-block-group.section--blue .eyebrow { color: rgba(255,255,255,0.85) !important; }
.wp-block-group.section--blue .eyebrow::before { background: rgba(255,255,255,0.4) !important; }
/* Center-align section--blue content (Get Involved, etc.) */
.wp-block-group.section--blue .wp-block-group.container { text-align: center; }
.wp-block-group.section--blue .wp-block-group.container .wp-block-heading { text-align: center !important; }
.wp-block-group.section--blue .wp-block-group.container p { text-align: center !important; margin-inline: auto; }
.wp-block-group.section--blue .wp-block-buttons { justify-content: center; }
.wp-block-group.section--paper { background: var(--paper); }
.wp-block-group.section--white { background: var(--paper-warm); }
.wp-block-group.section--celebrate { background: #EDF3EA; position: relative; overflow: hidden; }

/* Mission block (homepage dark blue) */
.wp-block-group.mission-block { background: var(--blue-deep); color: var(--white); }
.wp-block-group.mission-block h1,.wp-block-group.mission-block h2,.wp-block-group.mission-block h3,.wp-block-group.mission-block .wp-block-heading { color: var(--white) !important; }
.wp-block-group.mission-block p { color: rgba(255,255,255,0.80) !important; }
.wp-block-group.mission-block .wp-block-quote,.wp-block-group.mission-block .wp-block-quote p { color: rgba(255,255,255,0.90) !important; border-left-color: rgba(255,255,255,0.25) !important; }
.wp-block-group.mission-block .eyebrow { color: rgba(255,255,255,0.80) !important; }
.wp-block-group.mission-block .eyebrow::before { background: var(--green) !important; }

/* Mission panel column (about page right column — dark blue bg) */
.wp-block-column.mission-panel h2,.wp-block-column.mission-panel h3,.wp-block-column.mission-panel .wp-block-heading { color: var(--white) !important; }
.wp-block-column.mission-panel p { color: rgba(255,255,255,0.80) !important; max-width: none !important; }
.wp-block-column.mission-panel li { color: rgba(255,255,255,0.82) !important; }

/* Page header as Group block */
.wp-block-group.page-header {
  padding-top: calc(var(--nav-height) + clamp(3rem,6vw,5rem));
  padding-bottom: clamp(2.5rem,5vw,4rem);
  background: var(--paper);
  border-bottom: 1px solid var(--rule-mid);
  position: relative;
  overflow: hidden;
}
.wp-block-group.page-header::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: linear-gradient(rgba(26,92,142,0.06) 1px,transparent 1px), linear-gradient(90deg,rgba(26,92,142,0.06) 1px,transparent 1px);
  background-size: 28px 28px;
  background-position: -1px -1px;
  pointer-events: none;
}

/* Org grid as WP Columns block */
.wp-block-group.section--paper > .wp-block-group.container > .wp-block-columns { gap: clamp(2.5rem,5vw,5rem); align-items: start; }

/* Responsive: show WP mobile hamburger at same breakpoint as original */
@media (max-width: 767px) {
  .site-nav .wp-block-navigation__responsive-container-open { display: flex !important; }
  .nav-links > .wp-block-navigation__container { display: none; }
}

/* Safety net: the nav is position:fixed, so a page whose content doesn't open
   with a .page-header or .hero (empty page, search, archive) would slide under
   it and let the footer ride up to the top. Pad it and give main some height. */
main#main-content { min-height: calc(100vh - var(--nav-height)); }
main#main-content:not(:has(.page-header, .hero)) { padding-top: calc(var(--nav-height) + clamp(2rem,4vw,3rem)) !important; }
.page-404 .wp-block-buttons { margin-top: 1.75rem; }
