.magazine header, .magazine .mobile-nav nav { background: #fff; }
.official-brand { display:block; line-height:0; }
.official-brand img { width:76px; height:76px; object-fit:contain; }
.header { height:88px; }
.eyebrow { display:block; color:var(--accent); font-size:12px; letter-spacing:.12em; margin-bottom:18px; }
.service-words { display:flex; flex-wrap:wrap; gap:12px 24px; border-top:1px solid var(--line); padding-top:20px; color:#245d32; }
.course-still { margin:28px 0 0; }
.featured-course { align-self:center; padding:40px; border-top:2px solid #83b177; background:var(--bg); }
.featured-course h3 { font:36px/1.5 "Songti SC",serif; margin:12px 0 24px; }
.featured-course p { color:var(--muted); }
.featured-course .text-link { display:flex; width:fit-content; }
.camp-editorial { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.camp-feature { background:#dcefd4; padding:36px; }
.camp-feature.pale { background:#eaf4e4; }
.camp-feature h3 { font:30px/1.5 "Songti SC",serif; margin:16px 0; }
.camp-feature p { color:var(--muted); max-width:30em; }
.retreat { grid-column:1/-1; display:flex; justify-content:space-between; gap:24px; padding:30px 0; border-block:1px solid var(--line); }
.retreat h3 { font:30px/1.5 "Songti SC",serif; margin-top:8px; }
.article-links { display:flex; flex-wrap:wrap; align-items:center; gap:24px; }
.real-portrait { width:100%; height:auto; display:block; object-fit:cover; }
.teacher-feature .real-portrait { aspect-ratio:2/3; }
.teacher-portrait { margin:0; }
.teacher-portrait figcaption { font-size:13px; color:var(--muted); margin-top:12px; }
.teacher-life { display:block; width:75%; max-width:260px; height:auto; margin-top:28px; }
.source-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 32px; }
.source-card { padding:24px 0; border-top:1px solid #b9d2b0; }
.source-card h3 { font-family:"Songti SC",serif; margin:10px 0 12px; }
.spaces .source-card h3 { font-size:32px; }
.section-tail { display:flex; gap:28px; flex-wrap:wrap; margin-top:20px; }
.magazine #goods.official-goods { padding-top:70px; }
.contact-qr { display:flex; align-items:center; gap:22px; margin:28px 0; }
.contact-qr img { width:156px; height:auto; }
.contact-qr figcaption { font-size:13px; color:var(--muted); }
.email-link { overflow-wrap:anywhere; }
#contact-form { padding:30px; background:var(--bg); }
#contact-form h3 { font-family:"Songti SC",serif; margin-bottom:24px; }
#contact-form label:not(.consent) { display:block; margin-bottom:18px; font-size:14px; }
input,textarea,button { font:inherit; }
input:not([type=checkbox]),textarea { display:block; width:100%; border:1px solid #b2c8aa; background:#ffffff; padding:12px; border-radius:2px; margin-top:8px; color:var(--ink); }
textarea { resize:vertical; }
input:focus-visible,textarea:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.consent { display:flex; align-items:flex-start; gap:10px; margin:8px 0 24px; font-size:13px; }
.consent input { margin-top:6px; flex-shrink:0; }
button { cursor:pointer; }
button:disabled { opacity:.6; cursor:wait; }
#form-status { font-size:14px; margin:14px 0 0; }
.trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.privacy-settings { border:0; background:transparent; padding:8px 0; color:inherit; font-size:14px; }
.analytics-choice { position:fixed; bottom:18px; right:18px; z-index:15; width:min(420px,calc(100% - 36px)); padding:22px; background:#ffffff; border:1px solid #b2c8aa; box-shadow:0 8px 32px #244b2922; }
.analytics-choice[hidden] { display:none; }
.analytics-choice p { font-size:13px; margin:0 0 14px; }
.analytics-choice>div { display:flex; gap:12px; }
.analytics-choice button { padding:8px 16px; color:var(--ink); background:#eaf4e4; border:1px solid #b9d2b0; }
@media(max-width:1100px) { .mobile-nav nav { top:88px; } .source-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:640px) {
 .header { height:76px; } .official-brand img { width:66px; height:66px; } .mobile-nav nav { top:76px; }
 .featured-course,.camp-feature { padding:24px; } .camp-editorial { grid-template-columns:1fr; }
 .retreat { flex-direction:column; } .article-links { gap:6px 18px; }
 .source-grid { gap:0 24px; } .source-card h3 { font-size:21px; } .spaces .source-card h3 { font-size:26px; }
 .magazine #goods.official-goods { padding-top:46px; } .contact-qr { align-items:flex-start; gap:16px; } .contact-qr img { width:132px; }
 #contact-form { padding:22px; } .teacher-cover { flex-direction:column; }
 .teacher-cover .teacher-portrait { max-width:360px; } .teacher-opening h1 { font-size:42px; }
}

input[type="checkbox"] { accent-color:var(--accent); }
.magazine h2, .magazine h3 { color:#245d32; }

/* Preserve the full width of the supplied group photographs. */
.magazine .hero .cover-photo img { height:auto; aspect-ratio:3735 / 2496; object-fit:contain; }
.magazine .hero .cover-detail img { height:auto; aspect-ratio:3 / 2; object-fit:contain; }
.magazine #learn .course-still img { height:auto; aspect-ratio:3 / 2; object-fit:contain; }
.magazine .hero .cover-detail { top:calc(50% + 30px); bottom:auto; }
@media(max-width:640px) { .magazine .hero .cover-detail { top:auto; bottom:16px; } }

/* User-provided Source Han Serif, shared by every public page. */
@font-face {
 font-family: 'Happiness Serif';
 src: url('assets/fonts/SourceHanSerifCN-Regular.otf') format('opentype');
 font-weight: 400;
 font-style: normal;
 font-display: swap;
}
.magazine, .magazine * { font-family: 'Happiness Serif', 'Songti SC', serif !important; }
.magazine { font-size:18px; line-height:1.9; }
.magazine .hero-copy > p { font-size:19px; line-height:1.95; }
.magazine .hero h1 { font-size:clamp(44px,4.8vw,68px); }
.magazine h2 { font-size:clamp(32px,3.2vw,44px); }
.magazine .tag, .magazine .eyebrow, .magazine .section-note { font-size:14px; }
.magazine .text-link, .magazine .btn { font-size:17px; }
.magazine .nav { gap:12px; }
.magazine .nav a { font-size:15px; }
.magazine .teacher-feature .teacher-bio > p, .magazine .event p,
.magazine .contact details p, .magazine .source-card p { font-size:18px; }
.magazine #contact-form label:not(.consent) { font-size:16px; }
.magazine .consent, .magazine #form-status, .magazine .analytics-choice p { font-size:15px; }
.magazine .footer-links { font-size:16px; }
.magazine .footer-bottom, .magazine .contact-qr figcaption,
.magazine .section-photo figcaption, .magazine .hero .cover-photo figcaption { font-size:14px; }
.magazine .hero .cover-detail figcaption { font-size:12px; }
@media(min-width:1101px) and (max-width:1240px) {
 .magazine .header { gap:16px; }
 .magazine .nav { gap:9px; }
 .magazine .nav a { font-size:14px; }
}
@media(max-width:640px) {
 .magazine { font-size:17px; }
 .magazine .hero-copy > p { font-size:18px; }
 .magazine .hero h1 { font-size:clamp(36px,9.8vw,48px); }
 .magazine h2 { font-size:31px; }
 .magazine .btn, .magazine .text-link { font-size:16px; }
 .magazine .mobile-nav summary { font-size:16px; }
 .magazine .teacher-feature .teacher-bio > p { font-size:17px; }
 .magazine .source-grid { gap:0 20px; }
}

/* Hide the entire pricing panel below the portrait. */
.magazine #learn .course-still img { aspect-ratio:1080 / 1435; height:auto; object-fit:cover; object-position:center top; }

.retreat .article-links { display:grid; gap:8px; flex:1; max-width:46em; min-width:0; }
.retreat .article-links .text-link { align-items:baseline; line-height:1.8; }
.retreat .article-links .text-link::after { flex-shrink:0; }
