/* SPED EDU — warm editorial design system */
:root {
  --ink: #173f42;
  --ink-soft: #476264;
  --teal: #146c68;
  --teal-dark: #0f5553;
  --teal-pale: #e6f1ee;
  --coral: #e98773;
  --coral-pale: #fff0eb;
  --gold: #f1bd57;
  --gold-pale: #fff5d9;
  --cream: #fffaf1;
  --paper: #fffdf8;
  --line: #e8e2d5;
  --white: #fff;
  --shadow: 0 20px 54px rgba(30, 68, 67, .12);
  --radius-lg: 28px;
  --radius-md: 18px;
  --font-body: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--font-body); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
img, video { max-width: 100%; height: auto; }
a { color: var(--teal-dark); text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { color: #a84b3d; }
button, input, select, textarea { font: inherit; }
button, a { touch-action: manipulation; }
:focus-visible { outline: 3px solid #ba5e48; outline-offset: 4px; border-radius: 4px; }
::selection { color: var(--ink); background: #f5d991; }

.site-shell { width: min(1160px, calc(100% - 48px)); margin-inline: auto; }
.section-pad { padding-block: clamp(4.25rem, 7vw, 7rem); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 1000; top: 10px; left: 10px; padding: .65rem 1rem; color: var(--white); background: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

.announcement-bar { color: #eaf7f3; background: var(--ink); font-size: .78rem; letter-spacing: .025em; }
.announcement-inner { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.announcement-bar a { color: #f9d88e; text-decoration: none; }
.site-header { position: relative; z-index: 20; background: rgba(255,253,248,.97); border-bottom: 1px solid rgba(23,63,66,.08); }
.header-inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; flex-shrink: 0; }
.brand:hover { color: var(--teal); }
.brand-mark { display: block; width: 46px; height: 46px; color: var(--teal); flex: 0 0 auto; }
.brand-custom-logo { display: block; width: auto; max-width: 190px; max-height: 54px; }
.brand-copy { display: flex; flex-direction: column; line-height: 1.1; }
.brand-name { font-size: 1.25rem; font-weight: 900; letter-spacing: -.06em; }
.brand-name span { color: var(--teal); }
.brand-tagline { margin-top: .35rem; color: #718180; font-size: .62rem; letter-spacing: .05em; }
.primary-navigation { display: flex; align-items: center; gap: 1.5rem; }
.nav-list, .footer-link-list, .social-list { display: flex; align-items: center; gap: 1.35rem; margin: 0; padding: 0; list-style: none; }
.nav-list a { color: var(--ink); text-decoration: none; font-size: .9rem; font-weight: 650; }
.nav-list a:hover, .nav-list .current-menu-item > a { color: var(--teal); }
.menu-toggle { display: none; width: 46px; height: 46px; padding: 0; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: var(--white); }
.menu-toggle-lines, .menu-toggle-lines::before, .menu-toggle-lines::after { display: block; width: 19px; height: 2px; margin-inline: auto; background: currentColor; border-radius: 2px; }
.menu-toggle-lines { position: relative; }
.menu-toggle-lines::before, .menu-toggle-lines::after { position: absolute; left: 0; content: ""; }
.menu-toggle-lines::before { top: -6px; }
.menu-toggle-lines::after { top: 6px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .65rem; min-height: 50px; padding: .8rem 1.2rem; border: 1px solid var(--teal); border-radius: 999px; color: var(--white); background: var(--teal); font-size: .92rem; font-weight: 750; text-decoration: none; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.button:hover { color: var(--white); background: var(--teal-dark); box-shadow: 0 8px 22px rgba(20,108,104,.2); transform: translateY(-2px); }
.button-small { min-height: 42px; padding: .55rem 1rem; font-size: .84rem; }
.button-light { border-color: #fff; color: var(--teal-dark); background: var(--white); }
.button-light:hover { color: var(--teal-dark); background: #fff5dc; }
.text-link { display: inline-flex; align-items: center; gap: .45rem; color: var(--teal-dark); font-size: .92rem; font-weight: 750; text-decoration: none; }
.text-link:hover { color: #a84b3d; }

.hero-section { overflow: hidden; padding-block: clamp(4rem, 8vw, 7.25rem) 5.5rem; background: radial-gradient(circle at 78% 15%, rgba(241,189,87,.16), transparent 23rem), linear-gradient(180deg, #fffaf1 0%, #fffdf8 100%); }
.hero-layout { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr); align-items: center; gap: clamp(2.5rem, 6vw, 5.5rem); }
.hero-copy { position: relative; z-index: 1; max-width: 620px; }
.eyebrow { display: flex; align-items: center; gap: .55rem; margin: 0 0 .85rem; color: var(--teal); font-size: .76rem; font-weight: 850; letter-spacing: .12em; line-height: 1.4; text-transform: uppercase; }
.eyebrow-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 4px var(--coral-pale); }
h1, h2, h3, h4 { margin-top: 0; color: var(--ink); }
h1, h2 { font-family: var(--font-heading); font-weight: 500; letter-spacing: -.035em; line-height: 1.08; }
.hero-copy h1 { max-width: 690px; margin: 0; font-size: clamp(3rem, 6vw, 5.55rem); }
.hero-lede { max-width: 530px; margin: 1.5rem 0 1.8rem; color: var(--ink-soft); font-size: clamp(1.06rem, 1.7vw, 1.22rem); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; }
.hero-proof { display: flex; align-items: center; gap: .6rem; margin-top: 2.1rem; color: #667b79; font-size: .85rem; }
.hero-proof-icon { display: grid; width: 26px; height: 26px; place-items: center; border-radius: 50%; color: var(--ink); background: var(--gold-pale); }
.hero-art-wrap { position: relative; max-width: 530px; margin-inline: auto; }
.hero-art-frame { position: relative; padding: 10px; border: 1px solid rgba(20,108,104,.12); border-radius: 44% 44% 28px 28px; background: #fff; box-shadow: var(--shadow); transform: rotate(1.2deg); }
.hero-art-frame img { display: block; width: 100%; border-radius: 42% 42% 22px 22px; }
.art-caption { position: absolute; right: 18px; bottom: 20px; left: 18px; padding: .65rem 1rem; border: 1px solid rgba(255,255,255,.62); border-radius: 13px; color: #fff; background: rgba(23,63,66,.72); font-family: var(--font-heading); font-size: 1.05rem; text-align: center; backdrop-filter: blur(8px); }
.floating-note { position: absolute; z-index: 2; display: inline-flex; align-items: center; gap: .4rem; max-width: 230px; padding: .7rem .95rem; border: 1px solid rgba(23,63,66,.08); border-radius: 999px; color: var(--ink); background: var(--white); box-shadow: 0 10px 28px rgba(30,68,67,.1); font-size: .75rem; font-weight: 750; }
.floating-note span { color: var(--coral); font-size: 1rem; }
.note-one { top: 13%; left: -8%; transform: rotate(-5deg); }
.note-two { right: -7%; bottom: 11%; transform: rotate(4deg); }

.pathways-section { background: var(--paper); }
.section-heading { margin-bottom: 2.3rem; }
.section-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 2rem; }
.section-heading h2, .testimonial-intro h2, .newsletter-card h2 { max-width: 650px; margin: 0; font-size: clamp(2.2rem, 4.2vw, 3.6rem); }
.section-heading > p { max-width: 370px; margin: 0 0 .25rem; color: var(--ink-soft); }
.pathway-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.1rem; }
.pathway-card { display: flex; min-height: 260px; flex-direction: column; align-items: flex-start; padding: 1.55rem; border: 1px solid transparent; border-radius: var(--radius-lg); color: var(--ink); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.pathway-card:hover { color: var(--ink); box-shadow: 0 18px 32px rgba(23,63,66,.1); transform: translateY(-5px); }
.card-teal { background: var(--teal-pale); }
.card-coral { background: var(--coral-pale); }
.card-gold { background: var(--gold-pale); }
.pathway-icon { display: grid; width: 42px; height: 42px; margin-bottom: 1.2rem; place-items: center; border-radius: 14px; color: var(--teal-dark); background: rgba(255,255,255,.68); font-size: 1.4rem; }
.pathway-label { margin-bottom: .55rem; color: #667b79; font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.pathway-card strong { max-width: 280px; font-family: var(--font-heading); font-size: 1.6rem; font-weight: 500; line-height: 1.2; }
.pathway-link { display: inline-flex; gap: .45rem; margin-top: auto; padding-top: 1.35rem; font-size: .8rem; font-weight: 750; }
.ad-slot:empty { display: none; }
.ad-slot-home, .ad-slot-resource { margin-top: 2rem; }
.ad-slot-footer { padding-block: 0 1.25rem; }

.testimonial-section { position: relative; overflow: hidden; background: #eaf2ee; }
.testimonial-section::before { position: absolute; top: -130px; right: -60px; width: 380px; height: 380px; border: 1px solid rgba(20,108,104,.1); border-radius: 50%; box-shadow: 0 0 0 36px rgba(20,108,104,.03), 0 0 0 72px rgba(20,108,104,.025); content: ""; }
.testimonial-layout { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); align-items: center; gap: clamp(2.5rem, 6vw, 6rem); }
.testimonial-intro h2 { margin-bottom: 1.1rem; }
.testimonial-intro > p:not(.eyebrow) { max-width: 410px; margin: 0 0 1.35rem; color: var(--ink-soft); }
.testimonial-player-card { padding: 12px; border: 1px solid rgba(23,63,66,.08); border-radius: var(--radius-lg); background: var(--white); box-shadow: 0 20px 48px rgba(23,63,66,.1); }
.testimonial-video { display: block; width: 100%; aspect-ratio: 16/9; border-radius: 20px; background: #203d3e; }
.testimonial-placeholder { position: relative; overflow: hidden; border-radius: 20px; background: #203d3e; }
.testimonial-placeholder > img { display: block; width: 100%; aspect-ratio: 16/9; object-fit: cover; opacity: .88; }
.placeholder-message { position: absolute; inset: auto 0 0; display: flex; align-items: center; gap: 1rem; padding: 1.15rem 1.35rem; color: #fff; background: linear-gradient(0deg, rgba(13,39,40,.94), rgba(13,39,40,.72)); }
.play-mark { display: grid; width: 46px; height: 46px; flex: 0 0 auto; place-items: center; padding-left: 3px; border-radius: 50%; color: var(--ink); background: #fff; font-size: .9rem; }
.placeholder-kicker { display: block; margin-bottom: .15rem; color: #f7d98e; font-size: .7rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.placeholder-message strong { display: block; font-family: var(--font-heading); font-size: 1.35rem; font-weight: 500; line-height: 1.25; }
.placeholder-message p { margin: .35rem 0 0; color: rgba(255,255,255,.78); font-size: .78rem; }
.transcript-details { padding: .9rem .25rem .15rem; color: var(--ink-soft); font-size: .9rem; }
.transcript-details summary { color: var(--teal-dark); cursor: pointer; font-weight: 750; }
.transcript-copy { padding-top: .4rem; }

.resources-section { background: var(--cream); }
.resource-grid, .post-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.15rem; }
.resource-card, .post-card { overflow: hidden; border: 1px solid rgba(23,63,66,.1); border-radius: var(--radius-md); background: var(--white); box-shadow: 0 6px 18px rgba(23,63,66,.04); transition: box-shadow .2s ease, transform .2s ease; }
.resource-card:hover, .post-card:hover { box-shadow: 0 16px 30px rgba(23,63,66,.1); transform: translateY(-3px); }
.resource-card-image, .post-card-image { display: grid; overflow: hidden; aspect-ratio: 3/2; place-items: center; background: var(--teal-pale); }
.resource-card-image img, .post-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.resource-card:hover .resource-card-image img, .post-card:hover .post-card-image img { transform: scale(1.035); }
.resource-image-placeholder, .post-image-placeholder { color: var(--teal); font-size: 2.5rem; }
.resource-card-content, .post-card-content { padding: 1.25rem 1.3rem 1.4rem; }
.tag-pill { display: inline-flex; align-items: center; min-height: 26px; padding: .25rem .65rem; border-radius: 999px; color: var(--teal-dark); background: var(--teal-pale); font-size: .68rem; font-weight: 800; letter-spacing: .035em; }
.resource-card h3, .post-card h3 { margin: .75rem 0 .5rem; font-family: var(--font-heading); font-size: 1.45rem; font-weight: 500; letter-spacing: -.02em; line-height: 1.2; }
.resource-card h3 a, .post-card h3 a { color: var(--ink); text-decoration: none; }
.resource-card h3 a:hover, .post-card h3 a:hover { color: var(--teal); }
.resource-card p, .post-card p { margin: 0 0 1rem; color: var(--ink-soft); font-size: .9rem; }
.empty-resource-card { display: flex; min-height: 275px; flex-direction: column; align-items: flex-start; justify-content: center; padding: 2rem; border: 1px dashed #bfd0c9; border-radius: var(--radius-md); background: rgba(255,255,255,.72); }
.empty-resource-card h3 { max-width: 290px; margin: 0 0 .7rem; font-family: var(--font-heading); font-size: 1.65rem; font-weight: 500; line-height: 1.2; }
.empty-resource-card p:last-child { max-width: 310px; margin: 0; color: var(--ink-soft); }
.card-sparkle { margin-bottom: .6rem; color: var(--coral); font-size: 1.6rem; }
.latest-posts-section { background: var(--paper); }
.post-card-meta { display: flex; align-items: center; justify-content: space-between; gap: .7rem; color: #718180; font-size: .72rem; }
.empty-post-note { grid-column: 1/-1; padding: 1.5rem; border-radius: 16px; color: var(--ink-soft); background: var(--teal-pale); }

.newsletter-section { padding-top: 0; background: var(--paper); }
.newsletter-card { position: relative; overflow: hidden; display: grid; grid-template-columns: 1fr minmax(260px, .85fr); align-items: center; gap: 2.5rem; padding: clamp(2rem, 5vw, 4rem); border-radius: 34px; color: var(--white); background: var(--teal); }
.newsletter-card::after { position: absolute; right: -75px; bottom: -180px; width: 330px; height: 330px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; box-shadow: 0 0 0 28px rgba(255,255,255,.06), 0 0 0 56px rgba(255,255,255,.035); content: ""; pointer-events: none; }
.newsletter-card .eyebrow { color: #f5d98e; }
.newsletter-card h2 { color: #fffdf8; font-size: clamp(2rem, 3.6vw, 3.1rem); }
.newsletter-card p { max-width: 460px; margin-bottom: 0; color: rgba(255,255,255,.8); }
.newsletter-form-area { position: relative; z-index: 1; }
.plugin-placeholder { margin: 0 0 1rem; padding: 1rem; border: 1px dashed rgba(255,255,255,.48); border-radius: 14px; font-size: .88rem; }
.newsletter-form-area input[type="email"], .newsletter-form-area input[type="text"] { width: 100%; min-height: 50px; padding: .7rem 1rem; border: 1px solid rgba(255,255,255,.55); border-radius: 12px; color: var(--ink); background: var(--white); }
.newsletter-form-area button, .newsletter-form-area input[type="submit"] { min-height: 46px; margin-top: .65rem; padding: .6rem 1rem; border: 0; border-radius: 999px; color: var(--ink); background: #f6d47c; font-weight: 800; cursor: pointer; }

.site-footer { color: #e7f1eb; background: #153d40; }
.footer-main { display: grid; grid-template-columns: 1.4fr .8fr .85fr 1fr; gap: clamp(1.8rem, 4vw, 4rem); padding-block: 4rem 3rem; }
.brand-footer { color: #fff; }
.brand-footer:hover { color: #fff; }
.brand-footer .brand-mark { color: #f2bb54; }
.brand-footer .brand-name span { color: #f2bb54; }
.brand-footer .brand-tagline { color: #b5c9c1; }
.footer-brand-block p { max-width: 300px; margin: 1.15rem 0 0; color: #c0d1ca; font-size: .88rem; }
.footer-main h2 { margin: .2rem 0 1rem; color: #f8d990; font-family: var(--font-body); font-size: .78rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.footer-link-list, .social-list { display: flex; flex-direction: column; align-items: flex-start; gap: .6rem; }
.footer-link-list a, .social-list a { color: #e6f0eb; font-size: .86rem; text-decoration: none; }
.footer-link-list a:hover, .social-list a:hover { color: #f8d990; }
.footer-muted { color: #b7c9c1; font-size: .8rem; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 68px; border-top: 1px solid rgba(255,255,255,.14); color: #b7c9c1; font-size: .75rem; }
.footer-bottom p { margin: 0; }
.legal-links { display: flex; flex-wrap: wrap; gap: 1.2rem; }
.legal-links a { color: #d5e4dc; text-decoration: none; }
.legal-links a:hover { color: #f8d990; }

/* WordPress content and page templates */
.page-main, .archive-main, .single-main { min-height: 56vh; }
.page-heading, .archive-heading { max-width: 760px; margin: 0 auto 2.6rem; text-align: center; }
.page-heading .eyebrow, .archive-heading .eyebrow { justify-content: center; }
.page-heading h1, .archive-heading h1, .single-heading h1, .not-found h1 { margin-bottom: .9rem; font-size: clamp(2.7rem, 5.5vw, 4.5rem); }
.archive-heading > p:not(.eyebrow) { max-width: 650px; margin: .5rem auto 0; color: var(--ink-soft); font-size: 1.08rem; }
.content-page, .single-entry { max-width: 880px; margin-inline: auto; }
.prose { color: #334f51; font-size: 1.05rem; line-height: 1.78; }
.prose > * { max-width: 760px; margin-inline: auto; }
.prose h2, .prose h3, .prose h4 { margin-top: 2.1em; margin-bottom: .65em; font-family: var(--font-heading); font-weight: 500; line-height: 1.2; }
.prose h2 { font-size: clamp(1.8rem, 3vw, 2.6rem); }
.prose h3 { font-size: 1.6rem; }
.prose p, .prose ul, .prose ol, .prose blockquote { margin-top: 0; margin-bottom: 1.25em; }
.prose img { border-radius: 16px; }
.prose blockquote { padding: 1rem 1.4rem; border-left: 4px solid var(--coral); color: var(--ink); background: var(--coral-pale); }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { padding: .7rem; border: 1px solid var(--line); text-align: left; }
.prose iframe { max-width: 100%; }
.entry-meta, .post-date { color: #718180; font-size: .85rem; }
.single-heading { max-width: 780px; margin: 0 auto 2rem; text-align: center; }
.single-heading .back-link { display: inline-block; margin-bottom: 1.7rem; font-size: .84rem; font-weight: 750; text-decoration: none; }
.single-heading .eyebrow { justify-content: center; }
.single-featured-image { overflow: hidden; max-width: 880px; margin: 0 auto 2.5rem; border-radius: 24px; }
.single-featured-image img { display: block; width: 100%; }
.entry-footer { max-width: 760px; margin: 2rem auto; font-size: .88rem; }
.archive-grid { margin-top: 2.2rem; }
.pagination { margin-top: 3rem; text-align: center; }
.pagination .nav-links { display: flex; justify-content: center; gap: .6rem; flex-wrap: wrap; }
.pagination a, .pagination span { display: inline-flex; min-width: 42px; min-height: 42px; align-items: center; justify-content: center; padding: .45rem .8rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink); background: var(--white); text-decoration: none; }
.pagination .current { color: var(--white); background: var(--teal); }
.empty-state { max-width: 620px; margin: 3rem auto; padding: 2.5rem; border-radius: 24px; background: var(--teal-pale); text-align: center; }
.empty-state > span { color: var(--coral); font-size: 2rem; }
.empty-state h2 { font-size: 2rem; }
.empty-state p { color: var(--ink-soft); }
.not-found { max-width: 740px; min-height: 65vh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.not-found p { max-width: 540px; color: var(--ink-soft); }
.search-form { display: flex; max-width: 560px; gap: .5rem; margin: 1rem auto; }
.search-form label { flex: 1; }
.search-form .search-field { width: 100%; min-height: 48px; padding: .6rem .9rem; border: 1px solid var(--line); border-radius: 12px; background: var(--white); }
.search-form .search-submit { min-height: 48px; padding: .6rem 1rem; border: 0; border-radius: 12px; color: var(--white); background: var(--teal); font-weight: 750; cursor: pointer; }
.wp-block-button__link { border-radius: 999px; background: var(--teal); }
.wp-block-quote { border-left-color: var(--coral); }

/* Plugin containers and form controls */
.forum-page, .survey-page, .donate-page { max-width: 960px; margin-inline: auto; }
.plugin-panel { margin: 1.5rem 0; padding: clamp(1.2rem, 3vw, 2rem); border: 1px solid var(--line); border-radius: 20px; background: var(--white); }
.plugin-panel h2 { margin-bottom: .7rem; font-size: 1.8rem; }
.plugin-placeholder-panel { border-style: dashed; color: var(--ink-soft); background: var(--cream); }
.notice-box { padding: .8rem 1rem; border-left: 4px solid var(--gold); border-radius: 8px; color: var(--ink); background: var(--gold-pale); }
.forum-guidelines { margin: 1.2rem 0; padding: .9rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: var(--cream); }
.forum-guidelines summary { color: var(--teal-dark); cursor: pointer; font-weight: 800; }
.forum-guidelines ul { margin-bottom: .25rem; padding-left: 1.3rem; color: var(--ink-soft); }
.bbp-forum-title a, .bbp-topic-title a { color: var(--ink); }
.bbp-forums, .bbp-topics, .bbp-replies { width: 100%; border: 1px solid var(--line); border-radius: 14px; border-spacing: 0; background: #fff; }
.bbp-forums th, .bbp-forums td, .bbp-topics th, .bbp-topics td, .bbp-replies th, .bbp-replies td { padding: .7rem; border-bottom: 1px solid var(--line); }
.bbp-topic-form input, .bbp-topic-form textarea, .bbp-reply-form textarea, .bbp-reply-form input, .forminator-ui input, .forminator-ui textarea, .forminator-ui select { max-width: 100%; padding: .7rem; border: 1px solid #cbd8d2; border-radius: 10px; }
.forum-registration { margin-top: 1.5rem; }
.forum-registration h3 { font-family: var(--font-heading); font-size: 1.5rem; font-weight: 500; }
.forum-registration input, .forum-registration select { max-width: 100%; min-height: 42px; padding: .55rem .7rem; border: 1px solid #cbd8d2; border-radius: 9px; }
.forum-registration button, .bbp-submit-wrapper button, .bbp-submit-wrapper .button, .forminator-ui .forminator-button { min-height: 42px; padding: .55rem 1rem; border: 0; border-radius: 999px; color: #fff; background: var(--teal); font-weight: 750; cursor: pointer; }
.forum-report { margin-top: .8rem; padding: .65rem .8rem; border-radius: 12px; background: var(--cream); font-size: .85rem; }
.forum-report summary { cursor: pointer; color: var(--teal-dark); font-weight: 750; }
.forum-report textarea { display: block; width: 100%; margin: .55rem 0; padding: .6rem; border: 1px solid var(--line); border-radius: 8px; }
.forum-report button { padding: .5rem .8rem; border: 0; border-radius: 999px; color: white; background: var(--teal); font-weight: 750; cursor: pointer; }
.spededu-ad { margin: 1.5rem 0; padding: 1rem; border: 1px solid var(--line); border-radius: 16px; background: #fffdf8; }
.spededu-ad-label { display: block; margin-bottom: .55rem; color: #657775; font-size: .65rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.spededu-ad-row { display: flex; align-items: center; gap: 1rem; }
.spededu-ad-media { display: block; flex: 0 1 240px; }
.spededu-ad-media img { display: block; width: 100%; height: auto; border-radius: 10px; }
.spededu-ad-copy { display: grid; gap: .25rem; color: var(--ink-soft); font-size: .9rem; }
.spededu-ad-copy strong { color: var(--ink); font-family: var(--font-heading); font-size: 1.2rem; }

/* Page-specific editorial blocks */
.about-intro-card { display: grid; grid-template-columns: 70px 1fr; gap: 1.2rem; max-width: 880px; margin: 0 auto 2.4rem; padding: clamp(1.4rem, 4vw, 2.7rem); border-radius: 26px; background: var(--teal-pale); }
.about-spark { display: grid; width: 58px; height: 58px; place-items: center; border-radius: 20px; color: var(--teal-dark); background: #fff; font-size: 1.8rem; }
.about-intro-card h2 { margin: 0 0 .8rem; font-family: var(--font-heading); font-size: clamp(1.9rem, 3.5vw, 2.8rem); font-weight: 500; line-height: 1.1; }
.about-intro-card p:not(.eyebrow) { max-width: 690px; color: var(--ink-soft); }
.about-cta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; max-width: 760px; margin: 2rem auto 0; padding: 1.3rem 1.5rem; border-radius: 16px; background: var(--gold-pale); }
.about-cta p { margin: 0; font-family: var(--font-heading); font-size: 1.3rem; }

@media (max-width: 980px) {
  .primary-navigation { gap: 1rem; }
  .nav-list { gap: .9rem; }
  .nav-list a { font-size: .82rem; }
  .footer-main { grid-template-columns: 1.3fr 1fr 1fr; }
  .footer-social-block { grid-column: 2 / 4; }
  .footer-social-block .social-list { flex-direction: row; flex-wrap: wrap; }
}
@media (max-width: 820px) {
  .site-shell { width: min(100% - 36px, 680px); }
  .header-inner { min-height: 76px; flex-wrap: wrap; }
  .menu-toggle { display: none; }
  .primary-navigation { position: static; display: flex; width: 100%; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 1rem; padding: .6rem 0 1rem; border-bottom: 0; background: transparent; box-shadow: none; }
  html.has-menu-js .header-inner { flex-wrap: nowrap; }
  html.has-menu-js .menu-toggle { display: grid; place-items: center; }
  html.has-menu-js .primary-navigation { position: absolute; top: calc(100% + 1px); right: 0; left: 0; display: none; width: auto; flex-basis: auto; padding: 1rem max(18px, calc((100% - 680px)/2)); border-bottom: 1px solid var(--line); background: var(--paper); box-shadow: 0 18px 24px rgba(23,63,66,.08); }
  html.has-menu-js .primary-navigation.is-open { display: flex; }
  .primary-navigation .nav-list { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; }
  .primary-navigation .nav-list a { display: block; padding: .75rem .25rem; border-bottom: 1px solid var(--line); font-size: .95rem; }
  .nav-donate { align-self: flex-start; }
  .hero-layout { grid-template-columns: 1fr; gap: 3rem; }
  .hero-copy { max-width: 680px; }
  .hero-art-wrap { width: min(100%, 510px); }
  .pathway-grid, .resource-grid, .post-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .testimonial-layout { grid-template-columns: 1fr; gap: 2.1rem; }
  .testimonial-intro { max-width: 650px; }
  .newsletter-card { grid-template-columns: 1fr; gap: 1.8rem; }
  .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-social-block { grid-column: auto; }
}
@media (max-width: 560px) {
  body { font-size: 15px; }
  .site-shell { width: calc(100% - 32px); }
  .announcement-inner { min-height: 40px; font-size: .68rem; }
  .announcement-inner > span { max-width: 70%; }
  .header-inner { min-height: 72px; }
  .brand-mark { width: 40px; height: 40px; }
  .brand-name { font-size: 1.12rem; }
  .brand-tagline { max-width: 155px; font-size: .55rem; }
  .section-pad { padding-block: 3.75rem; }
  .hero-section { padding-block: 3.4rem 4rem; }
  .hero-copy h1 { font-size: clamp(2.75rem, 12vw, 4rem); }
  .hero-lede { margin-block: 1.1rem 1.5rem; font-size: 1rem; }
  .hero-proof { align-items: flex-start; max-width: 300px; margin-top: 1.6rem; font-size: .78rem; }
  .hero-art-frame { padding: 7px; border-radius: 42% 42% 20px 20px; }
  .hero-art-frame img { border-radius: 41% 41% 16px 16px; }
  .art-caption { right: 12px; bottom: 12px; left: 12px; padding: .55rem; font-size: .82rem; }
  .floating-note { max-width: 170px; padding: .55rem .7rem; font-size: .62rem; }
  .note-one { top: 8%; left: -2%; }
  .note-two { right: -2%; bottom: 8%; }
  .section-heading-row { align-items: flex-start; flex-direction: column; gap: 1rem; }
  .section-heading h2, .testimonial-intro h2, .newsletter-card h2 { font-size: 2.35rem; }
  .pathway-grid, .resource-grid, .post-grid { grid-template-columns: 1fr; }
  .pathway-card { min-height: 235px; }
  .testimonial-player-card { padding: 7px; border-radius: 20px; }
  .testimonial-placeholder, .testimonial-video { border-radius: 14px; }
  .placeholder-message { gap: .7rem; padding: .8rem; }
  .play-mark { width: 38px; height: 38px; }
  .placeholder-message strong { font-size: 1rem; }
  .placeholder-message p { font-size: .65rem; }
  .newsletter-card { width: calc(100% - 24px); padding: 1.6rem 1.25rem; border-radius: 24px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 1.8rem 1.1rem; padding-block: 3rem 2rem; }
  .footer-brand-block { grid-column: 1/-1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 1rem; }
  .footer-bottom p { line-height: 1.5; }
  .page-heading h1, .archive-heading h1, .single-heading h1, .not-found h1 { font-size: 2.8rem; }
  .prose { font-size: 1rem; }
  .search-form { flex-direction: column; }
  .search-form .search-submit { align-self: flex-start; }
  .bbp-forums, .bbp-topics { display: block; overflow-x: auto; white-space: nowrap; }
  .spededu-ad-row { align-items: flex-start; flex-direction: column; }
  .spededu-ad-media { flex-basis: auto; width: 100%; max-width: 300px; }
  .about-intro-card { grid-template-columns: 1fr; }
  .about-cta { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
