/* Block-based pages — public rendering */
.pb-root { position: relative; }
.pb-row { padding: 28px 0; position: relative; }
.pb-row:first-child { padding-top: 56px; }
.pb-row:last-of-type { padding-bottom: 72px; }
.pb-row.bg-soft { background: linear-gradient(135deg, #f3e8ff 0%, #ffeaf3 50%, #fff6dd 100%); }
.pb-row.bg-sky { background: #eaf2ff; }
.pb-row.bg-navy { background: linear-gradient(160deg, #162d66, #3a3e9a); color: #fff; }
.pb-row.bg-navy h1, .pb-row.bg-navy h2, .pb-row.bg-navy h3, .pb-row.bg-navy h4 { color: #fff; }
.pb-row.bg-navy .pb-cell.s-card { color: var(--ink); }
.pb-row.bg-navy .pb-cell.s-card h2, .pb-row.bg-navy .pb-cell.s-card h3, .pb-row.bg-navy .pb-cell.s-card h4 { color: var(--navy); }

.pb-grid { display: grid; gap: 28px; align-items: stretch; }
.pb-grid.l-full { grid-template-columns: 1fr; }
.pb-grid.l-2 { grid-template-columns: 1fr 1fr; }
.pb-grid.l-2-1 { grid-template-columns: 2fr 1fr; }
.pb-grid.l-1-2 { grid-template-columns: 1fr 2fr; }
.pb-grid.l-3 { grid-template-columns: repeat(3, 1fr); }
.pb-grid.l-4 { grid-template-columns: repeat(4, 1fr); }
.pb-cell { min-width: 0; position: relative; }
.pb-cell.s-card { background: var(--card); border-radius: var(--r-lg); padding: 32px; box-shadow: var(--shadow); }
.pb-cell.t-empty:empty { display: none; }
.pb-body > :last-child { margin-bottom: 0; }
.pb-body h2 { font-size: clamp(1.5rem, 3vw, 2.2rem); margin: .2em 0 .6em; }
.pb-body .eyebrow { margin-bottom: 4px; }

.pb-figure { margin: 0; height: 100%; display: flex; flex-direction: column; }
.pb-figure img { width: 100%; height: auto; border-radius: var(--r-lg); box-shadow: var(--shadow); display: block; }
.pb-figure figcaption { padding: 10px 6px 0; color: var(--muted); font-size: .92rem; text-align: center; }
.pb-row.bg-navy .pb-figure figcaption { color: #cbd5e1; }
.pb-figure.is-overlay { position: relative; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow-lg); min-height: 280px; }
.pb-figure.is-overlay img { position: absolute; inset: 0; height: 100%; object-fit: cover; border-radius: 0; box-shadow: none; }
.pb-figure.is-overlay::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(8,29,49,.82), transparent 58%); }
.pb-figure.is-overlay figcaption { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; padding: 22px 26px; color: #fff; font: 600 clamp(1.05rem, 2.4vw, 1.6rem)/1.35 var(--font-head); text-align: left; }
.pb-grid.l-full .pb-figure.is-overlay { min-height: 420px; }
.pb-video { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r-lg); overflow: hidden; background: #000; box-shadow: var(--shadow); }
.pb-video iframe, .pb-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.pb-placeholder { display: grid; place-items: center; gap: 6px; min-height: 130px; text-align: center; color: var(--muted); border: 2px dashed var(--line); border-radius: var(--r-md); padding: 20px; }
.pb-placeholder i { font-size: 1.8rem; color: var(--pink); }

@media (max-width: 900px) {
    .pb-grid.l-3, .pb-grid.l-4 { grid-template-columns: repeat(2, 1fr); }
    .pb-grid.l-2, .pb-grid.l-2-1, .pb-grid.l-1-2 { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .pb-grid.l-3, .pb-grid.l-4 { grid-template-columns: 1fr; }
    .pb-cell.s-card { padding: 22px; }
    .pb-row { padding: 18px 0; }
}

/* inline-editable homepage section (kindergarten) */
.pb-inline .pb-row:first-child { padding-top: 64px; }
.pb-inline .pb-row:last-of-type { padding-bottom: 64px; }
.pb-body .btn { margin: 4px 6px 4px 0; text-decoration: none; }
.pb-body .btn-pink, .pb-body .btn-navy { color: #fff; }
.pb-body .btn-outline { color: var(--navy); }
.pb-body .btn-outline:hover { color: #fff; }
.pb-body .kg-points { list-style: none; padding: 0; margin: 18px 0 22px; }

/* ── Org chart (rows whose cells contain .org-node) ── */
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) { padding: 0; }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) { padding-top: 34px; }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid { position: relative; }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-cell { position: relative; }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-cell::before { content: ''; position: absolute; left: 50%; top: -34px; width: 2px; height: 34px; background: var(--navy, #112b46); opacity: .45; }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid.l-4::before { content: ''; position: absolute; top: -34px; height: 2px; background: var(--navy, #112b46); opacity: .45; left: calc((100% - 3 * 28px) / 8); right: calc((100% - 3 * 28px) / 8); }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid.l-3::before { content: ''; position: absolute; top: -34px; height: 2px; background: var(--navy, #112b46); opacity: .45; left: calc((100% - 2 * 28px) / 6); right: calc((100% - 2 * 28px) / 6); }
.pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid.l-full { max-width: 460px; margin: 0 auto; }
.org-node { text-align: center; padding: 18px 20px; border-radius: 14px; background: #fff; border: 2px solid var(--navy, #112b46); box-shadow: 0 6px 18px rgba(17,43,70,.1); height: 100%; box-sizing: border-box; }
.org-node small { display: block; font-size: .85rem; opacity: .8; margin-bottom: 2px; }
.org-node h3 { margin: 0; font-size: 1.15rem; line-height: 1.4; }
.org-node.lv1 { background: var(--navy, #112b46); color: #fff; }
.org-node.lv1 h3, .org-node.lv2 h3 { color: #fff; }
.org-node.lv2 { background: #2c5b8a; border-color: #2c5b8a; color: #fff; }
.org-node.lv3 { background: #ed6a5a; border-color: #ed6a5a; color: #fff; }
.org-node.lv3 h3 { color: #fff; }
.org-node.lv4 h3 { color: var(--navy, #112b46); }
@media (max-width: 760px) { .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid.l-4::before, .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-grid.l-3::before { display: none; } .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) + .pb-row:has(.org-node, .pb-cell[class*=" s-org"]) .pb-cell + .pb-cell { margin-top: 12px; } }

/* cells set to an "org" box style in the editor */
.pb-cell[class*=" s-org"] { text-align: center; padding: 18px 20px; border-radius: 14px; background: #fff; border: 2px solid var(--navy, #112b46); box-shadow: 0 6px 18px rgba(17,43,70,.1); box-sizing: border-box; display: flex; flex-direction: column; justify-content: center; }
.pb-cell[class*=" s-org"] h2, .pb-cell[class*=" s-org"] h3, .pb-cell[class*=" s-org"] h4 { margin: 0; font-size: 1.15rem; line-height: 1.4; }
.pb-cell[class*=" s-org"] p { margin: 2px 0 0; }
.pb-cell.s-org-navy { background: var(--navy, #112b46); color: #fff; }
.pb-cell.s-org-blue { background: #2c5b8a; border-color: #2c5b8a; color: #fff; }
.pb-cell.s-org-coral { background: #ed6a5a; border-color: #ed6a5a; color: #fff; }
.pb-cell.s-org-navy h2, .pb-cell.s-org-navy h3, .pb-cell.s-org-blue h2, .pb-cell.s-org-blue h3, .pb-cell.s-org-coral h2, .pb-cell.s-org-coral h3 { color: #fff; }
/* ── Education guide cards ── */
.edu-ico { display: inline-flex; width: 52px; height: 52px; align-items: center; justify-content: center; border-radius: 14px; background: var(--navy, #112b46); color: #fff; font-size: 1.5rem; margin-bottom: 12px; }
.pb-body blockquote { font-size: 1.25rem; line-height: 1.7; border-left: 4px solid #ed6a5a; margin: 0; padding: 4px 0 4px 18px; font-style: italic; }
