/*
Theme Name: GEOFORMA
Theme URI: https://test1.pagestudio.dev/
Author: PageStudio
Description: Blokové téma pro fiktivní geodetickou kancelář GEOFORMA. Vizuální jazyk je odvozený z topografické mapy — papír mapového listu, sépiové vrstevnice, kóta přerušující linii, legenda a polygonový pořad. Bez page builderu a bez externích služeb.
Version: 2.0.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: geoforma
Tags: block-theme, full-site-editing, one-column, custom-colors, custom-menu
*/

/* ==========================================================================
   GEOFORMA v2 — vizuální jazyk odvozený z topografické mapy.
   Barvy, písma a rozestupy definuje theme.json; tento soubor řeší kompozici
   sekcí, které v jádru WordPressu vlastní obdobu nemají.
   ========================================================================== */

:root {
  --geo-paper:       var(--wp--preset--color--paper);
  --geo-sheet:       var(--wp--preset--color--sheet);
  --geo-ink:         var(--wp--preset--color--ink);
  --geo-annot:       var(--wp--preset--color--annot);
  --geo-contour:     var(--wp--preset--color--contour);
  --geo-contour-idx: var(--wp--preset--color--contour-idx);
  --geo-fix:         var(--wp--preset--color--fix);
  --geo-fix-deep:    #0e3a66;
  --geo-hair:        var(--wp--preset--color--hair);

  --geo-display: var(--wp--preset--font-family--display);
  --geo-body:    var(--wp--preset--font-family--body);
  --geo-data:    var(--wp--preset--font-family--data);

  --geo-band-pad: clamp(64px, 9vw, 124px);
}

html { scroll-behavior: smooth; }

:focus-visible {
  outline: 2px solid var(--geo-fix);
  outline-offset: 3px;
  border-radius: 1px;
}

/* Blokový editor sází odstavce a nadpisy s vlastními odsazeními; kompozice
   níže je řídí sama, proto je v rámci vlastních mřížek nulujeme. */
:is(.geo-hero, .geo-band) :where(p, h1, h2, h3, ul, ol, dl) { margin-block: 0; }

/* Vlastní mřížky si rozestupy řídí samy — svislé odsazení bloků v nich mažeme,
   jinak by se sloupce vůči sobě posunuly o výchozí mezeru editoru. */
:is(
  .geo-readout, .geo-band__grid, .geo-legend, .geo-specs,
  .geo-traverse__stations, .geo-reach, .geo-ask__grid, .geo-foot__grid
) > * { margin-block: 0; }

.geo-hero__intro,
.geo-band__grid,
.geo-specs,
.geo-traverse__stations { margin-block: 0; }

/* mono anotace — jazyk mapových popisků a měřických zápisníků */
.geo-annot {
  font-family: var(--geo-data);
  font-size: 0.7rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--geo-annot);
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   Hlavička — okraj mapového listu
   -------------------------------------------------------------------------- */

.geo-masthead {
  position: sticky;
  top: 0;
  z-index: 40;
  background: color-mix(in srgb, var(--geo-paper) 88%, transparent);
  backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--geo-hair);
}

.admin-bar .geo-masthead { top: 32px; }

.geo-masthead__inner {
  min-height: 72px;
  gap: 28px;
}

.geo-brand {
  gap: 11px;
  align-items: center;
  flex-wrap: nowrap;
}

.geo-brand::before {
  content: "";
  flex: none;
  width: 26px;
  height: 26px;
  background-color: var(--geo-fix);
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2026%2026%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.3%22%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%228.5%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%222.2%22%2F%3E%3Cpath%20d%3D%22M13%200%20V7%20M13%2019%20V26%20M0%2013%20H7%20M19%2013%20H26%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2026%2026%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.3%22%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%228.5%22%2F%3E%3Ccircle%20cx%3D%2213%22%20cy%3D%2213%22%20r%3D%222.2%22%2F%3E%3Cpath%20d%3D%22M13%200%20V7%20M13%2019%20V26%20M0%2013%20H7%20M19%2013%20H26%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
}

