/* =========================================================================
   Länder: Index (Weltkarte + Liste) & Länderseite
   ========================================================================= */
.geo-page .ts-header--solid { background: var(--ts-surface); border-bottom: 1px solid var(--ts-line); }
.geo { max-width: 1080px; margin: 0 auto; padding: clamp(2rem,5vw,3.5rem) clamp(1.25rem,5vw,3rem) 4rem; }
.geo-intro { max-width: 720px; margin-bottom: 1.6rem; }
.geo-intro .section-eyebrow { color: var(--ts-accent); }
.geo-intro h1 { font-family: var(--ts-font-head); font-weight: 600; font-size: clamp(2rem,5vw,3rem); margin: .3rem 0 .6rem; }
.geo-lead { color: var(--ts-muted); font-size: 1.1rem; margin: 0; }

/* ---- Weltkarte (Index) ---- */
.geo-map { background: #241d14; border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow: hidden; }
.geo-svg { display: block; width: 100%; height: auto; }
.geo-ocean { fill: #241d14; }
.geo-cty { fill: #46512f; stroke: #241d14; stroke-width: .25; cursor: pointer; transition: fill .12s; }
.geo-cty:hover { fill: var(--ts-accent); }
.geo-cty.is-dim { fill: #332f20; cursor: default; }
.geo-maptip { color: var(--ts-muted); font-size: .85rem; margin: .5rem 0 1.6rem; text-align: center; }
.geo-err { color: var(--ts-muted); padding: 2rem; text-align: center; }

/* ---- Filter + Liste ---- */
.geo-filter { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.geo-chip { padding: .4rem .9rem; border: 1.5px solid var(--ts-line); border-radius: 999px; background: var(--ts-surface); color: var(--ts-ink); font-family: inherit; font-size: .9rem; cursor: pointer; }
.geo-chip:hover { border-color: var(--ts-accent); }
.geo-chip.is-on { background: var(--ts-accent); border-color: var(--ts-accent); color: #2b2208; font-weight: 600; }
.geo-search { width: 100%; padding: .8rem 1rem; border: 1.5px solid var(--ts-line); border-radius: 12px; background: var(--ts-surface); color: var(--ts-ink); font-family: inherit; font-size: 1rem; margin-bottom: 1.2rem; }
.geo-search:focus { outline: none; border-color: var(--ts-accent); }
.geo-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .6rem; }
.geo-item { display: flex; flex-direction: column; gap: .1rem; padding: .8rem 1rem; background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: 12px; text-decoration: none; color: var(--ts-ink); transition: transform .12s, border-color .12s; }
.geo-item:hover { transform: translateY(-2px); border-color: var(--ts-accent); }
.geo-item__name { font-family: var(--ts-font-head); font-weight: 600; }
.geo-item__cont { font-size: .8rem; color: var(--ts-muted); }
.geo-empty { color: var(--ts-muted); grid-column: 1 / -1; }

/* ---- Länderseite ---- */
.country-layout { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.6rem; align-items: start; }
@media (max-width: 820px) { .country-layout { grid-template-columns: 1fr; } }
.country-map { background: #241d14; border: 1px solid var(--ts-line); border-radius: var(--ts-radius); overflow: hidden; min-height: 280px; }
.country-svg { width: 100%; height: auto; }
.geo-neighbor { fill: #332f20; stroke: #241d14; stroke-width: .15; }
.geo-self { fill: #5c6b38; stroke: var(--ts-accent); stroke-width: .35; }
.geo-pin circle { stroke: #241d14; stroke-width: .2; }
.geo-pin--reservat circle { fill: #8bbf57; }
.geo-pin--zoo circle { fill: #d9a441; }
.geo-pin--host circle { fill: #fff3d6; stroke: #d9a441; stroke-width: .5; }

.country-side { background: var(--ts-surface); border: 1px solid var(--ts-line); border-radius: var(--ts-radius); padding: 1.2rem; box-shadow: var(--ts-shadow); }
.country-toggle { display: flex; align-items: flex-start; gap: .5rem; font-size: .92rem; color: var(--ts-ink); cursor: pointer; margin-bottom: .8rem; }
.country-toggle input { margin-top: .2rem; }
.country-count { font-family: var(--ts-font-head); font-weight: 600; color: var(--ts-accent); margin: 0 0 .8rem; }
.country-animals { display: flex; flex-direction: column; gap: .4rem; max-height: 60vh; overflow-y: auto; }
.country-animal { display: flex; align-items: center; gap: .6rem; padding: .5rem .6rem; border: 1px solid var(--ts-line); border-radius: 10px; background: var(--ts-bg); cursor: pointer; transition: border-color .12s, background .12s; }
.country-animal:hover { border-color: var(--ts-accent); }
.country-animal.is-sel { border-color: var(--ts-accent); background: color-mix(in srgb, var(--ts-accent) 12%, transparent); }
.country-animal.is-cap { opacity: .9; }
.country-animal__glyph { flex: none; display: flex; align-items: center; justify-content: center; width: 30px; height: 38px; }
.country-animal__glyph .track-glyph { display: block; width: 26px; height: 34px; }
.country-animal__txt { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.country-animal__name { font-weight: 600; }
.country-animal__sci { font-style: italic; font-size: .8rem; color: var(--ts-muted); }
.country-animal__tag { font-size: .72rem; color: var(--ts-accent); }
.country-animal__link { flex: none; text-decoration: none; color: var(--ts-muted); font-size: 1.2rem; padding: 0 .3rem; }
.country-animal__link:hover { color: var(--ts-accent); }
