.geo-course { font-family:var(--font-hanzi); color:var(--fg); line-height:1.7; }
.geo-gallery { display:grid; gap:.85rem; }
.geo-figure { width:100%; max-width:680px; min-width:0; margin:1.25rem auto; overflow:visible; border:0; border-radius:0; box-shadow:none; background:transparent; }
.geo-svg { display:block; width:100%; height:auto; background:transparent; }
.geo-svg text { font-family:var(--font-hanzi); fill:#183c48; font-size:22px; }
.geo-svg .geo-land { fill:#b2c9a0; stroke:#42684a; stroke-width:1.4; }
.geo-svg .geo-ocean { fill:#d4e9f3; }
.geo-svg .geo-line { fill:none; stroke:#8f6535; stroke-width:2; }
.geo-svg .geo-marker circle { fill:#a74c28; stroke:#fff; stroke-width:2; }
.geo-svg .geo-marker text { fill:white; font-size:20px; font-weight:700; }
.geo-figure figcaption { display:block; width:100%; margin-inline:auto; padding:.45rem 0 0; color:var(--fg-60); font-size:.8rem; line-height:1.5; text-align:center !important; text-align-last:center !important; }
.geo-legend { display:grid; gap:.3rem; margin:.8rem 0 .5rem; padding-left:1.5rem; font-size:.85rem; }
ol.geo-legend { list-style:decimal; }
ul.geo-legend { list-style:disc; }
.geo-legend li { padding-left:.1rem; overflow-wrap:anywhere; }
.geo-legend li::marker { color:var(--gold-ink); font-weight:600; }
.geo-note, .geo-sources { margin:.4rem 0 0; color:var(--fg-60); font-size:.72rem; overflow-wrap:anywhere; }
.geo-sources a { color:var(--gold-ink); text-decoration:underline; text-underline-offset:.15em; }
.geo-quiz { margin-top:1rem; padding-top:.7rem; border-top:1px solid var(--rule); font-family:var(--font-hanzi); line-height:1.7; }
.geo-quiz h3 { margin:.4rem 0; font-size:1rem; }
.geo-quiz p { margin:.5rem 0; }
.geo-quiz fieldset { min-width:0; margin:.65rem 0; padding:.65rem; border:1px solid var(--rule); border-radius:.7rem; }
.geo-quiz legend { padding:0 .3rem; font-size:.88rem; font-weight:600; }
.geo-options { display:grid; gap:.4rem; }
.geo-quiz button { min-height:44px; padding:.45rem .7rem; border:1px solid var(--rule-2); border-radius:.65rem; background:var(--surface); color:var(--fg); font:inherit; cursor:pointer; }
.geo-options button { text-align:left; font-size:.85rem; }
.geo-quiz button:hover { border-color:var(--gold-ink); }
.geo-quiz button:focus-visible { outline:3px solid var(--gold-ink); outline-offset:3px; }
.geo-options button[data-result=correct] { border-color:var(--ok); background:var(--gold-tint); }
.geo-options button[data-result=wrong] { border-color:#bf624f; }
.geo-feedback { font-size:.85rem; }
.geo-score { font-weight:600; }
@media(max-width:480px) { .subject-visual:has(.geo-course) { padding:.6rem; } }
