/* Shared shell. Component selectors override older page-specific header/footer rules. */
.global-header{display:block;height:auto;min-height:76px;margin:0;padding:0;background:#f7f8f2;color:#234b40;border:0;border-bottom:1px solid #dce4d8;box-sizing:border-box;font-family:'Microsoft YaHei',system-ui,sans-serif}
.global-header .shell-header-inner{box-sizing:border-box;max-width:1320px;min-height:76px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:36px}
.global-header .shell-brand{display:inline-flex!important;align-items:center;gap:10px;flex:none;text-decoration:none!important;color:#234b40!important;font:500 23px/1.35 'Noto Serif SC','SimSun',serif!important;white-space:nowrap}
.shell-brand .shell-mark{display:grid;place-items:center;width:35px;height:35px;background:#197a6b;border-radius:10px;color:#fff;flex:none}
.shell-brand .shell-mark svg{width:25px;height:25px}
.shell-brand .shell-brand-copy>span{display:block;letter-spacing:1px}
.global-header .shell-brand small{display:block;margin:3px 0 0;font:10px/1.4 'Microsoft YaHei',sans-serif;letter-spacing:1.6px;color:#75897d}
.global-header .shell-nav{display:flex;align-items:center;gap:5px;margin:0;flex:1;min-width:0;flex-wrap:nowrap}
.global-header .shell-nav a{display:block;padding:10px 15px;border-radius:22px;border:1px solid transparent;font-size:14px;font-weight:500;line-height:1.5;white-space:nowrap;color:#466355;text-decoration:none;margin:0}
.global-header .shell-nav a[aria-current=page]{background:#e6efe5;border-color:#d1e2d3;color:#146c5c}
.global-header .shell-nav a:hover{background:#edf2e8;color:#176b57}
.global-header .shell-help{flex:none;margin:0;font-size:12px;line-height:1.5;color:#62796b;text-decoration:none;white-space:nowrap}
.global-header .shell-help:hover{text-decoration:underline}
.global-header a:focus-visible,.site-footer.global-footer a:focus-visible{outline:2px solid #b8924e;outline-offset:4px}
.app>.global-header{margin-left:-24px;margin-right:-24px}
.site-footer.global-footer{display:block;width:100%;margin:0;padding:0;border:0;background:#284c3d;color:#e4eee0;font-family:'Microsoft YaHei',system-ui,sans-serif;line-height:1.7;box-sizing:border-box;text-align:left}
.global-footer .shell-footer-inner{max-width:1240px;margin:0 auto;padding:36px 24px 18px}
.global-footer .shell-footer-top{display:grid;grid-template-columns:minmax(280px,1.6fr) 1fr 1fr;gap:48px;padding:0 0 28px}
.global-footer .shell-footer-name{font:500 24px/1.4 'Noto Serif SC','SimSun',serif;letter-spacing:2px;color:#f1f6ec;text-decoration:none;margin:0}
.global-footer .shell-footer-intro p{font-size:13px;line-height:1.9;color:#b9cebc;max-width:360px;margin:8px 0 0}
.global-footer .shell-footer-intro .shell-footer-tagline{font-size:16px;color:#e0ecda;margin-top:12px;letter-spacing:.5px}
.global-footer .shell-footer-nav{display:grid;grid-template-columns:1fr;align-content:start;align-items:start;gap:8px;margin:0;padding:0}
.global-footer .shell-footer-nav h2{font:600 14px/1.6 'Microsoft YaHei',sans-serif;letter-spacing:0;color:#eef4e9;margin:0 0 5px}
.global-footer .shell-footer-nav a{font-size:13px;line-height:1.8;color:#bed1bd;text-decoration:none;margin:0;padding:0;width:fit-content}
.global-footer a:hover{color:white;text-decoration:underline;text-underline-offset:4px}
.global-footer .shell-footer-bottom{border-top:1px solid #ffffff20;padding-top:16px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;font-size:11px;color:#afc5b2}
.global-footer .shell-footer-bottom>a{margin:0 0 0 auto;color:#d7e6d1;font-size:12px;text-decoration:none;padding:0}
/* Consistent reading scale, without changing map annotations or teaching diagrams. */
.learn-main,.editorial-main,.reading-layout main{color:#294b3e;font-family:'Microsoft YaHei',system-ui,sans-serif}
.learn-main h1,.editorial-main h1,.reading-layout main h1{font-family:'Noto Serif SC','SimSun',serif;font-size:30px;line-height:1.55;font-weight:500;letter-spacing:.3px}
.learn-main .lesson-section p,.learn-main .editorial-lead,.learn-main .regional-task p,.reading-layout main article p{font-size:16px;line-height:1.95}
.learn-main .region-card h2,.learn-main .course-card h3{font-size:19px;line-height:1.55;font-weight:600}
.learn-main .region-card p,.learn-main .course-card p{font-size:14px;line-height:1.85}
.learn-main .breadcrumbs,.reading-layout main .breadcrumbs{font-size:12px;line-height:1.7}
.learn-main .editorial-photo figcaption{font-size:12px;line-height:1.75}
.map-search{position:absolute!important;top:65px;left:22px;width:225px;z-index:6}
.map-search input{background:#fffefaeb!important}
.map-about{position:absolute;top:68px;left:255px;z-index:6;width:32px!important;height:32px!important;background:#fffefaeb}
.embedded-map .global-header{display:none}
@media(max-width:970px){.app>.global-header{margin-left:-14px;margin-right:-14px}.global-header .shell-header-inner{gap:20px;padding:0 20px}.global-header .shell-nav a{padding:9px 10px;font-size:13px}.global-header .shell-help{font-size:11px}.global-footer .shell-footer-top{gap:28px;grid-template-columns:1.4fr 1fr 1fr}}
@media(max-width:700px){.global-header .shell-header-inner{padding:12px 18px 10px;display:grid;grid-template-columns:1fr auto;gap:12px;min-height:110px}.global-header .shell-brand{font-size:21px!important}.global-header .shell-nav{grid-row:2;grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;width:100%}.global-header .shell-nav a{text-align:center;padding:7px 3px;font-size:13px}.global-header .shell-help{grid-column:2;grid-row:1;font-size:11px}.global-footer .shell-footer-inner{padding:30px 20px 20px}.global-footer .shell-footer-top{grid-template-columns:1fr 1fr;gap:25px;padding-bottom:25px}.global-footer .shell-footer-intro{grid-column:1/-1}.global-footer .shell-footer-name{font-size:23px}.global-footer .shell-footer-bottom{gap:10px 16px;align-items:flex-start}.global-footer .shell-footer-bottom>span:nth-child(2){order:3;width:100%}.learn-main h1,.editorial-main h1,.reading-layout main h1{font-size:25px}.learn-main .region-card h2,.learn-main .course-card h3{font-size:18px}.map-search{top:46px;left:11px;width:160px}.map-about{top:49px;left:180px}.global-footer .shell-footer-intro p{max-width:none}}
/* Wide-screen composition: keep the map canvas width, align the surrounding shell. */
.global-header .shell-header-inner{max-width:1320px;min-height:80px;gap:36px}
.global-header .shell-brand{gap:12px;font-size:25px!important;font-weight:600!important}
.shell-brand .shell-mark{width:44px;height:48px;border-radius:14px 14px 17px 7px;background:#225e50;box-shadow:inset 0 0 0 1px #ffffff25}
.shell-brand .shell-mark svg{width:42px;height:42px}
.shell-brand .shell-brand-copy>span{letter-spacing:2px}
.global-header .shell-brand small{font-size:10px;font-weight:400;letter-spacing:2.2px;color:#637c6e;margin-top:2px}
.global-footer .shell-footer-inner{max-width:1240px;box-sizing:border-box;padding:36px 24px 18px}
.global-footer .shell-footer-top{grid-template-columns:minmax(280px,1.6fr) 1fr 1fr;gap:48px}
.global-footer .shell-footer-intro p{max-width:35em}
.global-footer .shell-founder-link{display:inline-block;font-size:12px;color:#d1dfbf;margin-top:14px;text-decoration:none}
.global-footer .shell-contact{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.global-footer .shell-contact h2{font-size:14px;color:#eef4e9;margin:0 0 10px;line-height:1.6}
.global-footer .shell-contact p{font-size:12px;color:#bed1bd;max-width:12em;line-height:1.9;margin:0 0 12px}
.global-footer .shell-contact a{font-size:12px;color:#e0e9d4;text-decoration:none}
.global-footer .shell-contact img{width:112px;height:112px;object-fit:contain;background:#fff;padding:6px;box-sizing:border-box;border-radius:8px;max-width:none}
body>.geography-reading{padding:58px max(36px,calc((100% - 1180px)/2)) 48px}
.geography-reading .reading-header{grid-template-columns:1.1fr 1fr;gap:70px}
.geography-reading .reading-header>p{max-width:55ch;justify-self:end}
.geography-reading .reading-grid{gap:24px}
.geography-reading .reading-card{padding:25px;min-height:0}
.geography-reading .reading-card p{max-width:48ch;line-height:1.95}
.geography-reading .reading-note>p{max-width:85ch}
/* Substantive topic guides retain a comfortable reading measure. */
.topic-heading .editorial-photo{max-width:100%;margin:24px 0}
.topic-heading .editorial-photo img{width:100%;max-height:390px;object-fit:cover}
.topic-summary{padding:30px 34px;margin:28px 0 42px;background:#eaf0e4;border:1px solid #d9e2d1;border-radius:14px}
.topic-summary>p{max-width:70ch;font-size:17px;line-height:1.95;margin:14px 0}
.topic-summary .topic-outcome{font-size:14px;color:#526d5b;max-width:85ch;border-top:1px solid #d0dccb;padding-top:16px;margin-bottom:0}
.topic-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start}
.topic-toc{position:sticky;top:24px;display:flex;flex-direction:column;gap:12px;border-left:1px solid #cbd7c6;padding-left:20px}
.topic-toc>span{font-size:12px;letter-spacing:2px;color:#7d8b76;margin-bottom:10px}
.topic-toc>a{font-size:13px;line-height:1.7;color:#456553;text-decoration:none;display:flex;gap:9px}
.topic-toc>a:hover{color:#147361;text-decoration:underline;text-underline-offset:4px}
.topic-toc small{color:#9b9f86;font-size:11px;padding-top:2px}
.topic-body{min-width:0;max-width:800px}
.topic-section{margin-bottom:44px;scroll-margin-top:24px}
.topic-section h2,.topic-task h2{font-size:22px;font-weight:600;line-height:1.6;margin:6px 0 16px;color:#244f41}
.topic-section p,.topic-task p{font-size:16px;line-height:2;margin:14px 0;color:#425d4e}
.topic-number{font:italic 28px/1.2 Georgia,serif;color:#8e9a7d}
.topic-table{overflow:auto;border:1px solid #d8e0d2;border-radius:10px;margin-top:20px}
.topic-table table{width:100%;min-width:510px;border-collapse:collapse;font-size:14px;line-height:1.85;text-align:left}
.topic-table th,.topic-table td{padding:16px 18px;vertical-align:top;border-bottom:1px solid #dfe6d8}
.topic-table thead{background:#e9efe3}.topic-table thead th{font-weight:600}.topic-table tbody th{font-weight:500;width:22%;background:#f0f3e9}.topic-table tr:last-child>*{border-bottom:0}
.topic-task{padding:26px 30px;background:#e8eee1;border-radius:12px;margin:40px 0;scroll-margin-top:24px}
.topic-task ol{padding-left:22px;font-size:15px;line-height:1.95}.topic-task li{padding-left:4px;margin:12px 0}
.topic-task details{margin-top:22px;border-top:1px solid #ccd9c4;padding-top:18px}
.topic-task summary,.topic-faq summary{cursor:pointer;font-size:15px;line-height:1.7;color:#256351;font-weight:500}
.topic-faq details{padding:16px 0;border-bottom:1px solid #dbe3d4}
.topic-faq details p{font-size:15px}.topic-task .primary{font-size:14px}
.topic-layout a:focus-visible,.topic-layout summary:focus-visible{outline:2px solid #ad8d51;outline-offset:4px}
.founder-story{max-width:820px;padding-bottom:20px}.founder-story h2{font:500 30px/1.6 'SimSun',serif;margin:15px 0 22px}.founder-story p{font-size:16px;line-height:2;color:#49614e}
.founder-contact{display:grid;grid-template-columns:1fr 260px;gap:40px;padding:32px 36px;background:#e8eee1;border:1px solid #d5dfcc;border-radius:14px;margin:22px 0 48px;scroll-margin-top:24px}
.founder-contact h2{font-size:23px;line-height:1.6;margin:10px 0 16px}.founder-contact p{font-size:15px;line-height:1.95}.founder-contact small{font-size:12px;color:#677d68}.founder-contact figure{margin:0;text-align:center;align-self:center}.founder-contact img{width:240px;height:auto;background:white;padding:10px;max-width:100%;box-sizing:border-box;border-radius:10px}.founder-contact figcaption{font-size:11px;color:#64745f;line-height:1.7;margin-top:10px}
@media(min-width:1500px){.geography-reading .reading-header h1,.geography-reading .reading-header h2{font-size:32px}.geography-reading .reading-card h3{font-size:21px}.geography-reading .reading-card p{font-size:13px}.global-header .shell-nav a{font-size:15px;padding:11px 18px}.global-header .shell-help{font-size:13px}}
@media(max-width:1100px){.global-footer .shell-footer-top{grid-template-columns:1.3fr 1fr 1fr;gap:28px}.global-footer .shell-contact{grid-column:1/-1;justify-content:flex-start;align-items:center;border-top:1px solid #ffffff20;padding-top:24px}.global-footer .shell-contact p{max-width:none}.global-footer .shell-contact img{width:100px;height:100px}.global-header .shell-header-inner{gap:22px}.geography-reading .reading-card{padding:22px}.topic-layout{grid-template-columns:190px minmax(0,1fr);gap:30px}}
@media(max-width:700px){.global-header .shell-header-inner{gap:12px;min-height:110px}.global-header .shell-brand{font-size:22px!important;gap:10px}.shell-brand .shell-mark{width:38px;height:42px}.shell-brand .shell-mark svg{width:36px;height:36px}.global-header .shell-brand small{font-size:9px;letter-spacing:1.6px}.global-footer .shell-footer-top{grid-template-columns:1fr 1fr}.global-footer .shell-footer-inner{padding:30px 20px 20px}.global-footer .shell-contact{justify-content:space-between}.global-footer .shell-contact img{width:112px;height:112px}body>.geography-reading{padding:34px 20px}.geography-reading .reading-header{grid-template-columns:1fr;gap:12px}.geography-reading .reading-header>p{justify-self:start}.geography-reading .reading-card{min-height:0;padding:22px}.topic-summary{padding:22px;margin-bottom:28px}.topic-summary>p{font-size:16px}.topic-layout{display:block}.topic-toc{position:static;display:grid;grid-template-columns:1fr 1fr;border:0;background:#eef2e8;padding:18px;border-radius:10px;margin-bottom:30px;gap:14px}.topic-toc>span{grid-column:1/-1;margin-bottom:0}.topic-section h2,.topic-task h2{font-size:20px}.topic-section{margin-bottom:32px}.topic-task{padding:22px}.topic-heading .editorial-photo img{max-height:260px}.founder-story h2{font-size:25px}.founder-contact{grid-template-columns:1fr;padding:24px;gap:24px}.founder-contact img{width:220px}}
@media print{.global-header,.global-footer,.topic-toc{display:none!important}.topic-layout{display:block}.topic-body{max-width:none}.topic-task details>p,.topic-faq details>p{display:block!important}}
/* Editorial opening: a concise introduction beside the landscape, before the guide. */
.topic-heading{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.2fr);gap:12px 48px;align-items:center;margin:30px 0}
.topic-heading>.eyebrow{grid-column:1;grid-row:1;align-self:end}
.topic-heading>h1{grid-column:1;grid-row:2;margin:0;font-size:36px}
.topic-heading>p{grid-column:1;grid-row:3;align-self:start;line-height:1.95;max-width:30em;margin:0}
.topic-heading .editorial-photo{grid-column:2;grid-row:1/4;margin:0;max-width:none;width:100%}
.topic-heading .editorial-photo img{aspect-ratio:1.6;max-height:340px;height:auto;object-fit:cover}
@media(max-width:700px){.topic-heading{display:block;margin:24px 0}.topic-heading>h1{font-size:28px;margin:12px 0 20px}.topic-heading .editorial-photo{margin:18px 0}.topic-heading>p{margin:16px 0}.topic-heading .editorial-photo img{max-height:240px}}
.regional-reading{max-width:820px;margin:40px 0}.regional-reading .lesson-section{margin:28px 0}.regional-reading h2{font-size:21px;line-height:1.65}.regional-reading p{font-size:16px;line-height:2}
.topic-heading{max-width:none}

/* One shared desktop frame; reading columns remain comfortably readable. */
:root{--site-width:1250px}
.global-header .shell-header-inner,.global-footer .shell-footer-inner,body .learn-main,body .editorial-main,body .reading-layout{width:100%;max-width:var(--site-width);box-sizing:border-box;margin-left:auto;margin-right:auto}
body>.geography-reading{padding-left:max(24px,calc((100% - 1202px)/2));padding-right:max(24px,calc((100% - 1202px)/2))}
.editorial-main>.lesson-section,.editorial-main>p,.editorial-main>.quick-facts{max-width:850px}
@media(max-width:700px){body>.geography-reading{padding-left:20px;padding-right:20px}}

body>main:not(.workspace){width:100%;max-width:var(--site-width);box-sizing:border-box;margin-left:auto;margin-right:auto}
@media(max-width:700px){.global-header .shell-nav{grid-template-columns:repeat(5,minmax(0,1fr))}.global-header .shell-nav a{font-size:12px;padding:10px 1px;white-space:nowrap}}
/* Match the map's occupied space before JS starts, including its navigation. */
.map-placeholder{position:relative;height:calc(100dvh - 80px);min-height:600px;background:#f4f5f0}
.map-placeholder-copy{max-width:600px;margin:auto;padding:90px 24px;line-height:1.9;color:#34594a}
.map-placeholder-copy strong{font-size:24px}.map-placeholder-copy a{color:#176f5e}
@media(max-width:700px){.map-placeholder{height:calc(100dvh - 116px);min-height:620px}}
