/* Article and guide index styles, scoped to avoid changing the established site. */
.geo-page { background: #fbfcfa; color: #163e35; }
.geo-main { max-width: 1440px; margin: 0 auto; padding: 96px 48px 96px; }
.geo-back { display: inline-flex; margin-bottom: 16px; color: #517563; font-weight: 650; }
.geo-date { font-size: 13px; color: #68796e; margin: 0 0 24px; }
.geo-layout { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: 52px; align-items: start; }
.geo-prose { min-width: 0; max-width: 960px; font-size: 17px; line-height: 1.85; overflow-wrap: anywhere; }
.geo-prose h1 { font-size: clamp(32px, 3.5vw, 52px); line-height: 1.15; letter-spacing: -.025em; margin: 0 0 28px; }
.geo-prose h2 { font-size: clamp(24px, 2.3vw, 32px); line-height: 1.3; margin: 48px 0 20px; scroll-margin-top: 110px; }
.geo-prose h3 { font-size: 22px; line-height: 1.4; margin: 32px 0 16px; }
.geo-prose p, .geo-prose ul, .geo-prose ol { margin: 0 0 22px; }
.geo-prose li { margin-bottom: 8px; }
.geo-prose img { display: block; width: 100%; height: auto; border-radius: 16px; margin: 28px auto 12px; }
.geo-prose img + em { font-size: 14px; color: #62736a; }
.geo-prose table { width: 100%; border-collapse: collapse; font-size: 14px; line-height: 1.65; margin: 24px 0 32px; }
.geo-prose th, .geo-prose td { border: 1px solid #d8e2da; padding: 12px 14px; text-align: start; vertical-align: top; }
.geo-prose th { background: #edf3ee; color: #1d463a; font-weight: 700; }
.geo-prose tbody tr:nth-child(even) { background: #f4f7f3; }
.geo-prose a { color: #24764e; text-decoration: underline; text-underline-offset: 3px; }
.geo-prose blockquote { border-inline-start: 3px solid #afc6b4; margin: 24px 0; padding: 12px 24px; background: #eef4ee; }
.geo-prose pre { overflow-x: auto; background: #eaf0eb; padding: 18px; border-radius: 8px; font-size: 14px; }
.geo-prose hr { border: 0; border-top: 1px solid #d7e1d8; margin: 36px 0; }
.geo-toc { position: sticky; top: 108px; max-height: calc(100vh - 138px); overflow-y: auto; border-inline-start: 1px solid #d4dfd5; padding-inline-start: 22px; font-size: 13px; line-height: 1.6; }
.geo-toc-title { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; margin: 0 0 16px; }
.geo-toc ol { margin: 0; padding-inline-start: 18px; }
.geo-toc li { padding-bottom: 12px; }
.geo-toc a { color: #526e5c; text-decoration: none; }
.geo-toc a:hover { color: #183e2c; text-decoration: underline; }
.geo-hub { max-width: 1250px; margin: auto; }
.geo-eyebrow { color: #667e6c; font-size: 12px; letter-spacing: .15em; font-weight: 700; }
.geo-hub h1 { font-size: clamp(36px, 4vw, 60px); margin: 12px 0 16px; line-height: 1.15; }
.geo-hub-count { color: #6a7d6e; margin-bottom: 36px; }
.geo-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.geo-card { overflow: hidden; border: 1px solid #e0e7df; border-radius: 16px; background: #fff; }
.geo-card-image { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: #eaf0e8; }
.geo-card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .2s; }
.geo-card:hover img { transform: scale(1.025); }
.geo-card-body { padding: 24px; }
.geo-card time { font-size: 12px; color: #768572; }
.geo-card h2 { font-size: 22px; line-height: 1.3; margin: 12px 0; }
.geo-card h2 a { color: #1f4938; text-decoration: none; }
.geo-card p { font-size: 14px; line-height: 1.7; color: #627463; margin: 0; }
@media (max-width: 1100px) {
  .geo-main { padding: 88px 28px 72px; }
  .geo-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .geo-toc { display: none; }
  .geo-prose { max-width: 100%; }
  .geo-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .geo-main { padding: 80px 20px 56px; }
  .geo-prose { font-size: 16px; line-height: 1.8; }
  .geo-prose h1 { font-size: 32px; }
  .geo-prose th, .geo-prose td { padding: 9px; font-size: 12px; }
  .geo-prose table { display: block; overflow-x: auto; }
  .geo-cards { grid-template-columns: 1fr; }
}
