/* Shared 2026 discovery/editorial redesign. Search, map, regions and guides. */
.results-page,
.region-page {
  --v2-ink: #173d24;
  --v2-green: #315b28;
  --v2-leaf: #638b28;
  --v2-sage: #edf3df;
  --v2-gold: #e7b63f;
  --v2-orange: #b95e22;
  --v2-cream: #faf7ed;
  --v2-paper: #fffdf7;
  --v2-muted: #667064;
  --v2-line: #dce2cf;
  --v2-shadow: 0 14px 38px rgba(35, 60, 28, .09);
  --page-width: 1150px;
  background: radial-gradient(circle at 15% 0, rgba(231, 182, 63, .08), transparent 24rem), var(--v2-cream);
  color: var(--v2-ink);
}

.results-page .site-header,
.region-page .site-header {
  width: min(calc(100% - 32px), 1150px);
  min-height: 78px;
  padding: 8px 22px;
  grid-template-columns: auto 1fr auto;
  gap: 30px;
  border-color: rgba(49, 91, 40, .12);
  background: rgba(255, 253, 247, .94);
  box-shadow: none;
  backdrop-filter: blur(15px);
}

.results-page .brand,
.region-page .brand { gap: 10px; }
.results-page .brand img,
.region-page .brand img { width: 52px; height: 52px; }
.results-page .brand strong,
.region-page .brand strong { font: 700 23px/1 Georgia, serif; }
.results-page .brand small,
.region-page .brand small { margin-top: 5px; color: #955020; font-size: 8px; letter-spacing: .09em; }
.results-page .main-nav,
.region-page .main-nav { gap: 26px; font-size: 13px; }
.results-page .main-nav a,
.region-page .main-nav a { padding: 22px 0 19px; }
.results-page .header-actions,
.region-page .header-actions { gap: 13px; font-size: 13px; }
.results-page .provider-button,
.region-page .provider-button { padding: 9px 14px; border-width: 1px; border-radius: 11px; }

.results-page .results-hero,
.region-page .region-hero {
  isolation: isolate;
  width: min(calc(100% - 32px), 1150px);
  min-height: 220px;
  margin: 16px auto 0;
  padding: 30px 38px;
  border: 1px solid rgba(49, 91, 40, .14);
  border-radius: 24px;
  box-shadow: var(--v2-shadow);
}

.results-page .results-hero {
  background:
    linear-gradient(90deg, rgba(255, 250, 229, .97), rgba(255, 250, 229, .85) 54%, rgba(255, 250, 229, .12)),
    url("generated-assets/hero-background.webp") center 48% / cover no-repeat;
}

.region-page .region-hero {
  background:
    linear-gradient(90deg, rgba(255, 250, 229, .97), rgba(255, 250, 229, .86) 56%, rgba(255, 250, 229, .12)),
    url("generated-assets/wide-region-nrw.webp") center / cover no-repeat;
}

.results-page .results-hero::after,
.region-page .region-hero::after { display: none; }
.results-page .results-hero-inner,
.region-page .region-hero-inner { max-width: 660px; }
.results-page .breadcrumbs,
.region-page .breadcrumbs { margin-bottom: 9px; color: var(--v2-green); font-size: 12px; }
.results-page .results-hero h1,
.region-page .region-hero h1,
.region-page .fast-region-header h1 {
  color: var(--v2-ink);
  font: 700 clamp(32px, 3.6vw, 46px)/1 Georgia, serif;
  letter-spacing: -.025em;
}
.results-page .results-hero p,
.region-page .region-hero p,
.region-page .fast-region-header p {
  max-width: 590px;
  margin: 10px 0 16px;
  color: #465247;
  font-size: 14px;
  line-height: 1.5;
  font-weight: 500;
}

.results-page .results-search,
.region-page .region-search {
  grid-template-columns: 39px minmax(0, 1fr) 98px;
  width: min(100%, 525px);
  min-height: 48px;
  border: 1px solid rgba(49, 91, 40, .18);
  border-radius: 14px;
  box-shadow: 0 10px 25px rgba(37, 66, 30, .12);
}
.results-page .results-search input,
.region-page .region-search input { height: 46px; background: transparent; font-size: 13px; }
.results-page .results-search button,
.region-page .region-search button {
  height: 36px;
  margin-right: 6px;
  border-radius: 9px;
  background: var(--v2-green);
  font-size: 12px;
}

.results-page .results-shell,
.region-page .region-shell {
  width: min(100%, 1150px);
  padding: 34px 24px 56px;
  background: transparent;
}
.results-page .toolbar {
  align-items: center;
  gap: 16px;
  margin-bottom: 18px;
  padding: 15px 18px;
  border: 1px solid var(--v2-line);
  border-radius: 17px;
  background: var(--v2-paper);
  box-shadow: 0 8px 22px rgba(38, 64, 31, .055);
}
.results-page .toolbar h2,
.region-page .section-title h2,
.region-page .guide-card h2,
.region-page .side-card h2,
.region-page .fast-panel h2 {
  color: var(--v2-ink);
  font: 700 22px/1.12 Georgia, serif;
}
.results-page .toolbar p,
.region-page .section-title p { color: var(--v2-muted); font-size: 12px; font-weight: 500; }

.results-page .toolbar-actions select,
.results-page .toolbar-actions button,
.results-page .toolbar-check,
.results-page .advanced-filters summary,
.results-page .filter-row button,
.region-page .fast-toolbar button,
.region-page .fast-toolbar select {
  min-height: 37px;
  border: 1px solid var(--v2-line);
  border-radius: 10px;
  background: var(--v2-paper);
  box-shadow: none;
  color: #425043;
  font-size: 12px;
}
.results-page .toolbar-actions button,
.results-page .filter-row button.active,
.region-page .fast-toolbar button.primary {
  color: #fff;
  border-color: var(--v2-green);
  background: var(--v2-green);
}
.results-page .toolbar-check { display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; font-weight: 700; }
.results-page .active-filters span { background: var(--v2-sage); color: var(--v2-green); }

.results-page .results-layout { grid-template-columns: minmax(0, 1fr) 290px; gap: 18px; }
.results-page .result-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.results-page .result-card {
  min-height: 0;
  border-color: var(--v2-line);
  border-radius: 17px;
  background: var(--v2-paper);
  box-shadow: 0 8px 22px rgba(38, 64, 31, .055);
  transition: transform .2s ease, box-shadow .2s ease;
}
.results-page .result-card:hover { transform: translateY(-2px); box-shadow: var(--v2-shadow); }
.results-page .result-body { padding: 15px 16px 16px; }
.results-page .result-body h3 { margin-bottom: 6px; color: var(--v2-ink); font: 700 17px/1.22 Georgia, serif; }
.results-page .result-body p { color: var(--v2-muted); font-size: 12px; line-height: 1.45; }
.results-page .badge,
.region-page .badge,
.region-page .stat-pill,
.region-page .quick-link {
  border-color: #d6e1c7;
  background: var(--v2-sage);
  color: var(--v2-green);
}
.results-page .heart-action { width: 34px; height: 34px; color: var(--v2-green); background: rgba(255,253,247,.94); }
.results-page .primary-action,
.region-page .primary-action {
  min-height: 38px;
  padding: 5px 13px !important;
  border-radius: 10px;
  color: #fff;
  background: var(--v2-green);
  font-size: 12px;
  font-weight: 700;
}
.results-page .secondary-action { min-height: 38px; border-color: var(--v2-line); background: #fff; }

.results-page .map-panel,
.results-page .side-note,
.region-page .guide-card,
.region-page .large-maze-card,
.region-page .side-card,
.region-page .fast-panel,
.region-page .compact-maze-card {
  border-color: var(--v2-line);
  border-radius: 17px;
  background: var(--v2-paper);
  box-shadow: 0 8px 22px rgba(38, 64, 31, .055);
}
.results-page .map-panel { top: 94px; padding: 14px; }
.results-page .map-panel h2 { color: var(--v2-ink); font: 700 18px Georgia, serif; }
.results-page .faux-map { height: 225px; border-color: var(--v2-line); border-radius: 13px; }
.results-page .side-note,
.region-page .mascot-side { background: linear-gradient(125deg, #f5f1dd, #edf3df); }

.region-page .editorial-layout { grid-template-columns: minmax(0, 1fr) 285px; gap: 18px; }
.region-page .editorial-main { gap: 18px; }
.region-page .large-grid { gap: 16px; }
.region-page .large-maze-card { transition: transform .2s ease, box-shadow .2s ease; }
.region-page .large-maze-card:hover { transform: translateY(-3px); box-shadow: var(--v2-shadow); }
.region-page .large-maze-card > img { aspect-ratio: 16 / 9; }
.region-page .large-maze-card > div { padding: 15px; }
.region-page .large-maze-card h3 { margin: 8px 0 6px; color: var(--v2-ink); font: 700 17px/1.22 Georgia, serif; }
.region-page .large-maze-card p {
  display: -webkit-box;
  min-height: 3.9em;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: var(--v2-muted);
  font-size: 12px;
  line-height: 1.45;
}
.region-page .large-maze-card footer { padding-top: 10px; border-top: 1px solid #edf0e7; font-size: 12px; }
.region-page .side-stack { gap: 13px; }
.region-page .side-card { padding: 17px; }
.region-page .side-card p { color: var(--v2-muted); font-size: 12px; line-height: 1.5; }
.region-page .map-box { height: 210px; border-color: var(--v2-line); border-radius: 13px; }

/* Guide overview */
.region-page .ratgeber-layout { padding-top: 30px; }
.region-page .article-grid { gap: 16px; }
.region-page .article-card {
  min-height: 225px;
  border-color: var(--v2-line);
  border-radius: 17px;
  background: linear-gradient(145deg, #fffdf7 0%, #fffdf7 68%, #eef3df 100%);
  box-shadow: 0 8px 22px rgba(38, 64, 31, .055);
}
.region-page .article-card::before { width: 4px; background: linear-gradient(var(--v2-gold), var(--v2-leaf)); }
.region-page .article-card-body { min-height: 225px; padding: 21px 20px 18px 23px; }
.region-page .article-card h2 { margin: 13px 0 9px; color: var(--v2-ink); font: 700 21px/1.18 Georgia, serif; }
.region-page .article-card p { color: var(--v2-muted); font-size: 12px; line-height: 1.5; }
.region-page .article-card footer { color: var(--v2-muted); font-size: 12px; }

/* Full map */
.results-page .map-mode {
  grid-template-columns: 340px minmax(0, 1fr);
  width: min(calc(100% - 32px), 1150px);
  height: calc(100dvh - 110px);
  min-height: 620px;
  margin: 16px auto;
  padding: 0;
  gap: 16px;
  background: transparent;
}
.results-page .map-mode .map-list {
  padding: 18px;
  border-color: var(--v2-line);
  border-radius: 20px;
  background: var(--v2-paper);
  box-shadow: var(--v2-shadow);
}
.results-page .map-list h1 { margin: 0 0 13px; color: var(--v2-ink); font: 700 26px/1.05 Georgia, serif; }
.results-page .map-filter-search { gap: 7px; padding: 6px; border: 1px solid var(--v2-line); border-radius: 12px; background: #fff; }
.results-page .map-filter-search input { height: 34px; border: 0; outline: 0; font-size: 12px; }
.results-page .map-filter-search button { min-height: 40px; padding: 0 11px; border: 0; border-radius: 8px; color: #fff; background: var(--v2-green); font-size: 12px; font-weight: 700; }
.results-page .map-filter-grid select { min-height: 40px; border-color: var(--v2-line); background: #fffdf9; font-size: 12px; }
.results-page .map-list-summary { background: var(--v2-paper); }
.results-page .map-list-item { padding: 9px 0; border-color: var(--v2-line); }
.results-page .map-list-item img { border-radius: 9px; }
.results-page .map-list-item b { color: var(--v2-ink); font: 700 12px/1.2 Georgia, serif; }
.results-page .map-list-item small { margin-top: 3px; font-size: 12px; }
.results-page .map-mode .interactive-map { border-color: var(--v2-line); border-radius: 20px; box-shadow: var(--v2-shadow); }
.results-page .map-legend span { border-color: rgba(49,91,40,.14); background: rgba(255,253,247,.94); }
.results-page .map-tile-prompt { border-color: var(--v2-green); border-radius: 11px; color: var(--v2-green); }

/* Guide article pages inherit the same compact editorial frame. */
.region-page .article-shell { width: min(calc(100% - 32px), 1150px); max-width: 1150px; padding: 24px 0 64px; }
.region-page .guide-article .article-header { border-color: var(--v2-line); border-radius: 22px; background: radial-gradient(circle at 83% 20%, rgba(231,182,63,.2), transparent 28%), linear-gradient(135deg,#fffdf7 0%,#f4f8e9 58%,#e6f0d5 100%); box-shadow: var(--v2-shadow); }
.region-page .guide-article .article-header h1 { color: var(--v2-ink); font-family: Georgia, serif; }
.region-page .guide-article .article-content,
.region-page .article-toc { border-color: var(--v2-line); background: var(--v2-paper); }
.region-page .guide-article .article-content h2 { color: var(--v2-ink); font-family: Georgia, serif; }

.results-page .site-footer,
.region-page .site-footer {
  max-width: none;
  margin-top: 44px;
  padding: 32px max(24px, calc((100% - 1102px) / 2)) 38px;
  color: #dfe9d6;
  background: var(--v2-ink);
}
.results-page .site-footer > strong,
.region-page .site-footer > strong { color: #fff; font: 700 21px Georgia, serif; }
.results-page .site-footer nav,
.region-page .site-footer nav { flex-wrap: wrap; justify-content: flex-end; font-size: 12px; }

@media (max-width: 920px) {
  .results-page .results-layout,
  .region-page .editorial-layout { grid-template-columns: 1fr; }
  .results-page .map-panel { position: static; }
  .region-page .side-stack { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .results-page .map-mode { grid-template-columns: 1fr; height: auto; }
}

@media (max-width: 720px) {
  .results-page .site-header,
  .region-page .site-header { width: 100%; min-height: 66px; padding: 7px 12px; }
  .results-page .brand img,
  .region-page .brand img { width: 42px; height: 42px; }
  .results-page .brand strong,
  .region-page .brand strong { font-size: 19px; }
  .results-page .brand small,
  .region-page .brand small { font-size: 12px; }
  .results-page .results-hero,
  .region-page .region-hero {
    width: calc(100% - 24px);
    min-height: 0;
    margin-top: 12px;
    padding: 24px 18px;
    border-radius: 20px;
  }
  .results-page .results-hero h1,
  .region-page .region-hero h1 { font-size: clamp(34px, 10vw, 42px); }
  .results-page .results-search,
  .region-page .region-search { grid-template-columns: 36px 1fr; padding: 6px; }
  .results-page .results-search button,
  .region-page .region-search button { grid-column: 1 / -1; width: 100%; margin: 0; }
  .results-page .results-shell,
  .region-page .region-shell { padding: 28px 12px 44px; }
  .results-page .toolbar { gap: 13px; }
  .results-page .toolbar-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .results-page .toolbar-actions select,
  .results-page .toolbar-actions button,
  .results-page .toolbar-actions .toolbar-check,
  .results-page .toolbar-actions details { width: 100%; min-width: 0; }
  .results-page .result-list { grid-template-columns: 1fr; }
  .results-page .result-card { grid-template-columns: 1fr; gap: 0; }
  .results-page .result-card > img { width: 100%; height: auto; min-height: 0; aspect-ratio: 16 / 9; }
  .results-page .result-body { padding: 15px; }
  .results-page .results-layout { gap: 16px; }
  .results-page .results-layout > aside { order: -1; }
  .results-page .map-panel { display: none; }
  .results-page .side-note { margin: 0; }
  .region-page .large-grid,
  .region-page .side-stack { grid-template-columns: 1fr; }
  .region-page .article-card,
  .region-page .article-card-body { min-height: 205px; }
  .results-page .map-mode { width: calc(100% - 24px); margin: 12px auto 24px; gap: 12px; }
  .results-page .map-mode .interactive-map { height: 390px; min-height: 390px; border-radius: 18px; }
  .results-page .map-mode .map-list { max-height: none; padding: 15px; border-radius: 18px; }
  .results-page .map-legend { max-width: calc(100% - 16px); }
  .region-page .article-shell { width: calc(100% - 24px); padding-top: 16px; }
  .region-page .guide-article { width: auto; }
  .results-page .site-footer,
  .region-page .site-footer { align-items: flex-start; flex-direction: column; gap: 18px; margin-top: 30px; }
  .results-page .site-footer nav,
  .region-page .site-footer nav { justify-content: flex-start; gap: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .results-page .result-card,
  .region-page .large-maze-card { transition: none; }
}
