:root{--ink:#302037;--violet:#5c237d;--paper:#fcfaf7;--rule:#dcd0df;--sans:system-ui,-apple-system,"Hiragino Kaku Gothic ProN",sans-serif}
body{background:var(--paper);color:var(--ink)}
header.mast{display:block;max-width:none;background:#2f153f;padding:0;border-bottom:1px solid #875c96;color:white}
.mast-inner{max-width:1320px;margin:auto;padding:14px clamp(16px,5vw,72px);min-height:76px;display:flex;align-items:center;gap:26px}
.wordmark{display:inline-block;flex:none}.wordmark img{display:block;width:clamp(120px,13vw,170px);height:auto}
.mast .desk-nav{display:flex;margin:0 0 0 auto;width:auto;gap:clamp(6px,1.2vw,22px);order:0;align-items:center}
.mast nav a,.mobile-nav summary,.official{font:600 15px/1.5 var(--sans)}
.mast .desk-nav a{padding:11px 4px;border-bottom:2px solid transparent;color:#fff7ff}
.mast .desk-nav a:hover,.mast .desk-nav a[aria-current]{border-color:#e8baff;text-decoration:none}
.mast .official{background:#fff;color:#49205d;border:0;border-radius:100px;min-height:44px;padding:10px 19px;gap:8px}
.mast .official:hover{background:#f4e5ff}
.mobile-nav{display:none}
.quick-outer{display:block;margin:0;background:#f3ecf5;width:100%;border-bottom:1px solid var(--rule)}
.quick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:1280px;margin:auto;padding:24px clamp(16px,5vw,72px);gap:12px}
.quick a{position:relative;display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;align-content:center;column-gap:12px;background:white;border:1px solid #d9c7df;border-radius:10px;min-height:100px;padding:16px 24px 16px 16px;color:#452154;font-family:var(--sans)}
.quick svg{width:26px;align-self:center;grid-row:span 2;color:var(--violet)}
.quick strong{font-size:clamp(16px,1.3vw,20px);line-height:1.5}.quick small{font-size:13px;color:#65556c;line-height:1.55}.quick span{position:absolute;right:9px;top:50%;transform:translateY(-50%);color:#71388b}
.quick a:hover,.quick a:focus-visible{background:#fbf4ff;border-color:#804c95;text-decoration:none}
.band{background:#f2edf4}.label{color:#75557f}.editorial summary,.inner summary{font-weight:600}
.sitefoot{display:block;max-width:1320px;padding:48px clamp(16px,5vw,72px) 20px;font-family:var(--sans)}
.foot{background:#2d1739;color:#fff8ff}
.foot-main{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:48px}
.foot-contact p{margin:20px 0 0;color:#e3cee9;font-size:14px}.foot-contact .foot-phone{display:block;color:white;text-decoration:none;font-size:clamp(24px,3vw,34px);letter-spacing:.025em;font-weight:650;line-height:1.6}
.foot-contact small{color:#e3cee9;font-size:13px}.foot-group h2{font:600 15px var(--sans);color:#e5c5f1;border-bottom:1px solid #664870;padding-bottom:12px;margin:0 0 6px}
.foot-group a{display:block;padding:10px 0;text-decoration:none;font-size:15px;line-height:1.6}.foot-group a:hover,.foot-base a:hover{text-decoration:underline}
.foot-base{display:flex;justify-content:space-between;border-top:1px solid #664870;margin-top:24px;padding-top:14px}.foot-base a{padding:6px 0;color:#eaddec;font-size:14px;text-decoration:none}
@media(max-width:940px){
 .mast .desk-nav{display:none}.mast-inner{gap:10px;flex-wrap:wrap;padding-block:10px;min-height:62px}
 .mast .official{margin-left:auto;font-size:14px;padding-inline:12px}
 .mobile-nav{display:block;position:static;margin:0;padding:0;border:0}
 .mobile-nav summary{display:flex;align-items:center;gap:6px;color:white;padding:10px 4px;min-height:44px;list-style:none}.mobile-nav summary::-webkit-details-marker{display:none}
 .menu-icon{display:block;width:15px;height:10px;border-block:1.5px solid currentColor;position:relative}.menu-icon:after{content:'';position:absolute;left:0;right:0;top:3px;border-top:1.5px solid currentColor}
 .mast:has(.mobile-nav[open]) .mast-inner{position:relative;padding-bottom:0}
 .mobile-nav[open]{display:contents}.mobile-nav[open] nav{display:grid;width:100%;grid-template-columns:1fr 1fr;order:5;gap:0 18px;margin:0;padding:8px 0 14px}
 .mobile-nav nav a{padding:12px 0;border-top:1px solid #795f84}.mobile-nav nav a[aria-current]{color:#e8baff;text-decoration:underline}
 .quick{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
 .mast-inner{column-gap:6px;padding-inline:14px}.mast .wordmark img{width:102px}.mast .official{min-height:42px}.mobile-nav summary{font-size:14px}
 .quick{padding:16px;gap:8px}.quick a{display:block;padding:12px 10px;min-height:102px}.quick svg{display:block;width:21px;margin-bottom:4px}.quick strong,.quick small{display:block}.quick small{font-size:12px}.quick span{top:18px;right:11px;transform:none}
 .foot-main{grid-template-columns:1fr 1fr;gap:24px 20px}.foot-contact{grid-column:1/-1}.sitefoot{padding-top:32px}.foot-group a{min-height:44px}
}

.legal-links{display:flex;gap:6px 20px;flex-wrap:wrap}.foot-base{gap:12px;flex-wrap:wrap}.legal-facts{display:grid;grid-template-columns:minmax(110px,32%) 1fr;margin:24px 0}.legal-facts dt,.legal-facts dd{margin:0;padding:12px;border-top:1px solid var(--rule);overflow-wrap:anywhere}.legal-facts dt{font-weight:600;background:#f3edf5}
@media(max-width:600px){.legal-links{display:grid;gap:0}.legal-links a{min-height:44px}.legal-facts{display:block}.legal-facts dd{border:0}}

/* Reading panels, teacher portraits, fee comparisons and reception */
.editorial details,.inner details{background:#fff;border:1px solid #dfd3e4;border-radius:9px;padding:0;margin:10px 0;overflow:hidden}.editorial details>summary,.inner details>summary{list-style:none;position:relative;padding:16px 50px 16px 18px;font:600 16px/1.65 var(--sans);color:#41204f}.editorial summary::-webkit-details-marker,.inner summary::-webkit-details-marker{display:none}.editorial details>summary:after,.inner details>summary:after{content:"＋";position:absolute;right:17px;color:#71418a}.editorial details[open]>summary:after,.inner details[open]>summary:after{content:"−"}.editorial details[open]>summary,.inner details[open]>summary{background:#f1e9f5}.editorial details>p,.inner details>p,.editorial details>h3,.editorial details>.btn,.editorial details>dl{margin:16px 20px}.inner section>h2{border-left:3px solid #9863b2;padding-left:14px}.inner table{width:100%;background:#fff;font:15px/1.65 var(--sans)}.inner table th,.inner table td{padding:12px 9px;text-align:left}.inner table thead{background:#50266c;color:#fff}.inner table tbody tr:nth-child(even){background:#f5eff8}.person{border:1px solid #dbcfe0;border-top:3px solid #7d4898;border-radius:10px;box-shadow:0 3px 12px #47225308}.person img{border-radius:7px}.person .profile{color:#5a247b}.finder{border-left:4px solid #795092}.reception{max-width:1100px;display:grid;grid-template-columns:1.35fr 1fr;gap:26px;align-items:center;padding-block:38px}.reception .btn{justify-self:start}.portrait-strip{background:#f0eaf4;border-block:1px solid #dfd5e4}.portrait-strip .wrap{padding-block:42px}.portrait-strip h2{margin-bottom:16px}.portrait-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.portrait-list a{display:grid;grid-template-columns:68px 1fr;align-items:center;gap:13px;background:white;padding:13px;border:1px solid #dfd3e4;border-radius:9px;text-decoration:none}.portrait-list a:hover{border-color:#795092}.portrait-list img{width:68px;height:86px;border-radius:5px;object-fit:cover}.portrait-list strong,.portrait-list small{display:block}.portrait-list strong{font-size:21px}.portrait-list small{font:13px/1.65 var(--sans);color:#64576a}.portrait-strip .all{display:inline-block;margin-top:16px;color:#542471;text-decoration:underline}
@media(max-width:720px){.portrait-list,.reception{grid-template-columns:1fr}.reception{gap:8px}.inner table td,.inner table th{padding:8px 4px}.portrait-list a{grid-template-columns:54px 1fr}.portrait-list img{width:54px;height:65px}}
