.trails-catalogue-page {background: #faf7ef; color: #263f32;}
.catalogue-main {max-width: 1600px; margin: auto; padding: 16px 24px 24px; min-width: 0;}
.catalogue-heading {display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 16px;}
.catalogue-heading h1 {font-family: Georgia, serif; font-weight: 500; font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 2px 0 0;}
.catalogue-heading .eyebrow {font-size: .68rem; letter-spacing: .1em;}
.catalogue-heading nav {gap: 20px;}
.catalogue-mine {font-size: .88rem; text-decoration: none;}
.catalogue-add {gap: 8px; padding: 9px 16px; font-size: .9rem; background: #294f3e; border-color: #294f3e;}
.catalogue-add > span {font-size: 1.4rem; font-weight: 400; line-height: 1;}
.catalogue-workspace {position: relative; min-width: 0;}
.catalogue-map {display: none;}
.catalogue-overlay {display: grid; gap: 12px;}
.catalogue-search {padding: 12px; background: #fffdf7; border: 1px solid #d4dbcc; border-radius: 14px; margin: 0; min-width: 0;}
.catalogue-search-line {display: flex; gap: 8px; align-items: center;}
.catalogue-search-line input {min-width: 0; width: 100%; height: 44px; padding: 8px 12px; border: 1px solid #d1d9c8; border-radius: 8px; background: #f7f8f0; color: #263f32; font-size: .92rem;}
.catalogue-search-button {display: grid; place-items: center; width: 44px; flex: 0 0 44px; padding: 10px; border: 0; border-radius: 8px; background: #294f3e; color: #fff;}
.catalogue-search-button svg, .catalogue-fit svg, .catalogue-search-toggle svg, .catalogue-search-close svg {width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;}
.catalogue-search-toggle, .catalogue-search-close, .catalogue-fit-list {display: none;}
.catalogue-search-toggle {pointer-events: auto;}
.catalogue-search-active {width: 6px; height: 6px; border-radius: 50%; background: #b06d2e;}
.catalogue-search-toggle[hidden], .catalogue-search-close[hidden], .catalogue-fit-list[hidden] {display: none;}
.catalogue-sr-only {position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;}
.catalogue-filters summary {display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 9px 2px 0; min-height: 36px; color: #52634f; font-size: .83rem; list-style: none;}
.catalogue-filters summary::-webkit-details-marker {display: none;}
.catalogue-filters summary > span:first-child {display: inline-flex; align-items: center; gap: 8px;}
.catalogue-filters[open] summary > span:last-child {transform: rotate(180deg);}
.catalogue-filter-dot {width: 6px; height: 6px; border-radius: 50%; background: #b06d2e;}
.catalogue-filter-fields {padding-top: 14px;}
.catalogue-filter-fields .trails-field {margin-bottom: 10px;}
.catalogue-filter-fields label {font-size: .8rem; font-weight: 600;}
.catalogue-filter-fields input, .catalogue-filter-fields select {font-size: .88rem; min-height: 44px; border-color: #bdc9b6;}
.catalogue-filter-actions {display: flex; align-items: center; gap: 20px; font-size: .85rem;}
.catalogue-filter-actions .button {padding: 8px 18px; flex: 1;}
.catalogue-reset {display: inline-block; margin-top: 6px; font-size: .8rem;}
.catalogue-filter-errors, .catalogue-filter-fields .errorlist {color: #963b29; font-size: .82rem; overflow-wrap: anywhere;}
.catalogue-filter-errors ul, .catalogue-filter-fields .errorlist {margin: 8px 0; padding-left: 18px;}
.catalogue-panel {background: #fffdf7; border: 1px solid #d4dbcc; border-radius: 14px; min-width: 0; overflow: hidden;}
.catalogue-panel-heading {display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #e1e5d9; flex-shrink: 0;}
.catalogue-panel-heading h2 {font-size: .94rem; font-weight: 650; margin: 0; white-space: nowrap;}
.catalogue-panel-heading h2 > span {display: inline-block; margin-left: 6px; font-size: .75rem; font-weight: 500; color: #61715b; background: #edf1e5; border-radius: 20px; padding: 1px 8px;}
.catalogue-panel-toggle {min-height: 32px; padding: 0; border: 0; background: transparent; color: #61715b; font-size: .72rem; display: flex; align-items: center; gap: 8px; cursor: pointer;}
.catalogue-panel-toggle[hidden], .catalogue-card-map[hidden], .catalogue-fit[hidden] {display: none;}
.catalogue-list {padding: 6px 14px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 0 22px; align-content: start;}
.catalogue-card {position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) 44px; gap: 4px 10px; padding: 12px 2px; border-bottom: 1px solid #e2e6da; min-width: 0; scroll-margin: 8px;}
.catalogue-card:last-of-type {border-bottom: 0;}
.catalogue-card:not(.is-selected):hover {background: #f3f5ec;}
.catalogue-kind {color: #746341; background: #f0ecdf; border-radius: 4px; padding: 1px 5px;}
.catalogue-kind.is-traversed {color: #476944; background: #e9efdf;}
.catalogue-length {font-weight: 650;}
.catalogue-card h3 {grid-column: 1; grid-row: 1; font-size: .96rem; font-weight: 650; line-height: 1.32; margin: 0; overflow-wrap: anywhere;}
.catalogue-card h3 a {color: inherit; text-decoration: none;}
.catalogue-card-title {display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden;}
.catalogue-card-link::after {content: ""; position: absolute; inset: 0; border-radius: 8px;}
.catalogue-card-link:focus-visible {outline: none;}
.catalogue-card-link:focus-visible::after {outline: 2px solid #b28739; outline-offset: -2px;}
.catalogue-region {grid-column: 1; grid-row: 2; font-size: .74rem; line-height: 1.35; color: #73816a; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
.catalogue-card-facts {grid-column: 1 / -1; grid-row: 3; display: flex; align-items: center; flex-wrap: wrap; gap: 3px 10px; font-size: .7rem; line-height: 1.5; color: #61715b;}
.catalogue-difficulty {display: inline-flex; align-items: center; gap: 6px;}
.catalogue-difficulty > span {width: 6px; height: 6px; border-radius: 50%; background: #87917d;}
.catalogue-difficulty.is-easy > span {background: #548153;}
.catalogue-difficulty.is-moderate > span {background: #b28739;}
.catalogue-difficulty.is-hard > span {background: #ac5941;}
.catalogue-card-map {position: relative; z-index: 1; grid-column: 2; grid-row: 1 / 3; align-self: start; display: grid; place-items: center; width: 44px; min-height: 44px; padding: 10px; background: #eef2e6; color: #294f3e; border: 1px solid #d0dcc5; border-radius: 8px; cursor: pointer;}
.catalogue-card-map svg, .catalogue-fit-list svg {width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round;}
.catalogue-card.is-selected {background: #f6efdf; border-radius: 8px; padding-inline: 10px; margin-inline: -8px; border-color: transparent; box-shadow: inset 3px 0 #b75f2c;}
.catalogue-card.is-selected [data-catalogue-route] {background: #b75f2c; border-color: #b75f2c; color: #fff;}
.catalogue-empty {padding: 26px 10px; grid-column: 1 / -1;}
.catalogue-empty h2 {font-size: 1.1rem; font-weight: 600; line-height: 1.4;}
.catalogue-empty p {font-size: .86rem; color: #66725e;}
.catalogue-empty a {font-size: .84rem;}
.catalogue-empty-mark {display: grid; place-items: center; width: 42px; height: 42px; background: #edf2e5; border: 1px solid #d2dcc6; border-radius: 50%; margin-bottom: 16px; font-size: 1.4rem;}
.catalogue-list .trails-pagination {grid-column: 1 / -1; font-size: .76rem; gap: 4px 12px; margin: 10px 0;}
.catalogue-page-note {grid-column: 1 / -1; font-size: .72rem; color: #78836d; text-align: center; margin: 0 0 12px;}
.catalogue-preview {display: none;}
@media (min-width: 901px) and (hover: hover) and (pointer: fine) {
  .is-enhanced:not(.is-map-unavailable) .catalogue-preview:not([hidden]) {display: block; position: absolute; z-index: 4; width: 300px; padding: 16px 18px; overflow-y: auto; overscroll-behavior: contain; pointer-events: auto; border: 1px solid #cbd6c3; border-radius: 12px; background: #fffdf7; color: #263f32; box-shadow: 0 8px 28px #263f3226; overflow-wrap: anywhere;}
  .catalogue-preview p {margin: 0;}
  .catalogue-preview-title {font-size: 1rem; font-weight: 650; line-height: 1.35;}
  .catalogue-preview-region {margin-top: 4px !important; font-size: .76rem; color: #73816a;}
  .catalogue-preview-summary {margin-top: 12px !important; font-size: .86rem; line-height: 1.5; white-space: pre-line;}
  .catalogue-preview-summary[hidden] {display: none;}
  .catalogue-preview-facts {margin-top: 12px !important; padding-top: 10px; border-top: 1px solid #e1e5d9; font-size: .77rem; line-height: 1.6; color: #52634f;}
  .catalogue-preview-note {margin-top: 4px !important; font-size: .68rem; color: #73816a;}
}
.catalogue-map-tools {display: none;}
.catalogue-map-footer {margin-top: 16px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px;}
.catalogue-map-status {font-size: .72rem; color: #52634f; margin: 0; max-width: 400px;}
.catalogue-map-source {font-size: .7rem; color: #61715b; margin: 0;}
.catalogue-advice {font-size: .76rem; max-width: 340px; background: #fffdf7; border: 1px solid #d4dbcc; border-radius: 8px; padding: 7px 10px;}
.catalogue-advice summary {cursor: pointer; min-height: 24px;}
.catalogue-advice > div {padding-top: 8px;}
.catalogue-advice[hidden], .catalogue-advice-open[hidden], .catalogue-guidance[hidden] {display: none;}
.catalogue-guidance {margin-top: 10px; flex-shrink: 0;}
.catalogue-guidance .catalogue-advice {max-width: none;}
.catalogue-advice-open {min-height: 40px; padding: 7px 10px; color: #52634f; background: #fffdf7; border: 1px solid #d4dbcc; border-radius: 8px; font-size: .76rem; cursor: pointer; pointer-events: auto;}
.catalogue-advice-dialog {width: min(460px, calc(100% - 32px)); max-height: calc(100dvh - 48px); padding: 0; border: 1px solid #d4dbcc; border-radius: 16px; background: #fffdf7; color: #263f32; box-shadow: 0 20px 70px #1e302c40;}
.catalogue-advice-dialog:not([open]) {display: none;}
.catalogue-advice-dialog[open] {display: flex; flex-direction: column;}
.catalogue-advice-dialog::backdrop {background: #1d332955;}
.catalogue-advice-dialog-header {display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #e1e5d9; flex-shrink: 0;}
.catalogue-advice-dialog-header h2 {margin: 0; font-size: 1.1rem;}
.catalogue-advice-dialog-header button {min-height: 44px; padding: 7px 12px; border: 1px solid #cbd6c3; border-radius: 8px; background: #eef2e6; color: #294f3e; font-size: .85rem;}
.catalogue-advice-dialog-body {padding: 18px; min-height: 0; overflow-y: auto; overscroll-behavior: contain; font-size: .9rem; line-height: 1.55;}
.catalogue-advice-dialog-body p {margin: 0 0 14px;}
.catalogue-advice-dialog-body .legal-links {font-size: .82rem; padding: 14px 0 0; margin: 0; gap: 6px 12px;}
.catalogue-advice-dialog-body a {display: inline-flex; align-items: center; min-height: 44px;}
.catalogue-advice p {margin-bottom: 8px;}
.catalogue-advice .legal-links {font-size: inherit; padding: 8px 0 0; margin: 0; gap: 8px;}
.catalogue-nojs {margin-top: 12px; font-size: .84rem; color: #66725e;}
/* Opt into the fixed workspace after successful map creation. */
.catalogue-map-active {height: 100dvh; overflow: hidden; padding-bottom: var(--service-navigation-space); display: flex; flex-direction: column;}
.catalogue-map-active > .portal-service-header {flex: 0 0 auto;}
.catalogue-map-active > .legal-links {display: none;}
.catalogue-map-active .catalogue-main {flex: 1; display: flex; flex-direction: column; width: 100%; min-height: 0; padding-bottom: 12px;}
.catalogue-map-active .catalogue-heading {flex: 0 0 auto;}
.catalogue-map-active.catalogue-guidance-open {height: auto; min-height: 100dvh; overflow: auto;}
.catalogue-guidance-open .catalogue-main {flex: none;}
.catalogue-guidance-open .catalogue-workspace.is-enhanced:not(.is-map-unavailable) {flex: 0 0 clamp(320px, 60dvh, 600px); height: clamp(320px, 60dvh, 600px);}
.catalogue-workspace.is-enhanced:not(.is-map-unavailable) {flex: 1; min-height: 0; background: #edf1e7; border: 1px solid #d4dbcc; border-radius: 16px; overflow: hidden;}
.is-enhanced:not(.is-map-unavailable) .catalogue-map {display: block; position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0;}
.is-enhanced:not(.is-map-unavailable) .catalogue-overlay {position: absolute; inset: 16px auto 16px 16px; width: 352px; display: flex; flex-direction: column; min-height: 0; pointer-events: none;}
.is-enhanced:not(.is-map-unavailable) .catalogue-search, .is-enhanced:not(.is-map-unavailable) .catalogue-panel {pointer-events: auto; box-shadow: 0 5px 22px #263f3215;}
.is-enhanced:not(.is-map-unavailable) .catalogue-search {flex-shrink: 0; max-height: 70%; overflow: auto;}
.is-enhanced:not(.is-map-unavailable) .catalogue-panel {display: flex; flex-direction: column; min-height: 0; flex: 1;}
.is-enhanced:not(.is-map-unavailable) .catalogue-list {display: block; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;}
.is-panel-collapsed:not(.is-map-unavailable) .catalogue-panel {flex: 0 0 auto;}
.is-panel-collapsed:not(.is-map-unavailable) .catalogue-list {display: none;}
.is-panel-collapsed .catalogue-panel-toggle > span:last-child {transform: rotate(180deg);}
.is-enhanced:not(.is-map-unavailable) .catalogue-map-tools {display: block; position: absolute; top: 16px; right: 16px;}
.catalogue-fit {display: flex; gap: 8px; align-items: center; padding: 9px 12px; border: 1px solid #d4dbcc; border-radius: 9px; background: #fffdf7; color: #294f3e; font-size: .78rem; box-shadow: 0 3px 12px #263f3212;}
.catalogue-map .maplibregl-ctrl-top-left {display: none;}
.is-enhanced .maplibregl-ctrl-bottom-left {left: auto; right: 16px; bottom: 84px;}
.is-enhanced .maplibregl-ctrl-bottom-right {right: 10px;}
.is-enhanced:not(.is-map-unavailable) .catalogue-map-footer {position: absolute; right: 16px; bottom: 28px; max-width: calc(100% - 400px); margin: 0; pointer-events: none;}
.is-enhanced .catalogue-map-status:not(:empty) {background: #fffdf7e8; border-radius: 5px; padding: 4px 7px; font-size: .66rem;}
.is-enhanced .catalogue-advice {pointer-events: auto;}
.is-enhanced:not(.is-map-unavailable) .catalogue-map-source {display: none;}
.is-map-unavailable .catalogue-panel-toggle {display: none;}
@media (max-width: 900px) {
  .catalogue-main {padding: 12px;}
  .catalogue-heading {gap: 8px; margin-bottom: 12px;}
  .catalogue-heading h1 {font-size: 1.55rem;}
  .catalogue-heading .eyebrow {display: none;}
  .catalogue-heading nav {gap: 2px; flex-direction: column; align-items: flex-end;}
  .catalogue-mine {font-size: .7rem;}
  .catalogue-add {font-size: .76rem; padding: 7px 10px; gap: 5px;}
  .catalogue-map-active .catalogue-main {padding: 8px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-overlay {display: contents;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search-toggle {display: inline-flex; align-items: center; gap: 8px; position: absolute; top: 10px; left: 10px; min-height: 44px; padding: 9px 12px; z-index: 2; background: #fffdf7; color: #294f3e; border: 1px solid #d4dbcc; border-radius: 10px; box-shadow: 0 3px 12px #263f3212; font-size: .8rem; cursor: pointer;}
  .is-search-open:not(.is-map-unavailable) .catalogue-search-toggle {display: none;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search {position: absolute; top: 10px; left: 10px; right: 10px; padding: 8px; max-height: none; overflow: visible; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) 44px 44px; align-items: center; gap: 8px;}
  .is-enhanced:not(.is-map-unavailable):not(.is-search-open) .catalogue-search {display: none;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search-line {display: contents;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search-line input {grid-column: 1; grid-row: 1; font-size: 1rem;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search-button {grid-column: 2; grid-row: 1;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-search-close {display: grid; place-items: center; grid-column: 3; grid-row: 1; width: 44px; min-height: 44px; padding: 10px; border: 1px solid #d4dbcc; border-radius: 8px; background: #eef2e6; color: #294f3e; cursor: pointer;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-filters {grid-column: 1 / -1; grid-row: 2;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-filters summary {min-height: 32px; padding: 0 2px; gap: 6px; font-size: .76rem;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-filter-fields {position: absolute; top: calc(100% - 1px); left: -1px; right: -1px; padding: 14px; max-height: min(55dvh, 400px, max(100px, calc(var(--catalogue-map-height, 400px) - var(--catalogue-search-bottom, 124px) - var(--catalogue-panel-height, 55px) - 24px))); overflow-y: auto; overscroll-behavior: contain; background: #fffdf7; border: 1px solid #d4dbcc; border-radius: 0 0 14px 14px; box-shadow: 0 10px 20px #263f3220;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-reset, .is-enhanced:not(.is-map-unavailable) .catalogue-filter-errors {grid-column: 1 / -1;}
  .catalogue-search-line input {font-size: 1rem;}
  .catalogue-filters summary {min-height: 30px; padding-top: 5px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-panel {position: absolute; bottom: 6px; left: 8px; right: 8px; width: auto; max-height: 53%; z-index: 1; border-color: #c8d2bf; border-radius: 16px; background: #f7f8eff5; box-shadow: 0 2px 10px #263f3212;}
  .catalogue-panel-heading {padding: 5px 12px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-panel-heading {padding-block: 2px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-panel-heading h2 {font-size: .88rem;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-panel-heading h2 > span {margin-left: 5px; padding: 0 7px; background: #e8eddf;}
  .is-panel-collapsed:not(.is-map-unavailable) .catalogue-panel-heading {border-bottom: 0;}
  .catalogue-panel-toggle {min-height: 44px; font-size: .7rem;}
  .catalogue-list {padding-inline: 12px;}
  .catalogue-card {padding: 10px 2px;}
  .catalogue-card h3 {font-size: .93rem;}
  .is-panel-collapsed:not(.is-map-unavailable) .catalogue-list {display: none;}
  .is-panel-collapsed.has-selection:not(.is-map-unavailable) .catalogue-list {display: block; max-height: 96px;}
  .is-panel-collapsed:not(.is-map-unavailable) .catalogue-card:not(.is-peek), .is-panel-collapsed .catalogue-list .trails-pagination, .is-panel-collapsed .catalogue-page-note {display: none;}
  .is-panel-collapsed:not(.is-map-unavailable) .catalogue-card .catalogue-card-facts, .is-panel-collapsed:not(.is-map-unavailable) .catalogue-card .catalogue-card-map {display: none;}
  .is-panel-collapsed .catalogue-card {grid-template-columns: minmax(0, 1fr); padding-top: 8px; padding-bottom: 8px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-map-tools {display: none;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-fit-list {display: grid; place-items: center; flex: 0 0 44px; width: 44px; min-height: 44px; margin-left: auto; padding: 10px; border: 1px solid #d4dbcc; border-radius: 8px; background: #eef2e6; color: #294f3e; cursor: pointer;}
  .is-panel-collapsed:not(.is-map-unavailable) .catalogue-fit-list {display: none;}
  .catalogue-fit {min-height: 40px; padding: 7px 9px; font-size: .7rem;}
  .is-enhanced .maplibregl-ctrl-bottom-left {bottom: calc(var(--catalogue-panel-height, 48px) + 30px); right: 12px;}
  .is-enhanced .maplibregl-ctrl-bottom-right {bottom: calc(var(--catalogue-panel-height, 48px) + 12px); right: 12px;}
  .is-enhanced .maplibregl-ctrl-attrib {max-width: 100%; font-size: 8px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-map-footer {bottom: calc(var(--catalogue-panel-height, 54px) + 20px); left: 12px; right: auto; max-width: calc(100% - 24px); align-items: flex-start;}
  .is-enhanced .catalogue-map-status {display: none;}
  .catalogue-advice {font-size: .66rem; padding: 4px 7px; max-width: 280px;}
  .catalogue-advice[open] {max-height: 160px; overflow: auto;}
  .catalogue-guidance .catalogue-advice {font-size: .8rem; padding: 8px 10px;}
  .catalogue-guidance .catalogue-advice[open] {max-height: none; overflow: visible;}
  .catalogue-advice-open, .catalogue-guidance {display: none;}
}
@media (max-height: 620px) and (min-width: 901px) {
  .catalogue-heading .eyebrow {display: none;}
  .catalogue-heading {margin-bottom: 8px;}
  .is-enhanced:not(.is-map-unavailable) .catalogue-overlay {inset-block: 10px;}
}
@media (prefers-reduced-motion: reduce) {.catalogue-workspace * {scroll-behavior: auto;}}
