.gth-live-walk {
  --gth-walk-ink: #17221d;
  --gth-walk-muted: #5f6d65;
  --gth-walk-paper: rgba(255, 255, 252, 0.94);
  --gth-walk-route: #53605a;
  --gth-walk-progress: #e85d2a;
  --gth-walk-live: #208451;
  --gth-walk-warning: #b36a05;
  --gth-walk-danger: #b83a35;
  position: relative;
  left: auto;
  width: 100%;
  max-width: none !important;
  height: 80vh;
  height: 80svh;
  min-height: 480px;
  margin: 0 !important;
  overflow: hidden;
  background: #dfe5df;
  color: var(--gth-walk-ink);
  font-family: inherit;
  isolation: isolate;
}

html:has(.gth-live-walk) {
  overflow-x: clip;
}

.gth-live-walk [hidden] {
  display: none !important;
}

.gth-live-walk__map {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.gth-live-walk__status-card,
.gth-live-walk__progress-panel,
.gth-live-walk__countdown-panel,
.gth-live-walk__loading,
.gth-live-walk__error {
  position: absolute;
  z-index: 800;
  box-sizing: border-box;
  border: 1px solid rgba(23, 34, 29, 0.11);
  border-radius: 14px;
  background: var(--gth-walk-paper);
  box-shadow: 0 12px 35px rgba(23, 34, 29, 0.16);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.gth-live-walk__status-card {
  top: clamp(14px, 2vw, 26px);
  left: clamp(14px, 2vw, 26px);
  max-width: min(430px, calc(100% - 28px));
  padding: 13px 16px 12px;
}

.gth-live-walk__badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--gth-walk-muted);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.095em;
  line-height: 1;
  text-transform: uppercase;
}

.gth-live-walk__badge-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 9px;
  border-radius: 50%;
  background: currentColor;
}

.gth-live-walk__badge.is-live {
  color: var(--gth-walk-live);
}

.gth-live-walk__badge.is-live .gth-live-walk__badge-dot {
  animation: gth-walk-pulse 2s infinite;
}

.gth-live-walk__badge.is-delayed {
  color: var(--gth-walk-warning);
}

.gth-live-walk__badge.is-stale {
  color: var(--gth-walk-danger);
}

.gth-live-walk__badge.is-preview,
.gth-live-walk__badge.is-waiting,
.gth-live-walk__badge.is-loading,
.gth-live-walk__badge.is-paused {
  color: #5964a5;
}

.gth-live-walk__badge.is-complete {
  color: var(--gth-walk-progress);
}

.gth-live-walk__badge.is-countdown {
  color: var(--gth-walk-progress);
}

.gth-live-walk__last-update {
  margin: 7px 0 0;
  color: var(--gth-walk-ink);
  font-size: clamp(13px, 1.3vw, 15px);
  font-weight: 650;
  line-height: 1.35;
}

.gth-live-walk__unit-toggle {
  position: absolute;
  top: clamp(14px, 2vw, 26px);
  right: clamp(14px, 2vw, 26px);
  z-index: 800;
  display: inline-flex;
  box-sizing: border-box;
  padding: 3px;
  border: 1px solid rgba(23, 34, 29, 0.11);
  border-radius: 11px;
  background: var(--gth-walk-paper);
  box-shadow: 0 8px 24px rgba(23, 34, 29, 0.14);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.gth-live-walk__unit-toggle button {
  min-width: 39px;
  margin: 0;
  padding: 7px 9px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--gth-walk-muted);
  font: inherit;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.06em;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
}

.gth-live-walk__unit-toggle button.is-active {
  background: var(--gth-walk-ink);
  color: #fff;
}

.gth-live-walk__unit-toggle button:focus-visible {
  outline: 3px solid rgba(232, 93, 42, 0.42);
  outline-offset: 1px;
}

.gth-live-walk__progress-panel {
  right: clamp(14px, 2vw, 26px);
  bottom: clamp(14px, 2vw, 26px);
  left: clamp(14px, 2vw, 26px);
  width: min(760px, calc(100% - 28px));
  margin-left: auto;
  padding: 17px 18px 18px;
}

.gth-live-walk__countdown-panel {
  right: clamp(14px, 2vw, 26px);
  bottom: clamp(14px, 2vw, 26px);
  left: clamp(14px, 2vw, 26px);
  width: min(920px, calc(100% - 28px));
  margin: 0 auto;
  padding: clamp(19px, 2.2vw, 28px) clamp(18px, 3vw, 36px) clamp(18px, 2.2vw, 27px);
  text-align: center;
}