.geo-brand .wp-block-site-title {
  font-family: var(--geo-display);
  font-weight: 700;
  font-size: 1.16rem;
  letter-spacing: 0.13em;
  line-height: 1;
  margin: 0;
}

.geo-brand .wp-block-site-title a { color: var(--geo-ink); text-decoration: none; }

.geo-brand .wp-block-site-tagline {
  font-family: var(--geo-data);
  font-size: 0.6rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--geo-annot);
  margin: 4px 0 0;
  line-height: 1;
}

.geo-masthead__right { gap: 26px; align-items: center; flex-wrap: nowrap; }

.geo-nav {
  font-family: var(--geo-data);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.geo-nav .wp-block-navigation-item__content {
  color: var(--geo-ink);
  text-decoration: none;
  padding-block: 6px;
  border-bottom: 1px solid transparent;
}

.geo-nav .wp-block-navigation-item__content:hover {
  border-bottom-color: var(--geo-fix);
  color: var(--geo-fix);
}

/* Na úzkém displeji nese hlavičku značka a menu; stejné CTA čeká hned v heru. */
@media (max-width: 899px) {
  .geo-masthead__cta.wp-block-buttons { display: none; }
}

/* --------------------------------------------------------------------------
   Tlačítka — dva registrované styly bloku Tlačítko
   -------------------------------------------------------------------------- */

.wp-block-button__link {
  font-family: var(--geo-display);
  font-weight: 600;
  font-size: 0.95rem;
  letter-spacing: 0.01em;
  padding: 13px 22px;
  border: 1px solid var(--geo-fix);
  border-radius: 2px;
  white-space: nowrap;
  transition: background-color .16s ease, color .16s ease, transform .16s ease;
}

.is-style-geo-solid .wp-block-button__link {
  background-color: var(--geo-fix);
  color: var(--geo-sheet);
}

.is-style-geo-solid .wp-block-button__link:hover {
  background-color: var(--geo-fix-deep);
  transform: translateY(-1px);
}

.is-style-geo-line .wp-block-button__link {
  background-color: transparent;
  color: var(--geo-fix);
}

.is-style-geo-line .wp-block-button__link:hover {
  background-color: color-mix(in srgb, var(--geo-fix) 8%, transparent);
}

.geo-masthead .wp-block-button__link { padding: 9px 16px; font-size: 0.85rem; }

/* --------------------------------------------------------------------------
   Hero — vrstevnicové pole, nadpis sázený jako mapový popisek
   -------------------------------------------------------------------------- */

.geo-hero {
  position: relative;
  isolation: isolate;
  padding-block: clamp(72px, 11vw, 148px) clamp(32px, 5vw, 56px);
  overflow: hidden;
}

.geo-hero__field {
  position: absolute;
  inset: -6% -2% -2%;
  width: 104%;
  height: 112%;
  z-index: -1;
  pointer-events: none;
}

.geo-hero__field path {
  fill: none;
  stroke: var(--geo-contour);
  stroke-width: 1;
  opacity: 0.42;
  vector-effect: non-scaling-stroke;
}

.geo-hero__field .idx {
  stroke: var(--geo-contour-idx);
  stroke-width: 1.7;
  opacity: 0.55;
}

.geo-hero__eyebrow {
  margin-bottom: clamp(20px, 3vw, 34px);
  background: var(--geo-paper);
  box-shadow: 0 0 0 5px var(--geo-paper);
  display: inline-block;
}

/* Podpisový prvek: každé slovo nadpisu je popisek, který přeruší vrstevnici.
   Slova obaluje šablona, aby zůstal editovatelný prostý text. */
.geo-hero__title {
  font-size: clamp(2.9rem, 8.2vw, 6.6rem);
  font-weight: 700;
  letter-spacing: -0.028em;
  max-width: 15ch;
  text-wrap: balance;
}

.geo-hero__title .geo-lab {
  display: inline-block;
  background: var(--geo-paper);
  box-shadow: 0 0 0 7px var(--geo-paper);
  margin-right: 0.16em;
}

.geo-hero__lede {
  max-width: 46ch;
  margin-top: clamp(26px, 3.5vw, 40px) !important;
  font-size: 1.06rem;
  color: color-mix(in srgb, var(--geo-ink) 86%, var(--geo-paper));
  background: var(--geo-paper);
  box-shadow: 0 0 0 9px var(--geo-paper);
}

.geo-hero__actions {
  gap: 14px;
  margin-top: clamp(30px, 4vw, 44px);
}

/* měřický zápisník pod heroem */
.geo-readout {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-top: clamp(56px, 8vw, 96px);
  border-top: 1px solid var(--geo-hair);
  border-bottom: 1px solid var(--geo-hair);
  background: color-mix(in srgb, var(--geo-paper) 82%, var(--geo-sheet));
}

.geo-readout__cell {
  flex: 1 1 160px;
  padding: 14px 20px 15px 0;
}

.geo-readout__cell--wide { flex-basis: 100%; }

.geo-readout__label {
  font-family: var(--geo-data);
  font-size: 0.61rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  color: var(--geo-annot);
  line-height: 1.5;
}

.geo-readout__value {
  margin-top: 5px !important;
  font-family: var(--geo-data);
  font-size: 0.95rem;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  line-height: 1.45;
}

@media (min-width: 720px) {
  .geo-readout__cell--wide { flex-basis: 300px; flex-grow: 1.6; }
}

/* --------------------------------------------------------------------------
   Datum — vlasová linka přerušená popiskem sekce, vpravo nadmořská výška
   -------------------------------------------------------------------------- */

.geo-datum {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: clamp(34px, 4.5vw, 56px);
}

.geo-datum::before,
.geo-datum__elev::before {
  content: "";
  height: 1px;
  background: var(--geo-contour);
  opacity: 0.5;
}

.geo-datum::before { width: clamp(18px, 4vw, 54px); flex: none; }

.geo-datum__tag {
  font-family: var(--geo-data);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--geo-contour-idx);
  white-space: nowrap;
  flex: none;
}

