/* Shared community journeys, policy reading and contextual help. */
:root { --community-ink: #102d41; --community-paper: #fbf8f1; --community-line: #d6d0c2; --community-gold: #846623; }
.school-guide,.school-hub-content { color:var(--community-ink); font-size:1.05rem; line-height:1.85; }
.school-guide > p,.school-guide > section,.school-assistant-guide { max-width:76ch; }
.school-lead { font-size:clamp(1.15rem,2vw,1.4rem); line-height:1.7; max-width:70ch; }
.school-source-note { padding:1rem 0; border-block:1px solid var(--community-line); font-size:.94rem; }
.school-safety-note { background:#f4ead5; padding:1.4rem; margin-block:2rem; border-radius:10px; }
.school-safety-note p { margin-block:.5rem 0; }
.school-guide h2,.school-assistant-guide h2 { font-size:clamp(1.5rem,3vw,2.1rem); margin-block:2.5rem 1rem; }
.school-guide li,.school-assistant-guide li { margin-block:.65rem; }
.school-guide a,.school-hub-content a { text-underline-offset:.2em; }
.school-jump-links,.school-inline-links { display:flex; flex-wrap:wrap; gap:.65rem 1.5rem; align-items:center; }
.school-jump-links { padding-block:1.4rem; border-block-end:1px solid var(--community-line); }
.school-jump-links a,.school-inline-links a { display:inline-flex; align-items:center; min-height:44px; font-weight:700; color:var(--community-ink); }
.school-audience-row { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:clamp(1.5rem,5vw,5rem); padding-block:2.4rem; border-block-end:1px solid var(--community-line); scroll-margin-top:150px; }
.school-audience-row h2 { font-size:clamp(1.7rem,3vw,2.5rem); margin:0 0 .7rem; }
.school-audience-row p { max-width:56ch; margin:0; }
.school-audience-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.6rem; }
.school-audience-actions a { padding:.4rem 0; min-height:44px; font-weight:650; }
.school-audience-actions a:first-child { background:var(--community-ink); color:#fff; padding:.7rem 1.2rem; border-radius:8px; text-decoration:none; margin-block-end:.4rem; }
.school-community-home { background:var(--community-paper); padding-block:clamp(2.5rem,5vw,4.5rem); }
.school-community-heading { max-width:70ch; margin-block-end:1.5rem; }
.school-community-heading h2 { font-size:clamp(1.8rem,3.5vw,2.7rem); margin:0 0 .65rem; }
.school-community-heading p { margin:0; color:var(--community-ink); }
.school-community-links { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--community-line); }
.school-community-links a { display:flex; align-items:center; justify-content:space-between; gap:.75rem; min-height:76px; padding:1rem; color:var(--community-ink); font-weight:750; text-decoration:none; border-inline-end:1px solid var(--community-line); }
.school-community-links a:last-child { border-inline-end:0; }
.school-community-links a:hover { background:#eee7d8; }
[dir=rtl] .school-community-links svg { transform:scaleX(-1); }
.school-context-help { background:#eee8da; color:var(--community-ink); padding-block:2.8rem; }
.school-context-help .site-shell { display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; }
.school-context-help h2 { font-size:clamp(1.4rem,2vw,1.9rem); margin:0 0 .6rem; }
.school-context-help p { max-width:65ch; margin:0; }
.school-context-help .school-inline-links a:first-child { background:var(--community-ink); color:#fff; padding:.7rem 1rem; border-radius:8px; text-decoration:none; }
.school-context-help :focus-visible,.school-guide :focus-visible,.school-hub-content :focus-visible,.school-community-home :focus-visible { outline:3px solid #95732a; outline-offset:4px; }
.school-guide .policy-toolbar { position:static; }
.school-guide .policy-accordion details { scroll-margin-top:150px; }
.school-guide [hidden] { display:none !important; }
.school-guide .policy-detail { line-height:1.85; }
.school-guide .policy-detail ul { max-width:78ch; }
.school-guide .policy-filter { min-height:44px; }
.school-guide input[type=search] { font:inherit; min-height:48px; }
.page-school-hub .page-hero-visual,.page-transport .page-hero-visual,.page-policies .page-hero-visual { display:none; }
.page-school-hub .page-hero-grid,.page-transport .page-hero-grid,.page-policies .page-hero-grid { grid-template-columns:minmax(0,1fr); min-height:0; }
.page-school-hub .page-hero,.page-transport .page-hero,.page-policies .page-hero { min-height:0; padding-block:3rem; }
.page-school-hub .page-hero h1,.page-transport .page-hero h1,.page-policies .page-hero h1 { font-size:clamp(2rem,4.5vw,3.6rem); max-width:24ch; }
.page-school-hub .page-hero-copy,.page-transport .page-hero-copy,.page-policies .page-hero-copy { transform:none !important; }
.page-school-hub .page-hero-meta,.page-transport .page-hero-meta,.page-policies .page-hero-meta,.page-school-hub .eyebrow,.page-transport .eyebrow,.page-policies .eyebrow { display:none; }
.site-footer a { min-height:44px; display:flex; align-items:center; }
.events-timeline time { min-width:6.2rem; font-size:.9rem; direction:ltr; }
@media(max-width:800px) { .school-community-links { grid-template-columns:repeat(2,minmax(0,1fr)); } .school-community-links a:nth-child(2) { border-inline-end:0; } .school-community-links a:nth-child(-n+2) { border-block-end:1px solid var(--community-line); } .school-audience-row { grid-template-columns:minmax(0,1fr); gap:1.4rem; } .school-context-help .site-shell { display:block; } .school-context-help .school-inline-links { margin-block-start:1.2rem; } }
@media(max-width:420px) { .school-community-links { grid-template-columns:minmax(0,1fr); } .school-community-links a { border-inline:0; border-block-end:1px solid var(--community-line); min-height:62px; } .school-community-links a:last-child { border-block-end:0; } }

/* Formal policy register, edition 1.6.0. */
.page-policies .page-hero { background:#102b40; color:#fff; border-bottom:5px solid #b49a5d; padding-block:2.8rem; }
.page-policies .page-hero h1 { max-width:34ch; color:#fff; font-size:clamp(1.9rem,3.5vw,3.15rem); line-height:1.4; letter-spacing:normal; }
.page-policies .page-hero p { color:#e3e8eb; }
.policy-register { --policy-line:#d1d7da; max-width:1100px; margin-inline:auto; }
.policy-register p { margin-block:.7rem 1.2rem; }
.policy-register .policy-institution { font-size:.95rem; font-weight:800; letter-spacing:.02em; color:#745a25; }
.policy-register .school-lead { max-width:82ch; font-size:1.12rem; line-height:1.9; }
.policy-register .policy-document-meta { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-block:1px solid var(--policy-line); margin-block:1.6rem 0; }
.policy-register .policy-document-meta > div { padding:1.1rem; border-inline-end:1px solid var(--policy-line); }
.policy-register .policy-document-meta > div:last-child { border-inline-end:0; }
.policy-register dt { color:#4b5e6a; font-size:.88rem; font-weight:650; }
.policy-register dd { margin:0; font-weight:750; line-height:1.65; }
.policy-register .policy-document-meta dd { font-size:1.25rem; margin-top:.3rem; }
.policy-register .policy-priority-links { display:flex; flex-wrap:wrap; gap:.35rem 1.4rem; padding-block:1rem; }
.policy-register .policy-priority-links a { color:#17354b; font-weight:750; min-height:44px; display:inline-flex; align-items:center; text-underline-offset:.3em; }
.policy-register .policy-urgent { margin-block:1.5rem 2rem; padding:1.05rem 1.3rem; border-inline-start:4px solid #947334; background:#f3eee4; }
.policy-register .policy-urgent p { margin-bottom:0; font-size:.95rem; }
.policy-register .policy-general { border:1px solid var(--policy-line); border-radius:4px; margin-block:1rem; background:#fff; scroll-margin-top:160px; }
.policy-register .policy-general > summary { padding:1.1rem 1.3rem; font-weight:800; font-size:1.08rem; cursor:pointer; }
.policy-register summary small { color:#586976; font-weight:500; font-size:.8rem; margin-inline-start:.7rem; }
.policy-register .policy-section-heading { margin-block:2.5rem 1.5rem; }
.policy-register h2 { font-size:clamp(1.35rem,2.3vw,1.9rem); line-height:1.55; margin-block:0 1rem; }
.policy-register h3 { font-size:1.08rem; line-height:1.65; margin-block:1.2rem .45rem; }
.policy-register .policy-toolbar { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:1rem; background:#f4f5f5; border:1px solid var(--policy-line); border-radius:4px; padding:1.1rem; box-shadow:none; margin-bottom:1.5rem; }
.policy-register .policy-search,.policy-register .policy-category { display:grid; gap:.45rem; min-width:0; font-weight:700; font-size:.95rem; }
.policy-register input[type=search],.policy-register select { width:100%; min-width:0; border:1px solid #8d9ca6; border-radius:3px; min-height:48px; background:#fff; color:#132e41; font:inherit; padding:.65rem; }
.policy-register .policy-result-count { grid-column:1/-1; margin:0; font-size:.88rem; }
.policy-register .policy-accordion { display:grid; gap:0; border-top:2px solid #17354b; }
.policy-register .policy-accordion > details { border:0; border-bottom:1px solid var(--policy-line); border-radius:0; background:#fff; box-shadow:none; margin:0; overflow:visible; }
.policy-register .policy-accordion > details > summary { display:flex; align-items:center; gap:1rem; padding:1.2rem 1rem; cursor:pointer; color:#132e41; }
.policy-register .policy-accordion > details > summary::after { content:'+'; margin-inline-start:auto; color:#61717b; font-size:1.45rem; font-weight:400; }
.policy-register .policy-accordion > details[open] > summary::after { content:'−'; }
.policy-register .policy-accordion > details[open] > summary { background:#edf1f3; border-bottom:1px solid var(--policy-line); }
.policy-register .policy-summary-copy { display:flex; flex:1; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.3rem .8rem; min-width:0; }
.policy-register .policy-summary-copy strong { font-size:1.04rem; line-height:1.6; }
.policy-register .policy-code { flex:none; font:700 .85rem/1.4 ui-monospace,monospace; color:#745a25; padding:0; background:none; border-radius:0; min-width:2.5rem; }
.policy-register .policy-detail { padding:1.5rem; }
.policy-register .policy-scope { margin:0 0 1.4rem; display:grid; grid-template-columns:1fr; gap:.7rem; border-bottom:1px solid var(--policy-line); padding-bottom:1.2rem; }
.policy-register .policy-scope dd { font-weight:550; font-size:.98rem; }
.policy-register .policy-commitment { max-width:86ch; }
.policy-register .policy-clauses { padding:0; list-style:none; margin:0; }
.policy-register .policy-clauses > li { display:grid; grid-template-columns:4rem minmax(0,1fr); align-items:start; gap:1rem; margin:0; padding:1.1rem 0; border-top:1px solid #e3e6e8; scroll-margin-top:170px; }
.policy-register .policy-clauses > li:target { background:#fcf5df; outline:2px solid #b29552; outline-offset:5px; }
.policy-register .policy-clause-number { font:700 .92rem/2 ui-monospace,monospace; color:#765a23; }
.policy-register .policy-clauses p { margin:0; max-width:82ch; }
.policy-register .policy-clauses h3 { margin:0 0 .4rem; }
.policy-register .policy-records { padding:1rem 1.2rem; background:#f3f5f5; border-inline-start:3px solid #718695; margin-top:1.2rem; }
.policy-register .policy-records h3 { margin-top:0; }
.policy-register .policy-records p { margin-bottom:0; }
.policy-register .policy-foot { display:flex; flex-wrap:wrap; gap:.6rem 1.5rem; align-items:center; border-top:1px solid var(--policy-line); margin-top:1.4rem; padding-top:.8rem; font-size:.85rem; }
.policy-register .policy-foot a { min-height:44px; display:inline-flex; align-items:center; }
.policy-register .policy-accountability { border-top:3px solid #17354b; padding-top:2rem; margin-block:3rem 2rem; max-width:none; scroll-margin-top:150px; }
.policy-register .policy-process { padding-inline-start:1.5rem; }
.policy-register .policy-process li { padding-inline-start:.4rem; }
.policy-register .policy-process li::marker { font-weight:800; color:#765a23; }
.policy-register .policy-table-wrap { max-width:100%; overflow:auto; }
.policy-register table { border-collapse:collapse; width:100%; font-size:.92rem; line-height:1.7; }
.policy-register th,.policy-register td { text-align:start; padding:.8rem; border:1px solid var(--policy-line); vertical-align:top; }
.policy-register th { background:#18364a; color:#fff; }
.policy-register td:last-child { white-space:nowrap; }
.policy-register .policy-contact { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--policy-line); }
.policy-register .policy-print { min-height:44px; font:inherit; font-weight:700; padding:.55rem .9rem; border:1px solid #4b6475; border-radius:3px; background:#fff; color:#18364a; cursor:pointer; }
.policy-register summary:focus-visible { outline:3px solid #977c3e; outline-offset:3px; }
.policy-register [hidden] { display:none!important; }
@media(max-width:700px){
 .page-policies .page-hero { padding-block:2rem; }
 .policy-register .policy-document-meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .policy-register .policy-document-meta > div:nth-child(2) { border-inline-end:0; }
 .policy-register .policy-document-meta > div:nth-child(-n+2) { border-bottom:1px solid var(--policy-line); }
 .policy-register .policy-toolbar { grid-template-columns:minmax(0,1fr); }
 .policy-register .policy-detail { padding:1rem; }
 .policy-register .policy-clauses > li { grid-template-columns:3.1rem minmax(0,1fr); gap:.6rem; }
 .policy-register .policy-accordion > details > summary { gap:.6rem; padding:1rem .4rem; }
 .policy-register .policy-summary-copy { display:block; }
 .policy-register .policy-summary-copy small { display:block; margin-inline:0; margin-top:.2rem; }
 .policy-register th,.policy-register td { padding:.6rem; }
}
@media print {
 .page-policies .site-header,.page-policies .site-footer,.page-policies .school-context-help,.page-policies .mobile-actions,.page-policies #wpadminbar,.page-policies [data-rosary-voice],.page-policies #vue-app,.policy-priority-links,.policy-toolbar,.policy-print,.policy-foot a { display:none!important; }
 .page-policies .page-hero { background:#fff!important; color:#000; border-bottom:2px solid #000; padding:0 0 1rem; }
 .page-policies .page-hero h1 { color:#000!important; font-size:22pt; }
 .policy-register,.page-policies .site-shell { width:100%!important; max-width:none!important; }
 .policy-register { color:#000; font-size:10pt; }
 .policy-register .policy-detail { padding:.6rem 0; }
 .policy-register .policy-clauses > li { break-inside:avoid; }
 .policy-register .policy-accordion > details > summary { break-after:avoid; }
 .policy-register .policy-table-wrap { overflow:visible; }
 .policy-register summary::after { display:none; }
}