.gth-live-walk__countdown-kicker {
  display: block;
  margin-bottom: 8px;
  color: var(--gth-walk-muted);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.15em;
  line-height: 1;
  text-transform: uppercase;
}

.gth-live-walk__countdown-clock {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(7px, 1.5vw, 18px);
}

.gth-live-walk__countdown-clock div {
  min-width: clamp(50px, 8vw, 92px);
}

.gth-live-walk__countdown-clock strong {
  display: block;
  color: var(--gth-walk-ink);
  font-size: clamp(35px, 5.2vw, 64px);
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  letter-spacing: -0.055em;
  line-height: 0.95;
}

.gth-live-walk__countdown-clock span {
  display: block;
  margin-top: 5px;
  color: var(--gth-walk-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.1em;
  line-height: 1;
  text-transform: uppercase;
}

.gth-live-walk__countdown-clock i {
  color: var(--gth-walk-progress);
  font-size: clamp(29px, 4.5vw, 54px);
  font-style: normal;
  font-weight: 500;
  line-height: 0.84;
  animation: gth-walk-colon 1s ease-in-out infinite;
}

.gth-live-walk__countdown-start {
  margin: 13px 0 16px;
  color: var(--gth-walk-ink);
  font-size: clamp(13px, 1.5vw, 17px);
  font-weight: 720;
  line-height: 1.3;
}

.gth-live-walk__countdown-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(23, 34, 29, 0.12);
  padding-top: 15px;
}

.gth-live-walk__countdown-stats > div {
  min-width: 0;
  padding: 0 13px;
  border-right: 1px solid rgba(23, 34, 29, 0.1);
}

.gth-live-walk__countdown-stats > div:last-child {
  border-right: 0;
}

.gth-live-walk__countdown-stats strong,
.gth-live-walk__countdown-stats span {
  display: block;
}

.gth-live-walk__countdown-stats strong {
  overflow: hidden;
  color: var(--gth-walk-ink);
  font-size: clamp(14px, 1.7vw, 20px);
  font-weight: 820;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gth-live-walk__countdown-stats span {
  margin-top: 4px;
  color: var(--gth-walk-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.09em;
  line-height: 1;
  text-transform: uppercase;
}

.gth-live-walk__progress-copy {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr) auto;
  gap: 28px;
  align-items: end;
  margin-bottom: 12px;
}

.gth-live-walk__eyebrow {
  display: block;
  margin-bottom: 3px;
  color: var(--gth-walk-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.11em;
  line-height: 1.2;
  text-transform: uppercase;
}

.gth-live-walk__progress-copy strong {
  display: block;
  overflow: hidden;
  color: var(--gth-walk-ink);
  font-size: clamp(15px, 1.7vw, 20px);
  font-weight: 780;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gth-live-walk__percent {
  color: var(--gth-walk-progress);
  font-size: clamp(24px, 3.1vw, 39px);
  font-weight: 850;
  letter-spacing: -0.04em;
  line-height: 0.9;
}

.gth-live-walk__progress-track {
  position: relative;
  height: 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #d7ddd8;
}

.gth-live-walk__progress-track > span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #c94422, var(--gth-walk-progress));
  transition: width 700ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.gth-live-walk__loading,
.gth-live-walk__error {
  top: 50%;
  left: 50%;
  display: flex;
  align-items: center;
  gap: 12px;
  max-width: calc(100% - 40px);
  padding: 16px 19px;
  font-size: 14px;
  font-weight: 700;
  transform: translate(-50%, -50%);
}

.gth-live-walk__error {
  color: var(--gth-walk-danger);
}

.gth-live-walk__spinner {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border: 3px solid rgba(23, 34, 29, 0.16);
  border-top-color: var(--gth-walk-progress);
  border-radius: 50%;
  animation: gth-walk-spin 850ms linear infinite;
}

.gth-live-walk__endpoint {
  position: relative;
  display: block;
  width: 18px;
  height: 18px;
  box-sizing: border-box;
  border: 4px solid #fff;
  border-radius: 50%;
  background: var(--gth-walk-ink);
  box-shadow: 0 2px 10px rgba(23, 34, 29, 0.38);
}

.gth-live-walk__endpoint.is-finish {
  background: var(--gth-walk-progress);
}

.gth-live-walk__endpoint > span {
  position: absolute;
  top: 22px;
  left: 50%;
  width: max-content;
  padding: 4px 7px;
  border-radius: 6px;
  background: rgba(23, 34, 29, 0.88);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1;
  text-transform: uppercase;
  transform: translateX(-50%);
}

.gth-live-walk__water-marker {
  display: grid;
  width: 22px;
  height: 22px;
  place-items: center;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #217eb9;
  color: #fff;
  font-size: 9px;
  box-shadow: 0 2px 10px rgba(23, 34, 29, 0.32);
}

.gth-live-walk__current-marker {
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(232, 93, 42, 0.2);
  animation: gth-walk-marker-pulse 2.2s ease-out infinite;
}

.gth-live-walk__current-marker > span {
  position: absolute;
  inset: 7px;
  box-sizing: border-box;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--gth-walk-progress);
  box-shadow: 0 2px 9px rgba(23, 34, 29, 0.44);
}

.gth-live-walk__current-marker.is-preview {
  background: rgba(89, 100, 165, 0.18);
  animation: none;
}

.gth-live-walk__current-marker.is-preview > span {
  background: #5964a5;
}

.gth-live-walk__countdown-route {
  stroke-dasharray: 3 17;
  animation: gth-walk-route-flow 2.2s linear infinite;
}

.gth-live-walk.is-countdown .gth-live-walk__endpoint.is-start {
  animation: gth-walk-start-pulse 2s ease-out infinite;
}

.gth-live-walk .leaflet-control-zoom a {
  color: var(--gth-walk-ink);
}

.gth-live-walk .leaflet-control-attribution {
  background: rgba(255, 255, 255, 0.82);
  font-size: 9px;
}

.entry-content > .wp-block-shortcode:has(.gth-live-walk),
.wp-site-blocks > .wp-block-shortcode:has(.gth-live-walk) {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}

@keyframes gth-walk-spin {
  to { transform: rotate(360deg); }
}

@keyframes gth-walk-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(32, 132, 81, 0.34); }
  50% { box-shadow: 0 0 0 6px rgba(32, 132, 81, 0); }
}

