:root{--navy:#0b2f52;--navy-2:#0d426f;--blue:#1572d3;--blue-2:#0c8ee8;--gold:#f5bd43;--gold-2:#ffcf68;--teal:#18a8a1;--green:#16845f;--ink:#17324a;--muted:#66798c;--line:#dbe5ed;--soft:#f4f7fb;--white:#fff;--shadow:0 18px 50px rgba(28,58,82,.10);--radius:24px;--site-font-scale:1}
*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:calc(16px * var(--site-font-scale))}body{margin:0;font-family:'Sarabun',sans-serif;color:var(--ink);background:#f3f6fb;line-height:1.55;overflow-x:hidden}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.site-shell{width:min(1180px,calc(100% - 32px));margin:auto}.site-progress{position:fixed;inset:0 auto auto 0;height:3px;background:linear-gradient(90deg,var(--gold),var(--blue));width:0;z-index:9999}.site-header{position:sticky;top:0;z-index:500;background:#fff;box-shadow:0 4px 22px rgba(19,45,67,.08)}.site-topbar{background:var(--navy);color:#fff;font-size:.78rem}.topbar-inner{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:18px}.topbar-office,.topbar-actions{display:flex;align-items:center;gap:14px}.topbar-office i{color:var(--gold)}.topbar-actions a,.topbar-actions span{opacity:.92}.topbar-actions button{border:0;background:transparent;color:#fff;padding:2px 3px}.site-mainbar{background:#fff}.mainbar-inner{min-height:86px;display:flex;align-items:center;gap:24px}.school-brand{display:flex;align-items:center;gap:12px;min-width:315px}.school-logo{width:58px;height:58px;border-radius:16px;border:1px solid #e2e8ef;background:#fff;display:grid;place-items:center;box-shadow:0 6px 16px rgba(32,56,75,.08);overflow:hidden}.school-logo img{width:48px;height:48px;object-fit:contain}.school-brand-copy{display:flex;flex-direction:column;line-height:1.2}.school-brand-copy strong{font-size:1.15rem;color:var(--navy);font-weight:800}.school-brand-copy small{font-size:.72rem;color:#758697;margin-top:5px}.site-nav{margin-left:auto;display:flex;align-self:stretch}.site-nav a{min-width:82px;padding:16px 12px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border-bottom:3px solid transparent;font-weight:700;font-size:.86rem}.site-nav a small{font-size:.63rem;color:#8b98a5;font-weight:500}.site-nav a:hover,.site-nav a.active{background:#fff8e6;border-bottom-color:var(--gold);color:var(--navy)}.site-login-actions{display:flex;gap:8px}.portal-btn{border:0;border-radius:13px;padding:11px 14px;font-weight:800;display:flex;align-items:center;gap:8px;white-space:nowrap}.portal-btn.teacher{background:var(--navy);color:#fff}.portal-btn.student{background:var(--gold);color:#192f44}.mobile-menu-btn{display:none;margin-left:auto;width:44px;height:44px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--navy)}
.news-ticker{background:#fff5d8;border-top:1px solid #f3dc98;border-bottom:1px solid #f3dc98}.ticker-inner{height:34px;display:flex;align-items:center;overflow:hidden}.ticker-label{height:100%;display:flex;align-items:center;gap:7px;padding:0 14px;background:#f8c650;color:#21394f;font-weight:800;font-size:.76rem;white-space:nowrap}.ticker-track{overflow:hidden;flex:1}.ticker-track>div{display:flex;width:max-content;gap:48px;animation:ticker 34s linear infinite;padding-left:28px}.ticker-track span{font-size:.75rem;color:#5d6e7c;white-space:nowrap}.ticker-track span:after{content:'•';margin-left:48px;color:#d8a62c}@keyframes ticker{to{transform:translateX(-50%)}}
.hero-section{background:#dfe9f1}.hero-stage{position:relative;min-height:470px;overflow:hidden}.hero-slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .7s ease;background-image:var(--hero-image);background-position:center;background-size:cover}.hero-slide.active{opacity:1;pointer-events:auto}.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,24,41,.88) 0%,rgba(4,24,41,.72) 38%,rgba(4,24,41,.26) 67%,rgba(4,24,41,.07) 100%)}.hero-content{position:relative;z-index:2;min-height:470px;display:flex;align-items:center}.hero-copy{max-width:610px;color:#fff;padding:46px 0 52px}.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.15em;color:#ffd369;font-weight:800}.hero-eyebrow:before{content:'';width:34px;height:2px;background:#ffd369}.hero-copy h1{font-size:clamp(2.45rem,5vw,4.6rem);line-height:1.02;margin:14px 0 14px;font-weight:800;letter-spacing:-.02em}.hero-motto{font-size:1.42rem;font-weight:800;margin:0 0 10px}.hero-desc{max-width:540px;color:#e4edf4;margin:0 0 24px}.hero-buttons{display:flex;gap:10px;flex-wrap:wrap}.hero-btn{border:0;border-radius:14px;padding:13px 18px;font-weight:800;display:inline-flex;align-items:center;gap:9px}.hero-btn.primary{background:var(--gold);color:#21394f}.hero-btn.secondary{background:rgba(13,113,200,.88);color:#fff;border:1px solid rgba(255,255,255,.24);backdrop-filter:blur(5px)}.hero-arrow{position:absolute;top:50%;translate:0 -50%;z-index:6;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(7,42,70,.45);color:#fff;display:grid;place-items:center}.hero-arrow.prev{left:22px}.hero-arrow.next{right:22px}.hero-dots{position:absolute;z-index:6;bottom:28px;left:50%;translate:-50% 0;display:flex;gap:7px}.hero-dots button{width:7px;height:7px;border:0;border-radius:20px;background:rgba(255,255,255,.5);padding:0;transition:.25s}.hero-dots button.active{width:27px;background:#fff}.hero-term{position:absolute;right:max(28px,calc((100% - 1180px)/2));bottom:22px;z-index:6;background:rgba(255,255,255,.91);color:var(--navy);border-radius:999px;padding:8px 12px;font-size:.77rem;font-weight:800;box-shadow:0 9px 28px rgba(0,0,0,.15)}
.quickdock-wrap{position:relative;z-index:20;margin-top:-34px}.quickdock{background:#fff;border-radius:18px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(218,228,236,.9);overflow:hidden}.quickdock>a,.quickdock>button{min-width:0;border:0;background:#fff;padding:18px 13px;display:flex;align-items:center;justify-content:center;gap:11px;border-right:1px solid #e7edf2;color:var(--ink);transition:.2s}.quickdock>*:last-child{border-right:0}.quickdock>a:hover,.quickdock>button:hover{background:#f7fbff;transform:translateY(-2px)}.quickdock i{font-size:1.45rem;color:#0d91b5}.quickdock span{display:flex;flex-direction:column;text-align:left}.quickdock b{font-size:.88rem}.quickdock small{font-size:.65rem;color:#8c9aa7}.stats-section{padding:28px 0 6px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-card{background:#fff;border:1px solid #e2e8ef;border-radius:18px;padding:20px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 24px rgba(20,48,70,.04)}.stat-card>span{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;font-size:1.55rem}.stat-card.blue>span{background:#e5f0ff;color:#1769d1}.stat-card.teal>span{background:#dcf7f4;color:#138c86}.stat-card.orange>span{background:#fff0dd;color:#e9851b}.stat-card.purple>span{background:#f0e7ff;color:#8150c7}.stat-card div{display:grid;grid-template-columns:auto auto;column-gap:8px;align-items:end}.stat-card b{font-size:1.9rem;line-height:1;color:var(--navy)}.stat-card strong{font-size:.88rem}.stat-card small{grid-column:1/-1;color:#8b98a5;font-size:.67rem}.site-section{padding:56px 0}.news-calendar{padding-top:42px}.two-col{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.8fr);gap:18px}.section-panel,.calendar-panel{background:#fff;border:1px solid #e1e8ee;border-radius:22px;padding:22px;box-shadow:0 9px 28px rgba(19,48,70,.05)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:18px}.section-heading.wide{margin-bottom:24px}.section-kicker{display:block;font-size:.68rem;font-weight:800;letter-spacing:.12em;color:#1a7aa7}.section-heading h2{margin:3px 0 0;font-size:1.5rem;line-height:1.25;color:var(--navy)}.section-heading p{margin:4px 0 0;color:#7d8c9a;font-size:.83rem}.section-heading>a{font-size:.76rem;color:#1c6aa8;font-weight:700}.featured-news{display:grid;grid-template-columns:230px 1fr;gap:18px;padding-bottom:18px;border-bottom:1px solid #e7edf2}.featured-image{border-radius:16px;overflow:hidden;background:#eef3f7;aspect-ratio:16/10}.featured-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{height:100%;display:grid;place-items:center;color:#9aa9b5;font-size:2rem}.featured-copy span{font-size:.7rem;color:#c03e55;font-weight:700}.featured-copy h3{font-size:1.16rem;margin:7px 0;color:#203b52}.featured-copy p{font-size:.8rem;color:#738492;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.news-mini-list{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.news-mini-list article{padding:14px 0;border-bottom:1px solid #edf1f4;display:flex;flex-direction:column}.news-mini-list time{font-size:.66rem;color:#9a7a33}.news-mini-list b{font-size:.82rem;margin:3px 0}.news-mini-list small{font-size:.68rem;color:#92a0ab}.event-list{display:flex;flex-direction:column}.event-list article{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid #edf1f4}.event-list article:last-child{border-bottom:0}.event-date{width:52px;height:56px;border-radius:13px;background:#fff0e7;color:#d55c2c;display:grid;place-items:center;align-content:center}.event-date b{font-size:1.15rem;line-height:1}.event-date small{font-size:.63rem}.event-list article>div{display:flex;flex-direction:column}.event-list article>div b{font-size:.79rem}.event-list article>div small{font-size:.66rem;color:#90a0ad}.event-list article>i{font-size:.7rem;color:#aac0d1}.empty-public{padding:34px 15px;text-align:center;color:#8295a5;display:grid;place-items:center;gap:7px}.empty-public i{font-size:2rem}.empty-public b{color:#5b6f7f}.empty-public.compact{padding:20px}.academics-section{background:#fff}.academic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.academic-card{border:1px solid #e1e8ee;border-radius:20px;padding:21px;display:flex;gap:14px;align-items:center;transition:.25s}.academic-card:hover{transform:translateY(-5px);box-shadow:var(--shadow)}.academic-icon{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;font-size:1.55rem;flex:0 0 auto}.academic-icon.mint{background:#dcf5ed;color:#16845f}.academic-icon.blue{background:#e6f0ff;color:#1769d1}.academic-icon.gold{background:#fff0d5;color:#d98c13}.academic-card div{display:flex;flex-direction:column}.academic-card b{font-size:1rem}.academic-card small{font-size:.7rem;color:#8394a3}.academic-card p{font-size:.76rem;color:#66798c;margin:7px 0 0}.about-section{background:#eff4f8}.about-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center}.about-media{position:relative;border-radius:24px;overflow:hidden;min-height:360px;box-shadow:var(--shadow)}.about-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about-media:after{content:'';position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(4,30,48,.75))}.about-media>span{position:absolute;z-index:2;left:20px;bottom:18px;color:#fff;background:rgba(6,46,72,.55);border:1px solid rgba(255,255,255,.26);backdrop-filter:blur(6px);padding:9px 12px;border-radius:999px;font-size:.75rem}.about-copy h2{font-size:2rem;line-height:1.2;color:var(--navy);margin:8px 0}.about-copy>p{color:#677b8b}.about-motto{font-size:1.1rem;font-weight:800;color:#23628f!important}.about-points{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.about-points span{background:#fff;border:1px solid #dfe8ee;border-radius:13px;padding:12px;font-size:.78rem;font-weight:700}.about-points i{color:#1594a2;margin-right:7px}.director-note{display:flex;align-items:center;gap:12px;background:var(--navy);color:#fff;padding:13px 16px;border-radius:16px;width:max-content;max-width:100%}.director-note>span{width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.14);display:grid;place-items:center}.director-note div{display:flex;flex-direction:column}.director-note small{font-size:.66rem;color:#cbd9e4}.gallery-section{background:#fff}.gallery-row{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;overflow:hidden}.gallery-row figure{margin:0;border-radius:16px;overflow:hidden;position:relative;aspect-ratio:4/3;background:#e8eef3}.gallery-row img{width:100%;height:100%;object-fit:cover;transition:.35s}.gallery-row figure:hover img{transform:scale(1.06)}.gallery-row figcaption{position:absolute;inset:auto 0 0;padding:22px 10px 10px;color:#fff;background:linear-gradient(transparent,rgba(5,27,43,.82));font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bigdata-section{background:#eef4f8;padding-top:22px}.bigdata-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tour-card{min-height:300px;border-radius:24px;overflow:hidden;background-image:linear-gradient(90deg,rgba(3,41,37,.84),rgba(3,41,37,.3)),var(--tour-image);background-size:cover;background-position:center;color:#fff;display:flex;align-items:center;padding:32px}.tour-card>div{max-width:430px}.tour-card span,.data-head span{font-size:.67rem;letter-spacing:.12em;font-weight:800;color:#ffd36a}.tour-card h2,.data-card h2{font-size:1.55rem;margin:6px 0 7px}.tour-card p{color:#d7e8e5;font-size:.82rem}.tour-card a{display:inline-flex;gap:8px;align-items:center;background:var(--gold);color:#19384d;padding:11px 15px;border-radius:12px;font-weight:800;font-size:.78rem}.data-card{border-radius:24px;background:linear-gradient(135deg,#0b3153,#086a9f);color:#fff;padding:27px;box-shadow:var(--shadow)}.data-head{display:flex;justify-content:space-between;gap:15px;align-items:start}.data-head button{border:1px solid rgba(255,255,255,.25);background:#fff;color:#164461;padding:9px 12px;border-radius:12px;font-weight:800;font-size:.73rem}.data-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:24px 0}.data-kpis div{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.13);border-radius:15px;padding:16px 10px;text-align:center}.data-kpis b{display:block;font-size:1.6rem}.data-kpis span{font-size:.64rem;color:#d8e7f0}.data-card>p{font-size:.72rem;color:#cee2ed;margin:0}.data-card>p i{color:#63d2a3}.services-section{background:#fff}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.service-card{border:1px solid #e1e8ee;background:#fff;border-radius:18px;padding:19px;text-align:left;display:grid;grid-template-columns:48px 1fr;column-gap:12px;align-items:center;transition:.25s;color:var(--ink)}.service-card>i{width:48px;height:48px;border-radius:15px;background:#e5f3ff;color:#1474c4;display:grid;place-items:center;font-size:1.3rem}.service-card div{display:flex;flex-direction:column}.service-card div b{font-size:.88rem}.service-card div small{font-size:.66rem;color:#8495a3}.service-card>span{grid-column:2;font-size:.68rem;color:#1e6d9f;font-weight:700}.service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#bed6e8}.related-links{margin-top:30px}.related-links h3{font-size:1rem;color:var(--navy)}.related-links>div{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.related-links a{border:1px solid #e1e8ee;border-radius:14px;padding:13px 14px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:.76rem}.related-links a>i:first-child{color:#1686aa}.related-links a>i:last-child{font-size:.62rem;color:#9baab6}.cta-strip{background:linear-gradient(110deg,#1d5b46,#134538);color:#fff;border-bottom:4px solid var(--gold)}.cta-strip>.site-shell{min-height:155px;display:flex;align-items:center;justify-content:space-between;gap:20px}.cta-strip span{font-size:.66rem;letter-spacing:.14em;color:#9ed0bd;font-weight:800}.cta-strip h2{margin:3px 0;font-size:1.4rem}.cta-strip p{margin:0;color:#c2dbd0;font-size:.78rem}.cta-strip>.site-shell>div:last-child{display:flex;gap:10px}.cta-strip button{border:0;border-radius:12px;padding:12px 16px;font-weight:800}.cta-yellow{background:var(--gold);color:#173449}.cta-blue{background:#1478d4;color:#fff}.site-footer{background:#082e4b;color:#dce8f0}.footer-grid{display:grid;grid-template-columns:1.7fr .8fr .9fr 1.2fr;gap:32px;padding:40px 0 34px}.footer-brand{display:flex;gap:13px}.footer-brand img{width:58px;height:58px;object-fit:contain;background:#fff;border-radius:50%;padding:4px}.footer-brand div,.footer-grid>div{display:flex;flex-direction:column;gap:6px}.footer-grid b{color:#fff;font-size:.88rem}.footer-grid a,.footer-grid span,.footer-grid button{font:inherit;font-size:.7rem;color:#bcd0dd;background:none;border:0;padding:0;text-align:left}.footer-brand p{font-size:.7rem;color:#9fb8c6;max-width:340px}.footer-bottom{padding:13px 0;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:20px;font-size:.65rem;color:#8faabd}.site-modal{position:fixed;inset:0;background:rgba(5,26,42,.55);backdrop-filter:blur(7px);z-index:2000;display:none;align-items:center;justify-content:center;padding:18px}.site-modal.show{display:flex}.site-modal-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:26px;box-shadow:0 30px 80px rgba(0,0,0,.25);position:relative;animation:modalIn .22s ease}.modal-close{position:absolute;right:14px;top:14px;width:36px;height:36px;border-radius:11px;border:1px solid #e1e8ee;background:#f7fafc;color:#567083}.modal-brand{display:flex;gap:13px;align-items:center;margin-bottom:20px;padding-right:38px}.modal-brand img{width:55px;height:55px;object-fit:contain;border:1px solid #e4ebf0;border-radius:15px;padding:4px}.modal-brand>div{display:flex;flex-direction:column}.modal-brand span{font-size:.64rem;color:#27806b;font-weight:800;letter-spacing:.08em}.modal-brand h2{margin:1px 0;color:var(--navy);font-size:1.4rem}.modal-brand p{margin:0;color:#8796a3;font-size:.72rem}.student-modal-icon{width:55px;height:55px;border-radius:16px;background:#e6f8f3;color:#16845f;display:grid;place-items:center;font-size:1.5rem}.site-modal form{display:flex;flex-direction:column;gap:13px}.site-modal label{font-size:.75rem;font-weight:700;color:#526879}.modal-input{margin-top:6px;border:1px solid #d8e2ea;border-radius:13px;display:flex;align-items:center;gap:9px;padding:0 12px;background:#fff}.modal-input i{color:#7f98aa}.modal-input input{width:100%;border:0;outline:0;padding:13px 0;background:transparent}.modal-submit{border:0;border-radius:13px;padding:13px;background:var(--navy);color:#fff;font-weight:800;margin-top:4px}.modal-submit.student{background:var(--green)}.modal-alert{padding:10px 12px;border-radius:12px;background:#fff0f1;color:#c53646;font-size:.75rem;margin-bottom:14px;display:flex;gap:8px;align-items:center}.student-hint{font-size:.7rem;color:#658171;background:#edf8f4;border-radius:10px;padding:9px 10px}.site-toast{position:fixed;right:22px;bottom:22px;background:#174f3c;color:#fff;padding:12px 16px;border-radius:13px;z-index:2500;box-shadow:var(--shadow);font-size:.78rem;display:flex;gap:8px;align-items:center}@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .5s ease,transform .5s ease}.reveal.in{opacity:1;transform:none}.reveal-now{animation:heroCopy .7s .08s both}@keyframes heroCopy{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@media(max-width:1080px){.school-brand{min-width:260px}.school-brand-copy small{display:none}.site-nav a{min-width:70px;padding-inline:8px}.site-login-actions .portal-btn span{display:none}.portal-btn{width:44px;height:44px;padding:0;justify-content:center}.gallery-row{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1.6fr 1fr 1fr}.footer-grid>div:last-child{grid-column:1/-1}.quickdock{grid-template-columns:repeat(5,1fr)}.quickdock b{font-size:.77rem}.quickdock small{display:none}}
@media(max-width:820px){.site-topbar{display:none}.mainbar-inner{min-height:72px}.school-brand{min-width:0}.school-logo{width:48px;height:48px}.school-logo img{width:40px;height:40px}.school-brand-copy strong{font-size:.95rem;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-menu-btn{display:grid;place-items:center}.site-nav{position:absolute;top:72px;left:16px;right:16px;background:#fff;border:1px solid #dfe8ee;border-radius:18px;box-shadow:var(--shadow);display:none;flex-direction:column;align-items:stretch;padding:8px}.site-nav.show{display:flex}.site-nav a{min-height:52px;align-items:flex-start;padding:9px 13px;border-bottom:0;border-radius:10px}.site-nav a small{display:block}.site-login-actions{margin-left:0}.hero-stage,.hero-content{min-height:430px}.hero-copy{padding:45px 14px 70px}.hero-copy h1{font-size:2.6rem}.hero-motto{font-size:1.18rem}.hero-desc{font-size:.86rem}.hero-arrow{display:none}.hero-term{right:14px;bottom:14px}.quickdock-wrap{margin-top:-20px}.quickdock{grid-template-columns:repeat(2,1fr)}.quickdock>*{border-bottom:1px solid #e7edf2}.quickdock>*:last-child{grid-column:1/-1}.stats-grid{grid-template-columns:1fr 1fr}.two-col{grid-template-columns:1fr}.academic-grid{grid-template-columns:1fr}.about-grid,.bigdata-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr 1fr}.related-links>div{grid-template-columns:1fr 1fr}.cta-strip>.site-shell{padding:24px 0;align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-bottom{flex-direction:column}.data-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.site-shell{width:min(100% - 20px,1180px)}.school-brand-copy strong{max-width:180px;font-size:.86rem}.site-login-actions{display:none}.hero-stage,.hero-content{min-height:510px}.hero-overlay{background:linear-gradient(180deg,rgba(5,30,48,.78),rgba(5,30,48,.7))}.hero-copy{padding:42px 8px 88px}.hero-copy h1{font-size:2.18rem}.hero-motto{font-size:1.02rem}.hero-buttons{flex-direction:column;align-items:stretch}.hero-btn{justify-content:center}.quickdock{grid-template-columns:1fr 1fr}.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:13px;gap:9px}.stat-card>span{width:45px;height:45px;border-radius:13px;font-size:1.1rem}.stat-card b{font-size:1.35rem}.stat-card strong{font-size:.72rem}.featured-news{grid-template-columns:1fr}.news-mini-list{grid-template-columns:1fr}.gallery-row{grid-template-columns:repeat(2,1fr)}.service-grid,.related-links>div{grid-template-columns:1fr}.about-points{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.footer-brand{grid-column:auto}.site-section{padding:42px 0}.section-panel,.calendar-panel{padding:17px}.section-heading h2{font-size:1.28rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.001ms!important;transition-duration:.001ms!important}.reveal{opacity:1;transform:none}}

/* P129 PUBLIC HEADER + LOGIN + FOOTER */
@media(min-width:1081px){
  .site-mainbar .site-shell.mainbar-inner{
    width:100%;
    max-width:none;
    margin:0;
    padding-left:18px;
    padding-right:18px;
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:18px;
  }
  .site-mainbar .school-brand{
    min-width:0;
    justify-self:start;
  }
  .site-mainbar .site-nav{
    margin-left:0;
    justify-self:center;
  }
  .site-mainbar .site-login-actions{
    justify-self:end;
  }
  .site-mainbar .portal-btn{
    padding:8px 11px;
    min-height:38px;
    border-radius:11px;
    gap:6px;
    font-size:.76rem;
  }
  .site-mainbar .portal-btn i{font-size:.82rem}
}
.site-modal label{
  font-size:.90rem;
  line-height:1.35;
  font-weight:700;
  color:#425c70;
}
.site-modal .modal-input{
  margin-top:7px;
}
.site-modal .modal-input input{
  font-size:1rem;
  font-weight:500;
  padding:14px 0;
}
.site-modal .modal-input i{
  font-size:.98rem;
}
.site-modal .modal-submit{
  font-size:.94rem;
  min-height:50px;
}
.footer-bottom .footer-developer{
  color:#d3e0e8;
  font-weight:500;
  white-space:nowrap;
}
@media(max-width:820px){
  .footer-bottom .footer-developer{white-space:normal}
}

/* P130 PUBLIC WEBSITE MODULES */
:root{--school-green:#0f6b4f;--school-green-2:#15966d;--school-mint:#e6f7f0;--school-lime:#dff2a8;--school-yellow:#f4c958;--school-coral:#ef8b62;--school-sky:#dff1ff}
body.school-site-body{background:linear-gradient(180deg,#f5fbf8 0,#f3f7fa 42%,#f6f9fb 100%)}
.site-nav{gap:2px}.site-nav .nav-group{position:relative;display:flex;align-items:stretch}.site-nav .nav-group>a{min-width:84px;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:8px 11px;color:var(--ink);border-bottom:3px solid transparent;transition:.18s}.site-nav .nav-group>a:hover,.site-nav .nav-group>a.active{background:#fff9e8;border-bottom-color:var(--gold)}.nav-caret{font-size:.56rem;margin-left:5px;color:#748796}.nav-dropdown{position:absolute;z-index:90;left:50%;top:calc(100% - 2px);transform:translate(-50%,8px);min-width:240px;background:#fff;border:1px solid #dce8e2;border-radius:15px;padding:7px;box-shadow:0 18px 42px rgba(9,68,50,.15);opacity:0;visibility:hidden;pointer-events:none;transition:.18s}.nav-group:hover .nav-dropdown,.nav-group:focus-within .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}.nav-dropdown>a{display:flex!important;flex-direction:column!important;align-items:flex-start!important;min-height:0!important;padding:10px 11px!important;border:0!important;border-radius:9px!important}.nav-dropdown>a:hover{background:#eef8f4!important}.nav-dropdown>a span{display:flex;align-items:center;gap:8px;font-size:.8rem}.nav-dropdown>a small{font-size:.62rem;color:#8ca097}.nav-dropdown>a i{width:16px;color:var(--school-green)}

.hero-section{background:#d9ebe3;padding:0}.hero-stage{min-height:0;height:clamp(330px,36vw,560px);background:#dceee7}.hero-slide{background:none;overflow:hidden}.hero-slide:before{content:"";position:absolute;inset:-3%;background-image:var(--hero-image);background-size:cover;background-position:center;transform:scale(1.02);filter:saturate(1.03) contrast(1.01);will-change:transform}.hero-slide.active:before{animation:heroKenBurns 7s ease-out both}.hero-slide:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,48,34,.02),rgba(0,48,34,.07));pointer-events:none}.hero-overlay,.hero-content,.hero-copy{display:none!important}.hero-click-layer{position:absolute;inset:0;z-index:3}.hero-light-sweep{position:absolute;z-index:4;top:-28%;left:-34%;width:23%;height:160%;transform:skewX(-17deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),rgba(255,255,255,.62),rgba(255,255,255,.16),transparent);filter:blur(2px);pointer-events:none;animation:heroSweep 7s ease-in-out infinite}.hero-arrow{background:rgba(5,72,51,.55);border-color:rgba(255,255,255,.55);backdrop-filter:blur(6px)}.hero-arrow:hover{background:rgba(11,111,80,.9)}.hero-term{background:rgba(255,255,255,.92);color:#0b684c;border:1px solid rgba(20,130,93,.14)}
@keyframes heroKenBurns{0%{transform:scale(1.02)}100%{transform:scale(1.085)}}@keyframes heroSweep{0%,16%{left:-34%;opacity:0}24%{opacity:.78}50%{left:116%;opacity:.55}58%,100%{left:116%;opacity:0}}

.public-hub{padding-top:42px;background:linear-gradient(180deg,#f5fbf8,#f3f7fa)}.public-hub-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.public-main-column{display:grid;gap:18px;min-width:0}.promo-module,.news-module,.calendar-module,.site-side-zone{background:#fff;border:1px solid #dbe9e2;border-radius:22px;box-shadow:0 10px 30px rgba(16,78,59,.06)}.promo-module{padding:18px}.module-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:13px}.module-title-row h2{margin:2px 0 0;color:#134c3b;font-size:1.35rem}.module-chip{display:inline-flex;gap:6px;align-items:center;border-radius:999px;padding:7px 10px;background:#edf8f3;color:#147354;font-size:.7rem;font-weight:800}.promo-stage{aspect-ratio:20/7;position:relative;border-radius:17px;overflow:hidden;background:#e8f3ee}.promo-slide{position:absolute;inset:0;opacity:0;transition:opacity .55s ease}.promo-slide.active{opacity:1}.promo-slide img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 5.6s ease}.promo-slide.active img{transform:scale(1.035)}.promo-slide>a{position:absolute;inset:0}.promo-arrow{position:absolute;z-index:4;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:rgba(5,82,59,.58);color:#fff;display:grid;place-items:center}.promo-arrow.prev{left:12px}.promo-arrow.next{right:12px}.promo-dots{position:absolute;z-index:5;left:50%;bottom:10px;transform:translateX(-50%);display:flex;gap:5px;padding:5px 7px;border-radius:999px;background:rgba(7,65,48,.28);backdrop-filter:blur(5px)}.promo-dots button{width:7px;height:7px;border-radius:999px;border:0;padding:0;background:rgba(255,255,255,.62)}.promo-dots button.active{width:22px;background:#fff}.news-module{border-top:4px solid #23a979}.calendar-module{border-top:4px solid #e4b43f}.calendar-source{font-size:.68rem;font-weight:800;color:#237258;background:#edf8f3;padding:7px 10px;border-radius:999px}.seven-day-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-day{position:relative;min-width:0;border:1px solid #e3ebe7;border-radius:15px;padding:10px 8px;background:#fbfdfc;min-height:132px}.calendar-day.today{background:linear-gradient(180deg,#e4f8ef,#f7fffb);border:2px solid #28a97b;box-shadow:0 8px 18px rgba(24,130,93,.1)}.calendar-day.has-event:not(.today){background:#fffaf0;border-color:#f0d693}.calendar-datebox{display:grid;place-items:center;text-align:center}.calendar-datebox small{font-size:.61rem;color:#81938a}.calendar-datebox b{font-size:1.45rem;line-height:1.05;color:#185e48}.calendar-datebox span{font-size:.6rem;color:#71877c}.calendar-day-copy{margin-top:8px;padding-top:8px;border-top:1px dashed #dce7e1;display:flex;flex-direction:column;gap:2px}.calendar-day-copy b{font-size:.7rem;line-height:1.35;color:#314d42;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.calendar-day-copy small{font-size:.6rem;color:#84968d;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.today-badge{position:absolute;right:6px;top:6px;background:#16845f;color:#fff;padding:3px 6px;border-radius:999px;font-size:.52rem;font-weight:800}.month-calendar{border:1px solid #e2ebe7;border-radius:16px;overflow:hidden}.month-weekdays,.month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.month-weekdays span{text-align:center;padding:8px;background:#edf7f3;font-size:.68rem;font-weight:800;color:#3d6857}.month-day{min-height:92px;border-top:1px solid #e8eeeb;border-right:1px solid #e8eeeb;padding:7px;background:#fff}.month-day:nth-child(7n){border-right:0}.month-day.empty{background:#f8faf9}.month-day.today{box-shadow:inset 0 0 0 2px #1b9a70;background:#effaf5}.month-day.has-event{background:#fff9e9}.month-day b{font-size:.72rem;color:#52675e}.month-day small{display:block;margin-top:6px;font-size:.58rem;line-height:1.3;color:#8b6815}

.site-side-zone{position:sticky;top:116px;padding:17px;border-top:4px solid #1b8d68}.side-zone-head>span{font-size:.62rem;font-weight:900;letter-spacing:.12em;color:#1b8d68}.side-zone-head h2{font-size:1.25rem;margin:3px 0;color:#164d3c}.side-zone-head p{font-size:.7rem;line-height:1.5;color:#819087;margin:0 0 13px}.side-link-list{display:grid;gap:8px}.side-link-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border-radius:14px;text-decoration:none;border:1px solid #e0ebe6;background:#f9fcfa;color:#2b493d;transition:.2s;overflow:hidden}.side-link-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(16,78,59,.1)}.side-link-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#e7f7f0;color:#147354;font-size:1.05rem}.side-link-copy{display:flex;min-width:0;flex-direction:column}.side-link-copy b{font-size:.77rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-link-copy small{font-size:.62rem;color:#84958d;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-link-card>i{font-size:.62rem;color:#9aaba3}.side-link-card.tone-blue .side-link-icon{background:#e4f0ff;color:#276dc0}.side-link-card.tone-gold .side-link-icon{background:#fff1d4;color:#b57a08}.side-link-card.tone-orange .side-link-icon{background:#ffebdf;color:#d36d2d}.side-link-card.tone-purple .side-link-icon{background:#f0e7ff;color:#7651bb}.side-link-card.tone-pink .side-link-icon{background:#ffe8ef;color:#be4d70}.side-link-card.with-image{grid-template-columns:82px minmax(0,1fr) auto;padding:8px}.side-link-image{width:82px;aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:#eef3f0}.side-link-image img{width:100%;height:100%;object-fit:cover}.side-portal-box{margin-top:13px;padding:14px;border-radius:16px;background:linear-gradient(135deg,#0c664b,#158767);color:#fff;display:grid;grid-template-columns:38px 1fr;gap:10px}.side-portal-box>span{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.14);display:grid;place-items:center}.side-portal-box b{font-size:.78rem}.side-portal-box small{display:block;color:#cce6dc;font-size:.61rem;line-height:1.4}.side-portal-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:7px}.side-portal-actions button{border:1px solid rgba(255,255,255,.2);background:#fff;color:#126047;border-radius:9px;padding:8px;font-weight:800;font-size:.66rem}.side-portal-actions button:last-child{background:#f4c958;color:#294536}

.site-content-page{padding:48px 0 70px;background:linear-gradient(180deg,#f0faf5,#f5f8fb);min-height:60vh}.content-breadcrumb{display:flex;gap:8px;align-items:center;font-size:.72rem;color:#789087;margin-bottom:12px}.content-breadcrumb a{color:#167657;font-weight:800}.content-breadcrumb>i{font-size:.55rem}.content-page-card{background:#fff;border:1px solid #dfe9e4;border-radius:24px;padding:32px;box-shadow:0 14px 38px rgba(14,77,58,.07);border-top:5px solid #16845f}.content-page-card h1{margin:6px 0 2px;color:#124f3c;font-size:2rem}.content-page-en{margin:0 0 22px;color:#8a9992}.content-page-body{font-size:.94rem;line-height:1.9;color:#40564d;white-space:normal}

.academics-section{background:linear-gradient(180deg,#fff,#f8fcfa)}.academic-card:nth-child(1){border-top:4px solid #23a979}.academic-card:nth-child(2){border-top:4px solid #4d91df}.academic-card:nth-child(3){border-top:4px solid #e7ad3e}.about-section{background:linear-gradient(135deg,#ecf7f2,#eef5fa)}.services-section{background:linear-gradient(180deg,#fff,#f5faf7)}

@media(max-width:1120px){.public-hub-grid{grid-template-columns:minmax(0,1fr) 290px}.seven-day-calendar{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){.public-hub-grid{grid-template-columns:1fr}.site-side-zone{position:static;top:auto}.seven-day-calendar{grid-template-columns:repeat(4,1fr)}.site-nav .nav-group{display:block;width:100%}.site-nav .nav-group>a{height:auto;align-items:flex-start!important;width:100%;padding:9px 13px!important}.nav-dropdown{position:static;transform:none!important;box-shadow:none;border:0;border-left:3px solid #d9eee5;border-radius:0;margin:0 7px 5px;padding:4px 0 4px 8px;display:none;opacity:1;visibility:visible;pointer-events:auto}.nav-group.open .nav-dropdown{display:block}.nav-group:hover .nav-dropdown{display:none}.nav-group.open:hover .nav-dropdown{display:block}}
@media(max-width:820px){.hero-stage{height:clamp(260px,56vw,410px);min-height:0}.hero-term{bottom:12px}.promo-stage{aspect-ratio:16/7}.public-hub{padding-top:30px}.content-page-card{padding:22px}.content-page-card h1{font-size:1.6rem}}
@media(max-width:620px){.seven-day-calendar{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:5px}.calendar-day{min-width:142px;scroll-snap-align:start}.promo-module,.news-module,.calendar-module,.site-side-zone{border-radius:18px}.promo-module{padding:13px}.promo-stage{aspect-ratio:16/8}.module-title-row{align-items:flex-start}.module-chip{display:none}.side-link-card.with-image{grid-template-columns:74px minmax(0,1fr) auto}.side-link-image{width:74px}.month-day{min-height:68px;padding:5px}.month-day small{font-size:.5rem}.hero-light-sweep{display:none}}


/* === P141 · Public home top-zone interaction refresh === */
.hero-stage{--hero-x:0px;--hero-y:0px}
.hero-slide:before{background-position:calc(50% + var(--hero-x)) calc(50% + var(--hero-y))}
.quickdock-live{grid-template-columns:repeat(6,1fr);overflow:visible;position:relative}
.quickdock-live .quickdock-item{position:relative;overflow:hidden;cursor:pointer;text-decoration:none}
.quickdock-live .quickdock-item::before{content:"";position:absolute;inset:-40% auto -40% -50%;width:34%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(20,145,110,.04),rgba(20,145,110,.18),transparent);transition:left .55s ease;pointer-events:none}
.quickdock-live .quickdock-item:hover::before{left:120%}
.quickdock-live .quickdock-item>i{transition:transform .28s ease,color .28s ease}
.quickdock-live .quickdock-item:hover>i{transform:translateY(-3px) scale(1.08);color:#0a7c5b}
.quickdock-live .quickdock-item em{margin-left:auto;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:#eef8f4;color:#17825f;font-style:normal;opacity:0;transform:translateX(-4px);transition:.2s}
.quickdock-live .quickdock-item:hover em,.quickdock-live .quickdock-item:focus-visible em{opacity:1;transform:none}
.quickdock-live .quickdock-item:nth-child(2)>i{color:#0d98a9}
.quickdock-live .quickdock-item:nth-child(3)>i{color:#2771c7}
.quickdock-live .quickdock-item:nth-child(4)>i{color:#14a59e}
.quickdock-live .quickdock-item:nth-child(5)>i{color:#d39116}
.quickdock-live .quickdock-item:nth-child(6)>i{color:#7b59bb}

.stats-grid-live{grid-template-columns:repeat(5,1fr)}
.stats-grid-live .stat-card{position:relative;width:100%;border:1px solid #dfe9e4;text-align:left;cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;overflow:hidden}
.stats-grid-live .stat-card::after{content:"";position:absolute;top:-65%;left:-50%;width:42%;height:230%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);opacity:0;transition:left .5s ease,opacity .2s}
.stats-grid-live .stat-card:hover,.stats-grid-live .stat-card:focus-visible{transform:translateY(-5px);box-shadow:0 14px 32px rgba(18,84,63,.1);border-color:#c9dfd5}
.stats-grid-live .stat-card:hover::after{left:120%;opacity:.8}
.stat-card.pink>span{background:#ffe8f0;color:#c84e75}
.stats-grid-live .stat-card div{min-width:0}
.stats-grid-live .stat-card small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-open-icon{margin-left:auto;color:#aec0b8;font-size:.68rem;transition:.2s}
.stats-grid-live .stat-card:hover .stat-open-icon{color:#17825f;transform:translate(2px,-2px)}

.news-heading{margin-bottom:12px}
.live-dot{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#eef8f4;color:#177252;font-size:.67rem;font-weight:800;white-space:nowrap}
.live-dot i{width:8px;height:8px;border-radius:50%;background:#27b67e;box-shadow:0 0 0 0 rgba(39,182,126,.35);animation:p141Pulse 2s infinite}
.news-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 16px}
.news-tabs button{border:1px solid #dfe9e4;background:#f6faf8;color:#5f756b;border-radius:999px;padding:8px 11px;font:inherit;font-size:.69rem;font-weight:800;display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:.2s}
.news-tabs button span{min-width:20px;height:20px;border-radius:999px;background:#e8f1ed;display:grid;place-items:center;font-size:.59rem}
.news-tabs button:hover{border-color:#b8d8ca;color:#166f52;transform:translateY(-1px)}
.news-tabs button.active{background:#0e7657;border-color:#0e7657;color:#fff;box-shadow:0 7px 18px rgba(14,118,87,.16)}
.news-tabs button.active span{background:rgba(255,255,255,.16);color:#fff}
.news-feed{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.news-feed-card{border:1px solid #e2ebe7;border-radius:16px;background:#fff;overflow:hidden;display:grid;grid-template-columns:116px minmax(0,1fr);min-width:0;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.news-feed-card[hidden]{display:none!important}
.news-feed-card:hover,.news-feed-card:focus-visible{transform:translateY(-3px);box-shadow:0 12px 26px rgba(14,83,61,.09);border-color:#c7ded3;outline:none}
.news-feed-card.is-featured{grid-column:1/-1;grid-template-columns:minmax(280px,1.05fr) minmax(0,.95fr);min-height:260px}
.news-feed-image{background:linear-gradient(135deg,#eaf6f1,#edf3f8);min-height:120px;overflow:hidden;position:relative}
.news-feed-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.news-feed-card:hover .news-feed-image img{transform:scale(1.035)}
.news-feed-image>span{position:absolute;inset:0;display:grid;place-items:center;color:#7aa99a;font-size:1.6rem}
.news-feed-copy{padding:13px;min-width:0;display:flex;flex-direction:column}
.news-feed-card.is-featured .news-feed-copy{padding:20px 22px;justify-content:center}
.news-feed-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.news-feed-meta time{font-size:.62rem;color:#85968e}
.news-type{border-radius:999px;padding:4px 7px;font-size:.57rem;font-weight:800;background:#e7f6ef;color:#167253}
.news-type.type-activity{background:#fff2d9;color:#a66d09}
.news-type.type-award{background:#fff0cf;color:#ad7408}
.news-type.type-announcement{background:#ffe7ec;color:#b64561}
.news-feed-copy h3{margin:7px 0 5px;color:#1b4537;font-size:.86rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-feed-card.is-featured h3{font-size:1.18rem;-webkit-line-clamp:3}
.news-feed-copy>p{margin:0;color:#6f8279;font-size:.69rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.news-feed-card.is-featured .news-feed-copy>p{-webkit-line-clamp:4;font-size:.76rem}
.news-feed-foot{margin-top:auto;padding-top:10px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.news-feed-foot small{color:#94a39c;font-size:.61rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.news-feed-foot>span{font-size:.64rem;font-weight:800;color:#167658;white-space:nowrap}
.news-empty-filter{padding:30px 16px;text-align:center;display:grid;place-items:center;gap:6px;color:#8a9c94}
.news-empty-filter i{font-size:1.8rem;color:#9fc1b4}
.news-empty-filter b{color:#4a6258}
.news-empty-filter span{font-size:.7rem}
@keyframes p141Pulse{70%{box-shadow:0 0 0 8px rgba(39,182,126,0)}100%{box-shadow:0 0 0 0 rgba(39,182,126,0)}}

.info-modal-card{width:min(760px,calc(100% - 28px));max-height:min(82vh,720px);overflow:auto;padding:24px}
.info-modal-head{display:flex;align-items:center;gap:12px;padding-right:36px;margin-bottom:16px}
.info-modal-head>span{width:50px;height:50px;border-radius:15px;background:#e4f6ee;color:#137555;display:grid;place-items:center;font-size:1.15rem}
.info-modal-head small{font-size:.62rem;color:#16815f;font-weight:800;letter-spacing:.08em}
.info-modal-head h2{margin:2px 0;color:#173f32;font-size:1.28rem}
.info-modal-head p{margin:0;color:#83958d;font-size:.68rem}
.info-total{padding:16px;border-radius:16px;background:linear-gradient(135deg,#0c6c4f,#15906b);color:#fff;display:flex;align-items:end;gap:10px;margin-bottom:12px}
.info-total b{font-size:2rem;line-height:1}.info-total span{font-size:.76rem;color:#d8eee6}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.info-grid.compact{grid-template-columns:repeat(4,1fr)}
.info-grid article{border:1px solid #e0e9e5;border-radius:14px;padding:13px;display:flex;flex-direction:column;gap:3px;background:#fbfdfc}
.info-grid article i{color:#178361;margin-bottom:4px}.info-grid article b{font-size:.95rem;color:#1d4839}.info-grid article span{font-size:.66rem;color:#82948c}
.info-list{border:1px solid #e0e9e5;border-radius:14px;overflow:hidden}
.info-list>div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #edf2ef;font-size:.75rem}
.info-list>div:last-child{border-bottom:0}.info-list span{color:#5e746b}.info-list b{color:#174f3d}
.info-action{margin-top:12px;border:0;border-radius:11px;background:#0f7959;color:#fff;padding:10px 14px;font-weight:800;font-size:.72rem;cursor:pointer}

.news-reader-card{width:min(820px,calc(100% - 28px));max-height:min(86vh,760px);overflow:auto;padding:0}
.news-reader-image{aspect-ratio:16/7;background:#edf4f1;overflow:hidden}
.news-reader-image img{width:100%;height:100%;object-fit:cover;display:block}
.news-reader-body{padding:24px}
.news-reader-meta{display:flex;align-items:center;gap:8px;color:#879990;font-size:.66rem}
.news-reader-meta span{padding:5px 8px;border-radius:999px;background:#e7f6ef;color:#167253;font-weight:800}
.news-reader-body h2{margin:10px 0 8px;font-size:1.45rem;color:#173f32;line-height:1.35}
.news-reader-body p{margin:0;color:#566c62;font-size:.84rem;line-height:1.8;white-space:pre-line}
.news-reader-body>small{display:block;margin-top:18px;padding-top:12px;border-top:1px solid #e8efeb;color:#84968d}

@media(max-width:1180px){
  .quickdock-live{grid-template-columns:repeat(3,1fr)}
  .quickdock-live>*:nth-child(3){border-right:0}
  .stats-grid-live{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:820px){
  .quickdock-live{grid-template-columns:repeat(2,1fr)}
  .quickdock-live>*:nth-child(3){border-right:1px solid #e7edf2}
  .quickdock-live>*:nth-child(even){border-right:0}
  .stats-grid-live{grid-template-columns:repeat(2,1fr)}
  .news-feed{grid-template-columns:1fr}
  .news-feed-card.is-featured{grid-column:auto;grid-template-columns:1fr;min-height:0}
  .news-feed-card.is-featured .news-feed-image{aspect-ratio:16/8}
  .info-grid,.info-grid.compact{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .quickdock-live{grid-template-columns:1fr 1fr}
  .quickdock-live .quickdock-item{padding:13px 9px;gap:8px}
  .quickdock-live .quickdock-item em{display:none}
  .stats-grid-live{grid-template-columns:1fr 1fr}
  .stats-grid-live .stat-card{padding:12px 10px}
  .stats-grid-live .stat-open-icon{display:none}
  .news-feed-card{grid-template-columns:92px minmax(0,1fr)}
  .news-tabs{gap:5px}.news-tabs button{padding:7px 9px}
  .live-dot{display:none}
  .info-grid,.info-grid.compact{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  .hero-light-sweep,.live-dot i{animation:none!important}
  .quickdock-live .quickdock-item::before,.stats-grid-live .stat-card::after{display:none}
}


/* === P142 · Multi-page + motion system === */
.site-header .site-topbar,.site-header .mainbar-inner,.school-logo,.school-logo img,.school-brand-copy strong,.portal-btn{transition:all .28s ease}
.site-header.is-compact .site-topbar{max-height:0;overflow:hidden;border:0}
.site-header.is-compact .mainbar-inner{min-height:66px}
.site-header.is-compact .school-logo{width:46px;height:46px;border-radius:13px}.site-header.is-compact .school-logo img{width:38px;height:38px}.site-header.is-compact .school-brand-copy strong{font-size:1rem}.site-header.is-compact .portal-btn{padding:9px 12px}
.reveal-section,.motion-card{opacity:0;transition-property:opacity,transform;transition-duration:.62s;transition-timing-function:cubic-bezier(.2,.75,.25,1)}
.motion-card{transition-delay:var(--motion-delay,0ms)}
.reveal-rise .reveal-section,.reveal-rise .motion-card{transform:translateY(22px)}
.reveal-fade .reveal-section,.reveal-fade .motion-card{transform:none}
.reveal-scale .reveal-section,.reveal-scale .motion-card{transform:scale(.975)}
.reveal-section.in,.motion-card.in{opacity:1;transform:none}
.motion-subtle .reveal-section,.motion-subtle .motion-card{transition-duration:.42s}.motion-subtle.reveal-rise .reveal-section,.motion-subtle.reveal-rise .motion-card{transform:translateY(12px)}
.motion-lively .reveal-section,.motion-lively .motion-card{transition-duration:.72s}.motion-lively.reveal-rise .reveal-section,.motion-lively.reveal-rise .motion-card{transform:translateY(30px)}

.quickdock-item.tone-green>i{color:#16845f!important}.quickdock-item.tone-teal>i{color:#0d98a9!important}.quickdock-item.tone-blue>i{color:#2771c7!important}.quickdock-item.tone-gold>i{color:#d39116!important}.quickdock-item.tone-purple>i{color:#7b59bb!important}.quickdock-item.tone-orange>i{color:#dc741e!important}

.public-inner-page{padding:0 0 70px;background:#f5f8f6;min-height:520px}.inner-page-hero{position:relative;background:linear-gradient(135deg,#eaf7f1,#f8fbfa);border-bottom:1px solid #dbe9e2;overflow:hidden}.inner-page-hero.has-image:before{content:"";position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(7,58,43,.92),rgba(7,58,43,.64) 48%,rgba(7,58,43,.14)),var(--page-image);background-size:cover;background-position:center}.inner-page-hero-inner{position:relative;z-index:1;min-height:250px;padding-top:28px;padding-bottom:34px;display:flex;flex-direction:column;justify-content:flex-end}.inner-page-hero.has-image{color:#fff}.inner-page-hero.has-image .content-breadcrumb,.inner-page-hero.has-image .content-breadcrumb a,.inner-page-hero.has-image .content-breadcrumb span,.inner-page-hero.has-image .section-kicker,.inner-page-hero.has-image .content-page-en,.inner-page-hero.has-image .inner-page-summary{color:#fff}.inner-page-title h1{margin:5px 0 3px;font-size:clamp(2rem,4vw,3.4rem);line-height:1.12;color:#123e30}.inner-page-hero.has-image .inner-page-title h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.18)}.inner-page-summary{max-width:760px;margin:12px 0 0;font-size:.95rem;color:#587066;line-height:1.75}.content-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.72rem;color:#70877d;margin-bottom:24px}.content-breadcrumb a{color:#19795b;font-weight:700}.content-breadcrumb i{font-size:.58rem}.inner-page-grid{padding-top:28px;display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px;align-items:start}.inner-page-grid.is-wide{grid-template-columns:1fr}.inner-page-grid.is-wide .inner-related{display:none}.content-page-card{background:#fff;border:1px solid #dfeae5;border-radius:22px;padding:30px;box-shadow:0 10px 30px rgba(15,81,59,.055)}.content-page-body{font-size:.92rem;line-height:1.95;color:#3f594e;white-space:normal}.content-empty{min-height:240px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center;color:#82978e}.content-empty i{font-size:2.2rem;color:#9ebdaf}.content-empty b{color:#365d4d;font-size:1rem}.content-empty span{font-size:.76rem}.inner-related{position:sticky;top:92px;background:#fff;border:1px solid #dfeae5;border-radius:20px;padding:14px;box-shadow:0 9px 26px rgba(15,81,59,.05)}.inner-related-head{padding:4px 6px 10px;display:flex;flex-direction:column}.inner-related-head small{font-size:.58rem;letter-spacing:.12em;color:#1d8a66;font-weight:800}.inner-related-head b{color:#214f3d}.inner-related>a{display:grid;grid-template-columns:38px minmax(0,1fr) 20px;gap:10px;align-items:center;padding:10px;border-radius:13px;transition:.2s}.inner-related>a:hover{background:#eef8f4;transform:translateX(3px)}.inner-related>a>span{width:36px;height:36px;border-radius:10px;background:#e5f6ef;color:#16845f;display:grid;place-items:center}.inner-related>a>div{min-width:0;display:flex;flex-direction:column}.inner-related>a b{font-size:.76rem;color:#244d3d}.inner-related>a small{font-size:.6rem;color:#8b9c94}.inner-related>a>i{font-size:.65rem;color:#9eb2a8}
.nav-dropdown{transform-origin:top center}.nav-group:hover .nav-dropdown,.nav-group:focus-within .nav-dropdown{animation:p142MenuIn .2s ease both}@keyframes p142MenuIn{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:900px){.inner-page-grid{grid-template-columns:1fr}.inner-related{position:static}.site-header.is-compact .site-topbar{max-height:none}.site-header.is-compact .mainbar-inner{min-height:72px}}
@media(prefers-reduced-motion:reduce){.reveal-section,.motion-card{opacity:1!important;transform:none!important;transition:none!important}.site-header *{transition:none!important}.nav-group:hover .nav-dropdown,.nav-group:focus-within .nav-dropdown{animation:none!important}}
/* P142 quickdock stays fluid when admin adds/removes shortcuts */
.quickdock-live{grid-template-columns:repeat(auto-fit,minmax(155px,1fr))}

/* === P143 · Mobile-first public modules + App Center + Office E-Service + Hall of Pride === */
section[id]{scroll-margin-top:104px}
.mobile-portal-actions{display:none}

/* Promo slider now uses the same 1600×560 (20:7) canvas as the main Hero. */
.promo-stage{aspect-ratio:20/7}
.promo-slide img{width:100%;height:100%;object-fit:cover;display:block}

/* App Center */
.app-center-section{background:linear-gradient(180deg,#f8fbfa,#f1f7f4)}
.app-center-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.app-center-card{position:relative;min-width:0;display:grid;grid-template-columns:52px minmax(0,1fr) 22px;gap:12px;align-items:center;padding:16px;border:1px solid #dce9e3;border-radius:18px;background:#fff;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease;overflow:hidden}
.app-center-card:before{content:"";position:absolute;inset:auto -25% -80% auto;width:130px;height:130px;border-radius:50%;background:currentColor;opacity:.035;pointer-events:none}
.app-center-card:hover,.app-center-card:focus-visible{transform:translateY(-4px);box-shadow:0 14px 30px rgba(14,77,58,.09);border-color:#c8ded4;outline:none}
.app-center-card.featured{border-color:#d7c07a;background:linear-gradient(135deg,#fffdf6,#fff)}
.app-center-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:1.22rem;background:#e7f3ff;color:#286cc0}
.app-center-copy{display:flex;flex-direction:column;min-width:0}.app-center-copy b{font-size:.86rem;color:#173f31}.app-center-copy small{font-size:.66rem;color:#809189;line-height:1.45;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.app-center-copy em{font-size:.58rem;font-style:normal;font-weight:800;color:#1b7c5d;margin-top:5px}.app-center-card>i{font-size:.65rem;color:#93a59c}
.app-center-card.tone-green .app-center-icon{background:#e4f6ee;color:#15845f}.app-center-card.tone-teal .app-center-icon{background:#def7f5;color:#118d8d}.app-center-card.tone-blue .app-center-icon{background:#e6f0ff;color:#236bc1}.app-center-card.tone-gold .app-center-icon{background:#fff2d3;color:#b67b0a}.app-center-card.tone-orange .app-center-icon{background:#ffeadc;color:#d36e28}.app-center-card.tone-purple .app-center-icon{background:#efe7ff;color:#7450bb}.app-center-card.tone-pink .app-center-icon{background:#ffe7ef;color:#c14b70}.app-center-card.tone-navy .app-center-icon{background:#e8eef5;color:#0b3155}

/* Office / external E-Service directory */
.office-services-section{background:#f3f6fb;padding-top:28px}
.office-services-panel{background:#fff;border:1px solid #dce5ed;border-radius:24px;padding:24px;box-shadow:0 14px 34px rgba(19,48,70,.055)}
.office-services-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:24px;align-items:end}.office-services-head h2{margin:3px 0 2px;font-size:1.55rem;color:var(--navy)}.office-services-head p{margin:4px 0 0;color:#7b8d9d;font-size:.78rem}
.office-search{height:44px;border:1px solid #cfdde8;border-radius:999px;display:flex;align-items:center;gap:9px;padding:0 14px;background:#f9fbfd;color:#6e8498}.office-search input{border:0;outline:0;background:transparent;width:100%;min-width:0;font-size:.78rem;color:#25445d}
.office-service-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-top:17px}.office-service-tabs button{border:1px solid #cddbe7;border-radius:999px;background:#fff;color:#385b76;padding:8px 13px;font-size:.68rem;font-weight:800}.office-service-tabs button.active{background:#0d4f82;border-color:#0d4f82;color:#fff}
.office-services-meta{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin:10px 0 9px;font-size:.66rem;color:#768b9c}.office-services-meta a{font-weight:800;color:#1d6ca5}
.office-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.office-service-card{display:grid;grid-template-columns:48px minmax(0,1fr) 16px;gap:11px;align-items:start;padding:13px;border:1px solid #dce5ed;border-radius:15px;background:#fff;min-width:0;transition:.22s ease}.office-service-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(12,54,88,.08);border-color:#bfcfdd}.office-service-card[hidden]{display:none!important}
.office-service-icon{width:48px;height:48px;border-radius:14px;background:#e7f1ff;color:#2670c8;display:grid;place-items:center;font-size:1.1rem}.office-service-copy{display:flex;flex-direction:column;min-width:0}.office-service-copy b{font-size:.78rem;color:#163a58;line-height:1.3}.office-service-copy small{font-size:.62rem;color:#7c8e9c;line-height:1.4;margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.office-service-copy em{font-size:.56rem;font-style:normal;color:#2371b2;font-weight:800;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.office-service-card>i{font-size:.58rem;color:#95a9ba}.office-star{color:#e8a518;font-size:.65rem}.office-service-card.tone-green .office-service-icon{background:#e4f6ee;color:#16835f}.office-service-card.tone-teal .office-service-icon{background:#dff7f5;color:#138f8f}.office-service-card.tone-gold .office-service-icon{background:#fff2d8;color:#b77906}.office-service-card.tone-orange .office-service-icon{background:#ffebdf;color:#ce6b29}.office-service-card.tone-purple .office-service-icon{background:#efe8ff;color:#7351b8}.office-service-card.tone-pink .office-service-icon{background:#ffe8ef;color:#be4d70}.office-service-card.tone-navy .office-service-icon{background:#e7edf4;color:#0b3155}
.office-show-all{margin-top:12px;border:0;background:#edf4fb;color:#154a75;border-radius:12px;padding:10px 14px;font-weight:800;font-size:.7rem}.office-external-note{margin-top:12px;padding-top:10px;border-top:1px solid #e8eef3;color:#8698a6;font-size:.61rem;display:flex;gap:7px;align-items:center}

/* Hall of Pride */
.pride-section{background:linear-gradient(135deg,#083d2f 0%,#0b3155 100%);color:#fff}.pride-shell{padding-top:4px}.pride-head{display:flex;justify-content:space-between;gap:22px;align-items:flex-end;margin-bottom:18px}.pride-head>div:first-child>span{font-size:.67rem;color:#ffd46d;font-weight:800}.pride-head h2{font-size:1.7rem;margin:5px 0 0}.pride-head p{margin:3px 0 0;color:#bfd5cf;font-size:.78rem}.pride-tabs{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.pride-tabs button{border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#eef7f4;border-radius:999px;padding:8px 11px;font-size:.65rem;font-weight:800}.pride-tabs button b{margin-left:4px;background:rgba(255,255,255,.12);padding:2px 6px;border-radius:999px}.pride-tabs button.active{background:#f2c54d;color:#173b31;border-color:#f2c54d}
.pride-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pride-card{background:#fff;color:#1c3d31;border-radius:18px;overflow:hidden;display:grid;grid-template-columns:42% minmax(0,1fr);min-height:210px;cursor:pointer;transition:.25s ease}.pride-card:hover,.pride-card:focus-visible{transform:translateY(-4px);box-shadow:0 16px 35px rgba(0,0,0,.18);outline:none}.pride-card[hidden]{display:none!important}.pride-card.featured{grid-column:1/-1;min-height:290px;grid-template-columns:44% minmax(0,1fr)}.pride-media{background:#e9f1ee;overflow:hidden;position:relative}.pride-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}.pride-card:hover .pride-media img{transform:scale(1.035)}.pride-media>span{position:absolute;inset:0;display:grid;place-items:center;font-size:2.2rem;color:#d5a82f}.pride-copy{padding:18px;display:flex;flex-direction:column}.pride-badge{align-self:flex-start;background:#e6f4ef;color:#137252;border-radius:999px;padding:5px 9px;font-size:.59rem;font-weight:800}.pride-copy time{font-size:.59rem;color:#8da099;margin-top:8px}.pride-copy h3{font-size:1rem;line-height:1.45;margin:6px 0;color:#153d30}.pride-card.featured h3{font-size:1.25rem}.pride-copy>p{font-size:.68rem;line-height:1.6;color:#6c7f77;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pride-copy .news-feed-foot{margin-top:auto}

/* Animation should never make content disappear if JS/observer is unavailable. */
body:not(.motion-js) .reveal-section,body:not(.motion-js) .motion-card{opacity:1!important;transform:none!important}

@media(max-width:1080px){
  .app-center-grid,.office-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:820px){
  section[id]{scroll-margin-top:78px}
  .site-nav{z-index:700;max-height:calc(100dvh - 86px);overflow:auto;overscroll-behavior:contain}
  .mobile-portal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:8px 6px 4px;border-top:1px solid #e6ece9;margin-top:4px}
  .mobile-portal{min-height:44px;border:0;border-radius:11px;display:flex;align-items:center;justify-content:center;gap:7px;font-weight:800;font-size:.74rem}.mobile-portal.teacher{background:var(--navy);color:#fff}.mobile-portal.student{background:var(--gold);color:#1d3d31}
  .hero-stage{height:auto!important;min-height:0!important;aspect-ratio:20/7}.hero-term{font-size:.62rem;padding:6px 9px}.hero-dots{bottom:12px}.hero-slide{background-position:center center}
  .promo-stage{aspect-ratio:20/7}.promo-arrow{width:38px;height:38px}
  .app-center-grid,.office-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office-services-head{grid-template-columns:1fr}.office-search{max-width:none}.office-services-meta{justify-content:space-between}
  .pride-head{align-items:flex-start;flex-direction:column}.pride-tabs{justify-content:flex-start}.pride-grid{grid-template-columns:1fr}.pride-card.featured{grid-column:auto}
}
@media(max-width:560px){
  .site-shell{width:calc(100% - 16px)}
  .mainbar-inner{gap:8px}.school-brand{gap:8px}.school-logo{width:44px;height:44px;border-radius:12px}.school-logo img{width:37px;height:37px}.school-brand-copy strong{max-width:235px;font-size:.82rem}.mobile-menu-btn{width:42px;height:42px}
  .site-nav{left:8px;right:8px;top:64px;border-radius:16px;padding:7px}
  .hero-stage{aspect-ratio:16/9!important;min-height:220px!important}.hero-slide{background-position:center}.hero-term{right:8px;bottom:8px}.hero-dots{left:12px;translate:0 0;bottom:10px}.hero-dots button{width:6px;height:6px}.hero-dots button.active{width:20px}
  .quickdock-wrap{margin-top:-12px}.quickdock-live{grid-template-columns:1fr 1fr}.quickdock-live .quickdock-item{min-height:74px;padding:11px 8px}.quickdock-live .quickdock-item>i{font-size:1.15rem}.quickdock b{font-size:.7rem}.quickdock small{display:block;font-size:.55rem}.quickdock-live .quickdock-item:nth-child(even){border-right:0}
  .stats-section{padding-top:18px}.stats-grid-live{grid-template-columns:1fr 1fr}.stats-grid-live .stat-card{min-height:92px}.stats-grid-live .stat-card small{white-space:normal;line-height:1.25}
  .promo-module{padding:10px}.promo-stage{aspect-ratio:16/9}.promo-arrow{width:34px;height:34px}.promo-dots{bottom:6px}
  .public-hub{padding-top:24px}.section-panel,.calendar-panel,.office-services-panel{padding:14px}.section-heading{margin-bottom:13px}.section-heading h2{font-size:1.18rem}.section-heading p{font-size:.7rem}
  .news-feed-card,.news-feed-card.is-featured{grid-template-columns:90px minmax(0,1fr)!important;min-height:108px}.news-feed-card.is-featured .news-feed-image{aspect-ratio:auto}.news-feed-card.is-featured .news-feed-copy{padding:12px}.news-feed-card.is-featured h3{font-size:.86rem;-webkit-line-clamp:2}.news-feed-card.is-featured .news-feed-copy>p{font-size:.66rem;-webkit-line-clamp:2}
  .seven-day-calendar{padding-bottom:8px}.calendar-day{min-width:132px}
  .app-center-grid{grid-template-columns:1fr 1fr;gap:8px}.app-center-card{grid-template-columns:42px minmax(0,1fr);padding:11px;gap:9px;min-height:96px}.app-center-card>i{display:none}.app-center-icon{width:42px;height:42px;border-radius:12px;font-size:1rem}.app-center-copy b{font-size:.72rem}.app-center-copy small{font-size:.58rem}.app-center-copy em{font-size:.52rem}
  .office-services-section{padding-top:16px}.office-services-panel{border-radius:18px}.office-services-head h2{font-size:1.15rem}.office-service-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:5px;scrollbar-width:none}.office-service-tabs::-webkit-scrollbar{display:none}.office-service-tabs button{white-space:nowrap;flex:0 0 auto}.office-service-grid{grid-template-columns:1fr}.office-service-card{grid-template-columns:44px minmax(0,1fr) 14px}.office-service-icon{width:44px;height:44px}.office-services-meta{font-size:.6rem}
  .pride-section{padding:40px 0}.pride-head h2{font-size:1.35rem}.pride-tabs{overflow-x:auto;flex-wrap:nowrap;width:100%;padding-bottom:5px;scrollbar-width:none}.pride-tabs::-webkit-scrollbar{display:none}.pride-tabs button{white-space:nowrap;flex:0 0 auto}.pride-card,.pride-card.featured{grid-template-columns:1fr;min-height:0}.pride-media{aspect-ratio:16/9}.pride-copy{padding:13px}.pride-card.featured h3{font-size:1rem}
  .site-footer{font-size:.8rem}
}

/* === P144 · 1440px public layout + richer interaction + Hall of Pride === */
:root{--site-max:1440px}
.site-shell{width:min(var(--site-max),calc(100% - 48px));margin-inline:auto}
.mainbar-inner{min-height:92px;gap:30px}.school-brand{min-width:340px}.site-nav{flex:1;justify-content:center;margin-left:0}.site-nav a{min-width:88px}.site-login-actions{margin-left:auto}.hero-term{right:max(24px,calc((100% - var(--site-max))/2))}
.hero-stage{height:clamp(390px,31vw,560px)}
.quickdock{border-radius:20px}.quickdock-live{grid-template-columns:repeat(6,minmax(0,1fr))}.quickdock-live .quickdock-item{min-height:82px}
.stats-grid-live{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.stat-card{min-height:106px}
.public-hub-grid{grid-template-columns:minmax(0,1fr) 360px;gap:22px}.public-main-column{gap:22px}.promo-module,.news-module,.calendar-module,.site-side-zone{border-radius:24px}.section-panel,.calendar-panel{padding:26px}.site-section{padding:64px 0}.section-heading h2{font-size:1.62rem}.section-heading p{font-size:.86rem}.module-title-row h2{font-size:1.48rem}
.office-services-panel{padding:26px}.app-center-grid{gap:14px}.office-service-grid{gap:12px}.office-service-card{padding:15px}.app-center-card{padding:15px}

/* Interaction language: every clickable surface should visibly respond. */
:where(.hero-btn,.quickdock-item,.stat-card,.news-feed-card,.academic-card,.service-card,.side-link-card,.app-center-card,.office-service-card,.pride-card,.cta-yellow,.cta-blue,.section-heading>a,.news-feed-foot>span){transition:transform .24s cubic-bezier(.2,.75,.25,1),box-shadow .24s ease,border-color .24s ease,background-color .24s ease,color .24s ease}
:where(.quickdock-item,.stat-card,.news-feed-card,.academic-card,.service-card,.side-link-card,.app-center-card,.office-service-card,.pride-card):hover{transform:translateY(-5px);box-shadow:0 16px 34px rgba(17,74,56,.10)}
:where(.quickdock-item,.stat-card,.news-feed-card,.academic-card,.service-card,.side-link-card,.app-center-card,.office-service-card,.pride-card):active{transform:translateY(-1px) scale(.992)}
:where(.quickdock-item,.stat-card,.news-feed-card,.academic-card,.service-card,.side-link-card,.app-center-card,.office-service-card,.pride-card,.hero-btn,.portal-btn):focus-visible{outline:3px solid rgba(33,144,102,.22);outline-offset:3px}
:where(.quickdock-item,.stat-card,.app-center-card,.office-service-card) i{transition:transform .24s ease,color .24s ease}
:where(.quickdock-item,.stat-card,.app-center-card,.office-service-card):hover>i,:where(.quickdock-item,.stat-card,.app-center-card,.office-service-card):hover .app-center-icon i,:where(.quickdock-item,.stat-card,.app-center-card,.office-service-card):hover .office-service-icon i{transform:translateY(-2px) scale(1.06)}
.section-heading>a:hover,.news-feed-foot>span:hover{transform:translateX(4px)}
.section-kicker{display:inline-flex;align-items:center;gap:8px}.section-kicker:after{content:"";width:22px;height:2px;border-radius:999px;background:currentColor;opacity:.28;transition:width .28s ease}.reveal-section.in .section-kicker:after{width:38px}
.portal-btn,.hero-btn{position:relative;overflow:hidden}.portal-btn:after,.hero-btn:after{content:"";position:absolute;inset:-60% auto -60% -45%;width:30%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transition:left .5s ease;pointer-events:none}.portal-btn:hover:after,.hero-btn:hover:after{left:125%}

/* Hall of Pride follows the same wide, premium block rhythm as the reference site. */
.pride-section{background:transparent;padding-top:34px;padding-bottom:64px;color:#fff}.pride-shell{background:linear-gradient(135deg,#083d2f 0%,#0b3155 72%,#0d416e 100%);padding:34px;border-radius:30px;box-shadow:0 22px 52px rgba(8,49,85,.16);overflow:hidden;position:relative}.pride-shell:before{content:"";position:absolute;width:380px;height:380px;border-radius:50%;right:-150px;top:-190px;border:54px solid rgba(255,255,255,.035);pointer-events:none}.pride-head,.pride-grid,.pride-empty{position:relative;z-index:1}.pride-head{margin-bottom:22px}.pride-head h2{font-size:2rem}.pride-head p{font-size:.84rem}.pride-tabs button{padding:9px 14px;font-size:.69rem;transition:.22s}.pride-tabs button:hover{background:rgba(255,255,255,.12);transform:translateY(-2px)}.pride-tabs button.active{box-shadow:0 8px 20px rgba(245,197,77,.18)}
.pride-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.pride-card{display:grid;grid-template-columns:1fr;grid-template-rows:190px minmax(0,1fr);min-height:390px;border-radius:20px}.pride-card.featured{grid-column:span 2;grid-template-columns:48% minmax(0,1fr);grid-template-rows:1fr;min-height:390px}.pride-media{min-height:0}.pride-media>em{position:absolute;right:12px;top:12px;z-index:2;font-style:normal;border-radius:999px;padding:6px 9px;background:rgba(5,48,35,.82);color:#ffd35f;font-size:.58rem;font-weight:900;backdrop-filter:blur(6px)}.pride-copy{padding:19px}.pride-card.featured .pride-copy{padding:24px}.pride-card.featured h3{font-size:1.42rem;line-height:1.42}.pride-recipient{font-size:.78rem;color:#405f53;margin:-1px 0 9px}.pride-meta{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:0 0 10px}.pride-meta span,.pride-meta b{border-radius:999px;padding:5px 8px;font-size:.59rem}.pride-meta span{background:#eaf3fb;color:#275c83}.pride-meta b{background:#fff2cf;color:#95640b}.pride-copy>p{-webkit-line-clamp:4}.pride-empty{padding:48px 20px;border:1px dashed rgba(255,255,255,.25);border-radius:20px;text-align:center;display:grid;place-items:center;gap:6px;background:rgba(255,255,255,.04)}.pride-empty i{font-size:2rem;color:#ffd15c}.pride-empty b{font-size:1rem}.pride-empty span{font-size:.72rem;color:#c4d8d2}

@media(max-width:1320px){.site-shell{width:min(var(--site-max),calc(100% - 32px))}.school-brand{min-width:290px}.mainbar-inner{gap:18px}.site-nav a{min-width:74px;padding-inline:8px}.public-hub-grid{grid-template-columns:minmax(0,1fr) 320px}.quickdock-live{grid-template-columns:repeat(3,1fr)}.stats-grid-live{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1080px){.site-shell{width:calc(100% - 28px)}.pride-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pride-card.featured{grid-column:1/-1}}
@media(max-width:820px){.site-shell{width:calc(100% - 24px)}.site-section{padding:48px 0}.mainbar-inner{min-height:72px}.quickdock-live{grid-template-columns:repeat(2,1fr)}.stats-grid-live{grid-template-columns:repeat(2,1fr)}.public-hub-grid{grid-template-columns:1fr}.pride-shell{padding:22px;border-radius:24px}.pride-grid{grid-template-columns:1fr}.pride-card,.pride-card.featured{grid-column:auto;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);min-height:0}.pride-media{aspect-ratio:16/9}.pride-head h2{font-size:1.55rem}}
@media(max-width:560px){.site-shell{width:calc(100% - 16px)}.site-section{padding:40px 0}.section-panel,.calendar-panel,.office-services-panel{padding:14px}.pride-section{padding:24px 0 42px}.pride-shell{padding:16px;border-radius:20px}.pride-head{gap:13px}.pride-head h2{font-size:1.35rem}.pride-card{border-radius:16px}.pride-copy,.pride-card.featured .pride-copy{padding:13px}.pride-card.featured h3{font-size:1rem}.pride-recipient{font-size:.68rem}}
@media(prefers-reduced-motion:reduce){.portal-btn:after,.hero-btn:after{display:none}.reveal-section.in .section-kicker:after{width:22px}}

/* === P145 · Mobile layout hardening ===
   P144 widened desktop to 1440px. These final rules intentionally come last so
   desktop min-width/grid declarations can never override the mobile layout. */
html,body{max-width:100%;}
img,svg,video,canvas{max-width:100%;}

@media(max-width:820px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important;}
  body.school-site-body{min-width:0!important;}
  .site-header,.site-mainbar,.news-ticker,main,.site-footer{width:100%;max-width:100%;min-width:0;}
  .site-shell{width:100%!important;max-width:100%!important;margin-inline:0!important;padding-inline:12px;min-width:0!important;}

  /* Header: the school name owns the remaining width; hamburger never pushes the page wider. */
  .mainbar-inner{width:100%;min-width:0;min-height:68px!important;display:grid!important;grid-template-columns:minmax(0,1fr) 44px;gap:8px!important;align-items:center;}
  .school-brand{min-width:0!important;width:auto!important;max-width:100%;gap:8px!important;overflow:hidden;}
  .school-logo{width:44px!important;height:44px!important;min-width:44px;flex:0 0 44px;border-radius:12px;}
  .school-logo img{width:36px!important;height:36px!important;}
  .school-brand-copy{min-width:0!important;max-width:100%;overflow:hidden;}
  .school-brand-copy strong{display:block;max-width:100%!important;font-size:.88rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .school-brand-copy small{display:none!important;}
  .mobile-menu-btn{display:grid!important;place-items:center;width:44px!important;height:44px!important;margin:0!important;justify-self:end;flex:0 0 44px;}
  .site-login-actions{display:none!important;}
  .site-nav{position:fixed!important;top:76px!important;left:10px!important;right:10px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 88px)!important;margin:0!important;padding:8px!important;overflow-y:auto!important;overflow-x:hidden!important;border-radius:16px!important;align-self:auto!important;z-index:900!important;}
  .site-nav .nav-group,.site-nav .nav-group>a,.site-nav>a{width:100%!important;min-width:0!important;max-width:100%!important;}
  .site-nav .nav-group>a,.site-nav>a{padding:10px 12px!important;min-height:48px!important;align-items:flex-start!important;justify-content:center!important;}
  .nav-dropdown{width:100%!important;min-width:0!important;max-width:100%!important;}
  .mobile-portal-actions{grid-template-columns:1fr 1fr;min-width:0;}
  .mobile-portal{min-width:0;padding-inline:8px;}

  /* Hero and promo: no element may keep the 1440px desktop width on a phone. */
  .hero-section,.hero-stage,.hero-slide{width:100%!important;max-width:100%!important;min-width:0!important;}
  .hero-stage{height:auto!important;min-height:210px!important;aspect-ratio:16/9!important;}
  .hero-slide:before{inset:-2%;background-position:center center!important;}
  .hero-term{right:10px!important;bottom:9px!important;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .hero-dots{left:12px!important;bottom:10px!important;translate:0 0!important;max-width:50%;overflow:hidden;}

  /* Quick access: fixed two-column mobile grid, not a shrunk desktop row. */
  .quickdock-wrap{width:100%;max-width:100%;margin-top:-12px!important;overflow:visible;}
  .quickdock-wrap>.site-shell{padding-inline:12px;}
  .quickdock,.quickdock-live{width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;overflow:hidden!important;border-radius:16px!important;}
  .quickdock-live .quickdock-item{width:100%!important;min-width:0!important;max-width:100%!important;min-height:76px!important;padding:11px 9px!important;gap:8px!important;justify-content:flex-start!important;border-right:1px solid #e7edf2;}
  .quickdock-live .quickdock-item:nth-child(even){border-right:0!important;}
  .quickdock-live .quickdock-item:nth-last-child(-n+2){border-bottom:0;}
  .quickdock-live .quickdock-item>i{font-size:1.12rem!important;flex:0 0 22px;}
  .quickdock-live .quickdock-item span{min-width:0!important;overflow:hidden;}
  .quickdock-live .quickdock-item b,.quickdock-live .quickdock-item small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .quickdock-live .quickdock-item b{font-size:.72rem!important;}
  .quickdock-live .quickdock-item small{display:block!important;font-size:.55rem!important;}
  .quickdock-live .quickdock-item em{display:none!important;}

  /* Snapshot cards: two usable columns; text is allowed to wrap instead of forcing page width. */
  .stats-section{width:100%;max-width:100%;padding:17px 0 4px!important;overflow:hidden;}
  .stats-grid,.stats-grid-live{width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;}
  .stats-grid-live .stat-card{width:100%!important;max-width:100%!important;min-width:0!important;min-height:92px!important;padding:11px 10px!important;gap:8px!important;overflow:hidden;}
  .stats-grid-live .stat-card>span{width:42px;height:42px;min-width:42px;border-radius:12px;font-size:1rem;}
  .stats-grid-live .stat-card div{min-width:0!important;grid-template-columns:1fr!important;display:grid;}
  .stats-grid-live .stat-card b{font-size:1.25rem;}
  .stats-grid-live .stat-card strong{font-size:.69rem;line-height:1.25;overflow-wrap:anywhere;}
  .stats-grid-live .stat-card small{font-size:.55rem;white-space:normal!important;line-height:1.25;overflow-wrap:anywhere;}
  .stats-grid-live .stat-open-icon{display:none!important;}

  /* Main modules */
  .public-hub{width:100%;max-width:100%;padding-top:22px!important;overflow:hidden;}
  .public-hub-grid{width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important;}
  .public-main-column,.promo-module,.news-module,.calendar-module,.site-side-zone,.section-panel,.calendar-panel,.office-services-panel{width:100%!important;max-width:100%!important;min-width:0!important;}
  .promo-module,.news-module,.calendar-module,.site-side-zone{border-radius:18px!important;}
  .promo-module,.section-panel,.calendar-panel,.office-services-panel{padding:13px!important;}
  .promo-stage{width:100%!important;max-width:100%!important;aspect-ratio:16/9!important;}
  .promo-slide,.promo-slide img{width:100%!important;max-width:100%!important;}
  .promo-slide img{object-fit:cover!important;}
  .module-title-row,.section-heading,.office-services-head,.pride-head{min-width:0;max-width:100%;}
  .module-title-row{align-items:flex-start!important;flex-wrap:wrap;}
  .module-title-row h2,.section-heading h2,.office-services-head h2{overflow-wrap:anywhere;}
  .module-chip{display:none!important;}

  /* News tabs scroll locally; the whole page must never scroll sideways. */
  .news-tabs{width:100%;max-width:100%;display:flex!important;flex-wrap:nowrap!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden;padding:0 0 7px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .news-tabs::-webkit-scrollbar{display:none;}
  .news-tabs button{flex:0 0 auto;white-space:nowrap;scroll-snap-align:start;}
  .news-feed{width:100%!important;max-width:100%!important;min-width:0!important;display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:9px!important;}
  .news-feed-card,.news-feed-card.is-featured{width:100%!important;max-width:100%!important;min-width:0!important;grid-column:auto!important;grid-template-columns:84px minmax(0,1fr)!important;min-height:106px!important;overflow:hidden!important;}
  .news-feed-image,.news-feed-card.is-featured .news-feed-image{width:84px!important;min-width:84px!important;height:100%!important;min-height:106px!important;aspect-ratio:auto!important;}
  .news-feed-copy,.news-feed-card.is-featured .news-feed-copy{min-width:0!important;padding:11px!important;justify-content:flex-start!important;overflow:hidden;}
  .news-feed-copy h3,.news-feed-card.is-featured h3{font-size:.84rem!important;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2!important;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
  .news-feed-copy>p,.news-feed-card.is-featured .news-feed-copy>p{font-size:.64rem!important;-webkit-line-clamp:2!important;overflow-wrap:anywhere;}
  .news-feed-foot{min-width:0;gap:6px;}
  .news-feed-foot small{min-width:0;max-width:65%;}

  /* Seven-day calendar: local swipe area like the reference site. */
  .seven-day-calendar{width:100%!important;max-width:100%!important;display:grid!important;grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(132px,42vw);gap:8px;overflow-x:auto!important;overflow-y:hidden;padding:0 0 8px!important;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
  .seven-day-calendar::-webkit-scrollbar{display:none;}
  .calendar-day{width:auto!important;min-width:0!important;scroll-snap-align:start;}
  .month-calendar{width:100%;max-width:100%;overflow-x:auto;}
  .month-weekdays,.month-grid{min-width:560px;}

  /* Side links, app center, office services and Hall of Pride stack cleanly. */
  .site-side-zone{position:static!important;top:auto!important;}
  .side-link-card,.side-link-card.with-image{max-width:100%;min-width:0;}
  .side-link-copy{min-width:0;}
  .app-center-grid,.office-service-grid{width:100%!important;max-width:100%!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;}
  .app-center-card,.office-service-card{width:100%!important;max-width:100%!important;min-width:0!important;}
  .office-services-head{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;}
  .office-search{width:100%!important;max-width:none!important;}
  .office-service-tabs,.pride-tabs{width:100%;max-width:100%;overflow-x:auto!important;overflow-y:hidden;display:flex!important;flex-wrap:nowrap!important;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .office-service-tabs::-webkit-scrollbar,.pride-tabs::-webkit-scrollbar{display:none;}
  .office-service-tabs button,.pride-tabs button{flex:0 0 auto;white-space:nowrap;}
  .pride-section{width:100%;max-width:100%;padding:30px 0 40px!important;overflow:hidden;}
  .pride-shell{width:100%!important;max-width:100%!important;padding:16px!important;border-radius:20px!important;overflow:hidden!important;}
  .pride-head{align-items:flex-start!important;flex-direction:column!important;gap:12px!important;}
  .pride-grid{width:100%!important;max-width:100%!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important;}
  .pride-card,.pride-card.featured{width:100%!important;max-width:100%!important;min-width:0!important;grid-column:auto!important;grid-template-columns:minmax(0,1fr)!important;grid-template-rows:auto minmax(0,1fr)!important;min-height:0!important;}
  .pride-media{width:100%;aspect-ratio:16/9!important;}
  .pride-copy,.pride-card.featured .pride-copy{min-width:0;padding:13px!important;}

  /* Footer and modals */
  .footer-grid,.footer-bottom,.cta-strip>.site-shell{max-width:100%;min-width:0;}
  .site-modal-card,.news-reader-card{width:calc(100% - 24px)!important;max-width:calc(100% - 24px)!important;}
}

@media(max-width:480px){
  .site-shell{padding-inline:10px!important;}
  .mainbar-inner{grid-template-columns:minmax(0,1fr) 42px!important;min-height:66px!important;}
  .school-logo{width:42px!important;height:42px!important;min-width:42px!important;flex-basis:42px!important;}
  .school-logo img{width:35px!important;height:35px!important;}
  .school-brand-copy strong{font-size:.82rem!important;}
  .mobile-menu-btn{width:42px!important;height:42px!important;}
  .site-nav{top:72px!important;left:8px!important;right:8px!important;}
  .hero-stage{min-height:205px!important;aspect-ratio:16/9!important;}
  .quickdock-wrap>.site-shell{padding-inline:8px!important;}
  .quickdock-live .quickdock-item{min-height:72px!important;padding:10px 7px!important;}
  .quickdock-live .quickdock-item b{font-size:.68rem!important;}
  .quickdock-live .quickdock-item small{font-size:.52rem!important;}
  .stats-grid-live .stat-card{min-height:88px!important;padding:10px 8px!important;}
  .stats-grid-live .stat-card>span{width:38px;height:38px;min-width:38px;font-size:.92rem;}
  .stats-grid-live .stat-card b{font-size:1.15rem;}
  .promo-stage{aspect-ratio:4/3!important;}
  .promo-arrow{width:34px!important;height:34px!important;}
  .section-kicker{font-size:.6rem;}
  .section-heading h2,.module-title-row h2{font-size:1.18rem!important;}
  .news-feed-card,.news-feed-card.is-featured{grid-template-columns:78px minmax(0,1fr)!important;min-height:100px!important;}
  .news-feed-image,.news-feed-card.is-featured .news-feed-image{width:78px!important;min-width:78px!important;min-height:100px!important;}
  .seven-day-calendar{grid-auto-columns:minmax(128px,72vw)!important;}
  .calendar-day{min-height:126px;}
  .side-link-card.with-image{grid-template-columns:68px minmax(0,1fr) 16px!important;}
  .side-link-image{width:68px!important;}
  .pride-head h2{font-size:1.3rem!important;}
}
@media(max-width:820px){body.mobile-menu-open{overflow:hidden!important}.site-nav.show{display:flex!important}}

/* === P146: full-width promo + wider news + compact expandable quick links === */
.public-hub-stack{display:grid;gap:22px;min-width:0}
.public-hub-stack>.promo-module{width:100%;min-width:0}
.public-content-row{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:22px;align-items:start;min-width:0}
.public-content-row>.news-module{min-width:0}
.public-content-row>.site-side-zone{width:292px;max-width:292px;min-width:0;position:sticky;top:116px}
.public-hub-stack>.calendar-module{width:100%;min-width:0}
.public-hub-stack .promo-stage{aspect-ratio:20/7;width:100%}
.public-hub-stack .promo-slide img{object-fit:cover}
.public-content-row .news-feed{grid-template-columns:repeat(2,minmax(0,1fr))}
.public-content-row .news-feed-card.is-featured{grid-column:1/-1;grid-template-columns:minmax(320px,1.1fr) minmax(0,.9fr)}
.site-side-zone .side-zone-head p{margin-bottom:10px}
.site-side-zone .side-link-list{gap:7px}
.site-side-zone .side-link-list.is-collapsed [data-quick-link-item]:nth-child(n+6){display:none}
.site-side-zone .side-link-card{grid-template-columns:38px minmax(0,1fr) 14px;padding:9px;gap:8px;border-radius:12px}
.site-side-zone .side-link-icon{width:38px;height:38px;border-radius:10px;font-size:.95rem}
.site-side-zone .side-link-card.with-image{grid-template-columns:68px minmax(0,1fr) 14px;padding:7px}
.site-side-zone .side-link-image{width:68px}
.site-side-zone .side-link-copy b{font-size:.73rem}
.site-side-zone .side-link-copy small{font-size:.59rem}
.side-link-toggle{width:100%;margin-top:9px;border:1px solid #d9e9e2;background:#f4faf7;color:#17694f;border-radius:11px;min-height:38px;padding:8px 10px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:.68rem;font-weight:800;cursor:pointer;transition:.2s}
.side-link-toggle:hover{background:#eaf6f0;transform:translateY(-1px)}
.side-link-toggle i{transition:transform .2s ease}
.side-link-toggle[aria-expanded="true"] i{transform:rotate(180deg)}
.site-side-zone .side-portal-box{margin-top:10px}

@media(max-width:1100px){
  .public-content-row{grid-template-columns:minmax(0,1fr) 270px;gap:16px}
  .public-content-row>.site-side-zone{width:270px;max-width:270px}
  .public-content-row .news-feed-card.is-featured{grid-template-columns:minmax(260px,.95fr) minmax(0,1.05fr)}
}
@media(max-width:900px){
  .public-hub-stack{gap:14px}
  .public-content-row{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  .public-content-row>.site-side-zone{width:100%!important;max-width:100%!important;position:static!important;top:auto!important}
  .public-content-row .news-feed{grid-template-columns:minmax(0,1fr)}
  .public-content-row .news-feed-card.is-featured{grid-column:auto;grid-template-columns:104px minmax(0,1fr)}
  .public-hub-stack .promo-stage{aspect-ratio:20/7!important}
}
@media(max-width:620px){
  .public-hub-stack{gap:12px!important}
  .public-hub-stack>.promo-module{padding:11px!important}
  .public-hub-stack .promo-stage{aspect-ratio:20/7!important;min-height:0!important}
  .public-hub-stack .promo-slide img{object-fit:cover!important}
  .public-content-row .news-feed-card,.public-content-row .news-feed-card.is-featured{grid-template-columns:82px minmax(0,1fr)!important}
  .site-side-zone .side-link-list{display:grid;grid-template-columns:1fr 1fr;gap:7px}
  .site-side-zone .side-link-list.is-collapsed [data-quick-link-item]:nth-child(n+5){display:none}
  .site-side-zone .side-link-card,.site-side-zone .side-link-card.with-image{grid-template-columns:36px minmax(0,1fr)!important;min-height:66px;padding:8px!important}
  .site-side-zone .side-link-card>i{display:none}
  .site-side-zone .side-link-icon{width:36px;height:36px}
  .site-side-zone .side-link-image{width:36px!important;height:36px;aspect-ratio:1/1}
  .site-side-zone .side-link-copy b{font-size:.68rem;white-space:normal;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .site-side-zone .side-link-copy small{font-size:.54rem}
  .side-link-toggle{min-height:40px}
}
@media(max-width:430px){
  .site-side-zone .side-link-list{grid-template-columns:1fr}
  .site-side-zone .side-link-list.is-collapsed [data-quick-link-item]:nth-child(n+5){display:none}
}

/* === P147 · Calendar + Quick Access balance / dark-green theme === */
:root{
  --navy:#0b4d38;
  --navy-2:#0e6549;
  --blue:#187b59;
  --blue-2:#1c9a6f;
  --teal:#138a6c;
  --green:#0f6e50;
  --gold:#e3b744;
  --gold-2:#f2cd6a;
  --ink:#173e32;
  --muted:#687f76;
  --line:#d9e7e1;
  --soft:#f3f8f5;
  --shadow:0 18px 48px rgba(10,67,48,.10);
}
body{background:#f2f7f4;color:var(--ink)}
.site-progress{background:linear-gradient(90deg,#0d664a,#1c9a70,#e1b746)}
.site-topbar{background:#073e2f}
.school-brand-copy strong,.section-heading h2,.modal-brand h2{color:#0b4d38}
.site-nav a:hover,.site-nav a.active{background:#edf7f2;border-bottom-color:#16815e;color:#0b4d38}
.portal-btn.teacher{background:#0b4d38}.portal-btn.student{background:#f0c64f;color:#244a3b}
.hero-overlay{background:linear-gradient(90deg,rgba(4,48,35,.9) 0%,rgba(4,48,35,.70) 38%,rgba(4,48,35,.27) 68%,rgba(4,48,35,.06) 100%)}
.hero-btn.secondary{background:rgba(13,112,79,.88)}
.news-ticker{background:#f7fbf8;border-color:#dbe9e2}.ticker-label{background:#0f7656;color:#fff}.ticker-track span:after{color:#b7222c}
.quickdock-live .quickdock-item:hover>i{color:#0c694c}
.stats-grid-live .stat-card:hover,.stats-grid-live .stat-card:focus-visible{border-color:#bbd8ca;box-shadow:0 14px 32px rgba(11,77,56,.11)}
.public-hub{background:linear-gradient(180deg,#f0f8f4,#f4f7f5)}
.news-module{border-top-color:#11845f}.calendar-module{border-top-color:#0d674b}.promo-module{border-top:4px solid #0b5d44}
.section-kicker{color:#0d7b59}.module-title-row h2,.side-zone-head h2{color:#0c573f}
.module-chip,.calendar-source{background:#eaf6f0;color:#0d7253}

/* News + calendar share one left column. Quick links continues down the right column. */
.public-content-row{display:grid!important;grid-template-columns:minmax(0,1fr) 300px!important;gap:18px!important;align-items:start!important}
.public-main-column{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
.public-main-column>.news-module,.public-main-column>.calendar-module{width:100%;min-width:0}
.public-content-row>.site-side-zone{width:300px!important;max-width:300px!important;position:relative!important;top:auto!important;align-self:stretch!important}
.site-side-zone{border-top-color:#0c674b;background:#fff}
.site-side-zone .side-zone-head>span{color:#0c7554}
.site-side-zone .side-link-list{gap:8px}
.site-side-zone .side-link-card{border-color:#d9e8e1;background:#fbfdfc}
.site-side-zone .side-link-card:hover{border-color:#b8d8c9;background:#f1f9f5;box-shadow:0 10px 24px rgba(10,86,60,.10)}
.side-portal-box{background:linear-gradient(135deg,#074733,#107455)}

/* Desktop: let links naturally continue downward; collapse only on smaller screens. */
@media(min-width:901px){
  .site-side-zone .side-link-list.is-collapsed [data-quick-link-item]{display:grid!important}
  .site-side-zone .side-link-toggle{display:none!important}
}

/* Compact monthly calendar inspired by the teacher dashboard. */
.calendar-module{padding:20px}
.calendar-heading{margin-bottom:14px}
.calendar-heading h2{color:#0b523c}
.calendar-compact-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(230px,.85fr);gap:14px;align-items:stretch}
.mini-month-card{border:1px solid #dce9e3;border-radius:17px;background:#fff;overflow:hidden}
.mini-month-title{min-height:50px;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(135deg,#f0f8f4,#fbfdfc);border-bottom:1px solid #e3eee9}
.mini-month-title>span{display:flex;align-items:center;gap:7px;font-size:.82rem;font-weight:900;color:#0a6248}
.mini-month-title>span i{color:#0d8a62}
.mini-month-title>small{font-size:.59rem;color:#7b9086}
.mini-month-weekdays,.mini-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.mini-month-weekdays span{text-align:center;padding:6px 2px;font-size:.62rem;font-weight:900;color:#567166;background:#f7faf8}
.mini-day{position:relative;min-width:0;min-height:38px;border:0;border-top:1px solid #edf2ef;border-right:1px solid #edf2ef;background:#fff;display:grid;place-items:center;color:#365549;padding:2px;font:inherit}
.mini-day:nth-child(7n){border-right:0}
button.mini-day{cursor:pointer;transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
button.mini-day:hover,button.mini-day:focus-visible{background:#eaf7f1;box-shadow:inset 0 0 0 2px #5bb794;z-index:2;outline:0}
.mini-day b{font-size:.72rem;line-height:1}
.mini-day.empty{background:#fafcfb}
.mini-day.today{background:#dff3e9;color:#07543d;box-shadow:inset 0 0 0 2px #15805d;font-weight:900}
.mini-day.holiday:not(.today){color:#ad2931;background:#fff8f8}
.mini-day.has-event i{position:absolute;bottom:4px;width:5px;height:5px;border-radius:50%;background:#0e875f;box-shadow:0 0 0 2px #e4f5ed}
.mini-day.has-event.holiday i{background:#b5232d;box-shadow:0 0 0 2px #fde8e9}
.calendar-event-preview{border:1px solid #dceae3;border-radius:17px;background:linear-gradient(145deg,#0b553f,#0f7253);color:#fff;padding:16px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-content:start;min-height:100%}
.calendar-preview-icon{width:42px;height:42px;border-radius:13px;background:rgba(255,255,255,.13);display:grid;place-items:center;color:#e6c459;font-size:1.05rem}
.calendar-event-preview>div{min-width:0}.calendar-event-preview small{color:#cfe5db;font-size:.62rem}.calendar-event-preview h3{margin:3px 0 5px;font-size:.94rem;line-height:1.35;color:#fff}.calendar-event-preview p{margin:0 0 9px;color:#dfede7;font-size:.68rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.calendar-event-preview>div>span{display:inline-flex;border-radius:999px;background:rgba(255,255,255,.12);padding:4px 8px;font-size:.56rem;color:#fff}
.calendar-event-preview.is-updating{animation:calDetail .25s ease}
@keyframes calDetail{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
.calendar-seven-label{margin:13px 0 7px;display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-seven-label b{font-size:.76rem;color:#0b5a42}.calendar-seven-label span{font-size:.61rem;color:#7b8e85}
.calendar-week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
.calendar-week-day{position:relative;min-width:0;border:1px solid #dde9e3;background:#fbfdfc;border-radius:12px;min-height:68px;padding:7px 4px;display:grid;place-items:center;align-content:center;gap:1px;color:#476157;transition:.18s;font:inherit}
.calendar-week-day small{font-size:.56rem;color:#7b8e85}.calendar-week-day b{font-size:1.02rem;line-height:1;color:#0d654a}.calendar-week-day span{font-size:.54rem;color:#809188}
.calendar-week-day.today{border-color:#16825f;background:#e6f5ee;box-shadow:inset 0 0 0 1px #16825f}
.calendar-week-day.holiday:not(.today){background:#fff7f7;border-color:#f0d4d6}.calendar-week-day.holiday:not(.today) b{color:#aa2930}
.calendar-week-day.has-event{cursor:pointer}.calendar-week-day.has-event:hover,.calendar-week-day.has-event:focus-visible{transform:translateY(-2px);border-color:#61ae90;box-shadow:0 7px 16px rgba(11,91,64,.10);outline:0}.calendar-week-day.has-event i{position:absolute;right:7px;top:7px;width:6px;height:6px;border-radius:50%;background:#0d825d}

/* Keep the general visual language green first; use red only for warning/holiday/announcement accents. */
.news-tabs button.active{background:#0d7252!important;border-color:#0d7252!important;color:#fff!important}
.live-dot{color:#0d7554!important;background:#edf8f3!important}.live-dot i{background:#16a36f!important}
.news-type.type-announcement{background:#fdebed!important;color:#af2933!important}
.site-footer{background:#073b2d!important}.footer-bottom{border-color:rgba(255,255,255,.12)!important}

@media(max-width:1120px){
  .public-content-row{grid-template-columns:minmax(0,1fr) 280px!important}
  .public-content-row>.site-side-zone{width:280px!important;max-width:280px!important}
  .calendar-compact-grid{grid-template-columns:minmax(0,1fr) 220px}
}
@media(max-width:900px){
  .public-content-row{grid-template-columns:minmax(0,1fr)!important}
  .public-content-row>.site-side-zone{width:100%!important;max-width:100%!important}
  .site-side-zone .side-link-toggle{display:flex!important}
  .site-side-zone .side-link-list.is-collapsed [data-quick-link-item]:nth-child(n+5){display:none!important}
  .calendar-compact-grid{grid-template-columns:minmax(0,1fr) minmax(210px,.65fr)}
}
@media(max-width:700px){
  .calendar-module{padding:14px}
  .calendar-compact-grid{grid-template-columns:1fr}
  .calendar-event-preview{min-height:auto;grid-template-columns:38px minmax(0,1fr);padding:12px}
  .calendar-preview-icon{width:38px;height:38px}
  .mini-month-title{min-height:46px}.mini-month-title>small{display:none}
  .mini-day{min-height:36px}.mini-day b{font-size:.68rem}
  .calendar-week-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:5px;scrollbar-width:thin}
  .calendar-week-day{flex:0 0 76px;min-width:76px;scroll-snap-align:start}
  .calendar-seven-label{align-items:flex-end}.calendar-seven-label span{text-align:right}
}
@media(max-width:430px){
  .calendar-heading .calendar-source{display:none}
  .calendar-heading h2{font-size:1.3rem}
  .calendar-seven-label{display:block}.calendar-seven-label span{display:block;text-align:left;margin-top:2px}
}


/* P148 — natural quick-link height + clean Hall of Pride */
.public-content-row>.site-side-zone{
  align-self:start!important;
  height:auto!important;
  min-height:0!important;
}
.side-portal-box{display:none!important}
.mini-month-title{justify-content:flex-start!important}
.calendar-event-preview p[hidden]{display:none!important}

/* Hall of Pride now follows Academics and uses a clean white/green surface — no shaded/gradient block. */
.pride-section{
  background:#fff!important;
  color:var(--ink)!important;
  padding-top:24px!important;
  padding-bottom:54px!important;
}
.pride-shell{
  position:relative;
  background:#fff!important;
  border:1px solid #d8e8e1!important;
  border-top:4px solid #0f7656!important;
  border-radius:24px!important;
  padding:26px!important;
  box-shadow:none!important;
}
.pride-shell:before{display:none!important}
.pride-head>div:first-child>span{color:#0f7656!important}
.pride-head h2{color:#0b4d38!important}
.pride-head p{color:#6c8178!important}
.pride-tabs button{
  border:1px solid #d5e6de!important;
  background:#fff!important;
  color:#365a4d!important;
  box-shadow:none!important;
}
.pride-tabs button b{background:#edf7f2!important;color:#0e6f51!important}
.pride-tabs button:hover{background:#f3faf6!important;border-color:#b9d7ca!important;box-shadow:none!important}
.pride-tabs button.active{
  background:#0f7656!important;
  border-color:#0f7656!important;
  color:#fff!important;
  box-shadow:none!important;
}
.pride-tabs button.active b{background:rgba(255,255,255,.16)!important;color:#fff!important}
.pride-card{
  border:1px solid #dce8e2!important;
  box-shadow:none!important;
}
.pride-card:hover,.pride-card:focus-visible{
  border-color:#acd0c0!important;
  box-shadow:none!important;
}
.pride-media{background:#f2f7f4!important}
.pride-media>em{background:#0b5b43!important;color:#fff2bd!important;box-shadow:none!important}
.pride-empty{
  background:#fff!important;
  border:1px dashed #c8ddd3!important;
  color:#234c3d!important;
}
.pride-empty i{color:#b98515!important}
.pride-empty span{color:#71877e!important}

@media(max-width:820px){
  .pride-section{padding-top:18px!important;padding-bottom:42px!important}
  .pride-shell{padding:18px!important}
}
@media(max-width:560px){
  .pride-shell{padding:14px!important;border-radius:18px!important}
}

/* === P149 · Reference-inspired public interaction layer ===
   Recreates the proportions and interaction language of the reference school portal
   with this school's own green identity, content, and data. */
:root{
  --site-max:1440px;
  --school-green:#0b5b43;
  --school-green-2:#0f7656;
  --school-green-3:#15936a;
  --school-cream:#f7faf8;
  --school-red:#b82b34;
}
.site-shell{width:min(var(--site-max),calc(100% - 48px))}
.site-header{box-shadow:0 6px 24px rgba(8,61,44,.07)}
.site-mainbar{border-bottom:1px solid #e4ede9}
.mainbar-inner{gap:18px}
.site-search-trigger{flex:0 0 188px;height:42px;border:1px solid #dbe8e2;background:#f8fbf9;color:#6d8178;border-radius:999px;padding:0 10px 0 13px;display:flex;align-items:center;gap:8px;transition:.2s;white-space:nowrap}
.site-search-trigger i{color:#0e7756}.site-search-trigger span{font-size:.7rem;overflow:hidden;text-overflow:ellipsis}.site-search-trigger kbd{margin-left:auto;border:1px solid #d4e2dc;background:#fff;border-radius:6px;padding:2px 5px;font-size:.52rem;color:#71867d;box-shadow:0 1px 2px rgba(0,0,0,.03)}
.site-search-trigger:hover,.site-search-trigger:focus-visible{border-color:#9bc8b6;background:#fff;box-shadow:0 7px 18px rgba(9,87,61,.08);outline:0}
.site-login-actions{flex:0 0 auto}

/* Wider, calmer mega menus like a modern institutional site. */
.nav-group.is-mega .nav-dropdown{min-width:520px;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:12px}
.nav-group.is-mega .nav-dropdown>a{border:1px solid transparent!important;padding:12px 13px!important}
.nav-group.is-mega .nav-dropdown>a:hover{border-color:#dcebe4!important;background:#f2f9f5!important;transform:translateY(-1px)}
.nav-dropdown>a span i{width:22px;height:22px;border-radius:7px;background:#eaf6f0;display:inline-grid;place-items:center;font-size:.65rem}

/* Section headings use a subtle rule and stronger institutional hierarchy. */
.section-kicker{display:flex!important;align-items:center;gap:10px;width:max-content;max-width:100%}
.section-kicker:after{content:"";width:44px;height:2px;border-radius:99px;background:#b9d9cd}
.section-heading h2,.module-title-row h2,.side-zone-head h2{letter-spacing:-.02em}
.site-section{scroll-margin-top:112px}

/* Calendar defaults to today's information, even on ordinary days. */
.calendar-event-preview.is-today{background:linear-gradient(145deg,#0b6046,#0d7655)}
.calendar-today-chip{margin-top:8px;gap:5px;align-items:center!important}
.calendar-preview-icon i{transition:transform .25s ease,opacity .25s ease}
.calendar-event-preview.is-updating .calendar-preview-icon i{transform:scale(1.12) rotate(-4deg)}
.mini-day.selected,.calendar-week-day.selected{box-shadow:inset 0 0 0 2px #16815e!important;background:#e4f5ed!important;color:#07543d!important}
button.mini-day:not(.has-event){cursor:pointer}
.calendar-week-day{cursor:pointer}

/* Search overlay: Ctrl+K, touch-friendly and entirely local to the current page. */
.site-search-modal{position:fixed;inset:0;z-index:2400;background:rgba(5,31,23,.48);backdrop-filter:blur(7px);display:none;align-items:flex-start;justify-content:center;padding:10vh 18px 24px}
.site-search-modal.show{display:flex}
.site-search-card{width:min(760px,100%);max-height:min(76vh,720px);overflow:hidden;background:#fff;border:1px solid #dce9e3;border-radius:24px;box-shadow:0 28px 80px rgba(5,48,34,.24);animation:p149SearchIn .2s ease}
@keyframes p149SearchIn{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
.site-search-head{height:64px;display:flex;align-items:center;gap:12px;padding:0 17px;border-bottom:1px solid #e5eeea}
.site-search-head>i{color:#0e7656}.site-search-head input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:.96rem;color:#173e32}.site-search-head input::placeholder{color:#9aaba4}
.site-search-head kbd{border:1px solid #d9e6e0;background:#f7faf8;color:#6f847a;border-radius:7px;padding:3px 7px;font-size:.56rem}
.site-search-hint{padding:10px 17px 8px;color:#8a9b94;font-size:.64rem}
.site-search-results{padding:6px 10px 12px;max-height:55vh;overflow:auto;display:grid;gap:5px}
.site-search-result{width:100%;border:0;background:#fff;border-radius:13px;padding:11px 12px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;color:#234b3d;transition:.16s}
.site-search-result:hover,.site-search-result:focus-visible{background:#eef8f3;outline:0}.site-search-result>span:first-child{width:38px;height:38px;border-radius:11px;background:#e8f6ef;color:#0e7656;display:grid;place-items:center}.site-search-result strong{display:block;font-size:.77rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.site-search-result small{display:block;color:#82958c;font-size:.6rem;margin-top:2px}.site-search-result>i{font-size:.62rem;color:#9cafA6}
.site-search-empty{padding:28px 18px;text-align:center;color:#80938a;display:grid;place-items:center;gap:7px}.site-search-empty i{font-size:1.5rem;color:#8ab6a5}.site-search-empty b{color:#456257}

/* Floating utility rail, modeled after the reference site's accessibility controls. */
.site-tools{position:fixed;z-index:720;right:18px;bottom:24px;display:flex;flex-direction:column;gap:8px}
.site-tools button{width:42px;height:42px;border-radius:50%;border:1px solid #d9e6e0;background:#fff;color:#0b6248;display:grid;place-items:center;box-shadow:0 8px 22px rgba(8,58,42,.12);transition:.18s;font-weight:800}
.site-tools button:hover,.site-tools button:focus-visible{transform:translateY(-2px);background:#0d7656;color:#fff;border-color:#0d7656;outline:0}.site-tools button span{font-size:.67rem}
.site-tools [data-scroll-top]{opacity:0;pointer-events:none;transform:translateY(8px)}.site-tools [data-scroll-top].show{opacity:1;pointer-events:auto;transform:none}

/* Polished motion details that remain restrained for a school site. */
.quickdock-item,.stat-card,.academic-card,.app-center-card,.office-service-card,.side-link-card,.pride-card{will-change:transform}
.quickdock-item:active,.stat-card:active,.academic-card:active,.app-center-card:active,.office-service-card:active,.side-link-card:active{transform:translateY(0) scale(.985)!important}
.ticker-track:hover>div{animation-play-state:paused}
.promo-slide img,.hero-slide{will-change:transform,opacity}

@media(max-width:1180px){
  .site-search-trigger{flex-basis:44px;width:44px;padding:0;justify-content:center;border-radius:13px}.site-search-trigger span,.site-search-trigger kbd{display:none}
  .nav-group.is-mega .nav-dropdown{min-width:460px}
}
@media(max-width:900px){
  .site-shell{width:min(100% - 28px,var(--site-max))}
  .site-search-trigger{order:2;margin-left:auto}.mobile-menu-btn{order:3;margin-left:0}.site-nav{order:4}
  .nav-group.is-mega .nav-dropdown{min-width:0;display:none;grid-template-columns:1fr}.nav-group.is-mega.open .nav-dropdown{display:grid}
  .site-tools{right:11px;bottom:18px}.site-tools button{width:40px;height:40px}
}
@media(max-width:560px){
  .site-shell{width:calc(100% - 24px)}
  .site-search-trigger{width:42px;height:42px;flex-basis:42px}
  .site-search-modal{padding:8vh 10px 14px}.site-search-card{border-radius:18px}.site-search-head{height:58px;padding:0 13px}.site-search-head input{font-size:.88rem}.site-search-hint{padding-inline:13px}.site-search-results{padding-inline:7px}
  .site-tools{right:9px;bottom:12px;gap:6px}.site-tools button{width:38px;height:38px}
  .calendar-event-preview h3{font-size:.9rem}.calendar-event-preview p{font-size:.66rem;-webkit-line-clamp:3}
}
@media(prefers-reduced-motion:reduce){.site-search-card{animation:none}.site-tools button,.site-search-result{transition:none!important}}

/* P150 — compact site search + consistent live hover feedback */
@media (min-width:1081px){
  .site-mainbar .site-shell.mainbar-inner{
    grid-template-columns:minmax(300px,1fr) auto minmax(300px,1fr)!important;
  }
  .site-mainbar .site-login-actions{
    display:flex!important;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    min-width:0;
  }
  .site-mainbar .site-search-trigger{
    flex:0 0 112px!important;
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
    height:38px!important;
    margin:0!important;
    padding:0 12px!important;
    justify-content:center!important;
    border-radius:11px!important;
    background:#f7fbf9!important;
    border:1px solid #d5e6de!important;
    color:#315c4c!important;
    gap:7px!important;
  }
  .site-mainbar .site-search-trigger span{display:inline!important;font-size:.73rem!important;font-weight:700;overflow:visible!important}
  .site-mainbar .site-search-trigger kbd{display:none!important}
}
@media (min-width:1081px) and (max-width:1380px){
  .site-mainbar .site-search-trigger{
    flex-basis:38px!important;width:38px!important;min-width:38px!important;max-width:38px!important;padding:0!important;
  }
  .site-mainbar .site-search-trigger span{display:none!important}
}

/* Every interactive surface should feel alive, but never jump enough to disturb layout. */
@media (hover:hover) and (pointer:fine){
  :where(
    .site-nav a,
    .nav-dropdown a,
    .portal-btn,
    .site-search-trigger,
    .hero-btn,
    .hero-arrow,
    .quickdock-item,
    .stat-card,
    .news-tabs button,
    .news-filter-tabs button,
    .news-card,
    .featured-news,
    .news-mini-list article,
    .promo-arrow,
    .side-link-card,
    .side-link-toggle,
    .academic-card,
    .app-center-card,
    .office-service-card,
    .external-filter-btn,
    .pride-tabs button,
    .pride-card,
    .mini-day,
    .calendar-week-day,
    .calendar-event-preview,
    .related-links a,
    .service-card,
    .gallery-card,
    .site-tools button,
    .footer-links a,
    .cta-btn,
    [data-open-news]
  ){
    transition:transform .20s ease,box-shadow .20s ease,border-color .20s ease,background-color .20s ease,color .20s ease,opacity .20s ease!important;
    transform-origin:center;
  }
  :where(
    .portal-btn,
    .site-search-trigger,
    .hero-btn,
    .quickdock-item,
    .stat-card,
    .news-tabs button,
    .news-filter-tabs button,
    .side-link-card,
    .academic-card,
    .app-center-card,
    .office-service-card,
    .pride-tabs button,
    .pride-card,
    .related-links a,
    .service-card,
    .gallery-card,
    .cta-btn,
    [data-open-news]
  ):hover{
    transform:translateY(-3px)!important;
  }
  :where(.site-nav a,.nav-dropdown a,.news-mini-list article,.mini-day,.calendar-week-day,.site-tools button):hover{
    transform:translateY(-2px)!important;
  }
  :where(.hero-arrow,.promo-arrow):hover{
    transform:scale(1.08)!important;
  }
  :where(
    .portal-btn,
    .site-search-trigger,
    .hero-btn,
    .quickdock-item,
    .stat-card,
    .side-link-card,
    .academic-card,
    .app-center-card,
    .office-service-card,
    .pride-card,
    .service-card,
    .gallery-card,
    [data-open-news]
  ):hover{
    box-shadow:0 12px 26px rgba(7,79,55,.11)!important;
  }
  :where(a,button):hover i.fa-arrow-right,
  :where(a,button):hover i.fa-chevron-right,
  :where(a,button):hover i.fa-arrow-up-right-from-square{
    transform:translateX(4px);
  }
  :where(a,button) i.fa-arrow-right,
  :where(a,button) i.fa-chevron-right,
  :where(a,button) i.fa-arrow-up-right-from-square{
    transition:transform .20s ease;
  }
}

@media(max-width:820px){
  /* Mobile uses the floating search button; keep the header uncluttered. */
  .site-mainbar .site-login-actions{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  :where(a,button,[role="button"]){transform:none!important}
}


/* =========================================================
   P152 · Public typography readability
   - Larger / stronger public navigation and card labels
   - Darker moving news ticker text
   ========================================================= */

/* Top navigation: easier to read without making the header taller. */
.site-nav > a,
.site-nav .nav-group > a{
  font-size:.96rem;
  font-weight:800;
  letter-spacing:.005em;
}
.site-nav > a small,
.site-nav .nav-group > a small{
  font-size:.69rem;
  font-weight:600;
  color:#667a70;
}
.nav-dropdown > a span{
  font-size:.87rem;
  font-weight:800;
  color:#173f31;
}
.nav-dropdown > a small{
  font-size:.67rem;
  font-weight:500;
  color:#6f8279;
}

/* Quick menus and information cards. */
.quickdock-live .quickdock-item b,
.quickdock b{
  font-size:.96rem;
  font-weight:800;
  color:#153d30;
}
.quickdock-live .quickdock-item small,
.quickdock small{
  font-size:.69rem;
  font-weight:500;
  color:#687d73;
}
.stats-grid-live .stat-card strong,
.stat-card strong{
  font-size:.94rem;
  font-weight:800;
  color:#173f31;
}
.stats-grid-live .stat-card small,
.stat-card small{
  font-size:.70rem;
  color:#71847b;
}
.academic-card b,
.service-card div b,
.app-center-copy b,
.office-service-copy b,
.side-link-copy b,
.news-tabs button,
.office-service-tabs button,
.pride-tabs button{
  font-size:.86rem;
  font-weight:800;
}
.academic-card small,
.service-card div small,
.app-center-copy small,
.office-service-copy small,
.side-link-copy small{
  font-size:.67rem;
  line-height:1.45;
}

/* Moving announcement text: darker and more readable. */
.ticker-track span{
  color:#173f31;
  font-size:.80rem;
  font-weight:700;
}
.ticker-track span:after{
  color:#a91f2b;
}

/* Keep compact layouts readable on tablets / phones too. */
@media (max-width:820px){
  .site-nav > a,
  .site-nav .nav-group > a{
    font-size:.90rem!important;
    font-weight:800!important;
  }
  .site-nav > a small,
  .site-nav .nav-group > a small{
    font-size:.66rem!important;
  }
  .nav-dropdown > a span{
    font-size:.82rem!important;
  }
  .nav-dropdown > a small{
    font-size:.64rem!important;
  }
  .quickdock-live .quickdock-item b{
    font-size:.78rem!important;
  }
  .quickdock-live .quickdock-item small{
    font-size:.60rem!important;
  }
  .stats-grid-live .stat-card strong{
    font-size:.75rem!important;
  }
  .stats-grid-live .stat-card small{
    font-size:.60rem!important;
  }
  .app-center-copy b,
  .office-service-copy b,
  .side-link-copy b{
    font-size:.76rem!important;
  }
  .app-center-copy small,
  .office-service-copy small,
  .side-link-copy small{
    font-size:.61rem!important;
  }
  .ticker-track span{
    font-size:.76rem!important;
    color:#173f31!important;
    font-weight:700!important;
  }
}

@media (max-width:480px){
  .quickdock-live .quickdock-item b{font-size:.75rem!important}
  .quickdock-live .quickdock-item small{font-size:.58rem!important}
  .stats-grid-live .stat-card strong{font-size:.72rem!important}
  .stats-grid-live .stat-card small{font-size:.58rem!important}
}

/* =========================================================
   P153 · Public detail readability + managed campus/data module
   ========================================================= */
.tour-card{position:relative;isolation:isolate}
.tour-card.no-image{background:linear-gradient(135deg,#0a5a43 0%,#0d7254 58%,#15906c 100%);overflow:hidden}
.tour-card.no-image:after{content:"";position:absolute;width:330px;height:330px;border:54px solid rgba(255,255,255,.06);border-radius:50%;right:-105px;top:-150px;z-index:-1}
.tour-placeholder-logo{position:absolute;right:34px;bottom:24px;width:112px;height:112px;object-fit:contain;opacity:.18;filter:grayscale(.1)}
.data-head .data-cta{border:1px solid rgba(255,255,255,.25);background:#fff;color:#164461;padding:10px 13px;border-radius:12px;font-weight:800;font-size:.82rem;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.tour-card span,.data-head span{font-size:.76rem;line-height:1.4}
.tour-card h2,.data-card h2{font-size:1.72rem;line-height:1.22}
.tour-card p{font-size:.94rem;line-height:1.62;max-width:470px}
.tour-card a{font-size:.86rem}
.data-head button{font-size:.82rem;padding:10px 13px}
.data-kpis b{font-size:1.78rem}
.data-kpis span{font-size:.74rem;line-height:1.35}
.data-card>p,.data-card .data-note{font-size:.86rem;line-height:1.55;color:#e2f0f5}

/* Public microcopy should remain readable, not decorative tiny text. */
.section-heading p,.module-title-row p,.side-zone-head p,.about-copy>p,.academic-card p,.pride-head p{font-size:.90rem;line-height:1.6}
.section-kicker,.module-title-row>span,.side-zone-head>span{font-size:.72rem}
.featured-copy p,.news-feed-card p{font-size:.86rem;line-height:1.58}
.news-mini-list small,.event-list article>div small{font-size:.72rem}
.app-center-copy small,.office-service-copy small,.side-link-copy small,.service-card div small{font-size:.72rem;line-height:1.48}
.footer-grid a,.footer-grid span,.footer-grid button,.footer-brand p{font-size:.76rem;line-height:1.55}

@media(max-width:820px){
  .tour-card h2,.data-card h2{font-size:1.45rem}
  .tour-card p{font-size:.88rem}
  .data-kpis span{font-size:.70rem}
  .section-heading p,.module-title-row p,.side-zone-head p,.about-copy>p,.academic-card p,.pride-head p{font-size:.82rem}
  .app-center-copy small,.office-service-copy small,.side-link-copy small,.service-card div small{font-size:.68rem!important}
}

/* P154 — homepage module order */
main.home-module-stack{display:flex;flex-direction:column;min-width:0}
main.home-module-stack>[data-home-module]{width:100%;min-width:0}
main.home-module-stack>.quickdock-wrap{margin-top:0!important}
main.home-module-stack>.quickdock-wrap.is-after-hero{margin-top:-34px!important}
@media(max-width:900px){main.home-module-stack>.quickdock-wrap.is-after-hero{margin-top:-20px!important}}
@media(max-width:560px){main.home-module-stack>.quickdock-wrap.is-after-hero{margin-top:-12px!important}}


/* =========================================================
   P157 · Header edge alignment + tablet navigation hard fix
   - Top bar uses the exact same 1440px rails as logo / portal actions.
   - Tablets switch to a real menu drawer before the desktop nav can overflow.
   ========================================================= */
.site-topbar .topbar-inner,
.site-mainbar .mainbar-inner{
  width:min(var(--site-max),calc(100% - 48px));
  max-width:var(--site-max);
  margin-inline:auto;
  padding-inline:0;
}
.topbar-office{min-width:0;justify-self:start}
.topbar-actions{margin-left:auto;justify-content:flex-end;min-width:0}
.topbar-links,.topbar-font-controls{display:flex;align-items:center;gap:14px}
.topbar-font-controls{gap:3px;margin-left:2px}
.topbar-font-controls button{min-width:27px;height:27px;border-radius:7px;padding:0 5px!important;font-weight:800;display:grid;place-items:center;transition:.18s ease}
.topbar-font-controls button:hover,.topbar-font-controls button:focus-visible{background:rgba(255,255,255,.14);outline:0}

/* Keep the desktop navigation genuinely centered while the outer groups sit on
   the same left/right rails. */
@media(min-width:1181px){
  .site-mainbar .mainbar-inner{
    display:grid!important;
    grid-template-columns:minmax(310px,1fr) auto minmax(310px,1fr)!important;
    align-items:center;
    gap:18px!important;
  }
  .school-brand{justify-self:start;min-width:0!important;max-width:100%}
  .site-nav{justify-self:center;margin:0!important;align-self:stretch}
  .site-login-actions{justify-self:end;margin:0!important;min-width:0}
  .mobile-menu-btn{display:none!important}
}

/* iPad / tablet landscape and smaller laptops: do not squeeze the desktop top
   menu. The brand stays left, portal actions stay right, and the menu opens as
   a compact drawer from the hamburger. */
@media(min-width:821px) and (max-width:1180px){
  .site-topbar .topbar-inner,
  .site-mainbar .mainbar-inner{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-inline:16px!important;
    padding-inline:0!important;
  }
  .site-topbar{display:block!important}
  .topbar-inner{min-height:34px!important}
  .topbar-office{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48%}
  .topbar-actions{gap:10px}
  .topbar-links{gap:10px}
  .topbar-contact{display:none!important}
  .topbar-font-controls{gap:2px}

  .site-mainbar{position:relative}
  .site-mainbar .mainbar-inner{
    min-height:78px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto 46px!important;
    align-items:center;
    gap:10px!important;
  }
  .school-brand{order:1;min-width:0!important;max-width:100%;overflow:hidden;gap:10px!important}
  .school-logo{width:50px!important;height:50px!important;flex:0 0 50px}
  .school-logo img{width:42px!important;height:42px!important}
  .school-brand-copy{min-width:0;overflow:hidden}
  .school-brand-copy strong{font-size:1rem!important;max-width:100%!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .school-brand-copy small{font-size:.66rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

  .site-login-actions{order:2;display:flex!important;align-items:center;justify-content:flex-end;gap:6px!important;margin:0!important;min-width:0}
  .site-mainbar .site-search-trigger{display:grid!important;place-items:center;flex:0 0 38px!important;width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;padding:0!important;border-radius:11px!important}
  .site-mainbar .site-search-trigger span,.site-mainbar .site-search-trigger kbd{display:none!important}
  .portal-btn{min-height:38px!important;padding:8px 10px!important;border-radius:10px!important;gap:6px!important;font-size:.72rem!important}
  .portal-btn i{font-size:.82rem}

  .mobile-menu-btn{order:3;display:grid!important;place-items:center;width:46px!important;height:46px!important;min-width:46px;margin:0!important;justify-self:end;border-radius:12px}
  .site-nav{
    order:4;
    position:absolute!important;
    top:calc(100% + 8px)!important;
    right:16px!important;
    left:auto!important;
    width:min(520px,calc(100vw - 32px))!important;
    max-width:calc(100vw - 32px)!important;
    max-height:calc(100dvh - 132px)!important;
    display:none!important;
    flex-direction:column!important;
    align-items:stretch!important;
    align-self:auto!important;
    overflow:auto!important;
    overscroll-behavior:contain;
    margin:0!important;
    padding:9px!important;
    background:#fff!important;
    border:1px solid #dce8e2!important;
    border-radius:16px!important;
    box-shadow:0 22px 50px rgba(7,61,45,.18)!important;
    z-index:950!important;
  }
  .site-nav.show{display:flex!important}
  .site-nav>.nav-group,.site-nav>.nav-group>a,.site-nav>a{width:100%!important;min-width:0!important;max-width:100%!important}
  .site-nav>.nav-group>a,.site-nav>a{min-height:52px!important;padding:9px 13px!important;border-bottom:0!important;border-radius:11px!important;align-items:flex-start!important;justify-content:center!important}
  .site-nav>.nav-group>a span,.site-nav>a span{font-size:.88rem!important}
  .site-nav>.nav-group>a small,.site-nav>a small{font-size:.64rem!important}
  .nav-dropdown,.nav-group.is-mega .nav-dropdown{position:static!important;transform:none!important;min-width:0!important;width:100%!important;max-width:100%!important;grid-template-columns:1fr!important;box-shadow:none!important;border:0!important;border-left:3px solid #d9eee5!important;border-radius:0!important;margin:0 7px 5px!important;padding:4px 0 4px 8px!important;opacity:1!important;visibility:visible!important;pointer-events:auto!important;display:none!important}
  .nav-group.open .nav-dropdown,.nav-group.is-mega.open .nav-dropdown{display:grid!important}
  .nav-group:hover .nav-dropdown{display:none!important}
  .nav-group.open:hover .nav-dropdown{display:grid!important}
  .mobile-portal-actions{display:none!important}
}

/* Phone header keeps its existing compact pattern, but shares the exact same
   left/right rails as the tablet/desktop header. */
@media(max-width:820px){
  .site-topbar{display:none!important}
  .site-mainbar .mainbar-inner{width:100%!important;margin:0!important;padding-inline:12px!important}
}
@media(max-width:480px){
  .site-mainbar .mainbar-inner{padding-inline:8px!important}
}

/* === P166 · Reference-style header + hero + unified stat cards === */

/* Brand: keep the real school name as two intentional lines and shorten only the agency line. */
.school-brand-copy strong{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:1px;
  line-height:1.12;
  color:#0b4d38;
}
.school-brand-copy .brand-school-main,
.school-brand-copy .brand-school-place{display:block;white-space:nowrap;}
.school-brand-copy .brand-school-main{font-size:1.07em;}
.school-brand-copy .brand-school-place{font-size:.92em;}
.school-brand-copy small{
  margin-top:6px;
  color:#6d7d75;
  font-weight:600;
  letter-spacing:.005em;
}

/* Top menu: individual rounded tabs, calmer than a full-width highlight. */
.site-nav{
  gap:5px;
  align-items:center;
  padding-block:8px;
}
.site-nav>.nav-group,
.site-nav>a{align-self:stretch;display:flex;align-items:center;}
.site-nav>.nav-group>a,
.site-nav>a{
  align-self:center;
  min-height:66px;
  border:1px solid transparent;
  border-bottom:0!important;
  border-radius:16px;
  padding:10px 15px 9px;
  transition:transform .22s cubic-bezier(.2,.75,.25,1),background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.site-nav>.nav-group>a:hover,
.site-nav>a:hover{
  color:#075b42!important;
  background:#f2f8f4!important;
  border-color:#d7e8df;
  transform:translateY(-2px);
  box-shadow:0 8px 18px rgba(8,77,56,.08);
}
.site-nav>.nav-group>a.active,
.site-nav>a.active{
  color:#0b513c!important;
  background:#fff2c9!important;
  border-color:#f5dda0;
  box-shadow:0 8px 20px rgba(166,124,20,.10);
}
.site-nav>.nav-group>a small,
.site-nav>a small{transition:color .22s ease,transform .22s ease;}
.site-nav>.nav-group>a:hover small,
.site-nav>a:hover small,
.site-nav>.nav-group>a.active small,
.site-nav>a.active small{color:#557367!important;}
.site-nav .nav-caret{
  margin-left:7px;
  font-size:.62rem;
  transition:transform .22s ease,color .22s ease;
  transform-origin:center;
}
.site-nav>.nav-group:hover .nav-caret{transform:translateY(-2px) rotate(180deg);color:#0b684c;}

/* Hero: restore purposeful copy, while the image stays dominant. */
.hero-stage{isolation:isolate;}
.hero-slide{overflow:hidden;}
.hero-slide:before{
  filter:saturate(1.07) contrast(1.05) brightness(.93);
}
.hero-slide:after{
  background:
    radial-gradient(circle at 78% 42%,rgba(255,255,255,.05),transparent 34%),
    linear-gradient(90deg,rgba(2,28,20,.82) 0%,rgba(3,39,28,.68) 31%,rgba(4,44,31,.32) 54%,rgba(3,31,24,.12) 73%,rgba(2,24,18,.04) 100%)!important;
  z-index:1;
}
.hero-click-layer{z-index:1!important;}
.hero-overlay{
  display:block!important;
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:linear-gradient(90deg,rgba(2,36,25,.50) 0%,rgba(2,36,25,.23) 42%,rgba(2,36,25,.05) 68%,transparent 100%);
}
.hero-content{
  display:flex!important;
  position:relative;
  z-index:3;
  min-height:100%;
  height:100%;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  pointer-events:none;
}
.hero-copy{
  display:block!important;
  width:min(650px,52%);
  max-width:650px;
  color:#fff;
  padding:44px 0 62px;
  opacity:0;
  transform:translateY(18px);
  transition:opacity .52s ease .12s,transform .58s cubic-bezier(.2,.72,.22,1) .12s;
  text-shadow:0 2px 14px rgba(0,0,0,.20);
  pointer-events:auto;
}
.hero-slide.active .hero-copy{opacity:1;transform:translateY(0);}
.hero-eyebrow{
  display:inline-flex!important;
  align-items:center;
  gap:10px;
  color:#ffd45f;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-shadow:none;
}
.hero-eyebrow:before{content:"";width:34px;height:2px;border-radius:999px;background:#ffd45f;}
.hero-copy h1{
  margin:13px 0 12px;
  max-width:620px;
  font-size:clamp(2.2rem,4vw,4rem);
  line-height:1.08;
  letter-spacing:-.025em;
  font-weight:900;
  color:#fff;
}
.hero-motto{
  margin:0 0 10px;
  max-width:590px;
  color:#fff;
  font-size:clamp(1.08rem,1.7vw,1.48rem);
  line-height:1.5;
  font-weight:800;
}
.hero-desc{
  margin:0 0 24px;
  max-width:560px;
  color:rgba(255,255,255,.87);
  font-size:.91rem;
  line-height:1.65;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.hero-buttons{display:flex;flex-wrap:wrap;gap:10px;pointer-events:auto;}
.hero-btn{
  min-height:58px;
  border-radius:14px;
  padding:10px 15px;
  gap:11px;
  box-shadow:0 12px 26px rgba(0,0,0,.13);
}
.hero-btn>i:first-child{font-size:1.08rem;transition:transform .23s ease;}
.hero-btn>span{display:grid;line-height:1.15;text-align:left;}
.hero-btn>span b{font-size:.84rem;font-weight:900;}
.hero-btn>span small{margin-top:4px;font-size:.59rem;font-weight:600;opacity:.78;}
.hero-btn>i:last-child{margin-left:5px;font-size:.72rem;transition:transform .23s ease;}
.hero-btn:hover>i:first-child{transform:translateY(-3px) scale(1.05);}
.hero-btn:hover>i:last-child{transform:translateX(4px);}
.hero-btn.primary{background:#f5c64f;color:#173a2e;}
.hero-btn.secondary{background:rgba(5,104,76,.92);color:#fff;border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(8px);}
.hero-btn.secondary:hover{background:#087455;}
.hero-welcome{
  align-self:center;
  margin-left:auto;
  max-width:250px;
  color:#fff;
  text-align:right;
  display:grid;
  gap:3px;
  opacity:0;
  transform:translateX(16px);
  transition:opacity .55s ease .24s,transform .58s ease .24s;
  text-shadow:0 3px 16px rgba(0,0,0,.28);
}
.hero-slide.active .hero-welcome{opacity:1;transform:translateX(0);}
.hero-welcome span{font-size:.9rem;font-weight:700;}
.hero-welcome strong{font-size:1.55rem;line-height:1.2;font-weight:900;}
.hero-welcome small{font-size:.55rem;letter-spacing:.18em;font-weight:800;opacity:.86;}
.hero-term{display:none!important;}

/* The five school snapshot cards use one visual system instead of five unrelated colours. */
.stats-grid-live .stat-card,
.stat-card{
  position:relative;
  background:#fff!important;
  border:1px solid #dce9e2!important;
  border-radius:18px!important;
  box-shadow:0 8px 22px rgba(10,77,56,.045)!important;
  overflow:hidden;
}
.stats-grid-live .stat-card:before,
.stat-card:before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:3px;
  background:#16845f;
  opacity:.72;
}
.stat-card.blue>span,.stat-card.teal>span,.stat-card.orange>span,.stat-card.purple>span,.stat-card.pink>span,
.stats-grid-live .stat-card>span{
  background:#e7f5ef!important;
  color:#087153!important;
  border:1px solid #d8eee4;
}
.stats-grid-live .stat-card b,.stat-card b{color:#0a5b43!important;}
.stats-grid-live .stat-card strong,.stat-card strong{color:#173f31!important;}
.stats-grid-live .stat-card small,.stat-card small{color:#6f8279!important;}
.stats-grid-live .stat-card .stat-open-icon,.stat-card .stat-open-icon{color:#91a69d;transition:transform .22s ease,color .22s ease;}
.stats-grid-live .stat-card:hover,.stat-card:hover{
  border-color:#bcd9ca!important;
  transform:translateY(-5px);
  box-shadow:0 16px 34px rgba(10,77,56,.11)!important;
}
.stats-grid-live .stat-card:hover>span,.stat-card:hover>span{transform:translateY(-3px) scale(1.04);}
.stats-grid-live .stat-card:hover .stat-open-icon,.stat-card:hover .stat-open-icon{color:#087153;transform:translate(2px,-2px);}

/* Tablet keeps the hero readable without covering most of the image. */
@media(max-width:1180px){
  .school-brand{min-width:270px!important;}
  .school-brand-copy strong{font-size:1rem!important;}
  .school-brand-copy small{font-size:.64rem;}
  .site-nav>.nav-group>a,.site-nav>a{padding-inline:10px;min-height:60px;}
  .hero-copy{width:min(620px,60%);padding-left:8px;}
  .hero-welcome{max-width:210px;}
}

@media(max-width:820px){
  .school-brand-copy strong{display:flex!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;font-size:.80rem!important;line-height:1.13!important;}
  .school-brand-copy .brand-school-main,.school-brand-copy .brand-school-place{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .school-brand-copy .brand-school-place{font-size:.86em;}
  .hero-stage{aspect-ratio:auto!important;min-height:390px!important;}
  .hero-content{padding-inline:16px!important;align-items:flex-end;}
  .hero-copy{width:100%;max-width:590px;padding:54px 0 38px;}
  .hero-copy h1{font-size:clamp(1.72rem,8vw,2.55rem);max-width:92%;}
  .hero-motto{font-size:1rem;max-width:92%;}
  .hero-desc{font-size:.76rem;max-width:90%;margin-bottom:16px;-webkit-line-clamp:2;}
  .hero-welcome{display:none;}
  .hero-btn{min-height:52px;padding:8px 11px;}
  .hero-btn>span b{font-size:.73rem;}
  .hero-btn>span small{font-size:.52rem;}
}

@media(max-width:560px){
  .hero-stage{min-height:360px!important;}
  .hero-slide:after{background:linear-gradient(0deg,rgba(2,30,22,.88) 0%,rgba(2,30,22,.52) 44%,rgba(2,30,22,.10) 75%,rgba(2,30,22,.03) 100%)!important;}
  .hero-overlay{background:linear-gradient(0deg,rgba(3,52,38,.36),rgba(3,52,38,.02) 70%)!important;}
  .hero-copy{padding-bottom:34px;}
  .hero-eyebrow{font-size:.62rem;letter-spacing:.08em;}
  .hero-copy h1{font-size:1.65rem;margin-top:9px;}
  .hero-motto{font-size:.88rem;line-height:1.4;}
  .hero-desc{display:none;}
  .hero-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px;}
  .hero-btn{min-width:0;width:100%;padding:8px 9px;gap:7px;justify-content:flex-start;}
  .hero-btn>i:last-child{display:none;}
  .hero-btn>span b{font-size:.67rem;}
  .hero-btn>span small{font-size:.46rem;}
}

/* === P167 · Hero text hierarchy + clean corner clipping + colourful snapshot cards === */
/* Keep every visual layer inside the hero clipping boundary so pseudo layers never square-off a rounded edge. */
.hero-stage{
  overflow:hidden!important;
  clip-path:inset(0 round 0 0 24px 24px);
}
.hero-slide,
.hero-slide::before,
.hero-slide::after,
.hero-overlay,
.hero-light-sweep{
  max-width:100%;
}
.hero-slide,.hero-slide::before,.hero-slide::after,.hero-overlay{border-bottom-left-radius:24px;border-bottom-right-radius:24px;}

/* Requested school identity hierarchy. */
.hero-eyebrow{
  color:#ffd45f!important;
  font-size:.78rem!important;
  letter-spacing:.075em!important;
  text-transform:none!important;
  font-weight:900!important;
}
.hero-copy h1{
  margin:12px 0 2px!important;
  font-size:clamp(2.25rem,4.15vw,4.15rem)!important;
  line-height:1.04!important;
}
.hero-place{
  margin:0 0 12px;
  color:rgba(255,255,255,.94);
  font-size:clamp(1.05rem,1.7vw,1.45rem);
  line-height:1.25;
  font-weight:800;
  text-shadow:0 2px 12px rgba(0,0,0,.22);
}
.hero-motto{margin-top:0!important;}
.hero-welcome{gap:5px!important;}
.hero-welcome strong{font-size:1.65rem!important;}
.hero-welcome small{font-size:.58rem!important;letter-spacing:.16em!important;}
.hero-welcome span{display:none!important;}

/* Same card structure, distinct semantic colours like the reference site. */
.stats-grid-live .stat-card{
  --stat-accent:#0a6b4f;
  --stat-soft:#e8f5ef;
  --stat-border:#d9e9e1;
  background:#fff!important;
  border-color:var(--stat-border)!important;
  overflow:hidden!important;
}
.stats-grid-live .stat-card.blue{--stat-accent:#1167d8;--stat-soft:#e4efff;--stat-border:#d6e4f7;}
.stats-grid-live .stat-card.teal{--stat-accent:#079b9a;--stat-soft:#ddf4f3;--stat-border:#d2eae8;}
.stats-grid-live .stat-card.orange{--stat-accent:#f17314;--stat-soft:#fff0e0;--stat-border:#f4e1cd;}
.stats-grid-live .stat-card.purple{--stat-accent:#7b2bd3;--stat-soft:#efe4fb;--stat-border:#e4d8f1;}
.stats-grid-live .stat-card.pink{--stat-accent:#e62f73;--stat-soft:#fde3ed;--stat-border:#f4d5e1;}
.stats-grid-live .stat-card::before{background:var(--stat-accent)!important;opacity:.82!important;}
.stats-grid-live .stat-card>span{
  background:var(--stat-soft)!important;
  color:var(--stat-accent)!important;
  border-color:var(--stat-border)!important;
}
.stats-grid-live .stat-card b{color:var(--stat-accent)!important;}
.stats-grid-live .stat-card strong{color:#173f31!important;}
.stats-grid-live .stat-card small{color:#6f7f78!important;}
.stats-grid-live .stat-card .stat-open-icon{color:color-mix(in srgb,var(--stat-accent) 48%,#a6b1ac)!important;}
.stats-grid-live .stat-card:hover{
  border-color:color-mix(in srgb,var(--stat-accent) 30%,#dfe8e3)!important;
  box-shadow:0 16px 34px color-mix(in srgb,var(--stat-accent) 14%,transparent)!important;
}
.stats-grid-live .stat-card:hover .stat-open-icon{color:var(--stat-accent)!important;}

@media(max-width:820px){
  .hero-place{font-size:1.05rem;margin-bottom:10px;}
}
@media(max-width:560px){
  .hero-copy h1{font-size:1.72rem!important;margin-bottom:1px!important;}
  .hero-place{font-size:.88rem;margin-bottom:9px;}
  .hero-eyebrow{font-size:.57rem!important;letter-spacing:.04em!important;}
}

/* === P168 · hero arrow position + clean quickdock clipping + colourful snapshot cards === */
/* Keep the hero navigation controls away from the left/right copy. */
.hero-arrow{
  top:auto!important;
  bottom:72px!important;
  translate:0 0!important;
  width:48px!important;
  height:48px!important;
  background:rgba(7,67,48,.72)!important;
  border:1px solid rgba(255,255,255,.48)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.18)!important;
  backdrop-filter:blur(8px);
}
.hero-arrow:hover{background:rgba(8,112,80,.92)!important;transform:translateY(-2px) scale(1.04);}
.hero-arrow.prev{left:max(18px,calc((100% - var(--site-max))/2 + 2px))!important;}
.hero-arrow.next{right:max(18px,calc((100% - var(--site-max))/2 + 2px))!important;}

/* The shortcut dock itself owns the rounded edge. No white child/background may square it off. */
.quickdock-wrap,.quickdock-wrap>.site-shell{background:transparent!important;}
.quickdock-wrap>.site-shell{position:relative;isolation:isolate;}
.quickdock,
.quickdock-live{
  position:relative;
  isolation:isolate;
  border-radius:22px!important;
  overflow:hidden!important;
  clip-path:inset(0 round 22px);
  background:#fff!important;
  box-shadow:0 14px 34px rgba(11,72,52,.10)!important;
}
.quickdock-live .quickdock-item{
  border-radius:0!important;
  background:#fff!important;
  position:relative;
  z-index:0;
}
.quickdock-live .quickdock-item:hover{background:#f3fbf7!important;}

/* Give each of the five information cards its own soft colour while keeping one consistent layout. */
.stats-grid-live .stat-card{
  background:linear-gradient(135deg,var(--stat-soft) 0%,#fff 58%,#fff 100%)!important;
  border:1px solid var(--stat-border)!important;
  box-shadow:0 10px 24px color-mix(in srgb,var(--stat-accent) 8%,transparent)!important;
}
.stats-grid-live .stat-card::after{
  content:"";
  position:absolute;
  width:84px;
  height:84px;
  right:-32px;
  top:-34px;
  border-radius:50%;
  background:color-mix(in srgb,var(--stat-accent) 9%,transparent);
  pointer-events:none;
}
.stats-grid-live .stat-card>span{
  background:color-mix(in srgb,var(--stat-soft) 84%,#fff)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--stat-accent) 10%,transparent);
}
.stats-grid-live .stat-card strong{color:#173f31!important;}
.stats-grid-live .stat-card small{color:#63786f!important;}
.stats-grid-live .stat-card:hover{
  background:linear-gradient(135deg,color-mix(in srgb,var(--stat-soft) 82%,#fff) 0%,#fff 62%)!important;
  transform:translateY(-6px)!important;
}

@media(max-width:820px){
  .hero-arrow{top:38%!important;bottom:auto!important;width:42px!important;height:42px!important;}
  .hero-arrow.prev{left:10px!important;}
  .hero-arrow.next{right:10px!important;}
  .quickdock,.quickdock-live{border-radius:18px!important;clip-path:inset(0 round 18px);}
}
@media(max-width:560px){
  .hero-arrow{top:34%!important;width:38px!important;height:38px!important;}
  .stats-grid-live .stat-card::after{width:64px;height:64px;right:-28px;top:-28px;}
}


/* === P169 · cleaner hero + richer snapshot cards + playful icon motion === */
/* Hero arrows are intentionally hidden: slide dots / autoplay remain, without controls covering copy. */
.hero-arrow{display:none!important;}

/* Keep the school name on a comfortable line without overpowering the photo. */
.hero-copy{max-width:760px!important;}
.hero-copy h1{
  max-width:760px;
  font-size:clamp(2.05rem,3.45vw,3.55rem)!important;
  line-height:1.035!important;
  letter-spacing:-.018em!important;
  text-wrap:balance;
}
.hero-place{font-size:clamp(.98rem,1.38vw,1.28rem)!important;}

/* Stronger, polished pastel identities for the five snapshot cards. */
.stats-grid-live .stat-card{
  position:relative;
  isolation:isolate;
  background:var(--stat-card-bg,#fff)!important;
  border:1px solid var(--stat-card-border,var(--stat-border))!important;
  box-shadow:0 10px 26px var(--stat-shadow,rgba(15,70,52,.07))!important;
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease,background .25s ease;
}
.stats-grid-live .stat-card.blue{
  --stat-card-bg:linear-gradient(135deg,#edf5ff 0%,#f7fbff 58%,#ffffff 100%);
  --stat-card-border:#cfe1fb;--stat-shadow:rgba(17,103,216,.10);
}
.stats-grid-live .stat-card.teal{
  --stat-card-bg:linear-gradient(135deg,#e8faf8 0%,#f7fffe 58%,#ffffff 100%);
  --stat-card-border:#cbe9e6;--stat-shadow:rgba(7,155,154,.10);
}
.stats-grid-live .stat-card.orange{
  --stat-card-bg:linear-gradient(135deg,#fff2e4 0%,#fffaf5 58%,#ffffff 100%);
  --stat-card-border:#f2dcc4;--stat-shadow:rgba(241,115,20,.10);
}
.stats-grid-live .stat-card.purple{
  --stat-card-bg:linear-gradient(135deg,#f3eaff 0%,#fbf8ff 58%,#ffffff 100%);
  --stat-card-border:#e2d3f4;--stat-shadow:rgba(123,43,211,.10);
}
.stats-grid-live .stat-card.pink{
  --stat-card-bg:linear-gradient(135deg,#ffe8f0 0%,#fff8fb 58%,#ffffff 100%);
  --stat-card-border:#f3d2df;--stat-shadow:rgba(230,47,115,.10);
}
.stats-grid-live .stat-card::before{
  width:5px!important;
  border-radius:999px!important;
  top:16px!important;bottom:16px!important;left:0!important;height:auto!important;
  opacity:.92!important;
}
.stats-grid-live .stat-card::after{
  width:110px!important;height:110px!important;right:-50px!important;top:-56px!important;
  background:color-mix(in srgb,var(--stat-accent) 10%,transparent)!important;
}
.stats-grid-live .stat-card>span{
  background:color-mix(in srgb,var(--stat-accent) 13%,#fff)!important;
  border:1px solid color-mix(in srgb,var(--stat-accent) 18%,#fff)!important;
  box-shadow:0 6px 14px color-mix(in srgb,var(--stat-accent) 10%,transparent)!important;
}
.stats-grid-live .stat-card:hover{
  background:var(--stat-card-bg,#fff)!important;
  transform:translateY(-6px)!important;
  border-color:color-mix(in srgb,var(--stat-accent) 36%,#e5ece8)!important;
  box-shadow:0 18px 36px color-mix(in srgb,var(--stat-accent) 16%,transparent)!important;
}

/* Lift then gently sway the main icons, like a bell. */
@keyframes sdcTopIconBell{
  0%{transform:translateY(0) rotate(0deg)}
  22%{transform:translateY(-6px) rotate(-8deg)}
  42%{transform:translateY(-6px) rotate(7deg)}
  60%{transform:translateY(-6px) rotate(-5deg)}
  78%{transform:translateY(-6px) rotate(3deg)}
  100%{transform:translateY(-5px) rotate(0deg)}
}
.quickdock-live .quickdock-item>i,
.stats-grid-live .stat-card>span i{
  transform-origin:50% 12%;
  will-change:transform;
}
@media (hover:hover) and (pointer:fine){
  .quickdock-live .quickdock-item:hover>i,
  .quickdock-live .quickdock-item:focus-visible>i,
  .stats-grid-live .stat-card:hover>span i,
  .stats-grid-live .stat-card:focus-visible>span i{
    animation:sdcTopIconBell .72s ease both;
  }
}
@media(prefers-reduced-motion:reduce){
  .quickdock-live .quickdock-item:hover>i,
  .quickdock-live .quickdock-item:focus-visible>i,
  .stats-grid-live .stat-card:hover>span i,
  .stats-grid-live .stat-card:focus-visible>span i{animation:none!important;transform:none!important;}
}

@media(max-width:1180px){
  .hero-copy{max-width:650px!important;}
  .hero-copy h1{max-width:650px;font-size:clamp(1.95rem,4.4vw,3rem)!important;}
}
@media(max-width:820px){
  .hero-copy{max-width:100%!important;}
  .hero-copy h1{max-width:92%;font-size:clamp(1.58rem,7vw,2.25rem)!important;}
}
@media(max-width:560px){
  .hero-copy h1{font-size:1.55rem!important;line-height:1.08!important;}
}

/* === P188 · Stable Hero copy + executive portrait stack === */
.hero-static-content{position:absolute!important;inset:0;z-index:5!important;width:min(1180px,calc(100% - 34px));margin-inline:auto;pointer-events:none}
.hero-copy-static{opacity:1!important;transform:none!important;animation:heroCopyDrift 8s ease-in-out infinite;will-change:transform}
.hero-welcome-static{opacity:1!important;transform:none!important;animation:heroWelcomeDrift 7s ease-in-out infinite;will-change:transform}
.hero-copy-static .hero-eyebrow:before{animation:heroEyebrowPulse 2.8s ease-in-out infinite}
.hero-copy-static .hero-buttons{pointer-events:auto}
@keyframes heroCopyDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(0,-5px,0)}}
@keyframes heroWelcomeDrift{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(-4px,-5px,0)}}
@keyframes heroEyebrowPulse{0%,100%{width:34px;opacity:.88}50%{width:54px;opacity:1}}

.site-executives{margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid #e4eee9}
.site-executives-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.site-executives-head span{font-size:.58rem;letter-spacing:.13em;font-weight:900;color:#1b8a64}
.site-executives-head b{font-size:.88rem;color:#173f32}
.site-executive-stack{display:grid;gap:10px}
.site-executive-card{position:relative;overflow:hidden;display:grid;grid-template-columns:92px minmax(0,1fr);min-height:116px;border:1px solid #dcebe4;border-radius:16px;background:linear-gradient(135deg,#fff,#f7fbf9);box-shadow:0 8px 22px rgba(20,70,50,.05);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.site-executive-card:hover{transform:translateY(-2px);border-color:#b9dacb;box-shadow:0 12px 28px rgba(20,70,50,.09)}
.site-executive-link{position:absolute;inset:0;z-index:3}
.site-executive-photo{position:relative;overflow:hidden;background:#e7f4ed;min-height:116px}
.site-executive-photo img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block;transition:transform .45s ease}
.site-executive-card:hover .site-executive-photo img{transform:scale(1.035)}
.site-executive-photo>span{width:100%;height:100%;display:grid;place-items:center;color:#2a7c5f;font-size:2rem}
.site-executive-copy{display:flex;flex-direction:column;justify-content:center;padding:13px 14px;min-width:0}
.site-executive-copy b{font-size:.86rem;line-height:1.35;color:#173f32}
.site-executive-copy small{margin-top:5px;font-size:.66rem;line-height:1.45;color:#71867c}

@media(max-width:820px){
  .hero-static-content{width:min(100% - 28px,1180px);align-items:flex-end!important}
  .hero-copy-static{animation:none}
  .hero-welcome-static{display:none!important}
}
@media(max-width:560px){
  .hero-static-content{width:min(100% - 22px,1180px)}
  .site-executive-card{grid-template-columns:78px minmax(0,1fr);min-height:102px}
  .site-executive-photo{min-height:102px}
  .site-executive-copy{padding:11px 12px}
  .site-executive-copy b{font-size:.8rem}
}
@media(prefers-reduced-motion:reduce){
  .hero-copy-static,.hero-welcome-static,.hero-copy-static .hero-eyebrow:before{animation:none!important}
}

/* === P189 · Executive portrait cards: photo above, identity below === */
.site-executive-stack{display:grid;gap:14px}
.site-executive-card{display:flex;flex-direction:column;min-height:0;overflow:hidden;border-radius:16px;background:#fff}
.site-executive-photo{width:100%;aspect-ratio:4/5;min-height:0;background:#e7f4ed}
.site-executive-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}
.site-executive-copy{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:11px 10px 12px;background:#fff;border-top:1px solid #e1ece7}
.site-executive-copy b{font-size:.88rem;line-height:1.35;color:#173f32}
.site-executive-copy small{margin-top:3px;font-size:.68rem;line-height:1.4;color:#617b70}
@media(max-width:560px){.site-executive-card{min-height:0}.site-executive-photo{min-height:0}.site-executive-copy{padding:9px 8px 10px}.site-executive-copy b{font-size:.82rem}.site-executive-copy small{font-size:.64rem}}

/* === P193 · Executive section refinement + compact section headings === */
.site-executives{
  position:relative;
  margin:0 0 20px;
  padding:15px 14px 14px;
  border:1px solid #cfe3da;
  border-top:4px solid #177958;
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 26px rgba(18,74,53,.07);
}
.site-executives::after{
  content:"";
  position:absolute;
  left:14px;right:14px;bottom:-10px;
  height:1px;
  background:#e3eee9;
}
.site-executives-head{
  display:block;
  margin:0 0 12px;
  padding:0;
}
.site-executives-head .section-kicker{
  display:block;
  margin:0 0 3px;
  font-size:.6rem;
  letter-spacing:.13em;
  font-weight:900;
  color:#16805c;
}
.site-executives-head h2{
  margin:0;
  font-size:1.08rem;
  line-height:1.25;
  color:#173f32;
}
.site-executive-stack{gap:12px}
.site-executive-card{
  border:1px solid #d4e7de;
  border-radius:15px;
  background:#fff;
  box-shadow:0 5px 14px rgba(20,70,50,.045);
}
.site-executive-card:hover{
  transform:translateY(-2px);
  border-color:#a9cfbe;
  box-shadow:0 10px 22px rgba(20,70,50,.085);
}
.site-executive-photo{
  border-radius:14px 14px 0 0;
  background:#edf6f2;
}
.site-executive-copy{
  padding:11px 9px 12px;
  border-top:1px solid #dcebe4;
  background:#fff;
}
.site-executive-copy::before{
  content:"";
  width:34px;
  height:3px;
  margin:0 auto 7px;
  border-radius:999px;
  background:#1c8a64;
}
.site-executive-copy b{font-size:.9rem;color:#163c30}
.site-executive-copy small{font-size:.69rem;color:#6e8079}

/* Generic section helper copy is intentionally removed in P193;
   tighten the remaining headings so no empty vertical gap survives. */
.section-heading>div>h2,
.side-zone-head h2,
.pride-head h2,
.office-services-head h2{margin-bottom:0!important}

@media(max-width:560px){
  .site-executives{padding:13px 12px 12px;border-radius:16px}
  .site-executives-head{margin-bottom:10px}
  .site-executives-head h2{font-size:1rem}
  .site-executive-stack{gap:10px}
}

/* =========================================================
   P194 · Public website depth + edge topbar + executive frame
   Inspired by the clear layered public-school portal structure:
   strong utility bar, distinct content zones, restrained warm accents.
   ========================================================= */
:root{
  --navy:#0b4d38;
  --navy-2:#0e6248;
  --blue:#2f6f9f;
  --blue-2:#3f86b7;
  --gold:#f2c557;
  --gold-2:#ffd878;
  --teal:#17977b;
  --green:#16845f;
  --ink:#203f34;
  --muted:#6f8179;
  --line:#d5e4dd;
  --soft:#eef5f2;
  --shadow:0 16px 38px rgba(17,67,50,.10);
}
body.school-site-body{
  background:#edf4f0;
  color:var(--ink);
}

/* 1) Utility bar goes edge-to-edge: office hard-left, tools hard-right. */
.site-topbar{background:#073e2f!important;border-bottom:1px solid rgba(255,255,255,.08)}
.site-topbar .topbar-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-inline:20px!important;
}
.topbar-office{margin-right:auto!important}
.topbar-actions{margin-left:auto!important}
.topbar-office,.topbar-actions{min-width:0}
.topbar-links a{font-weight:700}
.topbar-links a:hover{color:#ffe083}
.topbar-font-controls button:hover{background:rgba(255,255,255,.13)!important}

/* Main navigation: white canvas + warm active state, similar visual hierarchy
   to the reference site without copying its styling literally. */
.site-mainbar{background:rgba(255,255,255,.98)!important;border-bottom:1px solid #d7e5de;box-shadow:0 7px 24px rgba(17,67,50,.06)}
.site-nav a{border-bottom:0!important;border-radius:14px;margin:8px 2px;padding-top:13px;padding-bottom:11px;transition:.18s ease}
.site-nav a:hover{background:#f1f8f4;color:#0b513a}
.site-nav a.active{background:#fff1c9!important;color:#17483a!important;box-shadow:inset 0 0 0 1px #f1d783}
.site-nav a.active small{color:#7a6734}
.school-logo{border-color:#d3e5dd;box-shadow:0 8px 22px rgba(17,67,50,.09)}
.site-search-trigger{border-color:#cfe0d8!important;background:#f7fbf9!important}
.portal-btn.teacher{background:#0b5a42!important}.portal-btn.student{background:#f2c557!important;color:#27463b!important}

/* Stronger but still quiet page canvas. */
.news-ticker{background:#fff7dc!important;border-color:#ead58d!important}
.ticker-label{background:#e8ba46!important;color:#213f34!important}
.quickdock{border-color:#d2e2db!important;box-shadow:0 16px 34px rgba(16,68,51,.10)!important}
.quickdock>a,.quickdock>button{background:#fff!important;border-color:#e2ece7!important}
.quickdock>a:hover,.quickdock>button:hover{background:#f0f8f4!important}

.stats-section{padding-top:32px!important;padding-bottom:18px!important}
.stat-card{
  border-color:#d5e4dd!important;
  box-shadow:0 10px 26px rgba(16,68,51,.07)!important;
  position:relative;
  overflow:hidden;
}
.stat-card::before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:#16845f}
.stat-card.blue::before{background:#377bb0}.stat-card.teal::before{background:#15977b}.stat-card.orange::before{background:#e59a3d}.stat-card.purple::before{background:#7b68ad}.stat-card.pink::before{background:#ca647a}
.stat-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(16,68,51,.11)!important}

/* Alternating section backgrounds so content does not dissolve into one pale page. */
.public-hub{background:#e8f2ed!important;border-top:1px solid #d5e5dd;border-bottom:1px solid #d5e5dd}
.academics-section{background:#fffaf0!important;border-top:1px solid #f0e4c6;border-bottom:1px solid #f0e4c6}
.about-section{background:#eaf4f1!important}
.gallery-section{background:#f4f7f5!important;border-top:1px solid #dce7e2;border-bottom:1px solid #dce7e2}
.services-section{background:#edf6f2!important}
.app-center-section{background:#fffaf2!important;border-top:1px solid #f0e3c4;border-bottom:1px solid #f0e3c4}
.office-services-section{background:#edf3f0!important}

/* Section headings become visual anchors instead of plain text on pale space. */
.section-heading,.module-title-row,.office-services-head,.pride-head{position:relative}
.section-kicker{color:#16805c!important;font-weight:900!important;letter-spacing:.13em!important}
.section-kicker:after{background:#c5ddd2!important}
.section-heading h2,.module-title-row h2,.side-zone-head h2,.office-services-head h2{color:#123f31!important}
.section-heading h2::after,.module-title-row h2::after,.office-services-head h2::after{
  content:"";display:block;width:34px;height:3px;border-radius:999px;background:#f0c451;margin-top:8px
}

/* Primary content panels: slightly stronger border/shadow + a colored rail. */
.section-panel,.calendar-panel,.promo-module,.office-services-panel{
  border-color:#cfdfd7!important;
  box-shadow:0 14px 34px rgba(17,67,50,.09)!important;
}
.section-panel,.calendar-panel{position:relative;overflow:hidden}
.section-panel::before,.calendar-panel::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#16845f
}
.calendar-panel::before{background:#e2a13b}
.news-module{background:#fff!important}
.calendar-module{background:#fffdfa!important}

/* Right rail is a deliberate module, not a faint column. */
.site-side-zone{
  background:#fff!important;
  border:1px solid #cddfd6!important;
  border-top:5px solid #147957!important;
  border-radius:24px!important;
  box-shadow:0 16px 36px rgba(15,65,48,.10)!important;
  padding:18px!important;
}
.side-zone-head{padding-top:2px}
.side-zone-head>span{color:#16805c!important}
.side-zone-head h2::after{content:"";display:block;width:30px;height:3px;border-radius:99px;background:#f0c451;margin-top:7px}
.side-link-card{background:#f8fbf9!important;border-color:#d9e7e1!important}
.side-link-card:hover{background:#fff!important;border-color:#b9d4c7!important}

/* 2) Executive presentation: modern portrait frame, no heavy nested box. */
.site-executives{
  margin:0 0 22px!important;
  padding:0 0 20px!important;
  border:0!important;
  border-bottom:1px solid #dde9e3!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.site-executives::after{display:none!important}
.site-executives-head{margin:0 0 12px!important;padding:0 2px!important}
.site-executives-head .section-kicker{font-size:.61rem!important}
.site-executives-head h2{font-size:1.12rem!important;color:#123f31!important}
.site-executives-head h2::after{content:"";display:block;width:32px;height:3px;border-radius:99px;background:#f0c451;margin-top:7px}
.site-executive-stack{gap:16px!important}
.site-executive-card{
  position:relative!important;
  overflow:hidden!important;
  padding:7px 7px 0!important;
  border:1px solid #c7ddd2!important;
  border-radius:22px!important;
  background:#fff!important;
  box-shadow:0 12px 28px rgba(14,67,49,.10)!important;
  isolation:isolate;
}
.site-executive-card::before{
  content:"";position:absolute;left:0;top:0;right:0;height:5px;
  background:linear-gradient(90deg,#0d7151 0 72%,#f0c451 72% 100%);z-index:2
}
.site-executive-card::after{
  content:"";position:absolute;inset:6px;border-radius:16px;border:1px solid rgba(22,128,92,.10);pointer-events:none;z-index:1
}
.site-executive-photo{
  position:relative;z-index:2;
  margin:5px 0 0!important;
  width:100%!important;
  aspect-ratio:4/5!important;
  border-radius:16px!important;
  overflow:hidden!important;
  border:1px solid #bed8cc!important;
  background:#dceee6!important;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.55)!important;
}
.site-executive-photo img{transition:transform .35s ease,filter .35s ease!important;filter:saturate(1.03) contrast(1.02)}
.site-executive-card:hover .site-executive-photo img{transform:scale(1.02)!important}
.site-executive-copy{
  position:relative;z-index:2;
  padding:13px 8px 14px!important;
  border-top:0!important;
  background:transparent!important;
}
.site-executive-copy::before{width:36px!important;height:3px!important;margin:0 auto 8px!important;background:#0f7a57!important}
.site-executive-copy b{font-size:.97rem!important;line-height:1.35!important;color:#123d30!important;font-weight:800!important}
.site-executive-copy small{
  display:inline-flex!important;align-items:center;justify-content:center;
  margin-top:6px!important;padding:4px 9px!important;border-radius:999px!important;
  background:#eaf6f0!important;border:1px solid #d2e8dd!important;color:#537468!important;
  font-size:.68rem!important;line-height:1.25!important
}
.site-executive-card:hover{transform:translateY(-3px)!important;border-color:#9fc9b6!important;box-shadow:0 18px 34px rgba(14,67,49,.14)!important}

/* Give the public cards more hierarchy and controlled accent color. */
.academic-card,.service-card,.app-center-card,.office-service-card,.news-feed-card{
  border-color:#d5e4dd!important;
  box-shadow:0 8px 22px rgba(17,67,50,.055);
}
.academic-card:hover,.service-card:hover,.app-center-card:hover,.office-service-card:hover,.news-feed-card:hover{
  box-shadow:0 14px 30px rgba(17,67,50,.10)!important;
}
.academic-card:nth-child(1){border-top-color:#1b9a70!important}.academic-card:nth-child(2){border-top-color:#3f7fb2!important}.academic-card:nth-child(3){border-top-color:#dda340!important}
.service-card:nth-child(1)>i{background:#e8f5ef!important;color:#147957!important}
.service-card:nth-child(2)>i{background:#e8f1f8!important;color:#356f9f!important}
.service-card:nth-child(3)>i{background:#fff2d8!important;color:#b57b18!important}
.service-card:nth-child(4)>i{background:#e9f5f1!important;color:#167d63!important}
.related-links a{background:#fff!important;border-color:#d5e4dd!important}

/* Footer follows the dark-green public identity; blue remains only as a small accent. */
.site-footer{background:#083f31!important;color:#dceae4!important}
.footer-grid a,.footer-grid span,.footer-grid button{color:#bad1c7!important}
.footer-bottom{color:#94b3a6!important}
.cta-strip{background:#0c5c45!important;border-bottom-color:#f0c451!important}
.cta-blue{background:#356f9f!important}

@media(max-width:1180px){
  .site-topbar .topbar-inner{padding-inline:16px!important}
}
@media(max-width:820px){
  .site-side-zone{position:static!important}
}
@media(max-width:560px){
  .site-side-zone{padding:14px!important;border-radius:18px!important}
  .site-executive-card{border-radius:18px!important;padding:6px 6px 0!important}
  .site-executive-photo{border-radius:14px!important}
  .site-executive-copy b{font-size:.9rem!important}
  .section-heading h2::after,.module-title-row h2::after,.office-services-head h2::after{margin-top:6px}
}

/* =========================================================
   P195 · Contemporary green-first public identity
   Core palette: deep / mid / soft green + white + red accent,
   with navy reserved for selected content zones only.
   ========================================================= */
:root{
  --site-green-950:#033b2a;
  --site-green-900:#064a35;
  --site-green-800:#075b41;
  --site-green-700:#0a6d4d;
  --site-green-600:#12835d;
  --site-green-500:#1a9a6d;
  --site-green-100:#e4f4ec;
  --site-green-050:#f3faf6;
  --site-red:#c92d43;
  --site-red-soft:#fff0f2;
  --site-navy:#153e5a;
  --site-navy-2:#1d4e6f;
  --site-blue-soft:#eaf3f9;
  --site-white:#ffffff;
  --site-ink:#173c30;
  --site-muted:#6e8178;
  --site-line:#d3e5dc;
  --site-shadow:0 14px 34px rgba(7,74,53,.09);
  --navy:var(--site-green-900);
  --navy-2:var(--site-green-700);
  --green:var(--site-green-600);
  --teal:var(--site-green-500);
  --blue:var(--site-navy);
  --gold:var(--site-red);
  --gold-2:#df5c6d;
  --ink:var(--site-ink);
  --line:var(--site-line);
  --soft:var(--site-green-050);
  --shadow:var(--site-shadow);
}

body.school-site-body{
  background:#edf4f0!important;
  color:var(--site-ink)!important;
}

/* Header: green identity throughout — no blue masthead. */
.site-header{
  background:var(--site-green-900)!important;
  box-shadow:0 8px 26px rgba(3,59,42,.16)!important;
}
.site-topbar{
  background:var(--site-green-950)!important;
  border-bottom:1px solid rgba(255,255,255,.08)!important;
}
.topbar-office i{color:#fff!important;opacity:.9}
.topbar-links a:hover{color:#d7f3e6!important}
.site-mainbar{
  background:linear-gradient(105deg,var(--site-green-900) 0%,var(--site-green-800) 56%,var(--site-green-700) 100%)!important;
  border-bottom:1px solid rgba(255,255,255,.12)!important;
  box-shadow:none!important;
}
.school-logo{
  background:#fff!important;
  border-color:rgba(255,255,255,.35)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.12)!important;
}
.school-brand-copy strong{color:#fff!important}
.school-brand-copy small{color:#c9e3d8!important}
.site-nav a{
  color:#f5fffa!important;
  border-radius:13px!important;
  border-bottom:0!important;
  margin:8px 2px!important;
  transition:background .18s ease,color .18s ease,transform .18s ease!important;
}
.site-nav a small{color:#c7e1d6!important}
.site-nav a:hover{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  transform:translateY(-1px);
}
.site-nav a.active{
  position:relative;
  background:#fff!important;
  color:var(--site-green-900)!important;
  box-shadow:0 8px 18px rgba(2,49,35,.16)!important;
}
.site-nav a.active::after{
  content:"";position:absolute;left:16px;right:16px;bottom:7px;height:3px;border-radius:99px;background:var(--site-red);
}
.site-nav a.active small{color:#617b70!important}
.site-search-trigger{
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.24)!important;
}
.site-search-trigger i{color:#fff!important}
.portal-btn.teacher{
  background:#fff!important;
  color:var(--site-green-900)!important;
  border:1px solid rgba(255,255,255,.65)!important;
}
.portal-btn.student{
  background:var(--site-red)!important;
  color:#fff!important;
  box-shadow:0 7px 16px rgba(201,45,67,.24)!important;
}
.mobile-menu-btn{
  background:rgba(255,255,255,.10)!important;
  border-color:rgba(255,255,255,.25)!important;
  color:#fff!important;
}
.nav-dropdown{
  background:#fff!important;
  border-color:#d8e8e0!important;
  box-shadow:0 18px 38px rgba(4,64,46,.13)!important;
}
.nav-dropdown a{color:#24483b!important;background:#fff!important}
.nav-dropdown a small{color:#82938b!important}
.nav-dropdown a:hover{background:#eef8f3!important;color:#075b41!important}

/* Ticker: white + green + tiny red accents, no yellow band. */
.news-ticker{
  background:#fff!important;
  border-color:#dce9e3!important;
  box-shadow:0 4px 14px rgba(6,70,50,.045)!important;
}
.ticker-label{background:var(--site-green-700)!important;color:#fff!important}
.ticker-track div>span::before{color:var(--site-red)!important}

/* Hero: image stays clean. Shade only the left corner/edge for copy legibility. */
.hero-section{background:var(--site-green-950)!important}
.hero-stage{box-shadow:none!important;background:#dcebe4!important}
.hero-slide{box-shadow:none!important}
.hero-slide::after{box-shadow:none!important;background:none!important}
.hero-overlay{
  background:linear-gradient(90deg,
    rgba(3,52,37,.93) 0%,
    rgba(3,52,37,.78) 20%,
    rgba(3,52,37,.46) 36%,
    rgba(3,52,37,.15) 50%,
    rgba(3,52,37,0) 62%)!important;
}
.hero-copy{filter:none!important;text-shadow:none!important}
.hero-eyebrow{color:#dff5ea!important}
.hero-eyebrow::before{background:var(--site-red)!important}
.hero-copy h1,.hero-motto,.hero-place{color:#fff!important}
.hero-desc{color:#d8ebe2!important}
.hero-btn.primary{
  background:var(--site-red)!important;
  color:#fff!important;
  box-shadow:0 8px 20px rgba(201,45,67,.25)!important;
}
.hero-btn.secondary{
  background:rgba(255,255,255,.12)!important;
  color:#fff!important;
  border-color:rgba(255,255,255,.28)!important;
}
.hero-welcome strong{color:#fff!important}
.hero-welcome small{color:#d5e9df!important}
.hero-dots button{background:rgba(255,255,255,.48)!important}
.hero-dots button.active{background:var(--site-red)!important}
.hero-term{
  background:rgba(255,255,255,.94)!important;
  color:var(--site-green-900)!important;
  border:1px solid rgba(255,255,255,.7)!important;
}

/* Quick access: compact white cards, green first, navy/red used only as accents. */
.quickdock{
  border-color:#cfe2d9!important;
  box-shadow:0 15px 34px rgba(7,74,53,.11)!important;
}
.quickdock>a,.quickdock>button{background:#fff!important;border-color:#e3eee9!important}
.quickdock>a:hover,.quickdock>button:hover{background:#f1faf5!important}
.quickdock i{color:var(--site-green-600)!important}
.quickdock .quickdock-item:nth-child(3)>i{color:var(--site-navy)!important}
.quickdock .quickdock-item:nth-child(5)>i{color:var(--site-red)!important}
.quickdock .quickdock-item:nth-child(6)>i{color:var(--site-green-800)!important}
.quickdock-live .quickdock-item em{background:#e6f5ed!important;color:var(--site-green-700)!important}

/* More depth and separation — not washed out. */
.stats-section{background:#edf4f0!important}
.stat-card{
  border-color:#cfe1d8!important;
  box-shadow:0 9px 24px rgba(7,74,53,.065)!important;
}
.stat-card::before{background:var(--site-green-600)!important}
.stat-card.blue::before{background:var(--site-navy)!important}
.stat-card.teal::before{background:var(--site-green-500)!important}
.stat-card.orange::before{background:var(--site-red)!important}
.stat-card.purple::before{background:var(--site-green-800)!important}
.stat-card.pink::before{background:#b8263b!important}
.stat-card.blue>span{background:#eaf3f9!important;color:var(--site-navy)!important}
.stat-card.teal>span{background:#e3f5ed!important;color:var(--site-green-700)!important}
.stat-card.orange>span{background:var(--site-red-soft)!important;color:var(--site-red)!important}
.stat-card.purple>span{background:#e8f3ed!important;color:var(--site-green-900)!important}
.stat-card.pink>span{background:#fff0f2!important;color:#b8263b!important}

.public-hub{
  background:linear-gradient(180deg,#eaf4ef 0%,#f6faf8 100%)!important;
  border-color:#d4e5dc!important;
}
.section-panel,.calendar-panel,.promo-module,.office-services-panel{
  background:#fff!important;
  border-color:#ccdfd5!important;
  box-shadow:0 14px 32px rgba(6,69,50,.08)!important;
}
.section-panel::before,.calendar-panel::before{background:var(--site-green-600)!important}
.calendar-panel::before{background:var(--site-red)!important}
.section-kicker{color:var(--site-green-700)!important}
.section-kicker::after{background:#b9d7c8!important}
.section-heading h2,.module-title-row h2,.side-zone-head h2,.office-services-head h2{color:var(--site-green-950)!important}
.section-heading h2::after,.module-title-row h2::after,.office-services-head h2::after,.side-zone-head h2::after{
  background:var(--site-red)!important;
}
.live-dot,.calendar-source,.module-chip{color:var(--site-green-700)!important;background:#eef8f3!important;border-color:#d6eade!important}
.event-date{background:var(--site-red-soft)!important;color:var(--site-red)!important}

/* Selected navy zones create rhythm while green remains the identity. */
.academics-section{
  background:linear-gradient(135deg,var(--site-navy) 0%,var(--site-navy-2) 100%)!important;
  border:0!important;
}
.academics-section .section-kicker{color:#bfe1d1!important}
.academics-section .section-heading h2{color:#fff!important}
.academics-section .section-heading h2::after{background:var(--site-red)!important}
.academic-card{
  background:#fff!important;
  border:1px solid rgba(255,255,255,.45)!important;
  box-shadow:0 12px 28px rgba(5,36,54,.18)!important;
}
.academic-card:nth-child(1),.academic-card:nth-child(2),.academic-card:nth-child(3){border-top:4px solid var(--site-green-500)!important}
.academic-card:nth-child(2){border-top-color:var(--site-red)!important}
.academic-card:nth-child(3){border-top-color:#2f739d!important}
.academic-icon.mint{background:#e4f5ed!important;color:var(--site-green-700)!important}
.academic-icon.blue{background:#eaf3f9!important;color:var(--site-navy)!important}
.academic-icon.gold{background:var(--site-red-soft)!important;color:var(--site-red)!important}

.pride-section{background:#edf4f0!important;color:inherit!important}
.pride-shell{
  background:linear-gradient(135deg,var(--site-green-950) 0%,var(--site-green-800) 62%,var(--site-navy) 100%)!important;
  box-shadow:0 20px 46px rgba(4,61,44,.16)!important;
}
.pride-head>div:first-child>span{color:#d7eee3!important}
.pride-tabs button.active{background:#fff!important;color:var(--site-green-900)!important;border-color:#fff!important}

.about-section{
  background:linear-gradient(135deg,#e8f4ee 0%,#edf5f1 55%,#e9f1f6 100%)!important;
}
.about-media{box-shadow:0 16px 34px rgba(6,69,50,.12)!important}
.about-media::after{background:linear-gradient(transparent,rgba(3,55,39,.76))!important}
.about-media>span{background:rgba(4,73,52,.72)!important}
.about-copy h2{color:var(--site-green-950)!important}
.about-motto{color:var(--site-green-700)!important}
.about-points span{border-color:#d2e4db!important;box-shadow:0 7px 18px rgba(7,74,53,.045)!important}
.about-points i{color:var(--site-green-600)!important}
.director-note{background:var(--site-green-900)!important}

.gallery-section{
  background:#f7faf8!important;
  border-color:#dce8e2!important;
}
.gallery-row figure{box-shadow:0 10px 24px rgba(7,74,53,.08)!important}
.gallery-row figcaption{background:linear-gradient(transparent,rgba(3,57,41,.88))!important}

.bigdata-section{background:#e8f0f5!important}
.tour-card{background-image:linear-gradient(90deg,rgba(3,63,45,.9),rgba(3,63,45,.24)),var(--tour-image)!important}
.tour-card span,.data-head span{color:#dcefe6!important}
.tour-card a{background:var(--site-red)!important;color:#fff!important}
.data-card{
  background:linear-gradient(135deg,var(--site-navy) 0%,#235d80 100%)!important;
  box-shadow:0 16px 34px rgba(21,62,90,.18)!important;
}
.data-card>p i{color:#74d6ad!important}

.services-section{background:#eef6f2!important}
.service-card{border-color:#d0e2d9!important;box-shadow:0 8px 20px rgba(7,74,53,.055)!important}
.service-card:nth-child(1)>i{background:#e4f5ed!important;color:var(--site-green-700)!important}
.service-card:nth-child(2)>i{background:#eaf3f9!important;color:var(--site-navy)!important}
.service-card:nth-child(3)>i{background:var(--site-red-soft)!important;color:var(--site-red)!important}
.service-card:nth-child(4)>i{background:#e8f4ee!important;color:var(--site-green-800)!important}
.service-card>span{color:var(--site-green-700)!important}
.related-links a{border-color:#d4e5dc!important;box-shadow:0 5px 14px rgba(7,74,53,.04)!important}
.related-links a>i:first-child{color:var(--site-green-600)!important}

.app-center-section{
  background:#fff!important;
  border-color:#dce8e2!important;
}
.office-services-section{background:#e9f1f6!important}

/* Side rail / executive zone: cleaner contemporary green frame, no yellow. */
.site-side-zone{
  background:#fff!important;
  border:1px solid #c7ddd2!important;
  border-top:5px solid var(--site-green-700)!important;
  box-shadow:0 16px 34px rgba(7,74,53,.11)!important;
}
.side-zone-head>span{color:var(--site-green-700)!important}
.side-zone-head h2::after{background:var(--site-red)!important}
.side-link-card{background:#f8fbf9!important;border-color:#d7e6df!important}
.side-link-card:hover{background:#eef8f3!important;border-color:#b7d7c7!important}
.side-link-card.tone-blue .side-link-icon{background:#eaf3f9!important;color:var(--site-navy)!important}
.side-link-card.tone-gold .side-link-icon,.side-link-card.tone-orange .side-link-icon,.side-link-card.tone-pink .side-link-icon{background:var(--site-red-soft)!important;color:var(--site-red)!important}
.side-link-card.tone-purple .side-link-icon{background:#e6f3ec!important;color:var(--site-green-900)!important}

.site-executives{
  border-bottom:1px solid #dce9e3!important;
}
.site-executives-head .section-kicker{color:var(--site-green-700)!important}
.site-executives-head h2{color:var(--site-green-950)!important}
.site-executives-head h2::after{background:var(--site-red)!important}
.site-executive-card{
  padding:8px 8px 0!important;
  border:1px solid #c4dccf!important;
  border-radius:22px!important;
  background:linear-gradient(180deg,#ffffff 0%,#f4faf7 100%)!important;
  box-shadow:0 12px 28px rgba(7,74,53,.10)!important;
}
.site-executive-card::before{
  height:5px!important;
  background:linear-gradient(90deg,var(--site-green-800) 0 78%,var(--site-red) 78% 100%)!important;
}
.site-executive-card::after{border-color:rgba(9,111,78,.10)!important}
.site-executive-photo{border-color:#b7d6c7!important;background:#dcede5!important;box-shadow:none!important}
.site-executive-copy::before{background:var(--site-green-700)!important}
.site-executive-copy b{color:var(--site-green-950)!important}
.site-executive-copy small{background:#e9f5ef!important;border-color:#d2e7dd!important;color:#4f7062!important}

.cta-strip{
  background:linear-gradient(110deg,var(--site-green-950),var(--site-green-700))!important;
  border-bottom:4px solid var(--site-red)!important;
}
.cta-strip span{color:#bee0d0!important}
.cta-yellow{background:var(--site-red)!important;color:#fff!important}
.cta-blue{background:#fff!important;color:var(--site-green-900)!important}

.site-footer{
  background:var(--site-green-950)!important;
  color:#deeee7!important;
}
.footer-grid a,.footer-grid span,.footer-grid button{color:#b9d2c7!important}
.footer-bottom{color:#8fb1a2!important}

/* Keep responsive behaviour and ensure dark-green desktop header turns into a readable mobile menu. */
@media(max-width:820px){
  .site-mainbar{background:var(--site-green-900)!important}
  .site-nav{
    background:#fff!important;
    border-color:#d2e3da!important;
    box-shadow:0 18px 40px rgba(4,60,43,.16)!important;
  }
  .site-nav a{color:#24483b!important;margin:1px 0!important}
  .site-nav a small{color:#7a9086!important}
  .site-nav a:hover{background:#eef8f3!important;color:var(--site-green-900)!important}
  .site-nav a.active{background:#e7f5ed!important;color:var(--site-green-900)!important;box-shadow:none!important}
  .site-nav a.active::after{left:12px;right:auto;width:4px;height:auto;top:10px;bottom:10px}
  .school-brand-copy strong{color:#fff!important}
  .school-brand-copy small{color:#c9e3d8!important}
  .hero-overlay{
    background:linear-gradient(90deg,rgba(3,52,37,.90) 0%,rgba(3,52,37,.62) 48%,rgba(3,52,37,.10) 72%,rgba(3,52,37,0) 86%)!important;
  }
}
@media(max-width:560px){
  .hero-overlay{
    background:linear-gradient(90deg,rgba(3,52,37,.90) 0%,rgba(3,52,37,.62) 54%,rgba(3,52,37,.08) 82%,rgba(3,52,37,0) 100%)!important;
  }
  .site-executive-card{border-radius:18px!important}
}


/* P230 — Public homepage: mobile login contrast, readable campus, measured motion, +1.5pt detail text. */
/* 1) Mobile login buttons: force text/icon contrast even when generic nav-link colors override them. */
@media (max-width: 820px){
  .school-site-body .site-nav .mobile-portal-actions :is(button,a).mobile-portal.teacher,
  .school-site-body .site-login-actions :is(button,a).portal-btn.teacher{
    background:#075740!important;color:#ffffff!important;border:1px solid #0c6d4e!important;
    -webkit-text-fill-color:#ffffff!important;
    box-shadow:0 5px 15px rgba(5,54,38,.17);
  }
  .school-site-body .site-nav .mobile-portal-actions :is(button,a).mobile-portal.student,
  .school-site-body .site-login-actions :is(button,a).portal-btn.student{
    background:#bb2d43!important;color:#ffffff!important;border:1px solid #9d2037!important;
    -webkit-text-fill-color:#ffffff!important;
    box-shadow:0 5px 15px rgba(139,23,45,.16);
  }
  .school-site-body .site-nav .mobile-portal-actions .mobile-portal:is(.teacher,.student) :is(i,span),
  .school-site-body .site-login-actions .portal-btn:is(.teacher,.student) :is(i,span){
    color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;opacity:1!important;text-shadow:none!important;
  }
  .school-site-body .mobile-portal-actions .mobile-portal{font-weight:800!important;font-size:max(.82rem,13px)!important;min-height:50px!important}
}
/* All portal variants keep legible text on their respective fills. */
.school-site-body :is(.cta-yellow,.cta-blue,.modal-submit.student,.modal-submit.teacher){font-weight:800!important}
.school-site-body .cta-yellow,.school-site-body .cta-yellow :is(i,span){color:#fff!important;-webkit-text-fill-color:#fff!important}
.school-site-body .cta-blue,.school-site-body .cta-blue :is(i,span){color:#124e39!important;-webkit-text-fill-color:#124e39!important}

/* 2) Scroll: bottom-to-top arrival. No permanently hidden content when reduced-motion is set. */
.school-site-body.motion-js.reveal-rise :is(.reveal,.reveal-section,.motion-card){
  transition:opacity .78s cubic-bezier(.2,.72,.25,1),transform .78s cubic-bezier(.2,.72,.25,1);
  transition-delay:var(--motion-delay,0ms);
}
.school-site-body.motion-js.reveal-rise :is(.reveal,.reveal-section,.motion-card):not(.in){opacity:0;transform:translate3d(0,27px,0)}
.school-site-body.motion-js.reveal-rise :is(.reveal,.reveal-section,.motion-card).in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
 .school-site-body.motion-js :is(.reveal,.reveal-section,.motion-card){opacity:1!important;transform:none!important;transition:none!important}
}

/* 3) Virtual campus: replace pale-on-pale text with assured contrast, with or without the photo. */
.school-site-body .bigdata-section .tour-card{
  background-color:#095640!important;
  background-image:linear-gradient(90deg,rgba(5,55,40,.94) 0%,rgba(6,66,49,.82) 54%,rgba(6,66,49,.54) 100%),var(--tour-image)!important;
  border:1px solid #2d8769!important;
  box-shadow:0 12px 30px rgba(5,66,47,.12);
}
.school-site-body .bigdata-section .tour-card.no-image{
  background-color:#075a41!important;
  background-image:linear-gradient(135deg,#064d38 0%,#086b4b 58%,#0b7654 100%)!important;
}
.school-site-body .bigdata-section .tour-card h2{color:#ffffff!important;text-shadow:0 2px 8px rgba(0,30,19,.24)}
.school-site-body .bigdata-section .tour-card p{color:#f1fff7!important;font-weight:600!important;line-height:1.72!important}
.school-site-body .bigdata-section .tour-card>div>span{color:#fff1c4!important;letter-spacing:.08em;font-weight:800!important}
.school-site-body .bigdata-section .tour-card a{background:#bb2d43!important;color:#fff!important;border:1px solid #ae243d!important;box-shadow:0 7px 16px rgba(0,30,19,.12)}
.school-site-body .bigdata-section .tour-card a :is(i,span){color:#fff!important}
.school-site-body .bigdata-section .tour-card a:hover{background:#9d2238!important}

/* 4) Descriptions +1.5pt (~2 CSS px). Keep headings and dashboard numerals at their own hierarchy. */
.school-site-body .section-heading p,
.school-site-body .about-copy>p:not(.about-motto),
.school-site-body .tour-card p,
.school-site-body .featured-copy p,
.school-site-body .academic-card p,
.school-site-body .pride-copy p,
.school-site-body .data-card>p,
.school-site-body .data-card .data-note{font-size:calc(.86rem + 2px)!important;line-height:1.65!important}
.school-site-body .news-mini-list small,
.school-site-body .news-feed-card p,
.school-site-body .service-card small,
.school-site-body .app-center-copy small,
.school-site-body .office-service-card small,
.school-site-body .site-executive-copy small,
.school-site-body .related-links a,
.school-site-body .quickdock small,
.school-site-body .stat-card small,
.school-site-body .gallery-row figcaption,
.school-site-body .data-kpis span,
.school-site-body .pride-card time{font-size:calc(.69rem + 2px)!important;line-height:1.5!important}
.school-site-body .about-points span,
.school-site-body .service-card>span,
.school-site-body .news-feed-foot small{font-size:calc(.78rem + 2px)!important;line-height:1.5!important}
@media(max-width:560px){
 .school-site-body .bigdata-section .tour-card{padding:22px 20px!important;min-height:250px!important}
 .school-site-body .bigdata-section .tour-card h2{font-size:clamp(1.45rem,5vw,1.85rem)!important}
 .school-site-body .bigdata-section .tour-card p{font-size:calc(.83rem + 2px)!important}
}

/* P231 — navigation offset, flat Hall of Pride, CMS gallery & school videos */
html{scroll-padding-top:112px}
.site-section[id],main#home{scroll-margin-top:112px}
.pride-section{background:#eef4f0!important;color:#123f30!important}
.pride-shell{background:#0a503a!important;background-image:none!important;color:#fff!important;box-shadow:none!important;border:1px solid #28765b!important}
.pride-shell::before{display:none!important}
.pride-head>div:first-child>span,.pride-head h2,.pride-head h2 *{color:#fff!important;opacity:1!important;text-shadow:none!important}
.pride-head p{color:#e5f5ed!important}
.pride-head h2{font-weight:800!important}
.pride-head .pride-tabs button{color:#fff!important;border-color:rgba(255,255,255,.42)!important;background:#176747!important;background-image:none!important}
.pride-head .pride-tabs button b{background:rgba(255,255,255,.17)!important;color:#fff!important}
.pride-head .pride-tabs button.active{background:#fff!important;color:#0b513b!important;border-color:#fff!important}
.pride-head .pride-tabs button.active b{background:#e9f5ef!important;color:#0b513b!important}
.pride-empty{background:#fff!important;color:#1b4b38!important;border-radius:16px}
.pride-empty i,.pride-empty b{color:#176848!important}
.pride-empty span{color:#597569!important}
.site-media-admin-link{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:#e6f4ec;border:1px solid #bbdeca;color:#136142;border-radius:11px;font-size:.86rem;font-weight:800;white-space:nowrap}
.site-album-grid,.site-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:20px}
.site-album-card{display:block;position:relative;border:0;border-radius:17px;overflow:hidden;min-height:240px;aspect-ratio:1.36;cursor:pointer;background:#dce8df;text-align:left;padding:0;box-shadow:0 10px 24px rgba(9,65,45,.09)}
.site-album-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.site-album-card:hover img{transform:scale(1.045)}
.site-album-overlay{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:5px;padding:30px 18px 15px;background:linear-gradient(transparent,rgba(5,34,24,.88));color:#fff!important;line-height:1.45}
.site-album-overlay b{color:#fff!important;font-size:1.05rem}
.site-album-overlay small{color:#effaf3!important;font-size:.77rem}
.site-album-empty,.site-video-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:35px 20px;border:1px dashed #bfd9cb;border-radius:16px;background:#fff;text-align:center;color:#496b59}
.site-album-empty i,.site-video-empty i{color:#187353;font-size:29px}.site-album-empty strong,.site-video-empty b{font-weight:800;color:#174f3b}
.site-video-section{background:#fff!important}
.site-video-grid{align-items:stretch}
.site-video-card{background:#fff;border-radius:17px;overflow:hidden;border:1px solid #dce9e1;box-shadow:0 9px 22px rgba(9,55,38,.07);min-width:0}
.site-video-cover{height:185px;background:#0e4e3b;display:grid;place-items:center;position:relative;overflow:hidden}
.site-video-cover>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.site-video-cover>i{position:relative;z-index:1;color:#fff;font-size:46px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}
.site-video-yt>i{color:#f34c58}
.site-video-content{padding:16px}
.site-video-content>span{color:#b0283d;font-size:.73rem;font-weight:900;letter-spacing:.08em}
.site-video-content h3{color:#164c37;font-size:1.1rem;margin:7px 0;line-height:1.45}
.site-video-content p{color:#5f7669;font-size:.88rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.site-video-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px}
.site-video-actions button,.site-video-actions a{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfdfd4;border-radius:9px;background:#fff;color:#205a43;padding:9px 12px;font-weight:800;font-size:.81rem;cursor:pointer}
.site-video-actions .site-video-play{background:#0e6549;color:#fff;border-color:#0e6549}
.site-album-dialog,.site-video-dialog{position:fixed;inset:0;margin:auto;width:min(1000px,calc(100vw - 24px));max-height:88dvh;overflow:auto;background:#fff;color:#193f30;border:1px solid #d3e4d9;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(0,25,13,.22);z-index:2000}
.site-album-dialog::backdrop,.site-video-dialog::backdrop{background:rgba(0,22,13,.76)}
.site-media-dialog-header{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#0e523d;color:#fff;padding:12px 18px}
.site-media-dialog-header span{font-size:.67rem;color:#ceecdb;letter-spacing:.1em;font-weight:800}
.site-media-dialog-header h3{font-size:1.15rem;color:#fff;margin:1px 0}
.site-media-dialog-header button{border:1px solid #88b6a4;background:#1b7354;color:#fff;border-radius:9px;width:38px;height:38px;cursor:pointer}
#siteAlbumDescription{padding:12px 18px;color:#557363;font-size:.89rem}
.site-album-photos{padding:8px 18px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.site-album-photos figure{margin:0;border:1px solid #dce9e2;border-radius:11px;overflow:hidden}
.site-album-photos img{display:block;width:100%;max-height:500px;object-fit:contain;background:#eef3ef}
.site-album-photos figcaption{font-size:.77rem;color:#436b54;padding:7px 10px}
#siteVideoFrame{aspect-ratio:16/9;background:#13271e}#siteVideoFrame iframe{display:block;width:100%;height:100%;border:0}
.site-video-dialog>p{margin:10px 18px 15px;color:#597565;font-size:.77rem}
@media(max-width:820px){.site-album-grid,.site-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html{scroll-padding-top:90px}.site-section[id],main#home{scroll-margin-top:90px}}
@media(max-width:560px){.site-album-grid,.site-video-grid,.site-album-photos{grid-template-columns:1fr}.site-album-card{min-height:210px}.site-video-cover{height:205px}.site-album-dialog,.site-video-dialog{width:calc(100vw - 12px)}.site-album-photos{padding:8px 12px}.site-media-admin-link{font-size:.76rem}.site-video-content{padding:14px}}
@media(prefers-reduced-motion:reduce){.site-album-card img{transition:none}}

/* P308 — iPad/tablet navigation contrast and reliable opened menu */
@media (max-width:1180px){
  .school-site-body .site-mainbar .site-nav{
    display:none!important;
    flex-direction:column!important;
    background-color:#fff!important;
    color:#163e30!important;
    border:1px solid #cbded4!important;
    opacity:1!important;
    visibility:visible!important;
    -webkit-text-fill-color:initial;
    box-shadow:0 20px 44px rgba(3,44,31,.22)!important;
  }
  .school-site-body .site-mainbar .site-nav.show{display:flex!important;}
  .school-site-body .site-mainbar .site-nav>.nav-group,
  .school-site-body .site-mainbar .site-nav>.nav-group>a,
  .school-site-body .site-mainbar .site-nav>a{min-height:52px!important;min-width:0!important;width:100%!important;max-width:100%!important;opacity:1!important;}
  .school-site-body .site-mainbar .site-nav>.nav-group>a,
  .school-site-body .site-mainbar .site-nav>a{
    color:#164b38!important;-webkit-text-fill-color:#164b38!important;
    background:#fff!important;opacity:1!important;
    text-shadow:none!important;border:1px solid transparent!important;
    display:flex!important;flex-direction:column!important;align-items:flex-start!important;
    margin:2px 0!important;gap:3px!important;padding:10px 15px!important;
  }
  .school-site-body .site-mainbar .site-nav>.nav-group>a :is(span,i),
  .school-site-body .site-mainbar .site-nav>a :is(span,i){color:#164b38!important;-webkit-text-fill-color:#164b38!important;opacity:1!important;text-shadow:none!important;}
  .school-site-body .site-mainbar .site-nav>.nav-group>a small,
  .school-site-body .site-mainbar .site-nav>a small{
    color:#607d6f!important;-webkit-text-fill-color:#607d6f!important;opacity:1!important;text-shadow:none!important;
  }
  .school-site-body .site-mainbar .site-nav>.nav-group>a:is(:hover,:focus-visible,.active),
  .school-site-body .site-mainbar .site-nav>a:is(:hover,:focus-visible,.active){
    background-color:#e7f5ed!important;border-color:#cde4d7!important;color:#094e37!important;-webkit-text-fill-color:#094e37!important;transform:none!important;
  }
  .school-site-body .site-mainbar .site-nav .nav-dropdown{
    position:static!important;display:none!important;width:100%!important;min-width:0!important;
    opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto!important;
    margin:0!important;padding:3px 3px 3px 12px!important;background:#f7fbf8!important;box-shadow:none!important;border:0!important;
  }
  .school-site-body .site-mainbar .site-nav .nav-group.open>.nav-dropdown{display:grid!important;grid-template-columns:minmax(0,1fr)!important;}
  .school-site-body .site-mainbar .site-nav .nav-dropdown>a{
    display:flex!important;min-height:40px!important;background:transparent!important;
    color:#1e5a43!important;-webkit-text-fill-color:#1e5a43!important;
    padding:8px 10px!important;margin:1px 0!important;
  }
  .school-site-body .site-mainbar .site-nav .nav-dropdown>a :is(span,small,i){
    color:#285f4b!important;-webkit-text-fill-color:#285f4b!important;opacity:1!important;
  }
  .school-site-body .site-mainbar .mobile-menu-btn{position:relative;z-index:951;}
}


/* P365 — Google Calendar-inspired agenda, with the day number on the RIGHT. */
.calendar-compact-grid{grid-template-columns:minmax(0,1.15fr) minmax(255px,.85fr)}
.sdc-cal-agenda{background:#fff;border:1px solid #dceae4;border-radius:17px;min-width:0;padding:13px 14px;display:flex;flex-direction:column;gap:9px;box-shadow:0 4px 15px rgba(8,70,49,.035)}
.sdc-cal-agenda-head{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid #e8f0eb;padding-bottom:9px}
.sdc-cal-agenda-head small{font-size:.61rem;color:#809589;display:block;margin-bottom:2px}
.sdc-cal-agenda-head h3{font-size:.96rem;line-height:1.25;color:#0b553f;margin:0}
.sdc-cal-agenda-reset{font:inherit;border:1px solid #d2e5dc;background:#f6fbf8;border-radius:9px;padding:7px 8px;color:#11674b;cursor:pointer;font-size:.62rem;white-space:nowrap}
.sdc-cal-agenda-reset[hidden]{display:none}
.sdc-cal-agenda-list{display:flex;flex-direction:column;gap:0;max-height:315px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.sdc-cal-agenda-item{display:grid;grid-template-columns:minmax(0,1fr) 57px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2ef;min-height:67px}
.sdc-cal-agenda-item:last-child{border-bottom:0}
.sdc-cal-agenda-text{min-width:0}.sdc-cal-agenda-text strong{display:block;font-size:.79rem;color:#1c4538;line-height:1.35;overflow-wrap:anywhere}
.sdc-cal-agenda-text p{font-size:.64rem;line-height:1.45;color:#779086;margin:4px 0 0;overflow-wrap:anywhere}
.sdc-cal-agenda-date{border:1px solid #dfebe5;border-radius:12px;background:#f5faf7;color:#126449;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:53px;line-height:1.1}
.sdc-cal-agenda-date b{font-size:1.23rem;font-weight:900;line-height:1.15}.sdc-cal-agenda-date span{font-size:.61rem;color:#668578;margin-top:3px}
.sdc-cal-agenda-empty{font-size:.75rem;color:#7b9185;background:#f7faf8;padding:16px 10px;text-align:center;border-radius:10px;margin:4px 0}
.sdc-cal-agenda-foot{display:flex;align-items:center;gap:6px;font-size:.61rem;line-height:1.5;color:#85988e;margin-top:auto}
.sdc-cal-tooltip{position:fixed;z-index:3000;min-width:160px;max-width:min(285px,calc(100vw - 16px));padding:11px 13px;border-radius:12px;border:1px solid #d7e7de;background:#fff;color:#1e4739;box-shadow:0 12px 30px rgba(10,64,44,.17);pointer-events:none;font-size:.71rem;line-height:1.45}
.sdc-cal-tooltip[hidden]{display:none!important}.sdc-cal-tooltip b{display:block;color:#0b7554;margin-bottom:4px;font-size:.71rem}.sdc-cal-tooltip p{margin:3px 0;overflow-wrap:anywhere}
.calendar-module .mini-day.has-event{font-weight:900}
@media(max-width:900px){.calendar-compact-grid{grid-template-columns:minmax(0,1fr) minmax(220px,.7fr)}}
@media(max-width:700px){.calendar-compact-grid{grid-template-columns:minmax(0,1fr)}.sdc-cal-agenda{padding:12px}.sdc-cal-agenda-list{max-height:265px}}
@media(max-width:430px){.sdc-cal-agenda-item{grid-template-columns:minmax(0,1fr) 52px}.sdc-cal-agenda-date{min-height:49px}}


/* P366 — Calendar without duplicated seven-day strip; let month dates fill the agenda height. */
.calendar-module .calendar-compact-grid{align-items:stretch}
.calendar-module .mini-month-card{display:flex;flex-direction:column;min-height:0}
.calendar-module .mini-month-title,.calendar-module .mini-month-weekdays{flex:none}
.calendar-module .mini-month-grid{flex:1 1 auto;grid-auto-rows:minmax(43px,1fr);align-content:stretch}
.calendar-module .mini-month-grid .mini-day{min-height:43px}
.calendar-module .sdc-cal-agenda{min-height:0}
/* Stacked mobile view: let the calendar keep natural proportions instead of filling screen height. */
@media(max-width:700px){
  .calendar-module .mini-month-card{height:auto}
  .calendar-module .mini-month-grid{flex:none;grid-auto-rows:minmax(40px,auto)}
  .calendar-module .mini-month-grid .mini-day{min-height:40px}
}
@media(max-width:430px){
  .calendar-module .mini-month-grid{grid-auto-rows:minmax(38px,auto)}
  .calendar-module .mini-month-grid .mini-day{min-height:38px}
}

/* P110: the selected news category must not display cards hidden by the tab filter. */
#news .news-feed > [data-news-item][hidden],
#news .news-feed > .news-feed-card[hidden],
.public-content-row #news .news-feed > [data-news-item][hidden] {
  display: none !important;
}