.geo-datum__elev {
  font-family: var(--geo-data);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: var(--geo-annot);
  font-variant-numeric: tabular-nums;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 14px;
}

.geo-datum__elev::before { flex: 1 1 auto; }

/* --------------------------------------------------------------------------
   Pásy a jejich dvousloupcová osnova
   -------------------------------------------------------------------------- */

.geo-band { padding-block: var(--geo-band-pad); }

.geo-band--sheet {
  background: var(--geo-sheet);
  border-block: 1px solid var(--geo-hair);
}

.geo-band__grid {
  display: grid;
  gap: clamp(30px, 4vw, 64px);
}

.geo-band__head h2 {
  font-size: clamp(1.85rem, 3.1vw, 2.7rem);
  max-width: 15ch;
}

.geo-band__head p {
  margin-top: 16px !important;
  max-width: 38ch;
  color: color-mix(in srgb, var(--geo-ink) 80%, var(--geo-paper));
}

/* --------------------------------------------------------------------------
   Legenda výkonů — mapa vysvětluje sama sebe
   -------------------------------------------------------------------------- */

.geo-legend { border-top: 1px solid var(--geo-hair); }

.geo-legend__row {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 6px 18px;
  padding: 22px 0 24px;
  border-bottom: 1px solid var(--geo-hair);
  transition: background-color .16s ease;
}

.geo-legend__row:hover { background: color-mix(in srgb, var(--geo-fix) 4%, transparent); }

/* Symbol legendy nese téma, ne obsah — řádky lze v editoru volně přidávat. */
.geo-legend__row::before {
  content: "";
  grid-row: span 2;
  width: 30px;
  height: 30px;
  margin-top: 3px;
  background-color: var(--geo-contour-idx);
  transition: background-color .16s ease;
  -webkit-mask: var(--geo-sym) no-repeat center / contain;
  mask: var(--geo-sym) no-repeat center / contain;
}

.geo-legend__row:hover::before { background-color: var(--geo-fix); }