@keyframes gth-walk-marker-pulse {
  0% { box-shadow: 0 0 0 0 rgba(232, 93, 42, 0.32); }
  75%, 100% { box-shadow: 0 0 0 18px rgba(232, 93, 42, 0); }
}

@keyframes gth-walk-route-flow {
  to { stroke-dashoffset: -40; }
}

@keyframes gth-walk-start-pulse {
  0% { box-shadow: 0 2px 10px rgba(23, 34, 29, 0.38), 0 0 0 0 rgba(232, 93, 42, 0.42); }
  75%, 100% { box-shadow: 0 2px 10px rgba(23, 34, 29, 0.38), 0 0 0 16px rgba(232, 93, 42, 0); }
}

@keyframes gth-walk-colon {
  0%, 100% { opacity: 0.35; }
  50% { opacity: 1; }
}

@media (max-width: 640px) {
  .gth-live-walk {
    min-height: 520px;
  }

  .gth-live-walk__status-card {
    right: 96px;
    left: 12px;
    max-width: none;
  }

  .gth-live-walk__unit-toggle {
    top: 12px;
    right: 12px;
  }

  .gth-live-walk__unit-toggle button {
    min-width: 34px;
    padding: 7px 6px;
  }

  .gth-live-walk__progress-panel {
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    padding: 14px;
  }

  .gth-live-walk__countdown-panel {
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    padding: 17px 12px 15px;
  }

  .gth-live-walk__countdown-clock {
    gap: 3px;
  }

  .gth-live-walk__countdown-clock div {
    min-width: 48px;
  }

  .gth-live-walk__countdown-clock strong {
    font-size: clamp(30px, 10vw, 42px);
  }

  .gth-live-walk__countdown-clock i {
    font-size: 29px;
  }

  .gth-live-walk__countdown-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px 0;
  }

  .gth-live-walk__countdown-stats > div:nth-child(2) {
    border-right: 0;
  }

  .gth-live-walk__progress-copy {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 16px;
  }

  .gth-live-walk__remaining {
    display: none;
  }

  .gth-live-walk__progress-copy strong {
    font-size: 15px;
  }

  .gth-live-walk__percent {
    font-size: 29px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gth-live-walk__badge-dot,
  .gth-live-walk__current-marker,
  .gth-live-walk__spinner,
  .gth-live-walk__countdown-route,
  .gth-live-walk__countdown-clock i,
  .gth-live-walk.is-countdown .gth-live-walk__endpoint.is-start {
    animation: none !important;
  }

  .gth-live-walk__progress-track > span {
    transition: none;
  }
}
