/* The sole public header/footer and interface type system, loaded last. */
:root {--site-ui:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--site-brand:"Songti SC",STSong,SimSun,serif;--site-green:#315b3c;--site-ink:#173d29;--site-line:#e3e9e5}
html {scrollbar-gutter:stable}
body.site-page,body.mc-inner {font-family:var(--site-ui)!important;background:#fff}
.site-page :is(h1,h2,h3,h4,button,input,select,textarea),.mc-inner :is(h1,h2,h3,h4,button,input,select,textarea) {font-family:var(--site-ui)!important}
.mc-site-header,.mc-site-header *,.mc-site-footer,.mc-site-footer * {box-sizing:border-box}
.mc-site-header {position:relative;z-index:30;display:block;width:100%;margin:0;padding:0;background:#fff;border:0;border-bottom:1px solid var(--site-line);box-shadow:none}
.mc-site-header-inner {width:min(1360px,100%);min-height:88px;margin:0 auto;padding:12px 24px;display:grid;grid-template-columns:230px minmax(0,1fr) 166px;align-items:center;gap:16px}
.mc-site-header a {color:var(--site-ink)!important;text-decoration:none!important;box-shadow:none!important}
.mc-site-brand {display:flex;align-items:center;gap:10px;margin:0;padding:0;min-width:0;background:none!important;border:0;border-radius:0;line-height:1.2;letter-spacing:0}
.mc-site-header .mc-site-logo {display:block;width:56px!important;height:56px!important;min-width:56px;max-width:none;object-fit:contain;margin:0;padding:0;flex:none;border:0;border-radius:0;box-shadow:none}
.mc-site-brand-text {display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:0;padding:0}
.mc-site-brand-text strong {font:700 24px/1.2 var(--site-brand)!important;letter-spacing:0!important;margin:0;padding:0;white-space:nowrap}
.mc-site-brand-text>span {font:400 14px/1.2 Arial,sans-serif!important;letter-spacing:0!important;margin:0;padding:0;white-space:nowrap}
.mc-site-nav {display:flex;align-items:center;justify-content:center;gap:3px;margin:0;padding:0;min-width:0;max-width:none;flex-wrap:nowrap;border:0}
.mc-site-nav a,.mc-site-languages a {position:relative;display:flex;align-items:center;justify-content:center;min-height:40px;margin:0;padding:9px 8px;border:0;border-radius:5px!important;background:transparent;font:500 13px/1.5 var(--site-ui)!important;white-space:nowrap;letter-spacing:0!important;transition:background .15s}
.mc-site-nav a::after,.mc-site-languages a::after {content:"";position:absolute;left:8px;right:8px;bottom:2px;height:2px;background:#cc7d84;transform:scaleX(0);transition:transform .15s}
.mc-site-nav a:is([aria-current],:hover,:focus-visible),.mc-site-languages a:is([aria-current],:hover,:focus-visible) {background:rgba(49,91,60,.065)!important}
.mc-site-nav a:is([aria-current],:hover,:focus-visible)::after,.mc-site-languages a:is([aria-current],:hover,:focus-visible)::after {transform:scaleX(1)}
.mc-site-languages,.mc-site-utility {display:flex;align-items:center;justify-content:flex-end;gap:1px;min-width:0;margin:0;padding:0 0 0 10px;border-left:1px solid var(--site-line);font-family:var(--site-ui)}
.mc-site-languages a {font-size:12px!important;padding-inline:7px;min-height:36px}
.mc-site-utility a {font:400 12px/1.5 var(--site-ui)!important;white-space:nowrap;padding:7px 0}
.mc-site-header a:focus-visible,.mc-site-footer a:focus-visible {outline:2px solid #ba7680;outline-offset:3px}
.mc-site-footer {display:block;margin:0;padding:0;border:0;background:#fff;color:#617067;font:400 12px/1.7 var(--site-ui);text-align:left}
.mc-site-footer-inner {width:min(1160px,calc(100% - 80px));margin:auto;padding:23px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--site-line)}
.mc-site-footer a {color:inherit!important;text-decoration:none!important;font:inherit!important;letter-spacing:0!important}
.mc-site-footer nav {display:flex;gap:20px;margin:0;padding:0}
.mc-inner :is(.shell,.co-wrap) {width:min(1160px,calc(100% - 80px));margin-inline:auto;box-sizing:border-box}
.mc-inner .mc-hero h1,.site-page .page-hero h1 {font-size:38px;line-height:1.25;font-weight:750;letter-spacing:-.025em}
.mc-inner .mc-hero-inner {grid-template-columns:1.1fr 1fr;gap:44px;padding-block:26px}
.mc-inner .mc-hero-art {width:100%;max-width:450px;height:300px;min-height:0;max-height:none;justify-self:end;align-self:center;border-radius:6px}
.mc-inner .mc-hero-art img {object-fit:contain}
.calendar-hero .co-wrap,.sc-official .sc-date {box-sizing:border-box}
.sc-official .sc-date {border-radius:4px!important}
.sc-official .sc-view-switch button {border-radius:4px!important}
/* Reading hierarchy for the seven public entry pages. */
.site-page .values-grid article {display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px 16px;align-content:start}
.site-page .value-icon {width:56px;height:56px;grid-row:1/3}
.site-page .values-grid h3 {font-size:21px;line-height:1.45}
.site-page .values-grid p {font-size:15px;line-height:1.85}
.site-page :is(.philosophy-intro,.materials-section>p,.lesson-rhythm>p) {max-width:900px;line-height:1.9}
.site-page .team-grid article {border-top:3px solid #dce7de}
.site-page .team-grid h3 {font-size:23px}
.site-page .team-grid p {font-size:15px;line-height:1.9}
.site-page .catalog-card>img {height:210px;object-position:center 40%}
.site-page .catalog-copy {padding:24px}
.site-page .catalog-copy h3 {font-size:28px}
.site-page .catalog-copy dl {gap:12px;margin-block:18px 22px}
.site-page .catalog-copy dd,.site-page .catalog-copy>p {font-size:15px;line-height:1.8}
.site-page .enquiry-steps ol {background:#fff;border-block:1px solid #e3e9e5;border-radius:0;padding:22px 0}
.site-page .enquiry-steps li>span {background:#f2f6f3;color:#315b3c;border:1px solid #dce7de;border-radius:6px;font-family:var(--site-ui)}
.site-page .enquiry-form-panel {border-radius:6px}
.site-page .enquiry-form-panel h2,.site-page .enquiry-sidebar h2 {font-size:24px}
.site-page .enquiry-sidebar :is(.contact-card,.enquiry-faq) {background:#fff;border-radius:6px}
.site-page .notice {background:#f7faf8;border:1px solid #e2eae4;border-radius:6px}
/* Character library: two clearly labelled paths, then course filters and cards. */
.hanzi-page .learning-content {padding-top:28px}
.hanzi-page .hz-browser-heading {margin-bottom:20px}
.hanzi-page .hz-browser-heading h2 {font-size:28px;line-height:1.35}
.hanzi-page .hz-browser-heading p {font-size:15px;line-height:1.8}
.hanzi-page .hz-class-tabs {display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:22px}
.hanzi-page .hz-class-tabs button {position:relative;text-align:left;padding:18px 22px;background:#fff;border:1px solid #dfe7e1!important;border-radius:6px!important;box-shadow:none;color:#315b3c}
.hanzi-page .hz-class-tabs button strong {display:block;font:650 22px/1.4 var(--site-ui)}
.hanzi-page .hz-class-tabs button small {display:block;margin-top:6px;font:400 13px/1.6 var(--site-ui);color:#647269}
.hanzi-page .hz-class-tabs button[aria-selected=true] {background:linear-gradient(120deg,#f8fbf9,#edf4ef);border-color:#95ad9c!important;box-shadow:none}
.hanzi-page .hz-class-tabs button[aria-selected=true]::after {content:"";position:absolute;bottom:0;left:22px;width:44px;height:2px;background:#cc7d84}
.hanzi-page .hz-toolbar {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 18px;padding:20px;background:#fafcfb;border:1px solid #e3e9e5;border-radius:6px}
.hanzi-page .hz-filter-title {grid-column:1;grid-row:1;font-size:15px!important;margin:0;align-self:center}
.hanzi-page .hz-toolbar-right {grid-column:2;grid-row:1;justify-content:flex-end;font-size:12px}
.hanzi-page .hz-filters {grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.hanzi-page .hz-filters button {font:500 13px/1.5 var(--site-ui);padding:9px 13px;background:#fff;border:1px solid #e0e7e2;border-radius:5px!important;min-height:40px;color:#355342}
.hanzi-page .hz-filters button[aria-pressed=true] {background:#315b3c;color:#fff;border-color:#315b3c}
.hanzi-page .hz-howto {font-size:13px;color:#617268;margin-block:0 20px}
.hanzi-page .hz-grid {grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:16px}
.hanzi-page .hz-tile {border:1px solid #e1e7e2!important;border-radius:6px!important;transition:border-color .15s,box-shadow .15s}
.hanzi-page .hz-tile:hover {box-shadow:0 3px 14px #173d290a;border-color:#a9beb0!important}
.hanzi-page .hz-tile.is-picked {border-color:#315b3c!important;box-shadow:0 0 0 1px #315b3c}
.hanzi-page .hz-open {width:100%;cursor:pointer;padding-bottom:12px}
.hanzi-page .hz-open img {aspect-ratio:16/9;object-fit:contain;background:#fff;border-radius:0!important}
.hanzi-page .hz-open b {font-family:KaiTi,STKaiti,serif!important;font-size:50px;color:#173d29;line-height:1.3;margin-top:8px}
.hanzi-page .hz-open small {font:400 11px/1.6 var(--site-ui);color:#708076}
.hanzi-page .hz-pick {background:#f7faf8;font:500 13px/1.5 var(--site-ui);color:#315b3c;border-radius:0!important;min-height:40px}
.hanzi-page .hz-pick[aria-pressed=true] {background:#315b3c;color:#fff}
.hanzi-page .hz-jj-lesson {padding:22px;margin-bottom:20px;background:#fff;border-radius:6px!important}
.hanzi-page .hz-jj-head h3 {font-size:22px}
.hanzi-page .hz-mini {background:#fff!important;border:1px solid #e1e8e3!important;border-radius:5px!important}
.hanzi-page .hz-mini.is-write {background:#f4f8f5!important}
.hanzi-page .hz-plan {background:#fff;border-top:2px solid #8faa96;box-shadow:0 -4px 18px #173d290d}
.hanzi-page #hz-dialog {padding:24px;border-radius:8px!important;background:#fff;max-height:90dvh}
.hanzi-page .hz-head {border-bottom:1px solid #e2e9e4;padding-bottom:16px;margin-bottom:18px}
.hanzi-page .hz-tabs button,.hanzi-page .step-dots button {font-family:var(--site-ui);border-radius:5px!important}
.hanzi-page .hz-tabs button[aria-selected=true],.hanzi-page .step-dots button[aria-pressed=true] {background:#315b3c;color:#fff}
@media(max-width:1160px) {
 .mc-site-header-inner {grid-template-columns:1fr 166px;gap:8px 16px;padding:12px 24px 8px}
 .mc-site-nav {grid-column:1/-1;grid-row:2;justify-content:center;width:100%}
 .mc-site-languages,.mc-site-utility {grid-column:2;grid-row:1}
 .mc-inner :is(.shell,.co-wrap),.mc-site-footer-inner {width:calc(100% - 64px)}
}
@media(max-width:700px) {
 .mc-site-header-inner {grid-template-columns:minmax(0,1fr) auto;padding:12px 20px 8px;gap:9px 8px;min-height:0}
 .mc-site-header .mc-site-logo {width:42px!important;height:42px!important;min-width:42px}
 .mc-site-brand {gap:8px}
 .mc-site-brand-text {gap:3px}
 .mc-site-brand-text strong {font-size:19px!important}
 .mc-site-brand-text>span {font-size:11px!important}
 .mc-site-nav {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px}
 .mc-site-nav a {font-size:11px!important;white-space:normal;text-align:center;padding:7px 3px;min-height:36px;align-self:stretch}
 .mc-site-nav a::after {left:8px;right:8px}
 .mc-site-languages,.mc-site-utility {border:0;padding:0}
 .mc-site-languages a {font-size:11px!important;padding:5px;min-height:32px}
 .mc-site-utility a {font-size:10px!important}
 .mc-site-footer-inner {display:grid;gap:9px;padding-block:20px}
 .mc-site-footer nav {gap:20px}
 .mc-inner :is(.shell,.co-wrap),.mc-site-footer-inner {width:calc(100% - 40px)}
 .mc-inner .mc-hero-inner {grid-template-columns:1fr;gap:20px;padding-block:24px}
 .mc-inner .mc-hero h1,.site-page .page-hero h1 {font-size:32px}
 .mc-inner .mc-hero-art {width:300px;max-width:100%;height:200px;min-height:0;justify-self:center}
 .site-page .values-grid article {grid-template-columns:48px minmax(0,1fr);padding:20px;gap:10px 14px}
 .site-page .value-icon {width:48px;height:48px}
 .site-page .catalog-card>img {height:auto;aspect-ratio:1.8}
 .site-page .enquiry-steps ol {padding:18px 0}
 .hanzi-page .hz-class-tabs {gap:10px}
 .hanzi-page .hz-class-tabs button {padding:14px 12px}
 .hanzi-page .hz-class-tabs button strong {font-size:19px}
 .hanzi-page .hz-class-tabs button small {font-size:11px}
 .hanzi-page .hz-class-tabs button[aria-selected=true]::after {left:12px}
 .hanzi-page .hz-toolbar {padding:14px;grid-template-columns:1fr;gap:12px}
 .hanzi-page .hz-toolbar-right {grid-column:1;grid-row:3;justify-content:space-between}
 .hanzi-page .hz-filters {gap:6px}
 .hanzi-page .hz-filters button {font-size:12px;padding:8px 10px}
 .hanzi-page .hz-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
 .hanzi-page .hz-open b {font-size:40px}
 .hanzi-page .hz-open small {font-size:10px}
 .hanzi-page .hz-browser-heading h2 {font-size:24px}
 .hanzi-page #hz-dialog {padding:16px}
 .hanzi-page .hz-jj-lesson {padding:16px}
 .hanzi-page .hz-jj-head h3 {font-size:20px}
}
@media(max-width:370px) {
 .mc-site-header-inner {padding-inline:14px;gap:8px 5px}
 .mc-site-brand-text strong {font-size:18px!important}
 .mc-site-header .mc-site-logo {width:38px!important;height:38px!important;min-width:38px}
 .mc-site-languages a {padding-inline:4px}
}
@media(prefers-reduced-motion:reduce) {.mc-site-header * {transition:none!important}}
body.classroom>.mc-site-header {display:none!important}
@media print {.mc-site-header,.mc-site-footer {display:none!important}}

/* Selective colour and varied content rhythm; the page canvas stays white. */
.site-page :is(.course-card,.catalog-card,.class-entry) {background:linear-gradient(125deg,#fff 18%,#edf4ef 100%)}
.site-page :is(.course-card.advanced,.catalog-card:nth-child(2),.class-entry:nth-child(2)) {background:linear-gradient(125deg,#fff 18%,#eaf1ef 100%)}
.site-page .intro-row {background:linear-gradient(120deg,#f8fbf9,#eaf3ed)}
.site-page .intro-row.teacher {background:linear-gradient(120deg,#fff,#eff4f2)}
.site-page .values-grid article {background:linear-gradient(135deg,#f7faf8,#eaf2ec);border-color:#dfe9e2}
.site-page .value-icon {background:#fff;border-radius:50%}
.site-page .materials-section {display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:44px}
.site-page .materials-copy p {font-size:16px;line-height:1.9}
.site-page .materials-copy .text-link {display:inline-block;margin-top:18px}
.site-page .materials-photo {margin:0;overflow:hidden;border-radius:6px}
.site-page .materials-photo img {display:block;width:100%;height:240px;object-fit:cover}
.site-page .team-grid article {position:relative;background:linear-gradient(140deg,#f4f8f5,#fff 75%);border-top:3px solid #7a9a85;padding-top:24px}
.site-page .pathway-grid article {border-left:3px solid #90ac99;background:linear-gradient(105deg,#f6f9f7,#fff)}
.site-page :is(.study,.about-invite,.enrolled-band) {background:linear-gradient(110deg,#edf5ef,#dcebe1);border-color:#d7e5dc}
.site-page .calendar-callout {background:linear-gradient(110deg,#f6faf7,#eaf2ed);border-left-color:#7a9a85}
.site-page .enquiry-sidebar .contact-card {background:linear-gradient(140deg,#edf5ef,#f9fbfa);border-color:#dae7de}
.sc-official .sc-month h4 {padding:10px 12px;background:linear-gradient(110deg,#e6f0e9,#f6f9f7);border-bottom:2px solid #87a692;border-radius:4px 4px 0 0;color:#234e32}
.sc-official .sc-month h4 small {color:#617368}
@media(max-width:700px) {
 .site-page .materials-section {grid-template-columns:1fr;gap:20px}
 .site-page .materials-photo img {height:210px}
 .sc-official .sc-month h4 {padding:8px 9px}
}

/* Image banners: one visual language for page titles, on a white page canvas. */
.site-page .page-hero,.mc-inner .mc-hero {position:relative;isolation:isolate;overflow:hidden;background:#f1f5f2;border-image:none;clip-path:none;border-radius:0;margin:0;width:100%;max-width:none;box-sizing:border-box}
.site-page .page-hero {display:flex;align-items:center;min-height:320px;padding:34px max(40px,calc((100% - 1160px)/2));gap:0}
.site-page .page-hero>div {position:relative;z-index:2;width:49%;max-width:565px}
.site-page .page-hero figure,.mc-inner .mc-hero-art {position:absolute;inset:0 0 0 auto;margin:0;width:64%;max-width:none;height:100%;max-height:none;min-height:0;border-radius:0;z-index:-1;overflow:hidden}
.site-page .page-hero figure:after,.mc-inner .mc-hero-art:after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f1f5f2 0%,rgba(241,245,242,.93) 10%,rgba(241,245,242,.25) 42%,rgba(241,245,242,0) 65%);pointer-events:none}
.site-page .page-hero img,.mc-inner .mc-hero-art img {width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;border-radius:0;object-position:center 48%;animation:banner-reveal .9s ease-out both}
.site-page .page-hero h1 {margin:0 0 16px}
.site-page .page-hero .lead {font-size:22px;line-height:1.6;margin-bottom:12px}
.site-page .page-hero>div>p:last-of-type {font-size:15px;line-height:1.85}
.mc-inner .mc-hero-inner {display:flex;align-items:center;min-height:320px;padding-block:30px;box-sizing:border-box}
.mc-inner .mc-hero-copy {position:relative;z-index:2;width:49%;max-width:565px}
.mc-inner .mc-hero .hero-buttons {margin-top:18px}
.mc-inner .mc-hero .mc-hero-lead {font-size:22px}
.site-page .hero {position:relative;isolation:isolate;background:#f1f5f2;overflow:hidden}
.site-page .hero-inner {position:static;min-height:360px;display:flex;align-items:center;padding-block:30px;box-sizing:border-box}
.site-page .hero-copy {position:relative;z-index:2;width:46%;max-width:530px}
.site-page .hero-gallery {position:absolute;inset:0 0 0 auto;width:62%;max-width:none;height:100%;border-radius:0}
.site-page .hero-gallery .home-photo {height:100%;border-radius:0;margin:0}
.site-page .hero-gallery img {width:100%;height:100%;object-fit:cover;border-radius:0;object-position:center 42%}
.site-page .hero-gallery:after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f1f5f2,rgba(241,245,242,.78) 15%,transparent 47%);pointer-events:none}
.site-page .hero-gallery .gallery-controls {z-index:3;right:24px;bottom:20px}
.site-page :is(.study,.about-invite,.enrolled-band) {background:linear-gradient(110deg,#f7f9f7,#edf2ef 62%,#f5f1f2);border-color:#e4eae6}
.site-page .values-grid article:nth-child(2) {background:linear-gradient(135deg,#fcf9f9,#f5eded);border-color:#ecdfdf}
.site-page .values-grid article:nth-child(3) {background:linear-gradient(135deg,#fafbf9,#eff3ed)}
.site-page .intro-row.teacher {background:linear-gradient(120deg,#fff,#f7f0f1)}
.site-page .page-section {padding-block:26px}
@keyframes banner-reveal {from {opacity:.6;transform:scale(1.025)} to {opacity:1;transform:scale(1)}}
@media(max-width:1000px) {
 .site-page .page-hero {padding-inline:32px}
 .site-page .page-hero>div,.mc-inner .mc-hero-copy {width:58%}
 .site-page .page-hero figure,.mc-inner .mc-hero-art {width:67%}
}
@media(max-width:700px) {
 .site-page .page-hero {min-height:300px;padding:28px 20px;align-items:center}
 .site-page .page-hero>div,.mc-inner .mc-hero-copy {width:100%;max-width:480px}
 .site-page .page-hero figure,.mc-inner .mc-hero-art {width:100%;opacity:.24;inset:0;height:100%;max-width:none}
 .site-page .page-hero figure:after,.mc-inner .mc-hero-art:after {background:linear-gradient(90deg,#f1f5f2 0%,rgba(241,245,242,.3) 100%)}
 .site-page .page-hero .lead {font-size:20px}
 .site-page .page-hero>div>p:last-of-type {font-size:14px}
 .mc-inner .mc-hero-inner {min-height:300px;padding-block:26px}
 .mc-inner .mc-hero .mc-hero-lead {font-size:20px}
 .site-page .hero-inner {min-height:360px;padding-block:26px}
 .site-page .hero-copy {width:100%;max-width:none}
 .site-page .hero-gallery {width:100%;max-width:none;opacity:1}
 .site-page .hero-gallery .home-photo {opacity:.23}
 .site-page .hero-gallery img {opacity:1}
 .site-page .hero-gallery:after {background:linear-gradient(90deg,#f1f5f2cc,#f1f5f266)}
 .site-page .hero-gallery .gallery-controls {right:16px;bottom:12px}
 .site-page .hero-copy .actions {margin-bottom:30px}
}
@media(prefers-reduced-motion:reduce) {.site-page .page-hero img,.mc-inner .mc-hero-art img {animation:none}}

.site-page .team-grid {grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.site-page .team-grid article {padding:22px}
.site-page .team-grid h3 {font-size:21px;line-height:1.5;min-height:48px}
.site-page .team-grid .team-coordinator {background:linear-gradient(140deg,#faf4f5,#fff 85%);border-top-color:#c5a2a9}
.site-page .value-icon {width:64px;height:64px;background:transparent}
.site-page .values-grid article {grid-template-columns:64px 1fr;gap:10px 14px}
@media(max-width:1000px) {.site-page .team-grid {grid-template-columns:1fr}.site-page .team-grid h3 {min-height:0}.site-page .values-grid article {grid-template-columns:1fr}.site-page .value-icon {grid-row:auto}}
@media(max-width:700px) {.site-page .values-grid article {grid-template-columns:56px 1fr}.site-page .value-icon {width:56px;height:56px;grid-row:1/3}}

.hanzi-page.mc-inner .mc-hero {background:#f1f5f2}
/* Keep faces within the shallow course banners. */
.page-courses .page-hero img {object-position:center 12%}
.learning-page .mc-hero-art img,.jinjie-page .mc-hero-art img {object-position:center 18%}

/* Banner-safe composition and concise, full-width reading modules. */
.page-courses .page-hero img {object-position:center 54%}
.site-page .school-facts {grid-template-columns:repeat(4,minmax(0,1fr));max-width:1160px;gap:0}
.site-page .school-facts>div {padding:12px 16px}
.site-page .school-facts dd span {display:inline-block;white-space:nowrap}
.site-page .school-facts dd a {color:inherit;text-underline-offset:4px}
.site-page .school-facts dd {font-size:12px}
.site-page :is(h1,h2,h3,.lead,.hero-tagline) {word-break:normal;overflow-wrap:normal}
.site-page :is(.lead,.hero-tagline) {text-wrap:pretty}
.site-page :is(h1,h2,h3) {text-wrap:balance}
.site-page p {text-wrap:pretty}
.site-page .values-grid article {grid-template-columns:56px minmax(0,1fr);gap:12px 14px}
.site-page .values-grid .value-icon {width:56px;height:56px;grid-row:1}
.site-page .values-grid h3 {margin:0;align-self:center;font-size:22px}
.site-page .values-grid p {grid-column:1/-1;font-size:15px;line-height:1.8}
.site-page .profile-points,.site-page .materials-points {list-style:none;padding:0;margin:0;display:grid;gap:10px}
.site-page :is(.profile-points,.materials-points) li {position:relative;padding-left:14px;line-height:1.85;font-size:15px;text-wrap:pretty}
.site-page :is(.profile-points,.materials-points) li:before {content:"";position:absolute;left:0;top:.78em;width:4px;height:4px;background:#a0b6a7;border-radius:50%}
.site-page .team-coordinator .profile-points li:before {background:#c8a3ad}
.site-page .team-grid h3 {font-size:20px;min-height:48px;max-width:none}
.site-page .team-note {font-size:14px}
.calendar-hero {position:relative;isolation:isolate;overflow:hidden;background:#f1f5f2!important}
.calendar-hero .co-wrap {position:relative;min-height:300px;padding-block:34px}
.calendar-hero :is(h1,p,.calendar-jump) {position:relative;z-index:1;max-width:46%;text-wrap:balance}
.calendar-plan-art {position:absolute;width:62%;max-width:670px;height:290px;object-fit:contain;right:-24px;top:5px}
@media(max-width:1000px) {
 .site-page .team-grid h3 {min-height:0}
 .calendar-plan-art {right:-35px;width:59%}
 .calendar-hero h1 {font-size:34px}
}
@media(max-width:700px) {
 .site-page .school-facts {grid-template-columns:repeat(2,minmax(0,1fr))}
 .site-page .school-facts>div {padding:12px 8px;border-right:0}
 .site-page .school-facts>div:nth-child(odd) {border-right:1px solid #e3e9e5}
 .site-page .school-facts>div:nth-child(-n+2) {border-bottom:1px solid #e3e9e5}
 .site-page .school-facts dt {font-size:20px}
 .site-page .school-facts dd {font-size:11px}
 .site-page .hero-gallery img {object-fit:cover;object-position:70% center}
 .page-study .page-hero img {object-fit:cover;object-position:75% center}
 .site-page .team-grid h3 {min-height:0}
 .calendar-hero .co-wrap {min-height:0;padding:26px 0 16px}
 .calendar-hero :is(h1,p,.calendar-jump) {max-width:100%}
 .calendar-hero h1 {font-size:30px}
 .calendar-plan-art {position:static;order:4;display:block;width:100%;max-width:none;height:auto;margin:14px auto 0}
 .calendar-jump {margin-top:14px}
}

/* Calm calendar illustration and complete, touch-friendly address cards. */
.calendar-plan-art {width:49%;max-width:520px;right:0;top:5px}
.site-page .school-facts>.fact-location {position:relative;border-radius:8px;transition:background .18s ease}
.site-page .fact-location a:after {content:"";position:absolute;inset:0;border-radius:8px}
.site-page .school-facts>.fact-location:is(:hover,:focus-within) {background:#e6eee8}
.site-page .fact-location:active {background:#dce9e0}
.site-page .fact-location a:focus-visible {outline:none}
.site-page .fact-location a:focus-visible:after {outline:2px solid #62816b;outline-offset:2px}
.sc-summary .sc-place {border-radius:10px;transition:background .18s ease}
.sc-summary .sc-place:is(:hover,:focus-visible) {background:#e6eee8}
@media(max-width:700px) {.calendar-plan-art {width:100%;max-width:420px;max-height:250px;margin:10px auto 0}}

.calendar-info-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding-top:22px}
.calendar-info-grid .calendar-info-card {display:flex;flex-direction:column;gap:7px;border:1px solid #e0e8e2;border-radius:12px;padding:18px 22px;background:#f6f8f6;color:#304b3c;text-decoration:none;transition:background .18s ease,border-color .18s ease}
.calendar-info-grid .calendar-info-card:nth-child(2) {background:#faf6f6;border-color:#eadfe1}
.calendar-info-grid .calendar-info-card strong {font-size:25px;line-height:1.4;letter-spacing:.01em}
.calendar-info-card .calendar-card-label {font-size:15px;font-weight:600}
.calendar-info-card>span:last-child {font-size:13px;color:#617168}
.calendar-info-grid .calendar-location {background:#fff}
.calendar-info-grid .calendar-location strong {font-size:22px}
.calendar-info-grid .calendar-info-card:is(:hover,:focus-visible) {background:#e5eee7;border-color:#b0c4b6}
.calendar-info-grid .calendar-info-card:active {background:#d8e7dc}
.calendar-info-card:focus-visible {outline:2px solid #62816b;outline-offset:3px}
.calendar-info-note {display:flex;justify-content:space-between;gap:16px;padding:14px 0 20px;font-size:13px;color:#63766a}
.calendar-info-note a {color:#315743;font-weight:600;text-underline-offset:4px}
.sc-year-heading h2 {margin:0;font-size:26px;font-weight:650;line-height:1.4;color:#304b3c}
@media(max-width:700px) {
 .calendar-info-grid {grid-template-columns:1fr 1fr;gap:10px;padding-top:16px}
 .calendar-info-grid .calendar-info-card {padding:14px 12px;gap:6px}
 .calendar-info-grid .calendar-info-card strong {font-size:21px;white-space:nowrap}
 .calendar-info-card .calendar-card-label {font-size:14px}
 .calendar-info-card>span:last-child {font-size:11px}
 .calendar-info-grid .calendar-location {grid-column:1/-1}
 .calendar-info-note {font-size:11px;gap:8px}
 .sc-year-heading h2 {font-size:23px}
}

/* All seven page banners share the same soft edge and short entrance. */
:root {--banner-edge:linear-gradient(90deg,#f1f5f2 0%,rgba(241,245,242,.93) 10%,rgba(241,245,242,.25) 42%,transparent 65%)}
.site-page .hero-gallery {width:64%}
.site-page .hero-gallery:after,.site-page .page-hero figure:after,.mc-inner .mc-hero-art:after,.calendar-banner-art:after {background:var(--banner-edge)}
.site-page .hero-gallery img {object-fit:cover;object-position:64% center;animation:banner-reveal .9s ease-out both}
.page-study .page-hero img {object-fit:cover;object-position:72% center}
.calendar-hero .co-wrap {min-height:320px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding-block:34px}
.calendar-hero h1 {font-size:38px;line-height:1.25;letter-spacing:-.025em;margin:0 0 16px}
.calendar-hero p {font-size:22px;line-height:1.6;margin:0 0 12px}
.calendar-hero .calendar-jump {margin-top:12px}
.calendar-banner-art {position:absolute;inset:0 0 0 auto;width:64%;height:100%;margin:0;z-index:-1;display:flex;align-items:center;justify-content:center;background:linear-gradient(115deg,#f1f5f2,#e8efe9 72%,#f5f0f1);overflow:hidden}
.calendar-banner-art:after {content:"";position:absolute;inset:0;pointer-events:none}
.calendar-banner-art .calendar-plan-art {position:static;width:min(88%,520px);max-width:520px;height:100%;max-height:300px;margin:0;object-fit:contain;animation:banner-reveal .9s ease-out both}
@media(max-width:1000px) {
 .site-page .hero-gallery,.calendar-banner-art {width:67%}
 .calendar-hero h1 {font-size:34px}
}
@media(max-width:700px) {
 .site-page .hero-gallery,.calendar-banner-art {width:100%}
 .site-page .hero-gallery:after,.site-page .page-hero figure:after,.mc-inner .mc-hero-art:after,.calendar-banner-art:after {background:linear-gradient(90deg,#f1f5f2 0%,rgba(241,245,242,.3) 100%)}
 .calendar-banner-art {opacity:.24}
 .calendar-hero .co-wrap {min-height:300px;padding-block:28px}
 .calendar-hero h1 {font-size:32px}
 .calendar-hero p {font-size:20px}
 .calendar-banner-art .calendar-plan-art {width:100%;max-height:280px}
}
@media(prefers-reduced-motion:reduce) {
 .site-page .hero-gallery img,.site-page .page-hero img,.mc-inner .mc-hero-art img,.calendar-banner-art .calendar-plan-art {animation:none}
}

/* 清晰版页面（2026-10-13） */
/* 横幅：只有一行 lead 时保持 lead 字号 */
.site-page .page-hero>div>p.lead:last-of-type {font-size:22px;line-height:1.6}
.site-page .page-hero .hero-links {display:flex;flex-wrap:wrap;gap:8px 24px;font-size:16px}
/* 班级信息：每一项整卡可点 */
.site-page .school-facts>.fact-link {position:relative;border-radius:8px;transition:background .18s ease}
.site-page .fact-link a {text-decoration:none}
.site-page .fact-link a:after {content:"";position:absolute;inset:0;border-radius:8px}
.site-page .school-facts>.fact-link:is(:hover,:focus-within) {background:#e6eee8}
.site-page .school-facts>.fact-link:active {background:#dce9e0}
.site-page .fact-link a:focus-visible {outline:none}
.site-page .fact-link a:focus-visible:after {outline:2px solid #62816b;outline-offset:2px}
/* 首页课程卡与学习中心课堂卡的上课时间 */
.site-page .course-card .course-time,.site-page .class-entry .course-time {font-size:15px;font-weight:650;color:#3f6a49;margin:-4px 0 8px}
.site-page .class-entry .course-time {margin-bottom:6px}
/* 课程介绍：每门课的四项信息 */
.site-page .catalog-copy h3 {margin-bottom:4px}
.site-page .catalog-copy .course-details {margin:14px 0 22px;gap:12px}
.site-page .catalog-copy .course-details>div {grid-template-columns:76px 1fr;gap:12px;align-items:baseline}
.site-page .catalog-copy .course-details dd {font-size:15.5px;line-height:1.7}
.site-page .catalog-copy .course-details dd a {color:inherit;text-underline-offset:4px}
.site-page .catalog-actions {margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px}
.site-page .catalog-actions .button {margin-top:0}
.site-page .catalog-actions .text-link {font-size:15px}
html[lang]:not([lang='zh-CN']) .site-page .catalog-copy .course-details>div {grid-template-columns:1fr;gap:2px}
#class-format {scroll-margin-top:24px}
.site-page #class-format .approach-notes {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0}
.site-page #class-format article {background:#f5f8f5;border-radius:12px;padding:26px 28px}
.site-page #class-format article+article {background:#fbf4f2}
.site-page #class-format h2 {font-size:24px;margin:0 0 12px}
.site-page #class-format p {font-size:15.5px;line-height:1.85;margin:0}
.site-page .plain-points {margin:0;padding:0;list-style:none}
.site-page .plain-points li {position:relative;padding-left:16px;font-size:15.5px;line-height:1.85}
.site-page .plain-points li:before {content:"";position:absolute;left:0;top:.8em;width:6px;height:6px;border-radius:50%;background:#7f9f86}
/* 学习中心：课后通知（直接显示）与在家练习 */
.site-page .notice-board {margin-top:20px;background:#fbf8ee;border-radius:12px;padding:20px 26px}
.site-page .notice-board h3 {font-size:20px;margin:0 0 6px}
.site-page .notice-board ul {list-style:none;margin:0 0 10px;padding:0}
.site-page .notice-board li {padding:10px 0;border-bottom:1px solid #ece6d6;font-size:15.5px;line-height:1.75}
.site-page .notice-board li:last-child {border-bottom:0}
.site-page .notice-board b {display:block;color:var(--ink);font-weight:700}
.site-page .notice-board .text-link {font-size:15px}
.site-page .home-practice h3 {font-size:21px;margin:0 0 14px}
.site-page .home-practice-top {display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;margin-bottom:30px;align-items:end}
.site-page .character-entry {display:grid;grid-template-columns:150px 1fr;align-items:center;gap:18px;border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff;text-decoration:none;color:inherit;transition:border-color .18s ease,box-shadow .18s ease}
.site-page .character-entry:is(:hover,:focus-visible) {border-color:#7f9f86;box-shadow:0 5px 18px #23452c12}
.site-page .character-entry img {width:150px;height:96px;max-height:none;aspect-ratio:auto;object-fit:cover;border-radius:8px;display:block}
.site-page .character-entry>div {display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.site-page .character-entry h3 {overflow-wrap:anywhere}
.site-page .character-entry h3 {margin:0;font-size:21px}
.site-page .character-entry p {margin:0 0 8px;font-size:15px}
.site-page .character-entry .button {font-size:14px;padding:8px 14px}
.site-page .study-books .book-grid {gap:16px}
.site-page .study-books .book-entry {grid-template-columns:76px 1fr;gap:16px;padding:18px}
.site-page .study-books .book-cover img {width:76px;height:108px}
.site-page .study-books h4,.page-review .book-entry h2 {font-size:19px;margin:0 0 12px;color:var(--ink)}
.site-page .study-books .book-entry .button {font-size:14px;padding:8px 14px}
.site-page .study-books .book-downloads {margin-top:12px;font-size:13px;gap:8px 14px}
.site-page .home-practice .daily-title {margin-top:4px}
.site-page .home-practice .practice-grid {gap:16px}
.site-page .home-practice .practice-entry {display:grid;grid-template-columns:72px 1fr auto;align-items:center;text-align:left;gap:14px;padding:14px 18px;color:inherit}
.site-page .home-practice .practice-entry img {width:72px;height:72px;margin:0}
.site-page .home-practice .practice-entry h4 {margin:0;font-size:18px;color:var(--ink)}
.site-page .home-practice .practice-entry p {margin:2px 0 0;font-size:14px}
.site-page .practice-go {font-size:20px;color:var(--ink)}
.page-review .page-section .book-grid {max-width:900px}
/* 关于我们：教材与教学方式两组要点 */
.site-page .materials-copy h3 {font-size:18px;margin:18px 0 8px;color:var(--ink)}
.site-page .path-points li strong {display:block;color:var(--ink);font-weight:700}
.site-page .about-invite h2 {margin:0}
@media (max-width:900px) {
 .site-page .home-practice-top {grid-template-columns:1fr}
 .site-page .home-practice .practice-grid {grid-template-columns:1fr}
 .site-page #class-format .approach-notes {grid-template-columns:1fr}
}
@media (max-width:700px) {
 .site-page .page-hero>div>p.lead:last-of-type {font-size:20px}
 .site-page .notice-board {padding:16px 18px}
 .page-study .class-entry>img {aspect-ratio:2.6;height:auto}
 .site-page .character-entry {grid-template-columns:96px 1fr;gap:14px;padding:14px}
 .site-page .character-entry img {width:96px;height:64px}
 .site-page .character-entry .button {white-space:normal}
 .site-page .catalog-copy .course-details>div {grid-template-columns:68px 1fr;gap:8px}
 .site-page #class-format article {padding:20px}
 .site-page .study-books .book-entry {grid-template-columns:64px 1fr;padding:16px}
 .site-page .study-books .book-cover img {width:64px;height:92px}
}

/* Final shared banner proportions; the calendar now uses a photographic asset. */
:root {--page-banner-height:380px}
.site-page .hero-inner,.site-page .page-hero,.mc-inner .mc-hero-inner,.calendar-hero .co-wrap {min-height:var(--page-banner-height)}
.calendar-banner-art {background:#f1f5f2}
.calendar-banner-art .calendar-plan-art {width:100%;max-width:none;height:100%;max-height:none;object-fit:cover;object-position:68% center}
@media(max-width:700px) {
 :root {--page-banner-height:360px}
 .calendar-banner-art .calendar-plan-art {width:100%;max-height:none;object-position:65% center}
}
.calendar-hero,.mc-inner .mc-hero {border-bottom:0}