.geo-legend__row:nth-child(5n + 1) { --geo-sym: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Cpath%20d%3D%22M15%205%20L26%2024%20L4%2024%20Z%22%2F%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2218.5%22%20r%3D%221.9%22%20fill%3D%22%23000%22%20stroke%3D%22none%22%2F%3E%3C%2Fsvg%3E"); }
.geo-legend__row:nth-child(5n + 2) { --geo-sym: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Crect%20x%3D%224%22%20y%3D%224%22%20width%3D%2222%22%20height%3D%2222%22%2F%3E%3Cpath%20d%3D%22M4%2015%20H26%20M15%204%20V26%22%2F%3E%3C%2Fsvg%3E"); }
.geo-legend__row:nth-child(5n + 3) { --geo-sym: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%2215%22%20r%3D%228%22%2F%3E%3Cpath%20d%3D%22M15%202%20V9%20M15%2021%20V28%20M2%2015%20H9%20M21%2015%20H28%22%2F%3E%3C%2Fsvg%3E"); }
.geo-legend__row:nth-child(5n + 4) { --geo-sym: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Cpath%20d%3D%22M3%2020%20C8%2020%208%2011%2013%2011%20C18%2011%2018%2020%2023%2020%20C25.5%2020%2026.5%2017.7%2027%2016%22%2F%3E%3Cpath%20d%3D%22M3%2026%20C8%2026%208%2017%2013%2017%20C18%2017%2018%2026%2023%2026%20C25.5%2026%2026.5%2023.7%2027%2022%22%2F%3E%3C%2Fsvg%3E"); }
.geo-legend__row:nth-child(5n + 5) { --geo-sym: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2030%2030%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Cpath%20d%3D%22M15%203%20V21%22%2F%3E%3Cpath%20d%3D%22M15%2021%20L10.5%2027%20H19.5%20Z%22%2F%3E%3Cpath%20d%3D%22M5%2014%20H25%22%20stroke-dasharray%3D%223%203%22%2F%3E%3C%2Fsvg%3E"); }

.geo-legend__name {
  font-family: var(--geo-display);
  font-weight: 600;
  font-size: 1.22rem;
  letter-spacing: -0.005em;
}

.geo-legend__desc {
  color: color-mix(in srgb, var(--geo-ink) 78%, var(--geo-paper));
  font-size: 0.95rem;
  max-width: 58ch;
}

.geo-legend__meta {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 22px;
  margin-top: 12px;
}

.geo-legend__meta p {
  font-family: var(--geo-data);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: var(--geo-annot);
  font-variant-numeric: tabular-nums;
}

.geo-legend__meta strong { color: var(--geo-ink); font-weight: 500; }

/* --------------------------------------------------------------------------
   Přesnost — příčný profil terénu se zaměřenými body
   -------------------------------------------------------------------------- */

.geo-profile {
  width: 100%;
  height: auto;
  display: block;
  margin-bottom: 26px;
}

.geo-profile__terrain { fill: color-mix(in srgb, var(--geo-contour) 12%, transparent); stroke: var(--geo-contour-idx); stroke-width: 1.4; }
.geo-profile__grid    { stroke: var(--geo-hair); stroke-width: 1; }
.geo-profile__drop    { stroke: var(--geo-fix); stroke-width: 1; stroke-dasharray: 2 3; opacity: .65; }
.geo-profile__pt      { fill: var(--geo-fix); }
.geo-profile__lbl--hi { fill: var(--geo-fix); font-weight: 500; }

/* Popisek se vždy prokreslí přes linii — knockout halo jako na mapě. */
.geo-profile__lbl,
.geo-reach__ringsvg text {
  font-family: var(--geo-data);
  font-size: 15px;
  fill: var(--geo-annot);
  letter-spacing: .04em;
  paint-order: stroke;
  stroke: var(--geo-paper);
  stroke-width: 6px;
  stroke-linejoin: round;
}

.geo-band--sheet .geo-profile__lbl,
.geo-band--sheet .geo-reach__ringsvg text { stroke: var(--geo-sheet); }

.geo-specs {
  display: grid;
  gap: 1px;
  background: var(--geo-hair);
  border: 1px solid var(--geo-hair);
}

.geo-specs__cell { background: var(--geo-sheet); padding: 18px 20px 20px; }

.geo-band--sheet .geo-specs__cell { background: var(--geo-paper); }

.geo-specs__label {
  font-family: var(--geo-data);
  font-size: 0.63rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--geo-annot);
  line-height: 1.5;
}

.geo-specs__value {
  margin-top: 8px !important;
  font-family: var(--geo-display);
  font-weight: 600;
  font-size: 1.32rem;
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
}

.geo-specs__note {
  font-family: var(--geo-body);
  font-weight: 400;
  font-size: 0.82rem;
  color: var(--geo-annot);
  margin-top: 5px !important;
  letter-spacing: 0;
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   Pořad — polygonový pořad; pořadí nese linie, ne čísla
   -------------------------------------------------------------------------- */

.geo-traverse__rail {
  display: block;
  width: 100%;
  height: 54px;
  margin-bottom: 20px;
  overflow: visible;
}

.geo-traverse__rail polyline {
  fill: none;
  stroke: var(--geo-fix);
  stroke-width: 1.2;
  stroke-dasharray: 5 4;
  vector-effect: non-scaling-stroke;
}

.geo-traverse__rail polygon {
  fill: var(--geo-sheet);
  stroke: var(--geo-fix);
  stroke-width: 1.4;
  vector-effect: non-scaling-stroke;
}

.geo-traverse__stations {
  display: grid;
  gap: 30px 22px;
}

.geo-traverse__station { display: flex; flex-direction: column; }

.geo-traverse__station h3 {
  font-size: 1.05rem;
  font-weight: 600;
  margin-bottom: 7px;
}

.geo-traverse__station p { font-size: 0.9rem; color: color-mix(in srgb, var(--geo-ink) 78%, var(--geo-paper)); }

.geo-traverse__when {
  font-family: var(--geo-data);
  font-size: 0.63rem;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--geo-fix) !important;
  margin-top: auto !important;
  padding-top: 14px;
  line-height: 1.5;
}

/* --------------------------------------------------------------------------
   Působnost
   -------------------------------------------------------------------------- */

.geo-reach {
  display: grid;
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
}

.geo-reach__ringsvg { width: 100%; height: auto; display: block; max-width: 420px; }
.geo-reach__ringsvg circle.r    { fill: none; stroke: var(--geo-contour); stroke-width: 1; opacity: .55; }
.geo-reach__ringsvg circle.core { fill: var(--geo-fix); }
.geo-reach__ringsvg line        { stroke: var(--geo-hair); stroke-width: 1; }
.geo-reach__ringsvg text.city   { fill: var(--geo-ink); font-weight: 500; }

.geo-reach__cols {
  columns: 2;
  column-gap: 34px;
  padding-left: 0;
  list-style: none;
}

.geo-reach__cols li {
  font-family: var(--geo-data);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  padding: 9px 0;
  border-bottom: 1px solid var(--geo-hair);
  break-inside: avoid;
}

.geo-reach__note {
  margin-top: 22px !important;
  font-size: 0.92rem;
  color: var(--geo-annot);
  max-width: 44ch;
}

/* --------------------------------------------------------------------------
   Poptávka
   -------------------------------------------------------------------------- */

.geo-ask__grid { display: grid; gap: clamp(30px, 4vw, 60px); align-items: start; }

.geo-ask h2 { font-size: clamp(2rem, 3.6vw, 3rem); max-width: 13ch; }

.geo-ask__lede { margin-top: 18px !important; max-width: 40ch; color: color-mix(in srgb, var(--geo-ink) 82%, var(--geo-paper)); }

.geo-ask__actions { gap: 14px; margin-top: 30px; }

.geo-ask__list {
  padding-left: 0;
  list-style: none;
  border-top: 1px solid var(--geo-hair);
}

.geo-ask__list li {
  display: grid;
  grid-template-columns: 20px 1fr;
  gap: 14px;
  padding: 16px 0;
  border-bottom: 1px solid var(--geo-hair);
  font-size: 0.95rem;
}

.geo-ask__list li::before {
  content: "";
  width: 20px;
  height: 20px;
  margin-top: 5px;
  background-color: var(--geo-fix);
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010.5%20L8%2015%20L17%205%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2020%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010.5%20L8%2015%20L17%205%22%2F%3E%3C%2Fsvg%3E") no-repeat center / contain;
}

.geo-ask__contact {
  margin-top: 26px;
  gap: 8px 30px;
}

.geo-ask__contact p a {
  font-family: var(--geo-data);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

/* --------------------------------------------------------------------------
   Patička — rámeček mapového listu
   -------------------------------------------------------------------------- */

.geo-foot {
  border-top: 1px solid var(--geo-contour);
  padding-block: 38px 44px;
}

.geo-foot__grid {
  display: grid;
  gap: 26px 40px;
  align-items: start;
}

.geo-foot__grid h3 {
  font-family: var(--geo-display);
  font-weight: 700;
  font-size: 1rem;
  letter-spacing: 0.13em;
  margin-block: 0 14px;
}

.geo-foot__grid h3.geo-foot__label { letter-spacing: .14em; }

.geo-foot p,
.geo-foot li {
  font-family: var(--geo-data);
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: var(--geo-annot);
  line-height: 1.85;
  margin-block: 0;
}

.geo-foot ul { padding-left: 0; list-style: none; margin-block: 0; }
.geo-foot a { color: var(--geo-annot); text-decoration: none; }
.geo-foot a:hover { color: var(--geo-fix); text-decoration: underline; }

.geo-foot__disclaimer {
  margin-top: 30px !important;
  padding-top: 18px;
  border-top: 1px solid var(--geo-hair);
  max-width: 74ch;
}

/* --------------------------------------------------------------------------
   Vnitřní stránky
   -------------------------------------------------------------------------- */

.geo-page { padding-block: clamp(56px, 7vw, 96px); }
.geo-page .wp-block-post-title { font-size: clamp(2rem, 4vw, 3rem); margin-bottom: 28px; }
.geo-page p { margin-block: 0 1.2em; }

/* --------------------------------------------------------------------------
   Osnova pro větší displeje
   -------------------------------------------------------------------------- */

@media (min-width: 720px) {
  .geo-traverse__stations { grid-template-columns: repeat(5, 1fr); }
  .geo-specs { grid-template-columns: repeat(3, 1fr); }
  .geo-legend__row { grid-template-columns: 46px minmax(0, 1fr) 210px; }
  .geo-legend__row::before { grid-row: span 3; }
  .geo-legend__meta {
    grid-column: 3;
    grid-row: 1 / span 3;
    flex-direction: column;
    gap: 10px;
    margin-top: 4px;
    text-align: right;
    align-items: flex-end;
  }
  .geo-foot__grid { grid-template-columns: 1.4fr 1fr 1fr; }
}

@media (min-width: 1000px) {
  .geo-band__grid { grid-template-columns: minmax(0, 330px) minmax(0, 1fr); gap: 72px; }
  .geo-band__head { position: sticky; top: 108px; }
  .geo-reach { grid-template-columns: minmax(0, 380px) minmax(0, 1fr); }
  .geo-ask__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 719px) {
  .geo-traverse__rail { display: none; }
  .geo-traverse__station { padding-left: 20px; border-left: 1px dashed var(--geo-fix); }
  .geo-reach__cols { columns: 1; }
  .geo-hero__title .geo-lab { box-shadow: 0 0 0 5px var(--geo-paper); }
}

/* --------------------------------------------------------------------------
   Pohyb — jediná orchestrovaná chvíle: vykreslení vrstevnic při načtení
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: no-preference) {
  .geo-hero__field path {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
    animation: geo-trace 2.1s cubic-bezier(.22,.61,.36,1) forwards;
  }
  .geo-hero__intro > * {
    opacity: 0;
    animation: geo-rise .7s cubic-bezier(.22,.61,.36,1) forwards;
  }
  .geo-hero__intro > :nth-child(1) { animation-delay: .10s; }
  .geo-hero__intro > :nth-child(2) { animation-delay: .20s; }
  .geo-hero__intro > :nth-child(3) { animation-delay: .34s; }
  .geo-hero__intro > :nth-child(4) { animation-delay: .46s; }
}

@keyframes geo-trace { to { stroke-dashoffset: 0; } }
@keyframes geo-rise  { from { opacity: 0; transform: translateY(9px); } to { opacity: 1; transform: none; } }
